From 90f4c3885b2e63f57a7172c148f67b96cf44eca2 Mon Sep 17 00:00:00 2001 From: richardbarry Date: Sat, 11 Aug 2012 21:34:11 +0000 Subject: [PATCH] Add FreeRTOS-Plus directory. git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@1765 1d2547de-c912-0410-9cb9-b8ca96c0e9e2 --- .../.log => FreeRTOS-Plus/CyaSSL/AUTHORS | 0 FreeRTOS-Plus/CyaSSL/COPYING | 340 + .../.log => FreeRTOS-Plus/CyaSSL/ChangeLog | 0 FreeRTOS-Plus/CyaSSL/Makefile.am | 82 + FreeRTOS-Plus/CyaSSL/Makefile.in | 2066 ++ .../CyaSSL/NEWS | 0 FreeRTOS-Plus/CyaSSL/README | 704 + FreeRTOS-Plus/CyaSSL/aclocal.m4 | 944 + FreeRTOS-Plus/CyaSSL/certs/ca-cert.pem | 87 + FreeRTOS-Plus/CyaSSL/certs/ca-key.der | Bin 0 -> 1192 bytes FreeRTOS-Plus/CyaSSL/certs/ca-key.pem | 27 + FreeRTOS-Plus/CyaSSL/certs/client-cert.der | Bin 0 -> 1180 bytes FreeRTOS-Plus/CyaSSL/certs/client-cert.pem | 87 + .../CyaSSL/certs/client-ecc-cert.pem | 54 + FreeRTOS-Plus/CyaSSL/certs/client-key.der | Bin 0 -> 1192 bytes FreeRTOS-Plus/CyaSSL/certs/client-key.pem | 27 + FreeRTOS-Plus/CyaSSL/certs/client-keyEnc.pem | 12 + FreeRTOS-Plus/CyaSSL/certs/crl/crl.pem | 41 + FreeRTOS-Plus/CyaSSL/certs/crl/include.am | 9 + FreeRTOS-Plus/CyaSSL/certs/dh2048.der | Bin 0 -> 268 bytes FreeRTOS-Plus/CyaSSL/certs/dh2048.pem | 29 + FreeRTOS-Plus/CyaSSL/certs/dsa2048.der | Bin 0 -> 835 bytes FreeRTOS-Plus/CyaSSL/certs/ecc-client-key.pem | 9 + FreeRTOS-Plus/CyaSSL/certs/ecc-key.der | Bin 0 -> 121 bytes FreeRTOS-Plus/CyaSSL/certs/ecc-key.pem | 9 + FreeRTOS-Plus/CyaSSL/certs/ecc-keyPkcs8.pem | 5 + FreeRTOS-Plus/CyaSSL/certs/include.am | 40 + FreeRTOS-Plus/CyaSSL/certs/ntru-cert.pem | 28 + FreeRTOS-Plus/CyaSSL/certs/ntru-key.raw | Bin 0 -> 607 bytes FreeRTOS-Plus/CyaSSL/certs/rsa2048.der | Bin 0 -> 1191 bytes FreeRTOS-Plus/CyaSSL/certs/server-cert.pem | 158 + FreeRTOS-Plus/CyaSSL/certs/server-ecc.pem | 55 + FreeRTOS-Plus/CyaSSL/certs/server-key.pem | 27 + FreeRTOS-Plus/CyaSSL/certs/server-keyEnc.pem | 30 + .../CyaSSL/certs/server-keyPkcs8.pem | 28 + .../CyaSSL/certs/server-keyPkcs8Enc.pem | 29 + .../CyaSSL/certs/server-keyPkcs8Enc12.pem | 29 + .../CyaSSL/certs/server-keyPkcs8Enc2.pem | 30 + FreeRTOS-Plus/CyaSSL/certs/taoCert.txt | 157 + FreeRTOS-Plus/CyaSSL/config.in | 166 + FreeRTOS-Plus/CyaSSL/config/compile | 142 + FreeRTOS-Plus/CyaSSL/config/config.guess | 1500 + FreeRTOS-Plus/CyaSSL/config/config.sub | 1616 + FreeRTOS-Plus/CyaSSL/config/depcomp | 584 + FreeRTOS-Plus/CyaSSL/config/install-sh | 507 + FreeRTOS-Plus/CyaSSL/config/ltmain.sh | 8745 ++++++ FreeRTOS-Plus/CyaSSL/config/missing | 367 + FreeRTOS-Plus/CyaSSL/configure | 25878 ++++++++++++++++ FreeRTOS-Plus/CyaSSL/configure.ac | 659 + .../CyaSSL/ctaocrypt/benchmark/benchmark.c | 649 + .../CyaSSL/ctaocrypt/benchmark/benchmark.sln | 20 + .../ctaocrypt/benchmark/benchmark.vcproj | 195 + .../CyaSSL/ctaocrypt/benchmark/include.am | 9 + FreeRTOS-Plus/CyaSSL/ctaocrypt/src/aes.c | 1408 + FreeRTOS-Plus/CyaSSL/ctaocrypt/src/aes_asm.s | 484 + FreeRTOS-Plus/CyaSSL/ctaocrypt/src/arc4.c | 78 + FreeRTOS-Plus/CyaSSL/ctaocrypt/src/asm.c | 1305 + FreeRTOS-Plus/CyaSSL/ctaocrypt/src/asn.c | 4687 +++ FreeRTOS-Plus/CyaSSL/ctaocrypt/src/coding.c | 254 + FreeRTOS-Plus/CyaSSL/ctaocrypt/src/des3.c | 528 + FreeRTOS-Plus/CyaSSL/ctaocrypt/src/dh.c | 169 + FreeRTOS-Plus/CyaSSL/ctaocrypt/src/dsa.c | 221 + FreeRTOS-Plus/CyaSSL/ctaocrypt/src/ecc.c | 1 + FreeRTOS-Plus/CyaSSL/ctaocrypt/src/ecc_fp.c | 1 + .../CyaSSL/ctaocrypt/src/fp_mont_small.i | 3860 +++ .../CyaSSL/ctaocrypt/src/fp_mul_comba_12.i | 130 + .../CyaSSL/ctaocrypt/src/fp_mul_comba_17.i | 170 + .../CyaSSL/ctaocrypt/src/fp_mul_comba_20.i | 193 + .../CyaSSL/ctaocrypt/src/fp_mul_comba_24.i | 226 + .../CyaSSL/ctaocrypt/src/fp_mul_comba_28.i | 258 + .../CyaSSL/ctaocrypt/src/fp_mul_comba_3.i | 58 + .../CyaSSL/ctaocrypt/src/fp_mul_comba_32.i | 304 + .../CyaSSL/ctaocrypt/src/fp_mul_comba_4.i | 66 + .../CyaSSL/ctaocrypt/src/fp_mul_comba_48.i | 418 + .../CyaSSL/ctaocrypt/src/fp_mul_comba_6.i | 82 + .../CyaSSL/ctaocrypt/src/fp_mul_comba_64.i | 546 + .../CyaSSL/ctaocrypt/src/fp_mul_comba_7.i | 90 + .../CyaSSL/ctaocrypt/src/fp_mul_comba_8.i | 98 + .../CyaSSL/ctaocrypt/src/fp_mul_comba_9.i | 106 + .../ctaocrypt/src/fp_mul_comba_small_set.i | 1250 + .../CyaSSL/ctaocrypt/src/fp_sqr_comba_12.i | 157 + .../CyaSSL/ctaocrypt/src/fp_sqr_comba_17.i | 207 + .../CyaSSL/ctaocrypt/src/fp_sqr_comba_20.i | 240 + .../CyaSSL/ctaocrypt/src/fp_sqr_comba_24.i | 280 + .../CyaSSL/ctaocrypt/src/fp_sqr_comba_28.i | 320 + .../CyaSSL/ctaocrypt/src/fp_sqr_comba_3.i | 67 + .../CyaSSL/ctaocrypt/src/fp_sqr_comba_32.i | 360 + .../CyaSSL/ctaocrypt/src/fp_sqr_comba_4.i | 77 + .../CyaSSL/ctaocrypt/src/fp_sqr_comba_48.i | 520 + .../CyaSSL/ctaocrypt/src/fp_sqr_comba_6.i | 97 + .../CyaSSL/ctaocrypt/src/fp_sqr_comba_64.i | 680 + .../CyaSSL/ctaocrypt/src/fp_sqr_comba_7.i | 107 + .../CyaSSL/ctaocrypt/src/fp_sqr_comba_8.i | 117 + .../CyaSSL/ctaocrypt/src/fp_sqr_comba_9.i | 127 + .../ctaocrypt/src/fp_sqr_comba_small_set.i | 1540 + FreeRTOS-Plus/CyaSSL/ctaocrypt/src/hc128.c | 333 + FreeRTOS-Plus/CyaSSL/ctaocrypt/src/hmac.c | 161 + FreeRTOS-Plus/CyaSSL/ctaocrypt/src/include.am | 39 + FreeRTOS-Plus/CyaSSL/ctaocrypt/src/integer.c | 4436 +++ FreeRTOS-Plus/CyaSSL/ctaocrypt/src/logging.c | 153 + FreeRTOS-Plus/CyaSSL/ctaocrypt/src/md4.c | 218 + FreeRTOS-Plus/CyaSSL/ctaocrypt/src/md5.c | 226 + FreeRTOS-Plus/CyaSSL/ctaocrypt/src/memory.c | 99 + FreeRTOS-Plus/CyaSSL/ctaocrypt/src/misc.c | 174 + FreeRTOS-Plus/CyaSSL/ctaocrypt/src/pwdbased.c | 319 + FreeRTOS-Plus/CyaSSL/ctaocrypt/src/rabbit.c | 246 + FreeRTOS-Plus/CyaSSL/ctaocrypt/src/random.c | 193 + FreeRTOS-Plus/CyaSSL/ctaocrypt/src/ripemd.c | 351 + FreeRTOS-Plus/CyaSSL/ctaocrypt/src/rsa.c | 557 + FreeRTOS-Plus/CyaSSL/ctaocrypt/src/sha.c | 201 + FreeRTOS-Plus/CyaSSL/ctaocrypt/src/sha256.c | 209 + FreeRTOS-Plus/CyaSSL/ctaocrypt/src/sha512.c | 386 + FreeRTOS-Plus/CyaSSL/ctaocrypt/src/tfm.c | 2476 ++ .../CyaSSL/ctaocrypt/test/include.am | 9 + FreeRTOS-Plus/CyaSSL/ctaocrypt/test/test.c | 2089 ++ FreeRTOS-Plus/CyaSSL/ctaocrypt/test/test.sln | 20 + .../CyaSSL/ctaocrypt/test/test.vcproj | 195 + .../cyassl-iphone.xcodeproj/project.pbxproj | 379 + FreeRTOS-Plus/CyaSSL/cyassl-ntru.sln | 65 + FreeRTOS-Plus/CyaSSL/cyassl-ntru.vcproj | 285 + FreeRTOS-Plus/CyaSSL/cyassl.sln | 74 + FreeRTOS-Plus/CyaSSL/cyassl.vcproj | 277 + FreeRTOS-Plus/CyaSSL/cyassl/callbacks.h | 80 + FreeRTOS-Plus/CyaSSL/cyassl/crl.h | 47 + FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/aes.h | 91 + FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/arc4.h | 57 + FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/asn.h | 430 + .../CyaSSL/cyassl/ctaocrypt/asn_public.h | 155 + .../CyaSSL/cyassl/ctaocrypt/coding.h | 51 + FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/des3.h | 81 + FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/dh.h | 67 + FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/dsa.h | 67 + FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/ecc.h | 129 + FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/error.h | 113 + FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/hc128.h | 60 + FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/hmac.h | 86 + .../CyaSSL/cyassl/ctaocrypt/include.am | 36 + .../CyaSSL/cyassl/ctaocrypt/integer.h | 329 + .../CyaSSL/cyassl/ctaocrypt/logging.h | 70 + FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/md4.h | 65 + FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/md5.h | 62 + .../CyaSSL/cyassl/ctaocrypt/memory.h | 55 + FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/misc.h | 61 + .../CyaSSL/cyassl/ctaocrypt/mpi_class.h | 1018 + .../CyaSSL/cyassl/ctaocrypt/mpi_superclass.h | 95 + .../CyaSSL/cyassl/ctaocrypt/pwdbased.h | 53 + .../CyaSSL/cyassl/ctaocrypt/rabbit.h | 65 + .../CyaSSL/cyassl/ctaocrypt/random.h | 73 + .../CyaSSL/cyassl/ctaocrypt/ripemd.h | 64 + FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/rsa.h | 81 + .../CyaSSL/cyassl/ctaocrypt/settings.h | 317 + FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/sha.h | 62 + .../CyaSSL/cyassl/ctaocrypt/sha256.h | 68 + .../CyaSSL/cyassl/ctaocrypt/sha512.h | 91 + FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/tfm.h | 686 + FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/types.h | 256 + .../CyaSSL/cyassl/ctaocrypt/visibility.h | 69 + FreeRTOS-Plus/CyaSSL/cyassl/error.h | 126 + FreeRTOS-Plus/CyaSSL/cyassl/include.am | 20 + FreeRTOS-Plus/CyaSSL/cyassl/internal.h | 1366 + FreeRTOS-Plus/CyaSSL/cyassl/ocsp.h | 72 + FreeRTOS-Plus/CyaSSL/cyassl/openssl/asn1.h | 2 + FreeRTOS-Plus/CyaSSL/cyassl/openssl/bio.h | 23 + FreeRTOS-Plus/CyaSSL/cyassl/openssl/bn.h | 115 + FreeRTOS-Plus/CyaSSL/cyassl/openssl/conf.h | 2 + FreeRTOS-Plus/CyaSSL/cyassl/openssl/crypto.h | 26 + FreeRTOS-Plus/CyaSSL/cyassl/openssl/des.h | 87 + FreeRTOS-Plus/CyaSSL/cyassl/openssl/dh.h | 52 + FreeRTOS-Plus/CyaSSL/cyassl/openssl/dsa.h | 53 + FreeRTOS-Plus/CyaSSL/cyassl/openssl/ec.h | 2 + FreeRTOS-Plus/CyaSSL/cyassl/openssl/ecdsa.h | 2 + FreeRTOS-Plus/CyaSSL/cyassl/openssl/engine.h | 5 + FreeRTOS-Plus/CyaSSL/cyassl/openssl/err.h | 2 + FreeRTOS-Plus/CyaSSL/cyassl/openssl/evp.h | 239 + FreeRTOS-Plus/CyaSSL/cyassl/openssl/hmac.h | 81 + .../CyaSSL/cyassl/openssl/include.am | 36 + FreeRTOS-Plus/CyaSSL/cyassl/openssl/lhash.h | 2 + FreeRTOS-Plus/CyaSSL/cyassl/openssl/md4.h | 1 + FreeRTOS-Plus/CyaSSL/cyassl/openssl/md5.h | 39 + FreeRTOS-Plus/CyaSSL/cyassl/openssl/ocsp.h | 1 + .../CyaSSL/cyassl/openssl/opensslconf.h | 8 + .../CyaSSL/cyassl/openssl/opensslv.h | 12 + .../CyaSSL/cyassl/openssl/ossl_typ.h | 2 + FreeRTOS-Plus/CyaSSL/cyassl/openssl/pem.h | 41 + FreeRTOS-Plus/CyaSSL/cyassl/openssl/pkcs12.h | 2 + FreeRTOS-Plus/CyaSSL/cyassl/openssl/rand.h | 4 + FreeRTOS-Plus/CyaSSL/cyassl/openssl/ripemd.h | 37 + FreeRTOS-Plus/CyaSSL/cyassl/openssl/rsa.h | 75 + FreeRTOS-Plus/CyaSSL/cyassl/openssl/sha.h | 125 + FreeRTOS-Plus/CyaSSL/cyassl/openssl/ssl.h | 379 + FreeRTOS-Plus/CyaSSL/cyassl/openssl/stack.h | 2 + FreeRTOS-Plus/CyaSSL/cyassl/openssl/ui.h | 2 + FreeRTOS-Plus/CyaSSL/cyassl/openssl/x509.h | 3 + FreeRTOS-Plus/CyaSSL/cyassl/openssl/x509v3.h | 2 + FreeRTOS-Plus/CyaSSL/cyassl/sniffer.h | 74 + FreeRTOS-Plus/CyaSSL/cyassl/sniffer_error.h | 101 + FreeRTOS-Plus/CyaSSL/cyassl/sniffer_error.rc | 78 + FreeRTOS-Plus/CyaSSL/cyassl/ssl.h | 839 + FreeRTOS-Plus/CyaSSL/cyassl/test.h | 725 + FreeRTOS-Plus/CyaSSL/cyassl/version.h | 35 + FreeRTOS-Plus/CyaSSL/cyassl/version.h.in | 35 + FreeRTOS-Plus/CyaSSL/doc/README.txt | 3 + FreeRTOS-Plus/CyaSSL/doc/include.am | 5 + .../CyaSSL/examples/client/client-ntru.vcproj | 199 + FreeRTOS-Plus/CyaSSL/examples/client/client.c | 371 + .../CyaSSL/examples/client/client.sln | 20 + .../CyaSSL/examples/client/client.vcproj | 197 + .../CyaSSL/examples/client/include.am | 12 + .../echoclient/echoclient-ntru.vcproj | 199 + .../CyaSSL/examples/echoclient/echoclient.c | 179 + .../CyaSSL/examples/echoclient/echoclient.sln | 20 + .../examples/echoclient/echoclient.vcproj | 197 + .../CyaSSL/examples/echoclient/include.am | 14 + .../echoserver/echoserver-ntru.vcproj | 199 + .../CyaSSL/examples/echoserver/echoserver.c | 279 + .../CyaSSL/examples/echoserver/echoserver.sln | 20 + .../examples/echoserver/echoserver.vcproj | 197 + .../CyaSSL/examples/echoserver/include.am | 14 + .../CyaSSL/examples/server/include.am | 14 + .../CyaSSL/examples/server/server-ntru.vcproj | 199 + FreeRTOS-Plus/CyaSSL/examples/server/server.c | 245 + .../CyaSSL/examples/server/server.sln | 20 + .../CyaSSL/examples/server/server.vcproj | 197 + FreeRTOS-Plus/CyaSSL/input | 87 + FreeRTOS-Plus/CyaSSL/lib/dummy | 2 + FreeRTOS-Plus/CyaSSL/m4/ax_pthread.m4 | 302 + FreeRTOS-Plus/CyaSSL/m4/hexversion.m4 | 6 + FreeRTOS-Plus/CyaSSL/m4/lib_socket_nsl.m4 | 25 + FreeRTOS-Plus/CyaSSL/m4/libtool.m4 | 7437 +++++ FreeRTOS-Plus/CyaSSL/m4/ltoptions.m4 | 369 + FreeRTOS-Plus/CyaSSL/m4/ltsugar.m4 | 123 + FreeRTOS-Plus/CyaSSL/m4/ltversion.m4 | 23 + FreeRTOS-Plus/CyaSSL/m4/lt~obsolete.m4 | 98 + FreeRTOS-Plus/CyaSSL/m4/visibility.m4 | 74 + FreeRTOS-Plus/CyaSSL/quit | 2 + FreeRTOS-Plus/CyaSSL/src/crl.c | 303 + FreeRTOS-Plus/CyaSSL/src/include.am | 76 + FreeRTOS-Plus/CyaSSL/src/internal.c | 6324 ++++ FreeRTOS-Plus/CyaSSL/src/io.c | 227 + FreeRTOS-Plus/CyaSSL/src/keys.c | 975 + FreeRTOS-Plus/CyaSSL/src/ocsp.c | 356 + FreeRTOS-Plus/CyaSSL/src/sniffer.c | 2196 ++ FreeRTOS-Plus/CyaSSL/src/ssl.c | 7719 +++++ FreeRTOS-Plus/CyaSSL/src/tls.c | 477 + .../CyaSSL/sslSniffer/sslSniffer.vcproj | 206 + .../sslSniffer/sslSnifferTest/include.am | 12 + .../sslSniffer/sslSnifferTest/snifftest.c | 238 + .../sslSnifferTest/sslSniffTest.vcproj | 199 + .../.log => FreeRTOS-Plus/CyaSSL/stamp-h.in | 0 FreeRTOS-Plus/CyaSSL/support/libcyassl.pc.in | 10 + FreeRTOS-Plus/CyaSSL/swig/PythonBuild.sh | 9 + FreeRTOS-Plus/CyaSSL/swig/README | 44 + FreeRTOS-Plus/CyaSSL/swig/cyassl.i | 63 + FreeRTOS-Plus/CyaSSL/swig/cyassl_adds.c | 232 + FreeRTOS-Plus/CyaSSL/swig/include.am | 12 + .../CyaSSL/swig/python_cyassl.vcproj | 225 + FreeRTOS-Plus/CyaSSL/swig/rsasign.py | 35 + FreeRTOS-Plus/CyaSSL/swig/runme.py | 40 + FreeRTOS-Plus/CyaSSL/tests/api.c | 783 + FreeRTOS-Plus/CyaSSL/tests/hash.c | 555 + FreeRTOS-Plus/CyaSSL/tests/include.am | 16 + FreeRTOS-Plus/CyaSSL/tests/suites.c | 1 + FreeRTOS-Plus/CyaSSL/tests/unit.c | 16 + FreeRTOS-Plus/CyaSSL/tests/unit.h | 6 + FreeRTOS-Plus/CyaSSL/testsuite/include.am | 22 + .../CyaSSL/testsuite/testsuite-ntru.vcproj | 219 + FreeRTOS-Plus/CyaSSL/testsuite/testsuite.c | 233 + FreeRTOS-Plus/CyaSSL/testsuite/testsuite.sln | 20 + .../CyaSSL/testsuite/testsuite.vcproj | 217 + .../CLI-commands.c | 396 + .../FreeRTOSConfig.h | 155 + .../FreeRTOS_Plus_CLI_with_Trace.sln | 0 .../FreeRTOS_Plus_CLI_with_Trace.suo | Bin 0 -> 133120 bytes .../Run-time-stats-utils.c | 132 + .../Trace_Recorder_Configuration/trcConfig.h | 415 + .../Trace_Recorder_Configuration/trcPort.h | 419 + .../UDPCommandServer.c | 259 + .../WIN32.vcxproj | 166 + .../WIN32.vcxproj.filters | 124 + .../WIN32.vcxproj.user | 0 .../FreeRTOS_Plus_CLI_with_Trace/main.c | 288 + .../FreeRTOS_Plus_CyaSSL/FreeRTOSConfig.h | 136 + .../FreeRTOS_Plus_CyaSSL.sln | 0 .../FreeRTOS_Plus_CyaSSL.suo | Bin 0 -> 147456 bytes .../SecureTCPClientTask.c | 175 + .../SecureTCPServerTask.c | 285 + .../FreeRTOS_Plus_CyaSSL/WIN32.vcxproj | 177 + .../WIN32.vcxproj.filters | 144 + .../FreeRTOS_Plus_CyaSSL/WIN32.vcxproj.user | 3 + .../FreeRTOS_Plus_CyaSSL/ca-cert.pem | 87 + .../FreeRTOS_Plus_CyaSSL/main.c | 177 + .../FreeRTOS_Plus_CyaSSL/server-cert.pem | 158 + .../FreeRTOS_Plus_CyaSSL/server-key.pem | 27 + .../FreeRTOS-Plus-CLI/FreeRTOS_CLI.c | 320 + .../FreeRTOS-Plus-CLI/FreeRTOS_CLI.h | 115 + FreeRTOS-Plus/FreeRTOS-Plus-CLI/History.txt | 7 + .../Readme Config.txt | 22 + .../Configuration - template/trcConfig.h | 431 + .../Configuration - template/trcPort.h | 397 + .../FreeRTOS-Plus-Trace/Include/trcBase.h | 497 + .../FreeRTOS-Plus-Trace/Include/trcHooks.h | 292 + .../FreeRTOS-Plus-Trace/Include/trcKernel.h | 267 + .../FreeRTOS-Plus-Trace/Include/trcTypes.h | 59 + .../FreeRTOS-Plus-Trace/Include/trcUser.h | 399 + FreeRTOS-Plus/FreeRTOS-Plus-Trace/readme.txt | 40 + FreeRTOS-Plus/FreeRTOS-Plus-Trace/trcBase.c | 977 + FreeRTOS-Plus/FreeRTOS-Plus-Trace/trcKernel.c | 374 + FreeRTOS-Plus/FreeRTOS-Plus-Trace/trcPort.c | 185 + FreeRTOS-Plus/FreeRTOS-Plus-Trace/trcUser.c | 1004 + .../Demo}/ARM7_AT91FR40008_GCC/AT91R40008.h | 0 .../Demo}/ARM7_AT91FR40008_GCC/ATEB40x.cfg | 0 .../ARM7_AT91FR40008_GCC/FreeRTOSConfig.h | 0 .../Demo}/ARM7_AT91FR40008_GCC/Makefile | 0 .../ARM7_AT91FR40008_GCC/ParTest/ParTest.c | 0 .../Demo}/ARM7_AT91FR40008_GCC/aic.h | 0 .../Demo}/ARM7_AT91FR40008_GCC/atmel-ram.ld | 0 .../Demo}/ARM7_AT91FR40008_GCC/atmel-rom.ld | 0 .../Demo}/ARM7_AT91FR40008_GCC/boot.s | 0 .../Demo}/ARM7_AT91FR40008_GCC/ebi.h | 0 .../Demo}/ARM7_AT91FR40008_GCC/main.c | 0 .../Demo}/ARM7_AT91FR40008_GCC/pio.h | 0 .../Demo}/ARM7_AT91FR40008_GCC/ram_arm.bat | 0 .../Demo}/ARM7_AT91FR40008_GCC/ram_thumb.bat | 0 .../Demo}/ARM7_AT91FR40008_GCC/rom_arm.bat | 0 .../Demo}/ARM7_AT91FR40008_GCC/rom_thumb.bat | 0 .../ARM7_AT91FR40008_GCC/serial/serial.c | 0 .../ARM7_AT91FR40008_GCC/serial/serialISR.c | 0 .../Demo}/ARM7_AT91FR40008_GCC/tc.h | 0 .../Demo}/ARM7_AT91FR40008_GCC/usart.h | 0 .../ARM7_AT91SAM7S64_IAR/FreeRTOSConfig.h | 0 .../ARM7_AT91SAM7S64_IAR/ParTest/ParTest.c | 0 .../Demo}/ARM7_AT91SAM7S64_IAR/SrcIAR/Board.h | 0 .../ARM7_AT91SAM7S64_IAR/SrcIAR/Cstartup.s | 0 .../SrcIAR/Cstartup_SAM7.c | 0 .../ARM7_AT91SAM7S64_IAR/USB/USBSample.c | 0 .../ARM7_AT91SAM7S64_IAR/USB/USBSample.h | 0 .../ARM7_AT91SAM7S64_IAR/USB/USB_ISR.s79 | 0 .../Demo}/ARM7_AT91SAM7S64_IAR/main.c | 0 .../ARM7_AT91SAM7S64_IAR/resource/SAM7.mac | 0 .../resource/SAM7_RAM.mac | 0 .../resource/at91SAM7S64_FLASH.icf | 0 .../resource/at91sam7s-ek-flash.mac | 0 .../resource/at91sam7s64-flash.board | 0 .../Demo}/ARM7_AT91SAM7S64_IAR/rtosdemo.ewd | 0 .../Demo}/ARM7_AT91SAM7S64_IAR/rtosdemo.ewp | 0 .../Demo}/ARM7_AT91SAM7S64_IAR/rtosdemo.eww | 0 .../ARM7_AT91SAM7S64_IAR/serial/serial.c | 0 .../ARM7_AT91SAM7S64_IAR/serial/serialISR.s79 | 0 .../ARM7_AT91SAM7S64_IAR/settings/Basic.dbgdt | 0 .../ARM7_AT91SAM7S64_IAR/settings/Basic.dni | 0 .../settings/BasicSAM7.wsdt | 0 .../settings/rtosdemo.dbgdt | 0 .../settings/rtosdemo.dni | 0 .../settings/rtosdemo.wsdt | 0 .../settings/rtosdemo_lnk.par | 0 .../.plugins/org.eclipse.cdt.core/.log | 0 .../org.eclipse.cdt.core/shareddefaults.xml | 0 .../.plugins/org.eclipse.cdt.make.core/.log | 0 .../org.eclipse.cdt.make.core/RTOSDemo.sc | 0 .../org.eclipse.cdt.make.core/specs.c | 0 .../org.eclipse.cdt.make.core/specs.cpp | 0 .../dialog_settings.xml | 0 .../org.eclipse.cdt.ui/cHelpSettings.xml | 0 .../org.eclipse.cdt.ui/dialog_settings.xml | 0 .../RTOSDemo/.indexes/64/history.index | Bin .../RTOSDemo/.indexes/69/history.index | Bin .../RTOSDemo/.indexes/b3/history.index | Bin .../.projects/RTOSDemo/.indexes/history.index | Bin .../RTOSDemo/.indexes/properties.index | Bin .../.projects/RTOSDemo/.markers | Bin .../.root/.indexes/history.version | 0 .../.root/.indexes/properties.index | Bin .../.root/.indexes/properties.version | 0 .../org.eclipse.core.resources/.root/47.tree | Bin .../.safetable/org.eclipse.core.resources | Bin .../org.eclipse.cdt.core.prj-RTOSDemo.prefs | 0 .../org.eclipse.cdt.debug.core.prefs | 0 .../.settings/org.eclipse.cdt.debug.ui.prefs | 0 .../org.eclipse.cdt.managedbuilder.core.prefs | 0 .../.settings/org.eclipse.cdt.ui.prefs | 0 .../org.eclipse.core.resources.prefs | 0 .../.settings/org.eclipse.debug.core.prefs | 0 .../.settings/org.eclipse.debug.ui.prefs | 0 .../.settings/org.eclipse.help.ui.prefs | 0 .../.settings/org.eclipse.search.prefs | 0 .../.settings/org.eclipse.team.ui.prefs | 0 .../.settings/org.eclipse.ui.editors.prefs | 0 .../.settings/org.eclipse.ui.ide.prefs | 0 .../.settings/org.eclipse.ui.prefs | 0 .../.settings/org.eclipse.ui.workbench.prefs | 0 .../.launches/OpenOCD Programmer.launch | 0 .../.launches/OpenOCD Server.launch | 0 .../.launches/RTOSDemo.elf.launch | 0 .../.launches/RTOSDemo.launch | 0 .../org.eclipse.debug.ui/dialog_settings.xml | 0 .../launchConfigurationHistory.xml | 0 .../org.eclipse.help.ui/dialog_settings.xml | 0 .../scope_sets/Default.pref | 0 .../scope_sets/relative_path.hist | 0 .../scope_sets/working_set.hist | 0 .../scope_sets/working_sets.hist | 0 .../dialog_settings.xml | 0 .../org.eclipse.search/dialog_settings.xml | 0 .../dialog_settings.xml | 0 .../org.eclipse.ui.ide/dialog_settings.xml | 0 .../org.eclipse.ui.intro/dialog_settings.xml | 0 .../dialog_settings.xml | 0 .../dialog_settings.xml | 0 .../org.eclipse.ui.workbench/workbench.xml | 0 .../org.eclipse.ui.workbench/workingsets.xml | 0 .../org.eclipse.ui/dialog_settings.xml | 0 .../org.eclipse.update.ui/dialog_settings.xml | 0 .../.metadata/version.ini | 0 .../RTOSDemo/.cproject | 0 .../RTOSDemo/.project | 0 .../org.eclipse.ltk.core.refactoring.prefs | 0 .../RTOSDemo/FreeRTOSConfig.h | 0 .../RTOSDemo/Makefile | 0 .../RTOSDemo/ParTest/ParTest.c | 0 .../RTOSDemo/SrcAtmel/Board.h | 0 .../RTOSDemo/SrcAtmel/Cstartup.s79 | 0 .../RTOSDemo/SrcAtmel/Cstartup_SAM7.c | 0 .../RTOSDemo/SrcAtmel/Emac.h | 0 .../RTOSDemo/SrcAtmel/mii.h | 0 .../RTOSDemo/USB/USBSample.c | 0 .../RTOSDemo/USB/USBSample.h | 0 .../RTOSDemo/USB/USB_ISR.c | 0 .../RTOSDemo/atmel-rom.ld | 0 .../ARM7_AT91SAM7X256_Eclipse/RTOSDemo/boot.s | 0 .../ARM7_AT91SAM7X256_Eclipse/RTOSDemo/main.c | 0 .../RTOSDemo/syscalls.c | 0 .../RTOSDemo/webserver/EMAC_ISR.c | 0 .../RTOSDemo/webserver/Makefile.webserver | 0 .../RTOSDemo/webserver/SAM7_EMAC.c | 0 .../RTOSDemo/webserver/SAM7_EMAC.h | 0 .../RTOSDemo/webserver/clock-arch.h | 0 .../RTOSDemo/webserver/emac_atmel.h | 0 .../RTOSDemo/webserver/http-strings | 0 .../RTOSDemo/webserver/http-strings.c | 0 .../RTOSDemo/webserver/http-strings.h | 0 .../RTOSDemo/webserver/httpd-cgi.c | 0 .../RTOSDemo/webserver/httpd-cgi.h | 0 .../RTOSDemo/webserver/httpd-fs.c | 0 .../RTOSDemo/webserver/httpd-fs.h | 0 .../RTOSDemo/webserver/httpd-fs/404.html | 0 .../RTOSDemo/webserver/httpd-fs/index.html | 0 .../RTOSDemo/webserver/httpd-fs/index.shtml | 0 .../RTOSDemo/webserver/httpd-fs/io.shtml | 0 .../RTOSDemo/webserver/httpd-fs/stats.shtml | 0 .../RTOSDemo/webserver/httpd-fs/tcp.shtml | 0 .../RTOSDemo/webserver/httpd-fsdata.c | 0 .../RTOSDemo/webserver/httpd-fsdata.h | 0 .../RTOSDemo/webserver/httpd.c | 0 .../RTOSDemo/webserver/httpd.h | 0 .../RTOSDemo/webserver/makefsdata | 0 .../RTOSDemo/webserver/makestrings | 0 .../RTOSDemo/webserver/uIP_Task.c | 0 .../RTOSDemo/webserver/uIP_Task.h | 0 .../RTOSDemo/webserver/uip-conf.h | 0 .../RTOSDemo/webserver/webserver.h | 0 .../ARM7_AT91SAM7X256_Eclipse/SAM7_flash.cfg | 0 .../ARM7_AT91SAM7X256_Eclipse/SAM7_pp.cfg | 0 .../at91sam7_ecr.cfg | 0 .../at91sam7_ecr.script | 0 .../ARM7_AT91SAM7X256_Eclipse/program.script | 0 .../Demo}/ARM7_LPC2106_GCC/FreeRTOSConfig.h | 0 .../Demo}/ARM7_LPC2106_GCC/Makefile | 0 .../Demo}/ARM7_LPC2106_GCC/ParTest/ParTest.c | 0 .../Demo}/ARM7_LPC2106_GCC/boot.s | 0 .../Demo}/ARM7_LPC2106_GCC/lpc2106-ram.ld | 0 .../Demo}/ARM7_LPC2106_GCC/lpc2106-rom.ld | 0 .../Demo}/ARM7_LPC2106_GCC/lpc210x.h | 0 .../Demo}/ARM7_LPC2106_GCC/lpc221x.h | 0 .../Demo}/ARM7_LPC2106_GCC/main.c | 0 .../Demo}/ARM7_LPC2106_GCC/ram_arm.bat | 0 .../Demo}/ARM7_LPC2106_GCC/ram_thumb.bat | 0 .../Demo}/ARM7_LPC2106_GCC/readme.txt | 0 .../Demo}/ARM7_LPC2106_GCC/rom_arm.bat | 0 .../Demo}/ARM7_LPC2106_GCC/rom_thumb.bat | 0 .../Demo}/ARM7_LPC2106_GCC/serial/serial.c | 0 .../Demo}/ARM7_LPC2106_GCC/serial/serialISR.c | 0 .../Demo}/ARM7_LPC2129_IAR/FreeRTOSConfig.h | 0 .../Demo}/ARM7_LPC2129_IAR/ParTest/ParTest.c | 0 .../SrcIAR/lpc2xxx_cstartup.s | 0 .../Demo}/ARM7_LPC2129_IAR/main.c | 0 .../ARM7_LPC2129_IAR/resource/lpc212x.icf | 0 .../Demo}/ARM7_LPC2129_IAR/rtosdemo.ewd | 0 .../Demo}/ARM7_LPC2129_IAR/rtosdemo.ewp | 0 .../Demo}/ARM7_LPC2129_IAR/rtosdemo.eww | 0 .../Demo}/ARM7_LPC2129_IAR/serial/serial.c | 0 .../ARM7_LPC2129_IAR/serial/serialISR.s79 | 0 .../ARM7_LPC2129_IAR/settings/Basic.dbgdt | 0 .../Demo}/ARM7_LPC2129_IAR/settings/Basic.dni | 0 .../ARM7_LPC2129_IAR/settings/rtosdemo.dbgdt | 0 .../ARM7_LPC2129_IAR/settings/rtosdemo.dni | 0 .../ARM7_LPC2129_IAR/settings/rtosdemo.wsdt | 0 .../settings/rtosdemo_lnk.par | 0 .../ARM7_LPC2129_Keil_RVDS/FreeRTOSConfig.h | 0 .../ARM7_LPC2129_Keil_RVDS/ParTest/ParTest.c | 0 .../Demo}/ARM7_LPC2129_Keil_RVDS/RTOSDemo.Opt | 0 .../Demo}/ARM7_LPC2129_Keil_RVDS/RTOSDemo.Uv2 | 0 .../Demo}/ARM7_LPC2129_Keil_RVDS/RTOSDemo.sct | 0 .../Demo}/ARM7_LPC2129_Keil_RVDS/RTOSDemo.tra | 0 .../ARM7_LPC2129_Keil_RVDS/RTOSDemoSignal.UVL | 0 .../RTOSDemo_Target 1.dep | 0 .../Demo}/ARM7_LPC2129_Keil_RVDS/Startup.s | 0 .../Demo}/ARM7_LPC2129_Keil_RVDS/main.c | 0 .../ARM7_LPC2129_Keil_RVDS/serial/serial.c | 0 .../ARM7_LPC2129_Keil_RVDS/serial/serialISR.s | 0 .../ARM7_LPC2138_Rowley/FreeRTOSConfig.h | 0 .../Demo}/ARM7_LPC2138_Rowley/LPC21xx.h | 0 .../Demo}/ARM7_LPC2138_Rowley/RTOSDemo.hzp | 0 .../Demo}/ARM7_LPC2138_Rowley/RTOSDemo.hzs | 0 .../Demo}/ARM7_LPC2138_Rowley/main.c | 0 .../Demo}/ARM7_LPC2138_Rowley/mainISR.c | 0 .../Demo}/ARM7_LPC2138_Rowley/threads.js | 0 .../org.eclipse.cdt.core/shareddefaults.xml | 0 .../org.eclipse.cdt.make.core/RTOSDemo.sc | 0 .../org.eclipse.cdt.make.core/specs.c | 0 .../org.eclipse.cdt.make.core/specs.cpp | 0 .../dialog_settings.xml | 0 .../org.eclipse.cdt.ui/cHelpSettings.xml | 0 .../org.eclipse.cdt.ui/dialog_settings.xml | 0 .../.indexes/33/5b/e7/4/history.index | Bin .../RTOSDemo/.indexes/69/history.index | Bin .../RTOSDemo/.indexes/ad/history.index | Bin .../.projects/RTOSDemo/.indexes/history.index | Bin .../RTOSDemo/.indexes/properties.index | Bin .../.projects/RTOSDemo/.markers | Bin .../.root/.indexes/history.version | 0 .../.root/.indexes/properties.index | Bin .../.root/.indexes/properties.version | 0 .../org.eclipse.core.resources/.root/.markers | Bin .../org.eclipse.core.resources/.root/31.tree | Bin .../.safetable/org.eclipse.core.resources | Bin .../org.eclipse.cdt.core.prj-RTOSDemo.prefs | 0 .../org.eclipse.cdt.debug.core.prefs | 0 .../.settings/org.eclipse.cdt.debug.ui.prefs | 0 .../org.eclipse.cdt.managedbuilder.core.prefs | 0 .../.settings/org.eclipse.cdt.ui.prefs | 0 .../org.eclipse.core.resources.prefs | 0 .../.settings/org.eclipse.debug.core.prefs | 0 .../.settings/org.eclipse.debug.ui.prefs | 0 .../.settings/org.eclipse.help.ui.prefs | 0 .../.settings/org.eclipse.search.prefs | 0 .../.settings/org.eclipse.team.ui.prefs | 0 .../.settings/org.eclipse.ui.editors.prefs | 0 .../.settings/org.eclipse.ui.ide.prefs | 0 .../.settings/org.eclipse.ui.prefs | 0 .../.settings/org.eclipse.ui.workbench.prefs | 0 .../.launches/OpenOCD Programmer.launch | 0 .../.launches/OpenOCD Server.launch | 0 .../.launches/RTOSDemo.launch | 0 .../org.eclipse.debug.ui/dialog_settings.xml | 0 .../launchConfigurationHistory.xml | 0 .../org.eclipse.help.ui/dialog_settings.xml | 0 .../scope_sets/Default.pref | 0 .../scope_sets/relative_path.hist | 0 .../scope_sets/working_set.hist | 0 .../scope_sets/working_sets.hist | 0 .../dialog_settings.xml | 0 .../org.eclipse.search/dialog_settings.xml | 0 .../dialog_settings.xml | 0 .../org.eclipse.ui.ide/dialog_settings.xml | 0 .../org.eclipse.ui.intro/dialog_settings.xml | 0 .../dialog_settings.xml | 0 .../dialog_settings.xml | 0 .../org.eclipse.ui.workbench/workbench.xml | 0 .../org.eclipse.ui.workbench/workingsets.xml | 0 .../org.eclipse.ui/dialog_settings.xml | 0 .../org.eclipse.update.ui/dialog_settings.xml | 0 .../.metadata/version.ini | 0 .../ARM7_LPC2368_Eclipse/RTOSDemo/.cproject | 0 .../ARM7_LPC2368_Eclipse/RTOSDemo/.project | 0 .../org.eclipse.ltk.core.refactoring.prefs | 0 .../RTOSDemo/FreeRTOSConfig.h | 0 .../RTOSDemo/LCD/portlcd.c | 0 .../RTOSDemo/LCD/portlcd.h | 0 .../ARM7_LPC2368_Eclipse/RTOSDemo/Makefile | 0 .../RTOSDemo/ParTest/ParTest.c | 0 .../ARM7_LPC2368_Eclipse/RTOSDemo/boot.s | 0 .../ARM7_LPC2368_Eclipse/RTOSDemo/lpc2368.ld | 0 .../ARM7_LPC2368_Eclipse/RTOSDemo/lpc23xx.h | 0 .../ARM7_LPC2368_Eclipse/RTOSDemo/main.c | 0 .../ARM7_LPC2368_Eclipse/RTOSDemo/syscalls.c | 0 .../RTOSDemo/webserver/EMAC_ISR.c | 0 .../RTOSDemo/webserver/clock-arch.h | 0 .../RTOSDemo/webserver/emac.c | 0 .../RTOSDemo/webserver/emac.h | 0 .../RTOSDemo/webserver/http-strings | 0 .../RTOSDemo/webserver/http-strings.c | 0 .../RTOSDemo/webserver/http-strings.h | 0 .../RTOSDemo/webserver/httpd-cgi.c | 0 .../RTOSDemo/webserver/httpd-cgi.h | 0 .../RTOSDemo/webserver/httpd-fs.c | 0 .../RTOSDemo/webserver/httpd-fs.h | 0 .../RTOSDemo/webserver/httpd-fs/404.html | 0 .../RTOSDemo/webserver/httpd-fs/index.html | 0 .../RTOSDemo/webserver/httpd-fs/index.shtml | 0 .../RTOSDemo/webserver/httpd-fs/io.shtml | 0 .../RTOSDemo/webserver/httpd-fs/stats.shtml | 0 .../RTOSDemo/webserver/httpd-fs/tcp.shtml | 0 .../RTOSDemo/webserver/httpd-fsdata.c | 0 .../RTOSDemo/webserver/httpd-fsdata.h | 0 .../RTOSDemo/webserver/httpd.c | 0 .../RTOSDemo/webserver/httpd.h | 0 .../RTOSDemo/webserver/makefsdata | 0 .../RTOSDemo/webserver/makestrings | 0 .../RTOSDemo/webserver/uIP_Task.c | 0 .../RTOSDemo/webserver/uip-conf.h | 0 .../RTOSDemo/webserver/webserver.h | 0 .../ARM7_LPC2368_Eclipse/lpc2368_flash.cfg | 0 .../Demo}/ARM7_LPC2368_Eclipse/lpc2xxx_pp.cfg | 0 .../Demo}/ARM7_LPC2368_Eclipse/program.script | 0 .../ARM7_LPC2368_Rowley/FreeRTOSConfig.h | 0 .../Demo}/ARM7_LPC2368_Rowley/LCD/portlcd.c | 0 .../Demo}/ARM7_LPC2368_Rowley/LCD/portlcd.h | 0 .../ARM7_LPC2368_Rowley/ParTest/ParTest.c | 0 .../Demo}/ARM7_LPC2368_Rowley/RTOSDemo.hzp | 0 .../Demo}/ARM7_LPC2368_Rowley/RTOSDemo.hzs | 0 .../Demo}/ARM7_LPC2368_Rowley/main.c | 0 .../ARM7_LPC2368_Rowley/webserver/EMAC_ISR.c | 0 .../webserver/clock-arch.h | 0 .../ARM7_LPC2368_Rowley/webserver/emac.c | 0 .../ARM7_LPC2368_Rowley/webserver/emac.h | 0 .../webserver/http-strings | 0 .../webserver/http-strings.c | 0 .../webserver/http-strings.h | 0 .../ARM7_LPC2368_Rowley/webserver/httpd-cgi.c | 0 .../ARM7_LPC2368_Rowley/webserver/httpd-cgi.h | 0 .../ARM7_LPC2368_Rowley/webserver/httpd-fs.c | 0 .../ARM7_LPC2368_Rowley/webserver/httpd-fs.h | 0 .../webserver/httpd-fs/404.html | 0 .../webserver/httpd-fs/image.jpg | Bin .../webserver/httpd-fs/index.html | 0 .../webserver/httpd-fs/index.shtml | 0 .../webserver/httpd-fs/io.shtml | 0 .../webserver/httpd-fs/stats.shtml | 0 .../webserver/httpd-fs/tcp.shtml | 0 .../webserver/httpd-fsdata.c | 0 .../webserver/httpd-fsdata.h | 0 .../ARM7_LPC2368_Rowley/webserver/httpd.c | 0 .../ARM7_LPC2368_Rowley/webserver/httpd.h | 0 .../ARM7_LPC2368_Rowley/webserver/makefsdata | 0 .../ARM7_LPC2368_Rowley/webserver/makestrings | 0 .../ARM7_LPC2368_Rowley/webserver/uIP_Task.c | 0 .../ARM7_LPC2368_Rowley/webserver/uip-conf.h | 0 .../ARM7_LPC2368_Rowley/webserver/webserver.h | 0 .../Demo}/ARM7_STR71x_IAR/71x_init.s | 0 .../Demo}/ARM7_STR71x_IAR/71x_vect.s | 0 .../Demo}/ARM7_STR71x_IAR/FreeRTOSConfig.h | 0 .../Demo}/ARM7_STR71x_IAR/Library/71x_it.c | 0 .../Demo}/ARM7_STR71x_IAR/Library/71x_lib.c | 0 .../Demo}/ARM7_STR71x_IAR/Library/gpio.c | 0 .../Library/include/71x_conf.h | 0 .../ARM7_STR71x_IAR/Library/include/71x_it.h | 0 .../ARM7_STR71x_IAR/Library/include/71x_lib.h | 0 .../ARM7_STR71x_IAR/Library/include/71x_map.h | 0 .../Library/include/71x_type.h | 0 .../ARM7_STR71x_IAR/Library/include/eic.h | 0 .../ARM7_STR71x_IAR/Library/include/gpio.h | 0 .../ARM7_STR71x_IAR/Library/include/pcu.h | 0 .../ARM7_STR71x_IAR/Library/include/rccu.h | 0 .../ARM7_STR71x_IAR/Library/include/tim.h | 0 .../ARM7_STR71x_IAR/Library/include/uart.h | 0 .../ARM7_STR71x_IAR/Library/include/wdg.h | 0 .../Demo}/ARM7_STR71x_IAR/Library/rccu.c | 0 .../Demo}/ARM7_STR71x_IAR/Library/uart.c | 0 .../Demo}/ARM7_STR71x_IAR/Library/wdg.c | 0 .../Demo}/ARM7_STR71x_IAR/ParTest/ParTest.c | 0 .../Demo}/ARM7_STR71x_IAR/RTOSDemo.ewd | 0 .../Demo}/ARM7_STR71x_IAR/RTOSDemo.ewp | 0 .../Demo}/ARM7_STR71x_IAR/RTOSDemo.eww | 0 .../Demo}/ARM7_STR71x_IAR/STR71x_FLASH.icf | 0 .../Demo}/ARM7_STR71x_IAR/main.c | 0 .../Demo}/ARM7_STR71x_IAR/serial/serial.c | 0 .../ARM7_STR71x_IAR/serial/serialISR.s79 | 0 .../ARM7_STR71x_IAR/settings/RTOSDemo.dbgdt | 0 .../ARM7_STR71x_IAR/settings/RTOSDemo.dni | 0 .../ARM7_STR71x_IAR/settings/RTOSDemo.wsdt | 0 .../Demo}/ARM7_STR75x_GCC/FreeRTOSConfig.h | 0 .../Demo}/ARM7_STR75x_GCC/ParTest/ParTest.c | 0 .../ARM7_STR75x_GCC/STLibrary/inc/75x_adc.h | 0 .../ARM7_STR75x_GCC/STLibrary/inc/75x_can.h | 0 .../ARM7_STR75x_GCC/STLibrary/inc/75x_cfg.h | 0 .../ARM7_STR75x_GCC/STLibrary/inc/75x_conf.h | 0 .../ARM7_STR75x_GCC/STLibrary/inc/75x_dma.h | 0 .../ARM7_STR75x_GCC/STLibrary/inc/75x_eic.h | 0 .../ARM7_STR75x_GCC/STLibrary/inc/75x_extit.h | 0 .../ARM7_STR75x_GCC/STLibrary/inc/75x_gpio.h | 0 .../ARM7_STR75x_GCC/STLibrary/inc/75x_i2c.h | 0 .../ARM7_STR75x_GCC/STLibrary/inc/75x_lib.h | 0 .../ARM7_STR75x_GCC/STLibrary/inc/75x_map.h | 0 .../ARM7_STR75x_GCC/STLibrary/inc/75x_mrcc.h | 0 .../ARM7_STR75x_GCC/STLibrary/inc/75x_pwm.h | 0 .../ARM7_STR75x_GCC/STLibrary/inc/75x_rtc.h | 0 .../ARM7_STR75x_GCC/STLibrary/inc/75x_smi.h | 0 .../ARM7_STR75x_GCC/STLibrary/inc/75x_ssp.h | 0 .../ARM7_STR75x_GCC/STLibrary/inc/75x_tb.h | 0 .../ARM7_STR75x_GCC/STLibrary/inc/75x_tim.h | 0 .../ARM7_STR75x_GCC/STLibrary/inc/75x_type.h | 0 .../ARM7_STR75x_GCC/STLibrary/inc/75x_uart.h | 0 .../ARM7_STR75x_GCC/STLibrary/inc/75x_wdg.h | 0 .../Demo}/ARM7_STR75x_GCC/STLibrary/inc/lcd.h | 0 .../ARM7_STR75x_GCC/STLibrary/src/75x_adc.c | 0 .../ARM7_STR75x_GCC/STLibrary/src/75x_can.c | 0 .../ARM7_STR75x_GCC/STLibrary/src/75x_cfg.c | 0 .../ARM7_STR75x_GCC/STLibrary/src/75x_dma.c | 0 .../ARM7_STR75x_GCC/STLibrary/src/75x_eic.c | 0 .../ARM7_STR75x_GCC/STLibrary/src/75x_extit.c | 0 .../ARM7_STR75x_GCC/STLibrary/src/75x_gpio.c | 0 .../ARM7_STR75x_GCC/STLibrary/src/75x_i2c.c | 0 .../ARM7_STR75x_GCC/STLibrary/src/75x_it.c | 0 .../ARM7_STR75x_GCC/STLibrary/src/75x_lib.c | 0 .../ARM7_STR75x_GCC/STLibrary/src/75x_mrcc.c | 0 .../ARM7_STR75x_GCC/STLibrary/src/75x_pwm.c | 0 .../ARM7_STR75x_GCC/STLibrary/src/75x_rtc.c | 0 .../ARM7_STR75x_GCC/STLibrary/src/75x_smi.c | 0 .../ARM7_STR75x_GCC/STLibrary/src/75x_ssp.c | 0 .../ARM7_STR75x_GCC/STLibrary/src/75x_tb.c | 0 .../ARM7_STR75x_GCC/STLibrary/src/75x_tim.c | 0 .../ARM7_STR75x_GCC/STLibrary/src/75x_uart.c | 0 .../ARM7_STR75x_GCC/STLibrary/src/75x_wdg.c | 0 .../Demo}/ARM7_STR75x_GCC/STLibrary/src/lcd.c | 0 .../SystemFiles/STR75xFx0_DEF_FreeRTOS.ld | 0 .../SystemFiles/STR75xFx0_FLASH_FreeRTOS.ld | 0 .../SystemFiles/STR75x_COMMON_FreeRTOS.ld | 0 .../SystemFiles/crt0_STR75x_FreeRTOS.s | 0 .../SystemFiles/sections_FLASH_FreeRTOS.ld | 0 .../Demo}/ARM7_STR75x_GCC/main.c | 0 .../Demo}/ARM7_STR75x_GCC/rtosdemo.prj | 0 .../Demo}/ARM7_STR75x_GCC/serial/serial.c | 0 .../Demo}/ARM7_STR75x_GCC/serial/serialISR.c | 0 .../Demo}/ARM7_STR75x_IAR/75x_init.s | 0 .../Demo}/ARM7_STR75x_IAR/75x_vect.s | 0 .../Demo}/ARM7_STR75x_IAR/FreeRTOSConfig.h | 0 .../Demo}/ARM7_STR75x_IAR/ParTest/ParTest.c | 0 .../Demo}/ARM7_STR75x_IAR/RTOSDemo.ewd | 0 .../Demo}/ARM7_STR75x_IAR/RTOSDemo.ewp | 0 .../Demo}/ARM7_STR75x_IAR/RTOSDemo.eww | 0 .../ARM7_STR75x_IAR/STLibrary/inc/75x_adc.h | 0 .../ARM7_STR75x_IAR/STLibrary/inc/75x_can.h | 0 .../ARM7_STR75x_IAR/STLibrary/inc/75x_cfg.h | 0 .../ARM7_STR75x_IAR/STLibrary/inc/75x_conf.h | 0 .../ARM7_STR75x_IAR/STLibrary/inc/75x_dma.h | 0 .../ARM7_STR75x_IAR/STLibrary/inc/75x_eic.h | 0 .../ARM7_STR75x_IAR/STLibrary/inc/75x_extit.h | 0 .../ARM7_STR75x_IAR/STLibrary/inc/75x_gpio.h | 0 .../ARM7_STR75x_IAR/STLibrary/inc/75x_i2c.h | 0 .../ARM7_STR75x_IAR/STLibrary/inc/75x_lib.h | 0 .../ARM7_STR75x_IAR/STLibrary/inc/75x_map.h | 0 .../ARM7_STR75x_IAR/STLibrary/inc/75x_mrcc.h | 0 .../ARM7_STR75x_IAR/STLibrary/inc/75x_pwm.h | 0 .../ARM7_STR75x_IAR/STLibrary/inc/75x_rtc.h | 0 .../ARM7_STR75x_IAR/STLibrary/inc/75x_smi.h | 0 .../ARM7_STR75x_IAR/STLibrary/inc/75x_ssp.h | 0 .../ARM7_STR75x_IAR/STLibrary/inc/75x_tb.h | 0 .../ARM7_STR75x_IAR/STLibrary/inc/75x_tim.h | 0 .../ARM7_STR75x_IAR/STLibrary/inc/75x_type.h | 0 .../ARM7_STR75x_IAR/STLibrary/inc/75x_uart.h | 0 .../ARM7_STR75x_IAR/STLibrary/inc/75x_wdg.h | 0 .../Demo}/ARM7_STR75x_IAR/STLibrary/inc/lcd.h | 0 .../ARM7_STR75x_IAR/STLibrary/src/75x_adc.c | 0 .../ARM7_STR75x_IAR/STLibrary/src/75x_can.c | 0 .../ARM7_STR75x_IAR/STLibrary/src/75x_cfg.c | 0 .../ARM7_STR75x_IAR/STLibrary/src/75x_dma.c | 0 .../ARM7_STR75x_IAR/STLibrary/src/75x_eic.c | 0 .../ARM7_STR75x_IAR/STLibrary/src/75x_extit.c | 0 .../ARM7_STR75x_IAR/STLibrary/src/75x_gpio.c | 0 .../ARM7_STR75x_IAR/STLibrary/src/75x_i2c.c | 0 .../ARM7_STR75x_IAR/STLibrary/src/75x_it.c | 0 .../ARM7_STR75x_IAR/STLibrary/src/75x_lib.c | 0 .../ARM7_STR75x_IAR/STLibrary/src/75x_mrcc.c | 0 .../ARM7_STR75x_IAR/STLibrary/src/75x_pwm.c | 0 .../ARM7_STR75x_IAR/STLibrary/src/75x_rtc.c | 0 .../ARM7_STR75x_IAR/STLibrary/src/75x_smi.c | 0 .../ARM7_STR75x_IAR/STLibrary/src/75x_ssp.c | 0 .../ARM7_STR75x_IAR/STLibrary/src/75x_tb.c | 0 .../ARM7_STR75x_IAR/STLibrary/src/75x_tim.c | 0 .../ARM7_STR75x_IAR/STLibrary/src/75x_uart.c | 0 .../ARM7_STR75x_IAR/STLibrary/src/75x_wdg.c | 0 .../Demo}/ARM7_STR75x_IAR/STLibrary/src/lcd.c | 0 .../Demo}/ARM7_STR75x_IAR/STR75x_FLASH.icf | 0 .../Demo}/ARM7_STR75x_IAR/main.c | 0 .../Demo}/ARM7_STR75x_IAR/serial/serial.c | 0 .../ARM7_STR75x_IAR/settings/RTOSDemo.dbgdt | 0 .../ARM7_STR75x_IAR/settings/RTOSDemo.dni | 0 .../ARM7_STR75x_IAR/settings/RTOSDemo.wsdt | 0 .../ARM7_STR75x_IAR/settings/RTOSDemo_lnk.par | 0 .../ARM9_AT91SAM9XE_IAR/FreeRTOSConfig.h | 0 .../ARM9_AT91SAM9XE_IAR/ParTest/ParTest.c | 0 .../Demo}/ARM9_AT91SAM9XE_IAR/RTOSDemo.eww | 0 .../ewp/at91sam9xe-ek-flash.mac | 0 .../ewp/at91sam9xe-ek-sdram.mac | 0 .../ewp/at91sam9xe-ek-sram.mac | 0 .../ARM9_AT91SAM9XE_IAR/ewp/at91sam9xe-ek.ewd | 0 .../ARM9_AT91SAM9XE_IAR/ewp/at91sam9xe-ek.ewp | 0 .../Demo}/ARM9_AT91SAM9XE_IAR/ewp/flash.icf | 0 .../Demo}/ARM9_AT91SAM9XE_IAR/ewp/sdram.icf | 0 .../ewp/settings/at91sam9xe-ek.cspy.bat | 0 .../ewp/settings/at91sam9xe-ek.dbgdt | 0 .../ewp/settings/at91sam9xe-ek.dni | 0 .../Demo}/ARM9_AT91SAM9XE_IAR/main.c | 0 .../Demo}/ARM9_AT91SAM9XE_IAR/serial/serial.c | 0 .../settings/rtosdemo.wsdt | 0 .../Demo}/ARM9_STR91X_IAR/91x_init.s | 0 .../Demo}/ARM9_STR91X_IAR/91x_init_IAR.s | 0 .../Demo}/ARM9_STR91X_IAR/91x_vect.s | 0 .../Demo}/ARM9_STR91X_IAR/91x_vect_IAR.s | 0 .../Demo}/ARM9_STR91X_IAR/FreeRTOSConfig.h | 0 .../Library/include/91x_ahbapb.h | 0 .../Library/include/91x_conf.h | 0 .../ARM9_STR91X_IAR/Library/include/91x_dma.h | 0 .../Library/include/91x_enet.h | 0 .../ARM9_STR91X_IAR/Library/include/91x_fmi.h | 0 .../Library/include/91x_gpio.h | 0 .../ARM9_STR91X_IAR/Library/include/91x_it.h | 0 .../ARM9_STR91X_IAR/Library/include/91x_lib.h | 0 .../ARM9_STR91X_IAR/Library/include/91x_map.h | 0 .../ARM9_STR91X_IAR/Library/include/91x_scu.h | 0 .../ARM9_STR91X_IAR/Library/include/91x_tim.h | 0 .../Library/include/91x_type.h | 0 .../Library/include/91x_uart.h | 0 .../ARM9_STR91X_IAR/Library/include/91x_vic.h | 0 .../ARM9_STR91X_IAR/Library/include/91x_wdg.h | 0 .../ARM9_STR91X_IAR/Library/source/91x_can.c | 0 .../ARM9_STR91X_IAR/Library/source/91x_enet.c | 0 .../ARM9_STR91X_IAR/Library/source/91x_fmi.c | 0 .../ARM9_STR91X_IAR/Library/source/91x_gpio.c | 0 .../ARM9_STR91X_IAR/Library/source/91x_it.c | 0 .../ARM9_STR91X_IAR/Library/source/91x_lib.c | 0 .../ARM9_STR91X_IAR/Library/source/91x_scu.c | 0 .../ARM9_STR91X_IAR/Library/source/91x_tim.c | 0 .../ARM9_STR91X_IAR/Library/source/91x_uart.c | 0 .../ARM9_STR91X_IAR/Library/source/91x_vic.c | 0 .../ARM9_STR91X_IAR/Library/source/91x_wdg.c | 0 .../Demo}/ARM9_STR91X_IAR/ParTest/ParTest.c | 0 .../Demo}/ARM9_STR91X_IAR/RTOSDemo.ewd | 0 .../Demo}/ARM9_STR91X_IAR/RTOSDemo.ewp | 0 .../Demo}/ARM9_STR91X_IAR/RTOSDemo.eww | 0 .../Demo}/ARM9_STR91X_IAR/STCode/lcd.c | 0 .../Demo}/ARM9_STR91X_IAR/STCode/lcd.h | 0 .../Demo}/ARM9_STR91X_IAR/STR91x_FLASH.icf | 0 .../Demo}/ARM9_STR91X_IAR/lwip/api/sys_arch.c | 0 .../ARM9_STR91X_IAR/lwip/include/arch/cc.h | 0 .../ARM9_STR91X_IAR/lwip/include/arch/cpu.h | 0 .../lwip/include/arch/lwip_errno.h | 0 .../ARM9_STR91X_IAR/lwip/include/arch/perf.h | 0 .../lwip/include/arch/sys_arch.h | 0 .../lwip/include/lwIPWebServer/BasicWEB.h | 0 .../lwip/include/lwIPWebServer/fs.h | 0 .../lwip/include/lwIPWebServer/fsdata.h | 0 .../lwip/include/lwIPWebServer/httpd.h | 0 .../lwip/include/lwip/lwipopts.h | 0 .../ARM9_STR91X_IAR/lwip/include/lwip/opt.h | 0 .../lwip/lwipWebServer/BasicWEB.c | 0 .../ARM9_STR91X_IAR/lwip/lwipWebServer/fs.c | 0 .../lwip/lwipWebServer/fs/WS1/404.html | 0 .../lwip/lwipWebServer/fs/WS1/index.html | 0 .../lwip/lwipWebServer/fs/WS1/logo.gif | Bin .../lwip/lwipWebServer/fsdata.c | 0 .../lwip/lwipWebServer/httpd.c | 0 .../ARM9_STR91X_IAR/lwip/netif/ethernetif.c | 0 .../Demo}/ARM9_STR91X_IAR/main.c | 0 .../Demo}/ARM9_STR91X_IAR/serial/serial.c | 0 .../ARM9_STR91X_IAR/settings/FreeRTOS.wsdt | 0 .../settings/RTOSDemo.cspy.bat | 0 .../ARM9_STR91X_IAR/settings/RTOSDemo.dbgdt | 0 .../ARM9_STR91X_IAR/settings/RTOSDemo.dni | 0 .../ARM9_STR91X_IAR/settings/RTOSDemo.wsdt | 0 .../webserver/Makefile.webserver | 0 .../ARM9_STR91X_IAR/webserver/clock-arch.h | 0 .../ARM9_STR91X_IAR/webserver/http-strings | 0 .../ARM9_STR91X_IAR/webserver/http-strings.c | 0 .../ARM9_STR91X_IAR/webserver/http-strings.h | 0 .../ARM9_STR91X_IAR/webserver/httpd-cgi.c | 0 .../ARM9_STR91X_IAR/webserver/httpd-cgi.h | 0 .../ARM9_STR91X_IAR/webserver/httpd-fs.c | 0 .../ARM9_STR91X_IAR/webserver/httpd-fs.h | 0 .../webserver/httpd-fs/404.html | 0 .../webserver/httpd-fs/index.html | 0 .../webserver/httpd-fs/index.shtml | 0 .../webserver/httpd-fs/stats.shtml | 0 .../webserver/httpd-fs/tcp.shtml | 0 .../ARM9_STR91X_IAR/webserver/httpd-fsdata.c | 0 .../ARM9_STR91X_IAR/webserver/httpd-fsdata.h | 0 .../Demo}/ARM9_STR91X_IAR/webserver/httpd.c | 0 .../Demo}/ARM9_STR91X_IAR/webserver/httpd.h | 0 .../ARM9_STR91X_IAR/webserver/makefsdata | 0 .../ARM9_STR91X_IAR/webserver/makestrings | 0 .../ARM9_STR91X_IAR/webserver/uIP_Task.c | 0 .../ARM9_STR91X_IAR/webserver/uip-conf.h | 0 .../ARM9_STR91X_IAR/webserver/webserver.h | 0 .../Demo}/AVR32_UC3/AT32UC3A/GCC/Makefile | 0 .../Demo}/AVR32_UC3/AT32UC3A/GCC/config.mk | 0 .../Demo}/AVR32_UC3/AT32UC3A/GCC/gdb.ini | 0 .../AVR32_UC3/AT32UC3A/GCC/gdb_cmdfile.txt | 0 .../AT32UC3A/IAR/Debug/Obj/rtosdemo.pbd | 0 .../Demo}/AVR32_UC3/AT32UC3A/IAR/rtosdemo.ewd | 0 .../Demo}/AVR32_UC3/AT32UC3A/IAR/rtosdemo.ewp | 0 .../Demo}/AVR32_UC3/AT32UC3A/IAR/rtosdemo.eww | 0 .../AT32UC3A/IAR/settings/rtosdemo.cspy.bat | 0 .../AT32UC3A/IAR/settings/rtosdemo.dbgdt | 0 .../AT32UC3A/IAR/settings/rtosdemo.dni | 0 .../AT32UC3A/IAR/settings/rtosdemo.wsdt | 0 .../Demo}/AVR32_UC3/AT32UC3A/doxyfile.doxygen | 0 .../Demo}/AVR32_UC3/AT32UC3B/GCC/Makefile | 0 .../Demo}/AVR32_UC3/AT32UC3B/GCC/config.mk | 0 .../AVR32_UC3/AT32UC3B/GCC/gdb_cmdfile.txt | 0 .../Demo}/AVR32_UC3/AT32UC3B/doxyfile.doxygen | 0 .../Demo}/AVR32_UC3/BOARDS/EVK1100/evk1100.h | 0 .../AVR32_UC3/BOARDS/EVK1100/evk1100_revA.h | 0 .../Demo}/AVR32_UC3/BOARDS/EVK1100/led.c | 0 .../Demo}/AVR32_UC3/BOARDS/EVK1100/led.h | 0 .../Demo}/AVR32_UC3/BOARDS/EVK1101/evk1101.h | 0 .../Demo}/AVR32_UC3/BOARDS/EVK1101/led.c | 0 .../Demo}/AVR32_UC3/BOARDS/EVK1101/led.h | 0 .../Demo}/AVR32_UC3/BOARDS/board.h | 0 .../Demo}/AVR32_UC3/DRIVERS/GPIO/gpio.c | 0 .../Demo}/AVR32_UC3/DRIVERS/GPIO/gpio.h | 0 .../Demo}/AVR32_UC3/DRIVERS/INTC/intc.c | 0 .../Demo}/AVR32_UC3/DRIVERS/INTC/intc.h | 0 .../Demo}/AVR32_UC3/DRIVERS/PM/pm.c | 0 .../Demo}/AVR32_UC3/DRIVERS/PM/pm.h | 0 .../Demo}/AVR32_UC3/DRIVERS/TC/tc.c | 0 .../Demo}/AVR32_UC3/DRIVERS/TC/tc.h | 0 .../Demo}/AVR32_UC3/DRIVERS/USART/usart.c | 0 .../Demo}/AVR32_UC3/DRIVERS/USART/usart.h | 0 .../Demo}/AVR32_UC3/FreeRTOSConfig.h | 0 .../Demo}/AVR32_UC3/ParTest/ParTest.c | 0 .../CLASS/DFU/EXAMPLES/ISP/BOOT/trampoline.S | 0 .../DFU/EXAMPLES/ISP/BOOT/trampoline.s82 | 0 .../USB/CLASS/DFU/EXAMPLES/ISP/conf_isp.h | 0 .../AT32UC3A/0128/GCC/link_uc3a0128.lds | 0 .../AT32UC3A/0128/IAR/lnkuc3a0128.xcl | 0 .../AT32UC3A/0256/GCC/link_uc3a0256.lds | 0 .../AT32UC3A/0256/IAR/lnkuc3a0256.xcl | 0 .../AT32UC3A/0512/GCC/link_uc3a0512.lds | 0 .../AT32UC3A/0512/IAR/lnkuc3a0512.xcl | 0 .../AT32UC3A/1128/GCC/link_uc3a1128.lds | 0 .../AT32UC3A/1128/IAR/lnkuc3a1128.xcl | 0 .../AT32UC3A/1256/GCC/link_uc3a1256.lds | 0 .../AT32UC3A/1256/IAR/lnkuc3a1256.xcl | 0 .../AT32UC3A/1512/GCC/link_uc3a1512.lds | 0 .../AT32UC3A/1512/IAR/lnkuc3a1512.xcl | 0 .../AT32UC3B/0128/GCC/link_uc3b0128.lds | 0 .../AT32UC3B/0128/IAR/lnkuc3b0128.xcl | 0 .../AT32UC3B/0256/GCC/link_uc3b0256.lds | 0 .../AT32UC3B/0256/IAR/lnkuc3b0256.xcl | 0 .../AT32UC3B/064/GCC/link_uc3b064.lds | 0 .../AT32UC3B/064/IAR/lnkuc3b064.xcl | 0 .../AT32UC3B/1128/GCC/link_uc3b1128.lds | 0 .../AT32UC3B/1128/IAR/lnkuc3b1128.xcl | 0 .../AT32UC3B/1256/GCC/link_uc3b1256.lds | 0 .../AT32UC3B/1256/IAR/lnkuc3b1256.xcl | 0 .../AT32UC3B/164/GCC/link_uc3b164.lds | 0 .../AT32UC3B/164/IAR/lnkuc3b164.xcl | 0 .../AVR32_UC3/UTILS/PREPROCESSOR/mrepeat.h | 0 .../UTILS/PREPROCESSOR/preprocessor.h | 0 .../AVR32_UC3/UTILS/PREPROCESSOR/stringz.h | 0 .../AVR32_UC3/UTILS/PREPROCESSOR/tpaste.h | 0 .../Demo}/AVR32_UC3/UTILS/compiler.h | 0 .../Demo}/AVR32_UC3/documentation.h | 0 .../Demo}/AVR32_UC3/doxyfile.doxygen | 0 .../Demo}/AVR32_UC3/freertos.gif | Bin {Demo => FreeRTOS/Demo}/AVR32_UC3/main.c | 0 .../Demo}/AVR32_UC3/serial/serial.c | 0 .../Demo}/AVR_ATMega323_IAR/FreeRTOSConfig.h | 0 .../Demo}/AVR_ATMega323_IAR/ParTest/ParTest.c | 0 .../Demo}/AVR_ATMega323_IAR/main.c | 0 .../Demo}/AVR_ATMega323_IAR/regtest.c | 0 .../Demo}/AVR_ATMega323_IAR/regtest.h | 0 .../Demo}/AVR_ATMega323_IAR/rtosdemo.ewd | 0 .../Demo}/AVR_ATMega323_IAR/rtosdemo.ewp | 0 .../Demo}/AVR_ATMega323_IAR/rtosdemo.eww | 0 .../Demo}/AVR_ATMega323_IAR/serial/serial.c | 0 .../AVR_ATMega323_IAR/settings/rtosdemo.dbgdt | 0 .../AVR_ATMega323_IAR/settings/rtosdemo.dni | 0 .../AVR_ATMega323_IAR/settings/rtosdemo.fmt | 0 .../AVR_ATMega323_IAR/settings/rtosdemo.ini | 0 .../AVR_ATMega323_IAR/settings/rtosdemo.wsdt | 0 .../AVR_ATMega323_WinAVR/FreeRTOSConfig.h | 0 .../AVR_ATMega323_WinAVR/ParTest/ParTest.c | 0 .../Demo}/AVR_ATMega323_WinAVR/main.c | 0 .../Demo}/AVR_ATMega323_WinAVR/makefile | 0 .../Demo}/AVR_ATMega323_WinAVR/regtest.c | 0 .../Demo}/AVR_ATMega323_WinAVR/regtest.h | 0 .../AVR_ATMega323_WinAVR/serial/serial.c | 0 .../FreeRTOSConfig.h | 0 .../IAR_System/linker_nvm.icf | 0 .../MicroSemi_Code/CMSIS/a2fxxxm3.h | 0 .../MicroSemi_Code/CMSIS/core_cm3.c | 0 .../MicroSemi_Code/CMSIS/mss_assert.h | 0 .../CMSIS/startup_iar/startup_a2fxxxm3.s | 0 .../CMSIS/startup_keil/core_cm3.h | 0 .../CMSIS/startup_keil/startus_a2fxxxm3.s | 0 .../MicroSemi_Code/CMSIS/system_a2fxxxm3.c | 0 .../MicroSemi_Code/CMSIS/system_a2fxxxm3.h | 0 .../MicroSemi_Code/drivers/I2C/i2c.c | 0 .../MicroSemi_Code/drivers/I2C/i2c.h | 0 .../MicroSemi_Code/drivers/OLED/oled.c | 0 .../MicroSemi_Code/drivers/OLED/oled.h | 0 .../MicroSemi_Code/drivers/bsp_config.h | 0 .../drivers/mss_ace/ace_convert.c | 0 .../drivers/mss_ace/envm_layout.h | 0 .../MicroSemi_Code/drivers/mss_ace/mss_ace.c | 0 .../MicroSemi_Code/drivers/mss_ace/mss_ace.h | 0 .../drivers/mss_ace/mss_ace_configurator.h | 0 .../MicroSemi_Code/drivers/mss_ace/mtd_data.h | 0 .../drivers/mss_ethernet_mac/crc32.c | 0 .../drivers/mss_ethernet_mac/crc32.h | 0 .../mss_ethernet_mac/mss_ethernet_mac.c | 0 .../mss_ethernet_mac/mss_ethernet_mac.h | 0 .../mss_ethernet_mac/mss_ethernet_mac_conf.h | 0 .../mss_ethernet_mac/mss_ethernet_mac_desc.h | 0 .../mss_ethernet_mac/mss_ethernet_mac_regs.h | 0 .../mss_ethernet_mac_user_cfg.h | 0 .../drivers/mss_ethernet_mac/phy.c | 0 .../drivers/mss_ethernet_mac/phy.h | 0 .../drivers/mss_gpio/mss_gpio.c | 0 .../drivers/mss_gpio/mss_gpio.h | 0 .../drivers/mss_pdma/mss_pdma.c | 0 .../drivers/mss_pdma/mss_pdma.h | 0 .../MicroSemi_Code/drivers/mss_spi/mss_spi.c | 0 .../MicroSemi_Code/drivers/mss_spi/mss_spi.h | 0 .../drivers/mss_timer/mss_timer.h | 0 .../drivers/mss_uart/mss_uart.c | 0 .../drivers/mss_uart/mss_uart.h | 0 .../drivers/mss_watchdog/mss_watchdog.h | 0 .../drivers_config/mss_ace/ace_config.c | 0 .../drivers_config/mss_ace/ace_config.h | 0 .../drivers_config/mss_ace/ace_handles.h | 0 .../CORTEX_A2F200_IAR_and_Keil/ParTest.c | 0 .../RTOSDemo_IAR.ewd | 0 .../RTOSDemo_IAR.ewp | 0 .../RTOSDemo_IAR.eww | 0 .../RTOSDemo_Keil.uvopt | 0 .../RTOSDemo_Keil.uvproj | 0 .../WebServer/httpd-cgi.c | 0 .../WebServer/httpd-fs/404.html | 0 .../WebServer/httpd-fs/index.html | 0 .../WebServer/httpd-fs/index.shtml | 0 .../WebServer/httpd-fs/io.shtml | 0 .../WebServer/httpd-fs/logo.jpg | Bin .../WebServer/httpd-fs/runtime.shtml | 0 .../WebServer/httpd-fs/stats.shtml | 0 .../WebServer/httpd-fs/tcp.shtml | 0 .../WebServer/httpd-fsdata.c | 0 .../WebServer/makefsdata | 0 .../WebServer/uip-conf.h | 0 .../WebServer/webserver.h | 0 .../CORTEX_A2F200_IAR_and_Keil/main-blinky.c | 0 .../CORTEX_A2F200_IAR_and_Keil/main-full.c | 0 .../printf-stdarg.c | 0 .../CORTEX_A2F200_IAR_and_Keil/uIP_Task.c | 0 .../Demo}/CORTEX_A2F200_SoftConsole/.cproject | 0 .../Demo}/CORTEX_A2F200_SoftConsole/.project | 0 .../org.eclipse.ltk.core.refactoring.prefs | 0 .../CreateProjectDirectoryStructure.bat | 0 .../FreeRTOSConfig.h | 0 .../MicroSemi_Code/CMSIS/a2fxxxm3.h | 0 .../MicroSemi_Code/CMSIS/core_cm3.c | 0 .../MicroSemi_Code/CMSIS/core_cm3.h | 0 .../MicroSemi_Code/CMSIS/mss_assert.h | 0 .../debug-in-actel-smartfusion-envm.ld | 0 .../debug-in-actel-smartfusion-esram.ld | 0 .../startup_gcc/debug-in-external-ram.ld | 0 .../CMSIS/startup_gcc/newlib_stubs.c | 0 .../production-execute-in-place.ld | 0 .../production-relocate-executable.ld | 0 .../CMSIS/startup_gcc/startup_a2fxxxm3.s | 0 .../MicroSemi_Code/CMSIS/system_a2fxxxm3.c | 0 .../MicroSemi_Code/CMSIS/system_a2fxxxm3.h | 0 .../MicroSemi_Code/drivers/I2C/i2c.c | 0 .../MicroSemi_Code/drivers/I2C/i2c.h | 0 .../MicroSemi_Code/drivers/OLED/oled.c | 0 .../MicroSemi_Code/drivers/OLED/oled.h | 0 .../MicroSemi_Code/drivers/bsp_config.h | 0 .../drivers/mss_ace/ace_convert.c | 0 .../drivers/mss_ace/envm_layout.h | 0 .../MicroSemi_Code/drivers/mss_ace/mss_ace.c | 0 .../MicroSemi_Code/drivers/mss_ace/mss_ace.h | 0 .../drivers/mss_ace/mss_ace_configurator.h | 0 .../MicroSemi_Code/drivers/mss_ace/mtd_data.h | 0 .../drivers/mss_ethernet_mac/crc32.c | 0 .../drivers/mss_ethernet_mac/crc32.h | 0 .../mss_ethernet_mac/mss_ethernet_mac.c | 0 .../mss_ethernet_mac/mss_ethernet_mac.h | 0 .../mss_ethernet_mac/mss_ethernet_mac_conf.h | 0 .../mss_ethernet_mac/mss_ethernet_mac_desc.h | 0 .../mss_ethernet_mac/mss_ethernet_mac_regs.h | 0 .../mss_ethernet_mac_user_cfg.h | 0 .../drivers/mss_ethernet_mac/phy.c | 0 .../drivers/mss_ethernet_mac/phy.h | 0 .../drivers/mss_gpio/mss_gpio.c | 0 .../drivers/mss_gpio/mss_gpio.h | 0 .../drivers/mss_timer/mss_timer.h | 0 .../drivers/mss_watchdog/mss_watchdog.h | 0 .../drivers_config/mss_ace/ace_config.c | 0 .../drivers_config/mss_ace/ace_config.h | 0 .../drivers_config/mss_ace/ace_handles.h | 0 .../Demo}/CORTEX_A2F200_SoftConsole/ParTest.c | 0 .../WebServer/httpd-cgi.c | 0 .../WebServer/httpd-fs/404.html | 0 .../WebServer/httpd-fs/index.html | 0 .../WebServer/httpd-fs/index.shtml | 0 .../WebServer/httpd-fs/io.shtml | 0 .../WebServer/httpd-fs/logo.jpg | Bin .../WebServer/httpd-fs/runtime.shtml | 0 .../WebServer/httpd-fs/stats.shtml | 0 .../WebServer/httpd-fs/tcp.shtml | 0 .../WebServer/httpd-fsdata.c | 0 .../WebServer/makefsdata | 0 .../WebServer/uip-conf.h | 0 .../WebServer/webserver.h | 0 .../CORTEX_A2F200_SoftConsole/main-blinky.c | 0 .../CORTEX_A2F200_SoftConsole/main-full.c | 0 .../CORTEX_A2F200_SoftConsole/printf-stdarg.c | 0 .../CORTEX_A2F200_SoftConsole/uIP_Task.c | 0 .../AT91Lib/cmsis/core_cm3.c | 0 .../AT91Lib/cmsis/core_cm3.h | 0 .../AT91Lib/components/hx8347/hx8347.c | 0 .../AT91Lib/components/hx8347/hx8347.h | 0 .../AT91Lib/drivers/lcd/color.h | 0 .../AT91Lib/drivers/lcd/draw.h | 0 .../AT91Lib/drivers/lcd/draw_hx8347.c | 0 .../AT91Lib/drivers/lcd/font.c | 0 .../AT91Lib/drivers/lcd/font.h | 0 .../AT91Lib/drivers/lcd/font10x14.h | 0 .../AT91Lib/drivers/lcd/lcdd.h | 0 .../AT91Lib/drivers/lcd/lcdd_hx8347.c | 0 .../AT91Lib/peripherals/ac97c/ac97c.c | 0 .../AT91Lib/peripherals/ac97c/ac97c.h | 0 .../AT91Lib/peripherals/adc/adc.c | 0 .../AT91Lib/peripherals/adc/adc.h | 0 .../AT91Lib/peripherals/adc/adc12.h | 0 .../AT91Lib/peripherals/aes/aes.c | 0 .../AT91Lib/peripherals/aes/aes.h | 0 .../AT91Lib/peripherals/aic/aic.c | 0 .../AT91Lib/peripherals/aic/aic.h | 0 .../AT91Lib/peripherals/can/can.c | 0 .../AT91Lib/peripherals/can/can.h | 0 .../AT91Lib/peripherals/cp15/cp15.c | 0 .../AT91Lib/peripherals/cp15/cp15.h | 0 .../AT91Lib/peripherals/cp15/cp15_asm_iar.s | 0 .../AT91Lib/peripherals/dbgu/dbgu.c | 0 .../AT91Lib/peripherals/dbgu/dbgu.h | 0 .../AT91Lib/peripherals/dma/dma.c | 0 .../AT91Lib/peripherals/dma/dma.h | 0 .../AT91Lib/peripherals/eefc/eefc.c | 0 .../AT91Lib/peripherals/eefc/eefc.h | 0 .../AT91Lib/peripherals/efc/efc.c | 0 .../AT91Lib/peripherals/efc/efc.h | 0 .../AT91Lib/peripherals/emac/emac.c | 0 .../AT91Lib/peripherals/emac/emac.h | 0 .../AT91Lib/peripherals/irq/irq.h | 0 .../AT91Lib/peripherals/irq/nvic.c | 0 .../AT91Lib/peripherals/isi/isi.c | 0 .../AT91Lib/peripherals/isi/isi.h | 0 .../AT91Lib/peripherals/isi/isi2.c | 0 .../AT91Lib/peripherals/lcd/lcd.c | 0 .../AT91Lib/peripherals/lcd/lcd.h | 0 .../AT91Lib/peripherals/mci/mci.c | 0 .../AT91Lib/peripherals/mci/mci.h | 0 .../AT91Lib/peripherals/mci/mci_hs.c | 0 .../AT91Lib/peripherals/mci/mci_hs.h | 0 .../AT91Lib/peripherals/pio/pio.c | 0 .../AT91Lib/peripherals/pio/pio.h | 0 .../AT91Lib/peripherals/pio/pio_it.c | 0 .../AT91Lib/peripherals/pio/pio_it.h | 0 .../AT91Lib/peripherals/pit/pit.c | 0 .../AT91Lib/peripherals/pit/pit.h | 0 .../AT91Lib/peripherals/pmc/pmc.c | 0 .../AT91Lib/peripherals/pmc/pmc.h | 0 .../AT91Lib/peripherals/pwmc/pwmc.c | 0 .../AT91Lib/peripherals/pwmc/pwmc.h | 0 .../AT91Lib/peripherals/rstc/rstc.c | 0 .../AT91Lib/peripherals/rstc/rstc.h | 0 .../AT91Lib/peripherals/rtc/rtc.c | 0 .../AT91Lib/peripherals/rtc/rtc.h | 0 .../AT91Lib/peripherals/rtt/rtt.c | 0 .../AT91Lib/peripherals/rtt/rtt.h | 0 .../AT91Lib/peripherals/shdwc/shdwc.c | 0 .../AT91Lib/peripherals/shdwc/shdwc.h | 0 .../AT91Lib/peripherals/slcdc/slcdc.c | 0 .../AT91Lib/peripherals/slcdc/slcdc.h | 0 .../AT91Lib/peripherals/slck/slck.c | 0 .../AT91Lib/peripherals/slck/slck.h | 0 .../AT91Lib/peripherals/spi/spi.c | 0 .../AT91Lib/peripherals/spi/spi.h | 0 .../AT91Lib/peripherals/ssc/ssc.c | 0 .../AT91Lib/peripherals/ssc/ssc.h | 0 .../AT91Lib/peripherals/supc/supc.c | 0 .../AT91Lib/peripherals/supc/supc.h | 0 .../AT91Lib/peripherals/systick/systick.c | 0 .../AT91Lib/peripherals/systick/systick.h | 0 .../AT91Lib/peripherals/tc/tc.c | 0 .../AT91Lib/peripherals/tc/tc.h | 0 .../AT91Lib/peripherals/tdes/tdes.c | 0 .../AT91Lib/peripherals/tdes/tdes.h | 0 .../AT91Lib/peripherals/tsadcc/tsadcc.c | 0 .../AT91Lib/peripherals/tsadcc/tsadcc.h | 0 .../AT91Lib/peripherals/twi/twi.c | 0 .../AT91Lib/peripherals/twi/twi.h | 0 .../AT91Lib/peripherals/usart/usart.c | 0 .../AT91Lib/peripherals/usart/usart.h | 0 .../AT91Lib/utility/assert.h | 0 .../AT91Lib/utility/trace.h | 0 .../CORTEX_AT91SAM3U256_IAR/FreeRTOSConfig.h | 0 .../CORTEX_AT91SAM3U256_IAR/ParTest/ParTest.c | 0 .../CORTEX_AT91SAM3U256_IAR/RTOSDemo.ewd | 0 .../CORTEX_AT91SAM3U256_IAR/RTOSDemo.ewp | 0 .../CORTEX_AT91SAM3U256_IAR/RTOSDemo.eww | 0 .../CORTEX_AT91SAM3U256_IAR/lcd_message.h | 0 .../Demo}/CORTEX_AT91SAM3U256_IAR/main.c | 0 .../CORTEX_AT91SAM3U256_IAR/printf-stdarg.c | 0 .../CORTEX_AT91SAM3U256_IAR/serial/serial.c | 0 .../settings/RTOSDemo.cspy.bat | 0 .../settings/RTOSDemo.dbgdt | 0 .../settings/RTOSDemo.dni | 0 .../settings/RTOSDemo.wsdt | 0 .../settings/RTOSDemo_Debug.jlink | 0 .../settings/RTOSDemo_Release.jlink | 0 .../system/AT91SAM3U4.h | 0 .../system/at91sam3u-ek-flash.mac | 0 .../system/at91sam3u4/AT91SAM3U4.h | 0 .../system/at91sam3u4/chip.h | 0 .../system/at91sam3u4/flash.icf | 0 .../system/at91sam3u4/sram.icf | 0 .../CORTEX_AT91SAM3U256_IAR/system/board.h | 0 .../system/board_cstartup_iar.c | 0 .../system/board_lowlevel.c | 0 .../system/board_lowlevel.h | 0 .../system/board_memories.c | 0 .../system/board_memories.h | 0 .../CORTEX_AT91SAM3U256_IAR/system/chip.h | 0 .../system/exceptions.c | 0 .../system/exceptions.h | 0 .../CORTEX_AT91SAM3U256_IAR/system/flash.icf | 0 .../CORTEX_AT91SAM3U256_IAR/system/led.c | 0 .../CORTEX_AT91SAM3U256_IAR/system/led.h | 0 .../FreeRTOS_Demo Workspace.cywrk | 0 .../FreeRTOS_Demo.cydsn/FreeRTOSConfig.h | 0 .../FreeRTOS_Demo.cydsn/FreeRTOS_Demo.cydwr | Bin .../FreeRTOS_Demo.cydsn/FreeRTOS_Demo.cyprj | 0 .../FreeRTOS_Demo.cydsn/IntQueueTimer.c | 0 .../FreeRTOS_Demo.cydsn/IntQueueTimer.h | 0 .../FreeRTOS_Demo.cydsn/ParTest.c | 0 .../FreeRTOS_Demo.cydsn/Serial.c | 0 .../FreeRTOS_Demo.cydsn/TimerTest.c | 0 .../TopDesign/TopDesign.cysch | Bin .../FreeRTOS_Demo.cydsn/device.h | 0 .../FreeRTOS_Demo.cydsn/main.c | 0 .../FreeRTOS_Demo Workspace.cywrk | 0 .../FreeRTOS_Demo.cydsn/FreeRTOSConfig.h | 0 .../FreeRTOS_Demo.cydsn/FreeRTOS_Demo.cydwr | Bin .../FreeRTOS_Demo.cydsn/FreeRTOS_Demo.cyprj | 0 .../FreeRTOS_Demo.cydsn/IntQueueTimer.c | 0 .../FreeRTOS_Demo.cydsn/IntQueueTimer.h | 0 .../FreeRTOS_Demo.cydsn/ParTest.c | 0 .../FreeRTOS_Demo.cydsn/Serial.c | 0 .../FreeRTOS_Demo.cydsn/TimerTest.c | 0 .../TopDesign/TopDesign.cysch | Bin .../FreeRTOS_Demo.cydsn/device.h | 0 .../FreeRTOS_Demo.cydsn/main.c | 0 .../FreeRTOS_Demo Workspace.cywrk | 0 .../FreeRTOS_Demo.cydsn/FreeRTOSConfig.h | 0 .../FreeRTOS_Demo.cydsn/FreeRTOS_Demo.cydwr | Bin .../FreeRTOS_Demo.cydsn/FreeRTOS_Demo.cyprj | 0 .../FreeRTOS_Demo.cydsn/IntQueueTimer.c | 0 .../FreeRTOS_Demo.cydsn/IntQueueTimer.h | 0 .../FreeRTOS_Demo.cydsn/ParTest.c | 0 .../FreeRTOS_Demo.cydsn/Serial.c | 0 .../FreeRTOS_Demo.cydsn/TimerTest.c | 0 .../TopDesign/TopDesign.cysch | Bin .../FreeRTOS_Demo.cydsn/device.h | 0 .../FreeRTOS_Demo.cydsn/main.c | 0 .../CMSIS/CM3/CoreSupport/core_cm3.c | 0 .../DeviceSupport/EnergyMicro/EFM32/efm32.h | 0 .../EnergyMicro/EFM32/efm32g890f128.h | 0 .../EnergyMicro/EFM32/system_efm32.c | 0 .../EnergyMicro/EFM32/system_efm32.h | 0 .../CMSIS/CMSIS changes.htm | 0 .../CMSIS/CMSIS debug support.htm | 0 .../CMSIS/Documentation/CMSIS_Core.htm | 0 .../CORTEX_EFMG890F128_IAR/CMSIS/License.doc | Bin .../CORTEX_EFMG890F128_IAR/FreeRTOSConfig.h | 0 .../Demo}/CORTEX_EFMG890F128_IAR/ParTest.c | 0 .../Demo}/CORTEX_EFMG890F128_IAR/RTOSDemo.ewd | 0 .../Demo}/CORTEX_EFMG890F128_IAR/RTOSDemo.ewp | 0 .../Demo}/CORTEX_EFMG890F128_IAR/RTOSDemo.eww | 0 .../Demo}/CORTEX_EFMG890F128_IAR/bsp/chip.h | 0 .../Demo}/CORTEX_EFMG890F128_IAR/bsp/dvk.c | 0 .../Demo}/CORTEX_EFMG890F128_IAR/bsp/dvk.h | 0 .../bsp/dvk_bcregisters.h | 0 .../bsp/dvk_boardcontrol.c | 0 .../bsp/dvk_boardcontrol.h | 0 .../CORTEX_EFMG890F128_IAR/bsp/dvk_ebi.c | 0 .../CORTEX_EFMG890F128_IAR/bsp/dvk_spi.c | 0 .../lcd/lcdcontroller.c | 0 .../lcd/lcdcontroller.h | 0 .../CORTEX_EFMG890F128_IAR/lcd/lcddisplay.h | 0 .../Demo}/CORTEX_EFMG890F128_IAR/lcdtest.c | 0 .../Demo}/CORTEX_EFMG890F128_IAR/lcdtest.h | 0 .../Demo}/CORTEX_EFMG890F128_IAR/ledtest.c | 0 .../Demo}/CORTEX_EFMG890F128_IAR/ledtest.h | 0 .../Demo}/CORTEX_EFMG890F128_IAR/main.c | 0 .../settings/RTOSDemo.cspy.bat | 0 .../settings/RTOSDemo.dbgdt | 0 .../settings/RTOSDemo.dni | 0 .../settings/RTOSDemo.wsdt | 0 .../settings/RTOSDemo_Debug.jlink | 0 .../CORTEX_EFMG890F128_IAR/startup_efm32.s | 0 .../FreeRTOSConfig.h | 0 .../Freescale_Code/common/512KB_Pflash.icf | 0 .../Freescale_Code/common/assert.h | 0 .../Freescale_Code/common/common.h | 0 .../Freescale_Code/common/iar.h | 0 .../Freescale_Code/common/io.h | 0 .../Freescale_Code/common/queue.h | 0 .../Freescale_Code/common/startup.c | 0 .../Freescale_Code/common/startup.h | 0 .../Freescale_Code/cpu/arm_cm4.c | 0 .../Freescale_Code/cpu/arm_cm4.h | 0 .../Freescale_Code/cpu/crt0.s | 0 .../Freescale_Code/cpu/dma_channels.h | 0 .../Freescale_Code/cpu/k60_tower.h | 0 .../Freescale_Code/cpu/regfile.h | 0 .../Freescale_Code/cpu/start.c | 0 .../Freescale_Code/cpu/start.h | 0 .../Freescale_Code/cpu/sysinit.c | 0 .../Freescale_Code/cpu/sysinit.h | 0 .../Freescale_Code/cpu/vectors.c | 0 .../Freescale_Code/cpu/vectors.h | 0 .../Freescale_Code/drivers/enet/enet.c | 0 .../Freescale_Code/drivers/enet/enet.h | 0 .../Freescale_Code/drivers/enet/eth.h | 0 .../Freescale_Code/drivers/enet/eth_phy.c | 0 .../Freescale_Code/drivers/enet/eth_phy.h | 0 .../Freescale_Code/drivers/enet/mii.c | 0 .../Freescale_Code/drivers/enet/mii.h | 0 .../Freescale_Code/drivers/enet/nbuf.h | 0 .../Freescale_Code/drivers/mcg/mcg.c | 0 .../Freescale_Code/drivers/mcg/mcg.h | 0 .../Freescale_Code/drivers/uart/uart.c | 0 .../Freescale_Code/drivers/uart/uart.h | 0 .../Freescale_Code/drivers/wdog/wdog.c | 0 .../Freescale_Code/drivers/wdog/wdog.h | 0 .../CORTEX_Kinetis_K60_Tower_IAR/ParTest.c | 0 .../CORTEX_Kinetis_K60_Tower_IAR/RTOSDemo.ewd | 0 .../CORTEX_Kinetis_K60_Tower_IAR/RTOSDemo.ewp | 0 .../CORTEX_Kinetis_K60_Tower_IAR/RTOSDemo.eww | 0 .../CORTEX_Kinetis_K60_Tower_IAR/main-full.c | 0 .../main_blinky.c | 0 .../CORTEX_Kinetis_K60_Tower_IAR/uIP_Task.c | 0 .../webserver/EMAC.c | 0 .../webserver/EMAC.h | 0 .../webserver/httpd-cgi.c | 0 .../webserver/httpd-fs/404.html | 0 .../webserver/httpd-fs/index.html | 0 .../webserver/httpd-fs/index.shtml | 0 .../webserver/httpd-fs/io.shtml | 0 .../webserver/httpd-fs/logo.jpg | Bin .../webserver/httpd-fs/runtime.shtml | 0 .../webserver/httpd-fs/stats.shtml | 0 .../webserver/httpd-fs/tcp.shtml | 0 .../webserver/httpd-fsdata.c | 0 .../webserver/makefsdata | 0 .../webserver/uip-conf.h | 0 .../webserver/webserver.h | 0 .../CORTEX_LM3S102_GCC/Demo1/FreeRTOSConfig.h | 0 .../Demo}/CORTEX_LM3S102_GCC/Demo1/main.c | 0 .../Demo}/CORTEX_LM3S102_GCC/Demo1/readme.txt | 0 .../CORTEX_LM3S102_GCC/Demo2/FreeRTOSConfig.h | 0 .../Demo}/CORTEX_LM3S102_GCC/Demo2/main.c | 0 .../Demo}/CORTEX_LM3S102_GCC/Demo2/readme.txt | 0 .../Demo}/CORTEX_LM3S102_GCC/FreeRTOSConfig.h | 0 .../Demo}/CORTEX_LM3S102_GCC/Makefile | 0 .../CORTEX_LM3S102_GCC/ParTest/ParTest.c | 0 .../CORTEX_LM3S102_GCC/hw_include/DriverLib.h | 0 .../CORTEX_LM3S102_GCC/hw_include/debug.h | 0 .../CORTEX_LM3S102_GCC/hw_include/gpio.h | 0 .../CORTEX_LM3S102_GCC/hw_include/hw_ints.h | 0 .../CORTEX_LM3S102_GCC/hw_include/hw_memmap.h | 0 .../CORTEX_LM3S102_GCC/hw_include/hw_nvic.h | 0 .../CORTEX_LM3S102_GCC/hw_include/hw_ssi.h | 0 .../CORTEX_LM3S102_GCC/hw_include/hw_sysctl.h | 0 .../CORTEX_LM3S102_GCC/hw_include/hw_types.h | 0 .../CORTEX_LM3S102_GCC/hw_include/hw_uart.h | 0 .../CORTEX_LM3S102_GCC/hw_include/interrupt.h | 0 .../CORTEX_LM3S102_GCC/hw_include/libdriver.a | Bin .../Demo}/CORTEX_LM3S102_GCC/hw_include/pdc.c | 0 .../Demo}/CORTEX_LM3S102_GCC/hw_include/pdc.h | 0 .../Demo}/CORTEX_LM3S102_GCC/hw_include/ssi.h | 0 .../CORTEX_LM3S102_GCC/hw_include/sysctl.h | 0 .../CORTEX_LM3S102_GCC/hw_include/uart.h | 0 .../Demo}/CORTEX_LM3S102_GCC/init/startup.c | 0 .../Demo}/CORTEX_LM3S102_GCC/main.c | 0 .../Demo}/CORTEX_LM3S102_GCC/makedefs | 0 .../Demo}/CORTEX_LM3S102_GCC/standalone.ld | 0 .../Demo1/FreeRTOSConfig.h | 0 .../Demo}/CORTEX_LM3S102_KEIL/Demo1/main.c | 0 .../CORTEX_LM3S102_KEIL/Demo1/readme.txt | 0 .../Demo2/FreeRTOSConfig.h | 0 .../Demo}/CORTEX_LM3S102_KEIL/Demo2/main.c | 0 .../CORTEX_LM3S102_KEIL/Demo2/readme.txt | 0 .../Demo}/CORTEX_LM3S102_KEIL/FreeRTOS.Opt | 0 .../Demo}/CORTEX_LM3S102_KEIL/FreeRTOS.Uv2 | 0 .../CORTEX_LM3S102_KEIL/FreeRTOSConfig.h | 0 .../CORTEX_LM3S102_KEIL/ParTest/ParTest.c | 0 .../Demo}/CORTEX_LM3S102_KEIL/include/pdc.c | 0 .../Demo}/CORTEX_LM3S102_KEIL/include/pdc.h | 0 .../Demo}/CORTEX_LM3S102_KEIL/init/Startup.s | 0 .../Demo}/CORTEX_LM3S102_KEIL/main.c | 0 .../Demo1/FreeRTOSConfig.h | 0 .../CORTEX_LM3S102_Rowley/Demo1/ParTest.c | 0 .../Demo}/CORTEX_LM3S102_Rowley/Demo1/main.c | 0 .../CORTEX_LM3S102_Rowley/Demo1/vectors.s | 0 .../Demo2/FreeRTOSConfig.h | 0 .../CORTEX_LM3S102_Rowley/Demo2/ParTest.c | 0 .../Demo}/CORTEX_LM3S102_Rowley/Demo2/main.c | 0 .../CORTEX_LM3S102_Rowley/Demo2/vectors.s | 0 .../Demo3/FreeRTOSConfig.h | 0 .../CORTEX_LM3S102_Rowley/Demo3/ParTest.c | 0 .../Demo}/CORTEX_LM3S102_Rowley/Demo3/main.c | 0 .../CORTEX_LM3S102_Rowley/Demo3/vectors.s | 0 .../Demo}/CORTEX_LM3S102_Rowley/RTOSDemo.hzp | 0 .../Demo}/CORTEX_LM3S102_Rowley/RTOSDemo.hzs | 0 .../hw_include/DriverLib.h | 0 .../CORTEX_LM3S102_Rowley/hw_include/EULA.txt | 0 .../CORTEX_LM3S102_Rowley/hw_include/comp.h | 0 .../CORTEX_LM3S102_Rowley/hw_include/cpu.h | 0 .../CORTEX_LM3S102_Rowley/hw_include/debug.h | 0 .../CORTEX_LM3S102_Rowley/hw_include/flash.h | 0 .../CORTEX_LM3S102_Rowley/hw_include/gpio.h | 0 .../hw_include/hw_comp.h | 0 .../hw_include/hw_flash.h | 0 .../hw_include/hw_gpio.h | 0 .../CORTEX_LM3S102_Rowley/hw_include/hw_i2c.h | 0 .../hw_include/hw_ints.h | 0 .../hw_include/hw_memmap.h | 0 .../hw_include/hw_nvic.h | 0 .../CORTEX_LM3S102_Rowley/hw_include/hw_ssi.h | 0 .../hw_include/hw_sysctl.h | 0 .../hw_include/hw_timer.h | 0 .../hw_include/hw_types.h | 0 .../hw_include/hw_uart.h | 0 .../hw_include/hw_watchdog.h | 0 .../CORTEX_LM3S102_Rowley/hw_include/i2c.h | 0 .../hw_include/interrupt.h | 0 .../hw_include/libdriver.a | Bin .../CORTEX_LM3S102_Rowley/hw_include/pdc.c | 0 .../CORTEX_LM3S102_Rowley/hw_include/pdc.h | 0 .../CORTEX_LM3S102_Rowley/hw_include/ssi.h | 0 .../CORTEX_LM3S102_Rowley/hw_include/sysctl.h | 0 .../hw_include/systick.h | 0 .../CORTEX_LM3S102_Rowley/hw_include/timer.h | 0 .../CORTEX_LM3S102_Rowley/hw_include/uart.h | 0 .../hw_include/watchdog.h | 0 .../Demo}/CORTEX_LM3S316_IAR/FreeRTOSConfig.h | 0 .../Demo}/CORTEX_LM3S316_IAR/LM3S316.icf | 0 .../CORTEX_LM3S316_IAR/ParTest/ParTest.c | 0 .../Demo}/CORTEX_LM3S316_IAR/RTOSDemo.ewd | 0 .../Demo}/CORTEX_LM3S316_IAR/RTOSDemo.ewp | 0 .../Demo}/CORTEX_LM3S316_IAR/RTOSDemo.eww | 0 .../Demo}/CORTEX_LM3S316_IAR/commstest.c | 0 .../Demo}/CORTEX_LM3S316_IAR/commstest.h | 0 .../CORTEX_LM3S316_IAR/hw_include/DriverLib.h | 0 .../CORTEX_LM3S316_IAR/hw_include/EULA.txt | 0 .../Demo}/CORTEX_LM3S316_IAR/hw_include/adc.h | 0 .../CORTEX_LM3S316_IAR/hw_include/asmdefs.h | 0 .../CORTEX_LM3S316_IAR/hw_include/comp.h | 0 .../Demo}/CORTEX_LM3S316_IAR/hw_include/cpu.h | 0 .../CORTEX_LM3S316_IAR/hw_include/cspy.c | 0 .../CORTEX_LM3S316_IAR/hw_include/debug.h | 0 .../CORTEX_LM3S316_IAR/hw_include/diag.h | 0 .../hw_include/driverlib.r79 | Bin .../CORTEX_LM3S316_IAR/hw_include/flash.h | 0 .../CORTEX_LM3S316_IAR/hw_include/gpio.h | 0 .../CORTEX_LM3S316_IAR/hw_include/hw_adc.h | 0 .../CORTEX_LM3S316_IAR/hw_include/hw_comp.h | 0 .../CORTEX_LM3S316_IAR/hw_include/hw_flash.h | 0 .../CORTEX_LM3S316_IAR/hw_include/hw_gpio.h | 0 .../CORTEX_LM3S316_IAR/hw_include/hw_i2c.h | 0 .../CORTEX_LM3S316_IAR/hw_include/hw_ints.h | 0 .../CORTEX_LM3S316_IAR/hw_include/hw_memmap.h | 0 .../CORTEX_LM3S316_IAR/hw_include/hw_nvic.h | 0 .../CORTEX_LM3S316_IAR/hw_include/hw_pwm.h | 0 .../CORTEX_LM3S316_IAR/hw_include/hw_ssi.h | 0 .../CORTEX_LM3S316_IAR/hw_include/hw_sysctl.h | 0 .../CORTEX_LM3S316_IAR/hw_include/hw_timer.h | 0 .../CORTEX_LM3S316_IAR/hw_include/hw_types.h | 0 .../CORTEX_LM3S316_IAR/hw_include/hw_uart.h | 0 .../hw_include/hw_watchdog.h | 0 .../Demo}/CORTEX_LM3S316_IAR/hw_include/i2c.h | 0 .../CORTEX_LM3S316_IAR/hw_include/interrupt.h | 0 .../CORTEX_LM3S316_IAR/hw_include/libdriver.a | Bin .../Demo}/CORTEX_LM3S316_IAR/hw_include/pdc.c | 0 .../Demo}/CORTEX_LM3S316_IAR/hw_include/pdc.h | 0 .../Demo}/CORTEX_LM3S316_IAR/hw_include/pwm.h | 0 .../Demo}/CORTEX_LM3S316_IAR/hw_include/ssi.h | 0 .../CORTEX_LM3S316_IAR/hw_include/startup.c | 0 .../CORTEX_LM3S316_IAR/hw_include/sysctl.h | 0 .../CORTEX_LM3S316_IAR/hw_include/systick.h | 0 .../CORTEX_LM3S316_IAR/hw_include/timer.h | 0 .../CORTEX_LM3S316_IAR/hw_include/uart.h | 0 .../CORTEX_LM3S316_IAR/hw_include/watchdog.h | 0 .../Demo}/CORTEX_LM3S316_IAR/main.c | 0 .../Demo}/CORTEX_LM3S316_IAR/registertest.s | 0 .../settings/RTOSDemo.dbgdt | 0 .../CORTEX_LM3S316_IAR/settings/RTOSDemo.dni | 0 .../CORTEX_LM3S316_IAR/settings/RTOSDemo.wsdt | 0 .../settings/driverlib.wsdt | 0 .../Demo}/CORTEX_LM3S811_GCC/FreeRTOSConfig.h | 0 .../Demo}/CORTEX_LM3S811_GCC/Makefile | 0 .../CORTEX_LM3S811_GCC/hw_include/DriverLib.h | 0 .../CORTEX_LM3S811_GCC/hw_include/EULA.txt | 0 .../Demo}/CORTEX_LM3S811_GCC/hw_include/adc.c | 0 .../Demo}/CORTEX_LM3S811_GCC/hw_include/adc.h | 0 .../CORTEX_LM3S811_GCC/hw_include/comp.c | 0 .../CORTEX_LM3S811_GCC/hw_include/comp.h | 0 .../Demo}/CORTEX_LM3S811_GCC/hw_include/cpu.h | 0 .../CORTEX_LM3S811_GCC/hw_include/debug.h | 0 .../hw_include/driverlib.r79 | Bin .../CORTEX_LM3S811_GCC/hw_include/flash.c | 0 .../CORTEX_LM3S811_GCC/hw_include/flash.h | 0 .../CORTEX_LM3S811_GCC/hw_include/gpio.c | 0 .../CORTEX_LM3S811_GCC/hw_include/gpio.h | 0 .../CORTEX_LM3S811_GCC/hw_include/hw_adc.h | 0 .../CORTEX_LM3S811_GCC/hw_include/hw_comp.h | 0 .../CORTEX_LM3S811_GCC/hw_include/hw_flash.h | 0 .../CORTEX_LM3S811_GCC/hw_include/hw_gpio.h | 0 .../CORTEX_LM3S811_GCC/hw_include/hw_i2c.h | 0 .../CORTEX_LM3S811_GCC/hw_include/hw_ints.h | 0 .../CORTEX_LM3S811_GCC/hw_include/hw_memmap.h | 0 .../CORTEX_LM3S811_GCC/hw_include/hw_nvic.h | 0 .../CORTEX_LM3S811_GCC/hw_include/hw_pwm.h | 0 .../CORTEX_LM3S811_GCC/hw_include/hw_qei.h | 0 .../CORTEX_LM3S811_GCC/hw_include/hw_ssi.h | 0 .../CORTEX_LM3S811_GCC/hw_include/hw_sysctl.h | 0 .../CORTEX_LM3S811_GCC/hw_include/hw_timer.h | 0 .../CORTEX_LM3S811_GCC/hw_include/hw_types.h | 0 .../CORTEX_LM3S811_GCC/hw_include/hw_uart.h | 0 .../hw_include/hw_watchdog.h | 0 .../Demo}/CORTEX_LM3S811_GCC/hw_include/i2c.c | 0 .../Demo}/CORTEX_LM3S811_GCC/hw_include/i2c.h | 0 .../CORTEX_LM3S811_GCC/hw_include/interrupt.c | 0 .../CORTEX_LM3S811_GCC/hw_include/interrupt.h | 0 .../CORTEX_LM3S811_GCC/hw_include/libdriver.a | Bin .../hw_include/osram96x16.c | 0 .../hw_include/osram96x16.h | 0 .../Demo}/CORTEX_LM3S811_GCC/hw_include/pwm.c | 0 .../Demo}/CORTEX_LM3S811_GCC/hw_include/pwm.h | 0 .../Demo}/CORTEX_LM3S811_GCC/hw_include/qei.c | 0 .../Demo}/CORTEX_LM3S811_GCC/hw_include/qei.h | 0 .../Demo}/CORTEX_LM3S811_GCC/hw_include/ssi.c | 0 .../Demo}/CORTEX_LM3S811_GCC/hw_include/ssi.h | 0 .../CORTEX_LM3S811_GCC/hw_include/sysctl.c | 0 .../CORTEX_LM3S811_GCC/hw_include/sysctl.h | 0 .../CORTEX_LM3S811_GCC/hw_include/systick.c | 0 .../CORTEX_LM3S811_GCC/hw_include/systick.h | 0 .../CORTEX_LM3S811_GCC/hw_include/timer.c | 0 .../CORTEX_LM3S811_GCC/hw_include/timer.h | 0 .../CORTEX_LM3S811_GCC/hw_include/uart.c | 0 .../CORTEX_LM3S811_GCC/hw_include/uart.h | 0 .../CORTEX_LM3S811_GCC/hw_include/watchdog.c | 0 .../CORTEX_LM3S811_GCC/hw_include/watchdog.h | 0 .../Demo}/CORTEX_LM3S811_GCC/init/startup.c | 0 .../Demo}/CORTEX_LM3S811_GCC/main.c | 0 .../Demo}/CORTEX_LM3S811_GCC/makedefs | 0 .../Demo}/CORTEX_LM3S811_GCC/standalone.ld | 0 .../Demo}/CORTEX_LM3S811_IAR/FreeRTOSConfig.h | 0 .../Demo}/CORTEX_LM3S811_IAR/LM3S811.icf | 0 .../LuminaryCode/DriverLib.h | 0 .../CORTEX_LM3S811_IAR/LuminaryCode/EULA.txt | 0 .../CORTEX_LM3S811_IAR/LuminaryCode/adc.c | 0 .../CORTEX_LM3S811_IAR/LuminaryCode/adc.h | 0 .../CORTEX_LM3S811_IAR/LuminaryCode/comp.c | 0 .../CORTEX_LM3S811_IAR/LuminaryCode/comp.h | 0 .../CORTEX_LM3S811_IAR/LuminaryCode/cpu.h | 0 .../CORTEX_LM3S811_IAR/LuminaryCode/debug.h | 0 .../LuminaryCode/driverlib.r79 | Bin .../CORTEX_LM3S811_IAR/LuminaryCode/flash.c | 0 .../CORTEX_LM3S811_IAR/LuminaryCode/flash.h | 0 .../CORTEX_LM3S811_IAR/LuminaryCode/gpio.c | 0 .../CORTEX_LM3S811_IAR/LuminaryCode/gpio.h | 0 .../CORTEX_LM3S811_IAR/LuminaryCode/hw_adc.h | 0 .../CORTEX_LM3S811_IAR/LuminaryCode/hw_comp.h | 0 .../LuminaryCode/hw_flash.h | 0 .../CORTEX_LM3S811_IAR/LuminaryCode/hw_gpio.h | 0 .../CORTEX_LM3S811_IAR/LuminaryCode/hw_i2c.h | 0 .../CORTEX_LM3S811_IAR/LuminaryCode/hw_ints.h | 0 .../LuminaryCode/hw_memmap.h | 0 .../CORTEX_LM3S811_IAR/LuminaryCode/hw_nvic.h | 0 .../CORTEX_LM3S811_IAR/LuminaryCode/hw_pwm.h | 0 .../CORTEX_LM3S811_IAR/LuminaryCode/hw_qei.h | 0 .../CORTEX_LM3S811_IAR/LuminaryCode/hw_ssi.h | 0 .../LuminaryCode/hw_sysctl.h | 0 .../LuminaryCode/hw_timer.h | 0 .../LuminaryCode/hw_types.h | 0 .../CORTEX_LM3S811_IAR/LuminaryCode/hw_uart.h | 0 .../LuminaryCode/hw_watchdog.h | 0 .../CORTEX_LM3S811_IAR/LuminaryCode/i2c.c | 0 .../CORTEX_LM3S811_IAR/LuminaryCode/i2c.h | 0 .../LuminaryCode/interrupt.c | 0 .../LuminaryCode/interrupt.h | 0 .../LuminaryCode/osram96x16.c | 0 .../LuminaryCode/osram96x16.h | 0 .../CORTEX_LM3S811_IAR/LuminaryCode/pwm.c | 0 .../CORTEX_LM3S811_IAR/LuminaryCode/pwm.h | 0 .../CORTEX_LM3S811_IAR/LuminaryCode/qei.c | 0 .../CORTEX_LM3S811_IAR/LuminaryCode/qei.h | 0 .../CORTEX_LM3S811_IAR/LuminaryCode/ssi.c | 0 .../CORTEX_LM3S811_IAR/LuminaryCode/ssi.h | 0 .../CORTEX_LM3S811_IAR/LuminaryCode/sysctl.c | 0 .../CORTEX_LM3S811_IAR/LuminaryCode/sysctl.h | 0 .../CORTEX_LM3S811_IAR/LuminaryCode/systick.c | 0 .../CORTEX_LM3S811_IAR/LuminaryCode/systick.h | 0 .../CORTEX_LM3S811_IAR/LuminaryCode/timer.c | 0 .../CORTEX_LM3S811_IAR/LuminaryCode/timer.h | 0 .../CORTEX_LM3S811_IAR/LuminaryCode/uart.c | 0 .../CORTEX_LM3S811_IAR/LuminaryCode/uart.h | 0 .../LuminaryCode/watchdog.c | 0 .../LuminaryCode/watchdog.h | 0 .../Demo}/CORTEX_LM3S811_IAR/RTOSDemo.ewd | 0 .../Demo}/CORTEX_LM3S811_IAR/RTOSDemo.ewp | 0 .../Demo}/CORTEX_LM3S811_IAR/RTOSDemo.eww | 0 .../Demo}/CORTEX_LM3S811_IAR/main.c | 0 .../Demo}/CORTEX_LM3S811_IAR/startup.c | 0 .../CORTEX_LM3S811_KEIL/FreeRTOSConfig.h | 0 .../LuminaryCode/DriverLib.h | 0 .../CORTEX_LM3S811_KEIL/LuminaryCode/hw_adc.h | 0 .../LuminaryCode/hw_comp.h | 0 .../LuminaryCode/hw_flash.h | 0 .../LuminaryCode/hw_gpio.h | 0 .../CORTEX_LM3S811_KEIL/LuminaryCode/hw_i2c.h | 0 .../LuminaryCode/hw_ints.h | 0 .../LuminaryCode/hw_memmap.h | 0 .../LuminaryCode/hw_nvic.h | 0 .../CORTEX_LM3S811_KEIL/LuminaryCode/hw_pwm.h | 0 .../CORTEX_LM3S811_KEIL/LuminaryCode/hw_qei.h | 0 .../CORTEX_LM3S811_KEIL/LuminaryCode/hw_ssi.h | 0 .../LuminaryCode/hw_sysctl.h | 0 .../LuminaryCode/hw_timer.h | 0 .../LuminaryCode/hw_types.h | 0 .../LuminaryCode/hw_uart.h | 0 .../LuminaryCode/hw_watchdog.h | 0 .../LuminaryCode/osram96x16.c | 0 .../LuminaryCode/osram96x16.h | 0 .../LuminaryCode/src/adc.h | 0 .../LuminaryCode/src/comp.h | 0 .../LuminaryCode/src/cpu.h | 0 .../LuminaryCode/src/debug.h | 0 .../LuminaryCode/src/flash.h | 0 .../LuminaryCode/src/gpio.h | 0 .../LuminaryCode/src/i2c.h | 0 .../LuminaryCode/src/interrupt.h | 0 .../LuminaryCode/src/pwm.h | 0 .../LuminaryCode/src/qei.h | 0 .../LuminaryCode/src/ssi.h | 0 .../LuminaryCode/src/sysctl.h | 0 .../LuminaryCode/src/systick.h | 0 .../LuminaryCode/src/timer.h | 0 .../LuminaryCode/src/uart.h | 0 .../LuminaryCode/src/watchdog.h | 0 .../Demo}/CORTEX_LM3S811_KEIL/RTOSDemo.Opt | 0 .../Demo}/CORTEX_LM3S811_KEIL/RTOSDemo.Uv2 | 0 .../Demo}/CORTEX_LM3S811_KEIL/heap/heap_1.c | 0 .../Demo}/CORTEX_LM3S811_KEIL/main.c | 0 .../Demo}/CORTEX_LM3S811_KEIL/readme.txt | 0 .../Demo}/CORTEX_LM3S811_KEIL/startup_rvmdk.S | 0 .../.plugins/org.eclipse.cdt.core/.log | 0 .../org.eclipse.cdt.core/shareddefaults.xml | 0 .../.plugins/org.eclipse.cdt.make.core/.log | 0 .../org.eclipse.cdt.make.core/RTOSDemo.sc | 0 .../org.eclipse.cdt.make.core/specs.c | 0 .../org.eclipse.cdt.make.core/specs.cpp | 0 .../dialog_settings.xml | 0 .../org.eclipse.cdt.ui/cHelpSettings.xml | 0 .../org.eclipse.cdt.ui/dialog_settings.xml | 0 .../.indexes/2f/4b/45/properties.index | Bin .../.indexes/33/5b/e7/7a/properties.index | Bin .../RTOSDemo/.indexes/33/a8/history.index | Bin .../RTOSDemo/.indexes/33/history.index | Bin .../RTOSDemo/.indexes/33/properties.index | Bin .../.projects/RTOSDemo/.indexes/history.index | Bin .../RTOSDemo/.indexes/properties.index | Bin .../.projects/RTOSDemo/.markers | Bin .../.root/.indexes/history.version | 0 .../.root/.indexes/properties.index | Bin .../.root/.indexes/properties.version | 0 .../org.eclipse.core.resources/.root/19.tree | Bin .../org.eclipse.core.resources/.root/23.tree | Bin .../.safetable/org.eclipse.core.resources | Bin .../org.eclipse.cdt.core.prj-RTOSDemo.prefs | 0 .../org.eclipse.cdt.debug.core.prefs | 0 .../.settings/org.eclipse.cdt.debug.ui.prefs | 0 .../org.eclipse.cdt.managedbuilder.core.prefs | 0 .../.settings/org.eclipse.cdt.ui.prefs | 0 .../org.eclipse.core.resources.prefs | 0 .../.settings/org.eclipse.debug.ui.prefs | 0 .../org.eclipse.epp.usagedata.recording.prefs | 0 .../org.eclipse.equinox.p2.ui.sdk.prefs | 0 .../.settings/org.eclipse.help.ui.prefs | 0 .../org.eclipse.mylyn.context.core.prefs | 0 .../.settings/org.eclipse.search.prefs | 0 .../.settings/org.eclipse.team.cvs.ui.prefs | 0 .../.settings/org.eclipse.team.ui.prefs | 0 .../.settings/org.eclipse.ui.editors.prefs | 0 .../.settings/org.eclipse.ui.ide.prefs | 0 .../.settings/org.eclipse.ui.prefs | 0 .../.settings/org.eclipse.ui.workbench.prefs | 0 .../.launches/OpenOCD Programmer.launch | 0 .../.launches/OpenOCD Server.launch | 0 .../.launches/RTOSDemo.launch | 0 .../org.eclipse.debug.ui/dialog_settings.xml | 0 .../launchConfigurationHistory.xml | 0 .../dialog_settings.xml | 0 .../licenses.xml | 0 .../org.eclipse.help.ui/dialog_settings.xml | 0 .../scope_sets/Default.pref | 0 .../scope_sets/relative_path.hist | 0 .../scope_sets/working_set.hist | 0 .../scope_sets/working_sets.hist | 0 .../dialog_settings.xml | 0 .../org.eclipse.search/dialog_settings.xml | 0 .../dialog_settings.xml | 0 .../org.eclipse.ui.ide/dialog_settings.xml | 0 .../org.eclipse.ui.intro/dialog_settings.xml | 0 .../dialog_settings.xml | 0 .../dialog_settings.xml | 0 .../org.eclipse.ui.workbench/workbench.xml | 0 .../org.eclipse.ui.workbench/workingsets.xml | 0 .../org.eclipse.ui/dialog_settings.xml | 0 .../org.eclipse.update.ui/dialog_settings.xml | 0 .../.metadata/version.ini | 0 .../RTOSDemo/.cproject | 0 .../CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/.project | 0 .../org.eclipse.ltk.core.refactoring.prefs | 0 .../RTOSDemo/FreeRTOSConfig.h | 0 .../RTOSDemo/IntQueueTimer.c | 0 .../RTOSDemo/IntQueueTimer.h | 0 .../CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/Makefile | 0 .../RTOSDemo/ParTest/ParTest.c | 0 .../CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/bitmap.h | 0 .../RTOSDemo/formike128x128x16.c | 0 .../RTOSDemo/formike128x128x16.h | 0 .../RTOSDemo/lcd_message.h | 0 .../CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/main.c | 0 .../RTOSDemo/osram128x64x4.c | 0 .../RTOSDemo/osram128x64x4.h | 0 .../RTOSDemo/pack_struct_end.h | 0 .../RTOSDemo/pack_struct_start.h | 0 .../RTOSDemo/rit128x96x4.c | 0 .../RTOSDemo/standalone.ld | 0 .../RTOSDemo/startup.c | 0 .../RTOSDemo/timertest.c | 0 .../RTOSDemo/webserver/Makefile.webserver | 0 .../RTOSDemo/webserver/clock-arch.h | 0 .../RTOSDemo/webserver/emac.c | 0 .../RTOSDemo/webserver/emac.h | 0 .../RTOSDemo/webserver/http-strings | 0 .../RTOSDemo/webserver/http-strings.c | 0 .../RTOSDemo/webserver/http-strings.h | 0 .../RTOSDemo/webserver/httpd-cgi.c | 0 .../RTOSDemo/webserver/httpd-cgi.h | 0 .../RTOSDemo/webserver/httpd-fs.c | 0 .../RTOSDemo/webserver/httpd-fs.h | 0 .../RTOSDemo/webserver/httpd-fs/404.html | 0 .../RTOSDemo/webserver/httpd-fs/index.html | 0 .../RTOSDemo/webserver/httpd-fs/index.shtml | 0 .../RTOSDemo/webserver/httpd-fs/io.shtml | 0 .../RTOSDemo/webserver/httpd-fs/runtime.shtml | 0 .../RTOSDemo/webserver/httpd-fs/stats.shtml | 0 .../RTOSDemo/webserver/httpd-fs/tcp.shtml | 0 .../RTOSDemo/webserver/httpd-fsdata.c | 0 .../RTOSDemo/webserver/httpd-fsdata.h | 0 .../RTOSDemo/webserver/httpd.c | 0 .../RTOSDemo/webserver/httpd.h | 0 .../RTOSDemo/webserver/makefsdata | 0 .../RTOSDemo/webserver/makestrings | 0 .../RTOSDemo/webserver/uIP_Task.c | 0 .../RTOSDemo/webserver/uip-conf.h | 0 .../RTOSDemo/webserver/webserver.h | 0 .../CORTEX_LM3Sxxxx_Eclipse/fury_ft2232.cfg | 0 .../fury_ft2232_flash.cfg | 0 .../CORTEX_LM3Sxxxx_Eclipse/program.script | 0 .../CORTEX_LM3Sxxxx_IAR_Keil/FreeRTOSConfig.h | 0 .../CORTEX_LM3Sxxxx_IAR_Keil/IntQueueTimer.c | 0 .../CORTEX_LM3Sxxxx_IAR_Keil/IntQueueTimer.h | 0 .../CORTEX_LM3Sxxxx_IAR_Keil/LM3Sxxxx.icf | 0 .../ParTest/ParTest.c | 0 .../CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.Opt | 0 .../CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.Uv2 | 0 .../CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.ewd | 0 .../CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.ewp | 0 .../CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.eww | 0 .../Demo}/CORTEX_LM3Sxxxx_IAR_Keil/bitmap.h | 0 .../formike128x128x16.c | 0 .../formike128x128x16.h | 0 .../CORTEX_LM3Sxxxx_IAR_Keil/lcd_message.h | 0 .../Demo}/CORTEX_LM3Sxxxx_IAR_Keil/main.c | 0 .../CORTEX_LM3Sxxxx_IAR_Keil/osram128x64x4.c | 0 .../CORTEX_LM3Sxxxx_IAR_Keil/osram128x64x4.h | 0 .../CORTEX_LM3Sxxxx_IAR_Keil/rit128x96x4.c | 0 .../settings/RTOSDemo.cspy.bat | 0 .../settings/RTOSDemo.dbgdt | 0 .../settings/RTOSDemo.dni | 0 .../settings/RTOSDemo.wsdt | 0 .../CORTEX_LM3Sxxxx_IAR_Keil/startup_ewarm.c | 0 .../CORTEX_LM3Sxxxx_IAR_Keil/startup_rvmdk.S | 0 .../CORTEX_LM3Sxxxx_IAR_Keil/timertest.c | 0 .../webserver/Makefile.webserver | 0 .../webserver/clock-arch.h | 0 .../CORTEX_LM3Sxxxx_IAR_Keil/webserver/emac.c | 0 .../CORTEX_LM3Sxxxx_IAR_Keil/webserver/emac.h | 0 .../webserver/http-strings | 0 .../webserver/http-strings.c | 0 .../webserver/http-strings.h | 0 .../webserver/httpd-cgi.c | 0 .../webserver/httpd-cgi.h | 0 .../webserver/httpd-fs.c | 0 .../webserver/httpd-fs.h | 0 .../webserver/httpd-fs/404.html | 0 .../webserver/httpd-fs/index.html | 0 .../webserver/httpd-fs/index.shtml | 0 .../webserver/httpd-fs/io.shtml | 0 .../webserver/httpd-fs/stats.shtml | 0 .../webserver/httpd-fs/tcp.shtml | 0 .../webserver/httpd-fsdata.c | 0 .../webserver/httpd-fsdata.h | 0 .../webserver/httpd.c | 0 .../webserver/httpd.h | 0 .../webserver/makefsdata | 0 .../webserver/makestrings | 0 .../webserver/uIP_Task.c | 0 .../webserver/uip-conf.h | 0 .../webserver/webserver.h | 0 .../CORTEX_LM3Sxxxx_Rowley/FreeRTOSConfig.h | 0 .../CORTEX_LM3Sxxxx_Rowley/IntQueueTimer.c | 0 .../CORTEX_LM3Sxxxx_Rowley/IntQueueTimer.h | 0 .../CORTEX_LM3Sxxxx_Rowley/LM3S_Startup.s | 0 .../CORTEX_LM3Sxxxx_Rowley/LM3S_Target.js | 0 .../CORTEX_LM3Sxxxx_Rowley/ParTest/ParTest.c | 0 .../Demo}/CORTEX_LM3Sxxxx_Rowley/RTOSDemo.hzp | 0 .../Demo}/CORTEX_LM3Sxxxx_Rowley/RTOSDemo.hzs | 0 .../Demo}/CORTEX_LM3Sxxxx_Rowley/bitmap.h | 0 .../formike128x128x16.c | 0 .../formike128x128x16.h | 0 .../CORTEX_LM3Sxxxx_Rowley/lcd_message.h | 0 .../Demo}/CORTEX_LM3Sxxxx_Rowley/main.c | 0 .../CORTEX_LM3Sxxxx_Rowley/osram128x64x4.c | 0 .../CORTEX_LM3Sxxxx_Rowley/osram128x64x4.h | 0 .../CORTEX_LM3Sxxxx_Rowley/pack_struct_end.h | 0 .../pack_struct_start.h | 0 .../CORTEX_LM3Sxxxx_Rowley/rit128x96x4.c | 0 .../Demo}/CORTEX_LM3Sxxxx_Rowley/thumb_crt0.s | 0 .../Demo}/CORTEX_LM3Sxxxx_Rowley/timertest.c | 0 .../webserver/Makefile.webserver | 0 .../webserver/clock-arch.h | 0 .../CORTEX_LM3Sxxxx_Rowley/webserver/emac.c | 0 .../CORTEX_LM3Sxxxx_Rowley/webserver/emac.h | 0 .../webserver/http-strings | 0 .../webserver/http-strings.c | 0 .../webserver/http-strings.h | 0 .../webserver/httpd-cgi.c | 0 .../webserver/httpd-cgi.h | 0 .../webserver/httpd-fs.c | 0 .../webserver/httpd-fs.h | 0 .../webserver/httpd-fs/404.html | 0 .../webserver/httpd-fs/index.html | 0 .../webserver/httpd-fs/index.shtml | 0 .../webserver/httpd-fs/io.shtml | 0 .../webserver/httpd-fs/runtime.shtml | 0 .../webserver/httpd-fs/stats.shtml | 0 .../webserver/httpd-fs/tcp.shtml | 0 .../webserver/httpd-fsdata.c | 0 .../webserver/httpd-fsdata.h | 0 .../CORTEX_LM3Sxxxx_Rowley/webserver/httpd.c | 0 .../CORTEX_LM3Sxxxx_Rowley/webserver/httpd.h | 0 .../webserver/makefsdata | 0 .../webserver/makestrings | 0 .../webserver/uIP_Task.c | 0 .../webserver/uip-conf.h | 0 .../webserver/webserver.h | 0 .../CORTEX_LPC1768_GCC_RedSuite/.cproject | 0 .../CORTEX_LPC1768_GCC_RedSuite/.project | 0 .../CreateProjectDirectoryStructure.bat | 0 .../src/FreeRTOSConfig.h | 0 .../src/LCD/font.h | 0 .../CORTEX_LPC1768_GCC_RedSuite/src/LCD/lcd.c | 0 .../CORTEX_LPC1768_GCC_RedSuite/src/LCD/lcd.h | 0 .../src/LCD/lcd_commands.h | 0 .../src/LCD/lcd_driver.c | 0 .../src/LCD/lcd_driver.h | 0 .../src/LCD/system_fixed_be_8_15.c | 0 .../CORTEX_LPC1768_GCC_RedSuite/src/LPC17xx.h | 0 .../src/LPCUSB/USB_CDC.c | 0 .../src/LPCUSB/type.h | 0 .../src/LPCUSB/usbapi.h | 0 .../src/LPCUSB/usbcontrol.c | 0 .../src/LPCUSB/usbdebug.h | 0 .../src/LPCUSB/usbhw_lpc.c | 0 .../src/LPCUSB/usbhw_lpc.h | 0 .../src/LPCUSB/usbinit.c | 0 .../src/LPCUSB/usbstdreq.c | 0 .../src/LPCUSB/usbstruct.h | 0 .../CORTEX_LPC1768_GCC_RedSuite/src/ParTest.c | 0 .../src/core_cm3.h | 0 .../src/cr_startup_lpc17.c | 0 .../CORTEX_LPC1768_GCC_RedSuite/src/main.c | 0 .../src/printf-stdarg.c | 0 .../src/rtosdemo_rdb1768_Debug.ld | 0 .../src/system_LPC17xx.h | 0 .../src/webserver/EthDev.h | 0 .../src/webserver/EthDev_LPC17xx.h | 0 .../src/webserver/clock-arch.h | 0 .../src/webserver/clock.h | 0 .../src/webserver/emac.c | 0 .../src/webserver/http-strings | 0 .../src/webserver/http-strings.c | 0 .../src/webserver/http-strings.h | 0 .../src/webserver/httpd-cgi.c | 0 .../src/webserver/httpd-cgi.h | 0 .../src/webserver/httpd-fs.c | 0 .../src/webserver/httpd-fs.h | 0 .../src/webserver/httpd-fs/404.html | 0 .../src/webserver/httpd-fs/index.html | 0 .../src/webserver/httpd-fs/index.shtml | 0 .../src/webserver/httpd-fs/io.shtml | 0 .../src/webserver/httpd-fs/runtime.shtml | 0 .../src/webserver/httpd-fs/stats.shtml | 0 .../src/webserver/httpd-fs/tcp.shtml | 0 .../src/webserver/httpd-fsdata.c | 0 .../src/webserver/httpd-fsdata.h | 0 .../src/webserver/httpd.c | 0 .../src/webserver/httpd.h | 0 .../src/webserver/lc-switch.h | 0 .../src/webserver/lc.h | 0 .../src/webserver/makefsdata | 0 .../src/webserver/makestrings | 0 .../src/webserver/psock.c | 0 .../src/webserver/psock.h | 0 .../src/webserver/pt.h | 0 .../src/webserver/timer.c | 0 .../src/webserver/timer.h | 0 .../src/webserver/uIP_Task.c | 0 .../src/webserver/uip-conf.h | 0 .../src/webserver/uip.c | 0 .../src/webserver/uip.h | 0 .../src/webserver/uip_arch.h | 0 .../src/webserver/uip_arp.c | 0 .../src/webserver/uip_arp.h | 0 .../src/webserver/uipopt.h | 0 .../src/webserver/webserver.h | 0 .../CORTEX_LPC1768_GCC_RedSuite/usbser.inf | 0 .../FreeRTOSConfig.h | 0 .../Demo}/CORTEX_LPC1768_GCC_Rowley/LED.h | 0 .../LPC1700_Startup.s | 0 .../Demo}/CORTEX_LPC1768_GCC_Rowley/LPC17xx.h | 0 .../LPCUSB/USB_CDC.c | 0 .../CORTEX_LPC1768_GCC_Rowley/LPCUSB/type.h | 0 .../CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbapi.h | 0 .../LPCUSB/usbcontrol.c | 0 .../LPCUSB/usbdebug.h | 0 .../LPCUSB/usbhw_lpc.c | 0 .../LPCUSB/usbhw_lpc.h | 0 .../LPCUSB/usbinit.c | 0 .../LPCUSB/usbstdreq.c | 0 .../LPCUSB/usbstruct.h | 0 .../Demo}/CORTEX_LPC1768_GCC_Rowley/ParTest.c | 0 .../CORTEX_LPC1768_GCC_Rowley/RTOSDemo.hzp | 0 .../CORTEX_LPC1768_GCC_Rowley/RTOSDemo.hzs | 0 .../CORTEX_LPC1768_GCC_Rowley/core_cm3.h | 0 .../flash_placement.xml | 0 .../Demo}/CORTEX_LPC1768_GCC_Rowley/main.c | 0 .../CORTEX_LPC1768_GCC_Rowley/printf-stdarg.c | 0 .../system_LPC17xx.h | 0 .../CORTEX_LPC1768_GCC_Rowley/usbser.inf | 0 .../webserver/EthDev.h | 0 .../webserver/EthDev_LPC17xx.h | 0 .../webserver/clock-arch.h | 0 .../webserver/emac.c | 0 .../webserver/http-strings | 0 .../webserver/http-strings.c | 0 .../webserver/http-strings.h | 0 .../webserver/httpd-cgi.c | 0 .../webserver/httpd-cgi.h | 0 .../webserver/httpd-fs.c | 0 .../webserver/httpd-fs.h | 0 .../webserver/httpd-fs/404.html | 0 .../webserver/httpd-fs/index.html | 0 .../webserver/httpd-fs/index.shtml | 0 .../webserver/httpd-fs/io.shtml | 0 .../webserver/httpd-fs/runtime.shtml | 0 .../webserver/httpd-fs/stats.shtml | 0 .../webserver/httpd-fs/tcp.shtml | 0 .../webserver/httpd-fsdata.c | 0 .../webserver/httpd-fsdata.h | 0 .../webserver/httpd.c | 0 .../webserver/httpd.h | 0 .../webserver/makefsdata | 0 .../webserver/makestrings | 0 .../webserver/uIP_Task.c | 0 .../webserver/uip-conf.h | 0 .../webserver/webserver.h | 0 .../Demo}/CORTEX_LPC1768_IAR/Flash.mac | 0 .../Demo}/CORTEX_LPC1768_IAR/FreeRTOSConfig.h | 0 .../Demo}/CORTEX_LPC1768_IAR/LED.h | 0 .../CORTEX_LPC1768_IAR/LPC1768_Flash.icf | 0 .../Demo}/CORTEX_LPC1768_IAR/LPC17xx.h | 0 .../Demo}/CORTEX_LPC1768_IAR/LPCUSB/USB_CDC.c | 0 .../Demo}/CORTEX_LPC1768_IAR/LPCUSB/type.h | 0 .../Demo}/CORTEX_LPC1768_IAR/LPCUSB/usbapi.h | 0 .../CORTEX_LPC1768_IAR/LPCUSB/usbcontrol.c | 0 .../CORTEX_LPC1768_IAR/LPCUSB/usbdebug.h | 0 .../CORTEX_LPC1768_IAR/LPCUSB/usbhw_lpc.c | 0 .../CORTEX_LPC1768_IAR/LPCUSB/usbhw_lpc.h | 0 .../Demo}/CORTEX_LPC1768_IAR/LPCUSB/usbinit.c | 0 .../CORTEX_LPC1768_IAR/LPCUSB/usbstdreq.c | 0 .../CORTEX_LPC1768_IAR/LPCUSB/usbstruct.h | 0 .../Demo}/CORTEX_LPC1768_IAR/ParTest.c | 0 .../Demo}/CORTEX_LPC1768_IAR/RTOSDemo.ewd | 0 .../Demo}/CORTEX_LPC1768_IAR/RTOSDemo.ewp | 0 .../Demo}/CORTEX_LPC1768_IAR/RTOSDemo.eww | 0 .../Demo}/CORTEX_LPC1768_IAR/cstartup_M.s | 0 .../Demo}/CORTEX_LPC1768_IAR/main.c | 0 .../Demo}/CORTEX_LPC1768_IAR/printf-stdarg.c | 0 .../settings/RTOSDemo.cspy.bat | 0 .../settings/RTOSDemo.dbgdt | 0 .../CORTEX_LPC1768_IAR/settings/RTOSDemo.dni | 0 .../CORTEX_LPC1768_IAR/settings/RTOSDemo.wsdt | 0 .../settings/RTOSDemo_Debug.jlink | 0 .../Demo}/CORTEX_LPC1768_IAR/system_LPC17xx.h | 0 .../Demo}/CORTEX_LPC1768_IAR/usbser.inf | 0 .../CORTEX_LPC1768_IAR/webserver/EthDev.h | 0 .../webserver/EthDev_LPC17xx.h | 0 .../CORTEX_LPC1768_IAR/webserver/clock-arch.h | 0 .../Demo}/CORTEX_LPC1768_IAR/webserver/emac.c | 0 .../CORTEX_LPC1768_IAR/webserver/http-strings | 0 .../webserver/http-strings.c | 0 .../webserver/http-strings.h | 0 .../CORTEX_LPC1768_IAR/webserver/httpd-cgi.c | 0 .../CORTEX_LPC1768_IAR/webserver/httpd-cgi.h | 0 .../CORTEX_LPC1768_IAR/webserver/httpd-fs.c | 0 .../CORTEX_LPC1768_IAR/webserver/httpd-fs.h | 0 .../webserver/httpd-fs/404.html | 0 .../webserver/httpd-fs/index.html | 0 .../webserver/httpd-fs/index.shtml | 0 .../webserver/httpd-fs/io.shtml | 0 .../webserver/httpd-fs/runtime.shtml | 0 .../webserver/httpd-fs/stats.shtml | 0 .../webserver/httpd-fs/tcp.shtml | 0 .../webserver/httpd-fsdata.c | 0 .../webserver/httpd-fsdata.h | 0 .../CORTEX_LPC1768_IAR/webserver/httpd.c | 0 .../CORTEX_LPC1768_IAR/webserver/httpd.h | 0 .../CORTEX_LPC1768_IAR/webserver/makefsdata | 0 .../CORTEX_LPC1768_IAR/webserver/makestrings | 0 .../CORTEX_LPC1768_IAR/webserver/uIP_Task.c | 0 .../CORTEX_LPC1768_IAR/webserver/uip-conf.h | 0 .../CORTEX_LPC1768_IAR/webserver/webserver.h | 0 .../CMSISv2p00_LPC11xx/.cproject | 0 .../CMSISv2p00_LPC11xx/.project | 0 .../docs/CMSIS END USER LICENCE AGREEMENT.pdf | Bin .../CMSISv2p00_LPC11xx/docs/cmsis_readme.txt | 0 .../CMSISv2p00_LPC11xx/history.txt | 0 .../CMSISv2p00_LPC11xx/inc/LPC11xx.h | 0 .../CMSISv2p00_LPC11xx/inc/core_cm0.h | 0 .../CMSISv2p00_LPC11xx/inc/core_cmFunc.h | 0 .../CMSISv2p00_LPC11xx/inc/core_cmInstr.h | 0 .../CMSISv2p00_LPC11xx/inc/system_LPC11xx.h | 0 .../CMSISv2p00_LPC11xx/src/core_cm0.c | 0 .../CMSISv2p00_LPC11xx/src/system_LPC11xx.c | 0 .../RTOSDemo/.cproject | 0 .../RTOSDemo/.project | 0 .../CreateProjectDirectoryStructure.bat | 0 .../RTOSDemo/Source/FreeRTOSConfig.h | 0 .../RTOSDemo/Source/IntQueueTimer.c | 0 .../RTOSDemo/Source/IntQueueTimer.h | 0 .../RTOSDemo/Source/RegTest.c | 0 .../RTOSDemo/Source/cr_startup_lpc11.c | 0 .../RTOSDemo/Source/main-blinky.c | 0 .../RTOSDemo/Source/main-full.c | 0 .../RTOSDemo/Source/main.c | 0 .../Eval-Board/stm320518_eval.c | 0 .../Eval-Board/stm320518_eval.h | 0 .../Eval-Board/stm32_eval_legacy.h | 0 .../Eval-Board/stm32f0xx_conf.h | 0 .../CORTEX_M0_STM32F0518_IAR/FreeRTOSConfig.h | 0 .../CMSIS END USER LICENCE AGREEMENT.pdf | Bin .../Device/ST/STM32F0xx/Include/stm32f0xx.h | 0 .../ST/STM32F0xx/Include/system_stm32f0xx.h | 0 .../Device/ST/STM32F0xx/Release_Notes.html | 0 .../Templates/TrueSTUDIO/startup_stm32f0xx.s | 0 .../Source/Templates/arm/startup_stm32f0xx.s | 0 .../Templates/gcc_ride7/startup_stm32f0xx.s | 0 .../Source/Templates/iar/startup_stm32f0xx.s | 0 .../Source/Templates/system_stm32f0xx.c | 0 .../CMSIS/Include/arm_common_tables.h | 0 .../Libraries/CMSIS/Include/arm_math.h | 0 .../Libraries/CMSIS/Include/core_cm0.h | 0 .../Libraries/CMSIS/Include/core_cm3.h | 0 .../Libraries/CMSIS/Include/core_cm4.h | 0 .../Libraries/CMSIS/Include/core_cm4_simd.h | 0 .../Libraries/CMSIS/Include/core_cmFunc.h | 0 .../Libraries/CMSIS/Include/core_cmInstr.h | 0 .../Libraries/CMSIS/README.txt | 0 ...MCD-ST Liberty SW License Agreement V2.pdf | Bin .../Release_Notes.html | 0 .../inc/stm32f0xx_adc.h | 0 .../inc/stm32f0xx_cec.h | 0 .../inc/stm32f0xx_comp.h | 0 .../inc/stm32f0xx_crc.h | 0 .../inc/stm32f0xx_dac.h | 0 .../inc/stm32f0xx_dbgmcu.h | 0 .../inc/stm32f0xx_dma.h | 0 .../inc/stm32f0xx_exti.h | 0 .../inc/stm32f0xx_flash.h | 0 .../inc/stm32f0xx_gpio.h | 0 .../inc/stm32f0xx_i2c.h | 0 .../inc/stm32f0xx_iwdg.h | 0 .../inc/stm32f0xx_misc.h | 0 .../inc/stm32f0xx_pwr.h | 0 .../inc/stm32f0xx_rcc.h | 0 .../inc/stm32f0xx_rtc.h | 0 .../inc/stm32f0xx_spi.h | 0 .../inc/stm32f0xx_syscfg.h | 0 .../inc/stm32f0xx_tim.h | 0 .../inc/stm32f0xx_usart.h | 0 .../inc/stm32f0xx_wwdg.h | 0 .../src/stm32f0xx_adc.c | 0 .../src/stm32f0xx_cec.c | 0 .../src/stm32f0xx_comp.c | 0 .../src/stm32f0xx_crc.c | 0 .../src/stm32f0xx_dac.c | 0 .../src/stm32f0xx_dbgmcu.c | 0 .../src/stm32f0xx_dma.c | 0 .../src/stm32f0xx_exti.c | 0 .../src/stm32f0xx_flash.c | 0 .../src/stm32f0xx_gpio.c | 0 .../src/stm32f0xx_i2c.c | 0 .../src/stm32f0xx_iwdg.c | 0 .../src/stm32f0xx_misc.c | 0 .../src/stm32f0xx_pwr.c | 0 .../src/stm32f0xx_rcc.c | 0 .../src/stm32f0xx_rtc.c | 0 .../src/stm32f0xx_spi.c | 0 .../src/stm32f0xx_syscfg.c | 0 .../src/stm32f0xx_tim.c | 0 .../src/stm32f0xx_usart.c | 0 .../src/stm32f0xx_wwdg.c | 0 .../Demo}/CORTEX_M0_STM32F0518_IAR/ParTest.c | 0 .../CORTEX_M0_STM32F0518_IAR/RTOSDemo.ewd | 0 .../CORTEX_M0_STM32F0518_IAR/RTOSDemo.ewp | 0 .../CORTEX_M0_STM32F0518_IAR/RTOSDemo.eww | 0 .../Demo}/CORTEX_M0_STM32F0518_IAR/RegTest.s | 0 .../CORTEX_M0_STM32F0518_IAR/main-blinky.c | 0 .../CORTEX_M0_STM32F0518_IAR/main-full.c | 0 .../Demo}/CORTEX_M0_STM32F0518_IAR/main.c | 0 .../startup_stm32f0xx.s | 0 .../stm32f0xx_flash.icf | 0 .../.cproject | 0 .../.project | 0 ...lic.truestudio.debug.hardware_device.prefs | 0 .../org.eclipse.cdt.managedbuilder.core.prefs | 0 .../CMSIS/Include/arm_common_tables.h | 0 .../CMSIS/Include/arm_math.h | 0 .../CMSIS/Include/core_cm4.h | 0 .../CMSIS/Include/core_cm4_simd.h | 0 .../CMSIS/Include/core_cmFunc.h | 0 .../CMSIS/Include/core_cmInstr.h | 0 .../Infineon/XMC4500_series/Include/XMC4500.h | 0 .../Infineon/XMC4500_series/Include/gpio.h | 0 .../XMC4500_series/Include/system_XMC4500.h | 0 .../CreateProjectDirectoryStructure.bat | 0 .../src/FreeRTOSConfig.h | 0 .../src/main.c | 0 .../src/main_blinky.c | 0 .../src/main_full.c | 0 .../src/startup_XMC4500.s | 0 .../src/system_XMC4500.c | 0 .../xmc4500_flash.ld | 0 .../FreeRTOSConfig.h | 0 .../RTOSDemo.ewd | 0 .../RTOSDemo.ewp | 0 .../RTOSDemo.eww | 0 .../CORTEX_M4F_Infineon_XMC4500_IAR/RegTest.c | 0 .../CORTEX_M4F_Infineon_XMC4500_IAR/RegTest.s | 0 .../XMC4500_Flash.icf | 0 .../CORTEX_M4F_Infineon_XMC4500_IAR/main.c | 0 .../main_blinky.c | 0 .../main_full.c | 0 .../settings/RTOSDemo.cspy.bat | 0 .../settings/RTOSDemo.dbgdt | 0 .../settings/RTOSDemo.dni | 0 .../settings/RTOSDemo.wsdt | 0 .../Infineon/XMC45xx/System_XMC4500.c | 0 .../DeviceSupport/Infineon/XMC45xx/XMC4500.h | 0 .../startup/iar/vector_table_M_forXMC4500.s | 0 .../Infineon/XMC45xx/system_XMC4500.h | 0 .../system/low_level_init.c | 0 .../Dbg_Flash.ini | 0 .../Dbg_RAM TraceETM.ini | 0 .../Dbg_RAM.ini | 0 .../FreeRTOSConfig.h | 0 .../RTOSDemo.uvopt | 0 .../RTOSDemo.uvproj | 0 .../RegTest.c | 0 .../System_XMC4500.c | 0 .../Template.sct | 0 .../CORTEX_M4F_Infineon_XMC4500_Keil/main.c | 0 .../main_blinky.c | 0 .../main_full.c | 0 .../startup_XMC4500.s | 0 .../.cproject | 0 .../.project | 0 .../CreateProjectDirectoryStructure.bat | 0 .../FreeRTOSConfig.h | 0 .../RTOSDemo.lsl | 0 .../Startup/Infineon/XMC4500/cstart_XMC4500.c | 0 .../Startup/Infineon/XMC4500/system_XMC4500.c | 0 .../main.c | 0 .../main_blinky.c | 0 .../main_full.c | 0 .../CORTEX_M4F_M0_LPC43xx_Keil/M0/ReadMe.txt | 0 .../M4/FreeRTOSConfig.h | 0 .../M4/LPC43XX-M4-FLASH-DEBUG.ini | 0 .../M4/LPC43XX-M4-FLASH-PROGRAM.ini | 0 .../CORTEX_M4F_M0_LPC43xx_Keil/M4/M4.uvopt | 0 .../CORTEX_M4F_M0_LPC43xx_Keil/M4/M4.uvproj | 0 .../CORTEX_M4F_M0_LPC43xx_Keil/M4/ParTest.c | 0 .../CORTEX_M4F_M0_LPC43xx_Keil/M4/RegTest.c | 0 .../CORTEX_M4F_M0_LPC43xx_Keil/M4/main.c | 0 .../M4_M0_ipc.uvmpw | 0 .../platform/M4_Flash.sct | 0 .../M4_PeripheralLibraryFiles/lpc43xx_cgu.c | 0 .../M4_PeripheralLibraryFiles/lpc43xx_cgu.h | 0 .../M4_PeripheralLibraryFiles/lpc43xx_emc.c | 0 .../M4_PeripheralLibraryFiles/lpc43xx_emc.h | 0 .../M4_PeripheralLibraryFiles/lpc43xx_i2c.c | 0 .../M4_PeripheralLibraryFiles/lpc43xx_i2c.h | 0 .../lpc43xx_libcfg_default.h | 0 .../M4_PeripheralLibraryFiles/lpc_types.h | 0 .../platform/platform_check.h | 0 .../platform/platform_config.c | 0 .../platform/platform_config.h | 0 .../platform/startup_LPC43xx.s | 0 .../system/Hitex_Fast_Startup.c | 0 .../system/LPC43xx.h | 0 .../system/config.h | 0 .../system/core_cm4.c | 0 .../system/core_cm4.h | 0 .../system/core_cmFunc.h | 0 .../system/core_cmInstr.h | 0 .../CORTEX_M4F_M0_LPC43xx_Keil/system/dma.h | 0 .../system/emc_LPC43xx.c | 0 .../system/emc_LPC43xx.h | 0 .../system/fpu_init.c | 0 .../system/fpu_init.h | 0 .../CORTEX_M4F_M0_LPC43xx_Keil/system/scu.c | 0 .../CORTEX_M4F_M0_LPC43xx_Keil/system/scu.h | 0 .../system/startup_LPC43xx.s | 0 .../system/system_LPC43xx.c | 0 .../system/system_LPC43xx.h | 0 .../CORTEX_M4F_M0_LPC43xx_Keil/system/type.h | 0 .../FreeRTOSConfig.h | 0 .../Device/ST/STM32F4xx/Include/stm32f4xx.h | 0 .../ST/STM32F4xx/Include/system_stm32f4xx.h | 0 .../Device/ST/STM32F4xx/Release_Notes.html | 0 .../Source/Templates/iar/startup_stm32f4xx.s | 0 .../Source/Templates/system_stm32f4xx.c | 0 .../Release_Notes.html | 0 .../STM32F4xx_StdPeriph_Driver/inc/misc.h | 0 .../inc/stm32f4xx_adc.h | 0 .../inc/stm32f4xx_can.h | 0 .../inc/stm32f4xx_crc.h | 0 .../inc/stm32f4xx_cryp.h | 0 .../inc/stm32f4xx_dac.h | 0 .../inc/stm32f4xx_dbgmcu.h | 0 .../inc/stm32f4xx_dcmi.h | 0 .../inc/stm32f4xx_dma.h | 0 .../inc/stm32f4xx_exti.h | 0 .../inc/stm32f4xx_flash.h | 0 .../inc/stm32f4xx_fsmc.h | 0 .../inc/stm32f4xx_gpio.h | 0 .../inc/stm32f4xx_hash.h | 0 .../inc/stm32f4xx_i2c.h | 0 .../inc/stm32f4xx_iwdg.h | 0 .../inc/stm32f4xx_pwr.h | 0 .../inc/stm32f4xx_rcc.h | 0 .../inc/stm32f4xx_rng.h | 0 .../inc/stm32f4xx_rtc.h | 0 .../inc/stm32f4xx_sdio.h | 0 .../inc/stm32f4xx_spi.h | 0 .../inc/stm32f4xx_syscfg.h | 0 .../inc/stm32f4xx_tim.h | 0 .../inc/stm32f4xx_usart.h | 0 .../inc/stm32f4xx_wwdg.h | 0 .../STM32F4xx_StdPeriph_Driver/src/misc.c | 0 .../src/stm32f4xx_exti.c | 0 .../src/stm32f4xx_gpio.c | 0 .../src/stm32f4xx_rcc.c | 0 .../src/stm32f4xx_syscfg.c | 0 .../Demo}/CORTEX_M4F_STM32F407ZG-SK/ParTest.c | 0 .../CORTEX_M4F_STM32F407ZG-SK/RTOSDemo.ewd | 0 .../CORTEX_M4F_STM32F407ZG-SK/RTOSDemo.ewp | 0 .../CORTEX_M4F_STM32F407ZG-SK/RTOSDemo.eww | 0 .../Demo}/CORTEX_M4F_STM32F407ZG-SK/RegTest.s | 0 .../board/arm_comm.h | 0 .../board/iar_stm32f407zg_sk.c | 0 .../board/iar_stm32f407zg_sk.h | 0 .../config/stm32f4xx_flash.icf | 0 .../Demo}/CORTEX_M4F_STM32F407ZG-SK/main.c | 0 .../settings/RTOSDemo.cspy.bat | 0 .../settings/RTOSDemo.dbgdt | 0 .../settings/RTOSDemo.dni | 0 .../settings/RTOSDemo.wsdt | 0 .../settings/Test.cspy.bat | 0 .../settings/Test.dbgdt | 0 .../settings/Test.dni | 0 .../settings/Test.wsdt | 0 .../settings/Test_Flash Debug.jlink | 0 .../startup/startup_stm32f4xx.s | 0 .../startup/system_stm32f4xx.c | 0 .../stm32f4xx_conf.h | 0 .../CORTEX_M4F_STM32F407ZG-SK/stm32f4xx_it.c | 0 .../CORTEX_M4F_STM32F407ZG-SK/stm32f4xx_it.h | 0 .../RTOSDemo.atsln | 0 .../RTOSDemo.atsuo | Bin .../RTOSDemo.cproj | 0 .../src/Common-Demo-Source/BlockQ.c | 0 .../src/Common-Demo-Source/GenQTest.c | 0 .../src/Common-Demo-Source/PollQ.c | 0 .../src/Common-Demo-Source/blocktim.c | 0 .../src/Common-Demo-Source/comtest.c | 0 .../src/Common-Demo-Source/countsem.c | 0 .../src/Common-Demo-Source/death.c | 0 .../src/Common-Demo-Source/dynamic.c | 0 .../src/Common-Demo-Source/flash_timer.c | 0 .../src/Common-Demo-Source/include/BlockQ.h | 0 .../src/Common-Demo-Source/include/GenQTest.h | 0 .../src/Common-Demo-Source/include/PollQ.h | 0 .../src/Common-Demo-Source/include/blocktim.h | 0 .../src/Common-Demo-Source/include/comtest2.h | 0 .../src/Common-Demo-Source/include/countsem.h | 0 .../src/Common-Demo-Source/include/death.h | 0 .../Common-Demo-Source/include/demo_serial.h | 0 .../src/Common-Demo-Source/include/dynamic.h | 0 .../Common-Demo-Source/include/flash_timer.h | 0 .../src/Common-Demo-Source/include/integer.h | 0 .../src/Common-Demo-Source/include/partest.h | 0 .../src/Common-Demo-Source/include/recmutex.h | 0 .../src/Common-Demo-Source/include/semtest.h | 0 .../src/Common-Demo-Source/integer.c | 0 .../src/Common-Demo-Source/recmutex.c | 0 .../src/Common-Demo-Source/semtest.c | 0 .../src/FreeRTOSConfig.h | 0 .../src/ParTest.c | 0 .../CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf.h | 0 .../src/asf/common/boards/board.h | 0 .../src/asf/common/services/clock/genclk.h | 0 .../src/asf/common/services/clock/osc.h | 0 .../src/asf/common/services/clock/pll.h | 0 .../asf/common/services/clock/sam4s/genclk.h | 0 .../src/asf/common/services/clock/sam4s/osc.h | 0 .../src/asf/common/services/clock/sam4s/pll.h | 0 .../asf/common/services/clock/sam4s/sysclk.c | 0 .../asf/common/services/clock/sam4s/sysclk.h | 0 .../src/asf/common/services/clock/sysclk.h | 0 .../src/asf/common/services/gpio/gpio.h | 0 .../services/gpio/sam_ioport/sam_gpio.h | 0 .../src/asf/common/utils/interrupt.h | 0 .../utils/interrupt/interrupt_sam_nvic.c | 0 .../utils/interrupt/interrupt_sam_nvic.h | 0 .../src/asf/sam/boards/sam4s_ek/init.c | 0 .../src/asf/sam/boards/sam4s_ek/sam4s_ek.h | 0 .../src/asf/sam/drivers/pio/pio.c | 0 .../src/asf/sam/drivers/pio/pio.h | 0 .../src/asf/sam/drivers/pio/pio_handler.c | 0 .../src/asf/sam/drivers/pio/pio_handler.h | 0 .../src/asf/sam/drivers/pmc/pmc.c | 0 .../src/asf/sam/drivers/pmc/pmc.h | 0 .../src/asf/sam/drivers/pmc/sleep.h | 0 .../src/asf/sam/drivers/usart/usart.c | 0 .../src/asf/sam/drivers/usart/usart.h | 0 .../sam4s/include/component/component_acc.h | 0 .../sam4s/include/component/component_adc.h | 0 .../include/component/component_chipid.h | 0 .../sam4s/include/component/component_crccu.h | 0 .../sam4s/include/component/component_dacc.h | 0 .../sam4s/include/component/component_efc.h | 0 .../sam4s/include/component/component_gpbr.h | 0 .../sam4s/include/component/component_hsmci.h | 0 .../include/component/component_matrix.h | 0 .../sam4s/include/component/component_pdc.h | 0 .../sam4s/include/component/component_pio.h | 0 .../sam4s/include/component/component_pmc.h | 0 .../sam4s/include/component/component_pwm.h | 0 .../sam4s/include/component/component_rstc.h | 0 .../sam4s/include/component/component_rtc.h | 0 .../sam4s/include/component/component_rtt.h | 0 .../sam4s/include/component/component_smc.h | 0 .../sam4s/include/component/component_spi.h | 0 .../sam4s/include/component/component_ssc.h | 0 .../sam4s/include/component/component_supc.h | 0 .../sam4s/include/component/component_tc.h | 0 .../sam4s/include/component/component_twi.h | 0 .../sam4s/include/component/component_uart.h | 0 .../sam4s/include/component/component_udp.h | 0 .../sam4s/include/component/component_usart.h | 0 .../sam4s/include/component/component_wdt.h | 0 .../sam4s/include/instance/instance_acc.h | 0 .../sam4s/include/instance/instance_adc.h | 0 .../sam4s/include/instance/instance_chipid.h | 0 .../sam4s/include/instance/instance_crccu.h | 0 .../sam4s/include/instance/instance_dacc.h | 0 .../sam4s/include/instance/instance_efc.h | 0 .../sam4s/include/instance/instance_gpbr.h | 0 .../sam4s/include/instance/instance_hsmci.h | 0 .../sam4s/include/instance/instance_matrix.h | 0 .../sam4s/include/instance/instance_pioa.h | 0 .../sam4s/include/instance/instance_piob.h | 0 .../sam4s/include/instance/instance_pioc.h | 0 .../sam4s/include/instance/instance_pmc.h | 0 .../sam4s/include/instance/instance_pwm.h | 0 .../sam4s/include/instance/instance_rstc.h | 0 .../sam4s/include/instance/instance_rtc.h | 0 .../sam4s/include/instance/instance_rtt.h | 0 .../sam4s/include/instance/instance_smc.h | 0 .../sam4s/include/instance/instance_spi.h | 0 .../sam4s/include/instance/instance_ssc.h | 0 .../sam4s/include/instance/instance_supc.h | 0 .../sam4s/include/instance/instance_tc0.h | 0 .../sam4s/include/instance/instance_tc1.h | 0 .../sam4s/include/instance/instance_twi0.h | 0 .../sam4s/include/instance/instance_twi1.h | 0 .../sam4s/include/instance/instance_uart0.h | 0 .../sam4s/include/instance/instance_uart1.h | 0 .../sam4s/include/instance/instance_udp.h | 0 .../sam4s/include/instance/instance_usart0.h | 0 .../sam4s/include/instance/instance_usart1.h | 0 .../sam4s/include/instance/instance_wdt.h | 0 .../cmsis/sam4s/include/pio/pio_sam4s16c.h | 0 .../asf/sam/utils/cmsis/sam4s/include/sam4s.h | 0 .../sam/utils/cmsis/sam4s/include/sam4s16c.h | 0 .../cmsis/sam4s/source/templates/exceptions.c | 0 .../cmsis/sam4s/source/templates/exceptions.h | 0 .../source/templates/gcc/startup_sam4s.c | 0 .../sam4s/source/templates/system_sam4s.c | 0 .../sam4s/source/templates/system_sam4s.h | 0 .../src/asf/sam/utils/compiler.h | 0 .../src/asf/sam/utils/header_files/io.h | 0 .../linker_scripts/sam4s/sam4s16/gcc/flash.ld | 0 .../src/asf/sam/utils/make/Makefile.in | 0 .../src/asf/sam/utils/parts.h | 0 .../src/asf/sam/utils/preprocessor/mrepeat.h | 0 .../asf/sam/utils/preprocessor/preprocessor.h | 0 .../src/asf/sam/utils/preprocessor/stringz.h | 0 .../src/asf/sam/utils/preprocessor/tpaste.h | 0 .../src/asf/sam/utils/status_codes.h | 0 .../CMSIS END USER LICENCE AGREEMENT.pdf | Bin .../asf/thirdparty/CMSIS/Include/arm_math.h | 0 .../asf/thirdparty/CMSIS/Include/core_cm4.h | 0 .../thirdparty/CMSIS/Include/core_cm4_simd.h | 0 .../thirdparty/CMSIS/Include/core_cmFunc.h | 0 .../thirdparty/CMSIS/Include/core_cmInstr.h | 0 .../src/asf/thirdparty/CMSIS/README.txt | 0 .../src/asf/thirdparty/CMSIS/license.txt | 0 .../thirdparty/FreeRTOS/include/FreeRTOS.h | 0 .../thirdparty/FreeRTOS/include/StackMacros.h | 0 .../thirdparty/FreeRTOS/include/croutine.h | 0 .../asf/thirdparty/FreeRTOS/include/list.h | 0 .../FreeRTOS/include/mpu_wrappers.h | 0 .../thirdparty/FreeRTOS/include/portable.h | 0 .../thirdparty/FreeRTOS/include/projdefs.h | 0 .../asf/thirdparty/FreeRTOS/include/queue.h | 0 .../asf/thirdparty/FreeRTOS/include/semphr.h | 0 .../asf/thirdparty/FreeRTOS/include/task.h | 0 .../asf/thirdparty/FreeRTOS/include/timers.h | 0 .../src/asf/thirdparty/FreeRTOS/list.c | 0 .../FreeRTOS/portable/GCC/ARM_CM3/port.c | 0 .../FreeRTOS/portable/GCC/ARM_CM3/portmacro.h | 0 .../FreeRTOS/portable/MemMang/heap_2.c | 0 .../src/asf/thirdparty/FreeRTOS/queue.c | 0 .../src/asf/thirdparty/FreeRTOS/tasks.c | 0 .../src/asf/thirdparty/FreeRTOS/timers.c | 0 .../src/config/conf_board.h | 0 .../src/config/conf_clock.h | 0 .../CORTEX_M4_ATSAM4S_Atmel_Studio/src/main.c | 0 .../src/main_blinky.c | 0 .../src/main_full.c | 0 .../src/serial.c | 0 .../CORTEX_MB9A310_IAR_Keil/FreeRTOSConfig.h | 0 .../Fujitu_source/core_cm3.c | 0 .../Fujitu_source/mb9af314l.h | 0 .../Fujitu_source/mcu.h | 0 .../startup_iar/startup_mb9af31x.s | 0 .../startup_keil/startup_mb9af31x.s | 0 .../Fujitu_source/system_mb9af31x.c | 0 .../Fujitu_source/system_mb9af31x.h | 0 .../Demo}/CORTEX_MB9A310_IAR_Keil/ParTest.c | 0 .../CORTEX_MB9A310_IAR_Keil/RTOSDemo_IAR.ewd | 0 .../CORTEX_MB9A310_IAR_Keil/RTOSDemo_IAR.ewp | 0 .../CORTEX_MB9A310_IAR_Keil/RTOSDemo_IAR.eww | 0 .../RTOSDemo_Keil.uvopt | 0 .../RTOSDemo_Keil.uvproj | 0 .../config/Ram_VTOR.mac | 0 .../config/flashloader/FlashLoader.board | 0 .../config/flashloader/FlashMB9A310.flash | 0 .../config/flashloader/FlashMB9A310.mac | 0 .../config/flashloader/FlashMB9A310.out | Bin .../config/mb9af314.icf | 0 .../Demo}/CORTEX_MB9A310_IAR_Keil/main-full.c | 0 .../CORTEX_MB9A310_IAR_Keil/main_blinky.c | 0 .../Demo}/CORTEX_MB9A310_IAR_Keil/serial.c | 0 .../CORTEX_MB9B500_IAR_Keil/FreeRTOSConfig.h | 0 .../Fujitu_source/core_cm3.c | 0 .../Fujitu_source/core_cm3.h | 0 .../Fujitu_source/mb9bf506n.h | 0 .../startup_iar/startup_mb9bf50x.s | 0 .../startup_keil/startup_mb9bf50x.s | 0 .../Fujitu_source/system_mb9bf50x.c | 0 .../Fujitu_source/system_mb9bf50x.h | 0 .../Demo}/CORTEX_MB9B500_IAR_Keil/ParTest.c | 0 .../CORTEX_MB9B500_IAR_Keil/RTOSDemo_IAR.ewd | 0 .../CORTEX_MB9B500_IAR_Keil/RTOSDemo_IAR.ewp | 0 .../CORTEX_MB9B500_IAR_Keil/RTOSDemo_IAR.eww | 0 .../RTOSDemo_Keil.uvopt | 0 .../RTOSDemo_Keil.uvproj | 0 .../config/MB9BF506.icf | 0 .../config/Ram_VTOR.mac | 0 .../config/flashloader/FlashLoader.board | 0 .../config/flashloader/FlashMB9BF506.flash | 0 .../config/flashloader/FlashMB9BF506.mac | 0 .../config/flashloader/FlashMB9BF506.out | Bin .../config/mb9bf506_ram.icf | 0 .../Demo}/CORTEX_MB9B500_IAR_Keil/main-full.c | 0 .../CORTEX_MB9B500_IAR_Keil/main_blinky.c | 0 .../Demo}/CORTEX_MB9B500_IAR_Keil/serial.c | 0 .../FreeRTOSConfig.h | 0 .../CORTEX_MPU_LM3Sxxxx_Rowley/LM3S_Startup.s | 0 .../CORTEX_MPU_LM3Sxxxx_Rowley/LM3S_Target.js | 0 .../CORTEX_MPU_LM3Sxxxx_Rowley/RTOSDemo.hzp | 0 .../CORTEX_MPU_LM3Sxxxx_Rowley/RTOSDemo.hzs | 0 .../flash_placement.xml | 0 .../Demo}/CORTEX_MPU_LM3Sxxxx_Rowley/main.c | 0 .../CORTEX_MPU_LM3Sxxxx_Rowley/thumb_crt0.s | 0 .../CORTEX_MPU_LPC1768_GCC_RedSuite/.cproject | 0 .../CORTEX_MPU_LPC1768_GCC_RedSuite/.project | 0 .../CreateProjectDirectoryStructure.bat | 0 .../src/FreeRTOSConfig.h | 0 .../src/LCD/font.h | 0 .../src/LCD/lcd.c | 0 .../src/LCD/lcd.h | 0 .../src/LCD/lcd_commands.h | 0 .../src/LCD/lcd_driver.c | 0 .../src/LCD/lcd_driver.h | 0 .../src/LCD/system_fixed_be_8_15.c | 0 .../src/LPC17xx.h | 0 .../src/core_cm3.h | 0 .../src/cr_startup_lpc17.c | 0 .../src/main.c | 0 .../src/printf-stdarg.c | 0 .../src/rtosdemo_rdb1768_Debug.ld | 0 .../src/syscalls.c | 0 .../src/system_LPC17xx.h | 0 .../Demo}/CORTEX_STM32F100_Atollic/.cproject | 0 .../Demo}/CORTEX_STM32F100_Atollic/.project | 0 ...lic.truestudio.debug.hardware_device.prefs | 0 .../org.eclipse.cdt.managedbuilder.core.prefs | 0 .../CreateProjectDirectoryStructure.bat | 0 .../CMSIS/CM3/CoreSupport/core_cm3.c | 0 .../CMSIS/CM3/CoreSupport/core_cm3.h | 0 .../TrueSTUDIO/startup_stm32f10x_md_vl.s | 0 .../DeviceSupport/ST/STM32F10x/stm32f10x.h | 0 .../ST/STM32F10x/system_stm32f10x.h | 0 .../Libraries/CMSIS/License.doc | Bin .../STM32F10x_StdPeriph_Driver/inc/misc.h | 0 .../inc/stm32f10x_exti.h | 0 .../inc/stm32f10x_gpio.h | 0 .../inc/stm32f10x_rcc.h | 0 .../STM32F10x_StdPeriph_Driver/src/misc.c | 0 .../src/stm32f10x_exti.c | 0 .../src/stm32f10x_gpio.c | 0 .../src/stm32f10x_rcc.c | 0 .../Simple_Demo_Source/FreeRTOSConfig.h | 0 .../Simple_Demo_Source/main.c | 0 .../Simple_Demo_Source/stm32f10x_conf.h | 0 .../Simple_Demo_Source/stm32f10x_it.c | 0 .../Simple_Demo_Source/stm32f10x_it.h | 0 .../Simple_Demo_Source/system_stm32f10x.c | 0 .../STM32_Discovery/STM32vldiscovery.c | 0 .../STM32_Discovery/STM32vldiscovery.h | 0 .../CORTEX_STM32F100_Atollic/stm32_flash.ld | 0 .../Drivers/SPI_Flash_ST_Eval.c | 0 .../Drivers/SPI_Flash_ST_Eval.h | 0 .../Drivers/STM32_USART.c | 0 .../Drivers/STM32_USART.h | 0 .../FreeRTOSConfig.h | 0 .../ParTest/ParTest_MCBSTM32.c | 0 .../ParTest/ParTest_ST_Eval.c | 0 .../ParTest/ReadMe.txt | 0 .../CORTEX_STM32F103_GCC_Rowley/RTOSDemo.hzp | 0 .../CORTEX_STM32F103_GCC_Rowley/RTOSDemo.hzs | 0 .../ST Library/inc/STM32F10x.h | 0 .../ST Library/inc/cortexm3_macro.h | 0 .../ST Library/inc/stm32f10x_adc.h | 0 .../ST Library/inc/stm32f10x_bkp.h | 0 .../ST Library/inc/stm32f10x_can.h | 0 .../ST Library/inc/stm32f10x_crc.h | 0 .../ST Library/inc/stm32f10x_dac.h | 0 .../ST Library/inc/stm32f10x_dbgmcu.h | 0 .../ST Library/inc/stm32f10x_dma.h | 0 .../ST Library/inc/stm32f10x_exti.h | 0 .../ST Library/inc/stm32f10x_flash.h | 0 .../ST Library/inc/stm32f10x_fsmc.h | 0 .../ST Library/inc/stm32f10x_gpio.h | 0 .../ST Library/inc/stm32f10x_i2c.h | 0 .../ST Library/inc/stm32f10x_iwdg.h | 0 .../ST Library/inc/stm32f10x_lib.h | 0 .../ST Library/inc/stm32f10x_map.h | 0 .../ST Library/inc/stm32f10x_nvic.h | 0 .../ST Library/inc/stm32f10x_pwr.h | 0 .../ST Library/inc/stm32f10x_rcc.h | 0 .../ST Library/inc/stm32f10x_rtc.h | 0 .../ST Library/inc/stm32f10x_sdio.h | 0 .../ST Library/inc/stm32f10x_spi.h | 0 .../ST Library/inc/stm32f10x_systick.h | 0 .../ST Library/inc/stm32f10x_tim.h | 0 .../ST Library/inc/stm32f10x_type.h | 0 .../ST Library/inc/stm32f10x_usart.h | 0 .../ST Library/inc/stm32f10x_wwdg.h | 0 .../ST Library/src/stm32f10x_can.c | 0 .../ST Library/src/stm32f10x_gpio.c | 0 .../ST Library/src/stm32f10x_i2c.c | 0 .../ST Library/src/stm32f10x_lib.c | 0 .../ST Library/src/stm32f10x_nvic.c | 0 .../ST Library/src/stm32f10x_rcc.c | 0 .../ST Library/src/stm32f10x_spi.c | 0 .../ST Library/src/stm32f10x_systick.c | 0 .../ST Library/src/stm32f10x_usart.c | 0 .../STM32F10x_Startup.s | 0 .../Demo}/CORTEX_STM32F103_GCC_Rowley/main.c | 0 .../stm32f10x_conf.h | 0 .../stm32f10x_it.h | 0 .../CORTEX_STM32F103_IAR/FreeRTOSConfig.h | 0 .../Demo}/CORTEX_STM32F103_IAR/LCD_Message.h | 0 .../CORTEX_STM32F103_IAR/ParTest/ParTest.c | 0 .../Demo}/CORTEX_STM32F103_IAR/RTOSDemo.ewd | 0 .../Demo}/CORTEX_STM32F103_IAR/RTOSDemo.ewp | 0 .../Demo}/CORTEX_STM32F103_IAR/RTOSDemo.eww | 0 .../STM32F10xFWLib/inc/cortexm3_macro.h | 0 .../STM32F10xFWLib/inc/lcd.h | 0 .../STM32F10xFWLib/inc/spi_flash.h | 0 .../STM32F10xFWLib/inc/stm32f10x_adc.h | 0 .../STM32F10xFWLib/inc/stm32f10x_bkp.h | 0 .../STM32F10xFWLib/inc/stm32f10x_can.h | 0 .../STM32F10xFWLib/inc/stm32f10x_dma.h | 0 .../STM32F10xFWLib/inc/stm32f10x_exti.h | 0 .../STM32F10xFWLib/inc/stm32f10x_gpio.h | 0 .../STM32F10xFWLib/inc/stm32f10x_i2c.h | 0 .../STM32F10xFWLib/inc/stm32f10x_it.h | 0 .../STM32F10xFWLib/inc/stm32f10x_iwdg.h | 0 .../STM32F10xFWLib/inc/stm32f10x_lib.h | 0 .../STM32F10xFWLib/inc/stm32f10x_map.h | 0 .../STM32F10xFWLib/inc/stm32f10x_nvic.h | 0 .../STM32F10xFWLib/inc/stm32f10x_pwr.h | 0 .../STM32F10xFWLib/inc/stm32f10x_rcc.h | 0 .../STM32F10xFWLib/inc/stm32f10x_rtc.h | 0 .../STM32F10xFWLib/inc/stm32f10x_spi.h | 0 .../STM32F10xFWLib/inc/stm32f10x_systick.h | 0 .../STM32F10xFWLib/inc/stm32f10x_tim.h | 0 .../STM32F10xFWLib/inc/stm32f10x_tim1.h | 0 .../STM32F10xFWLib/inc/stm32f10x_type.h | 0 .../STM32F10xFWLib/inc/stm32f10x_usart.h | 0 .../STM32F10xFWLib/inc/stm32f10x_wwdg.h | 0 .../STM32F10xFWLib/src/cortexm3_macro.s | 0 .../STM32F10xFWLib/src/lcd.c | 0 .../STM32F10xFWLib/src/stm32f10x_adc.c | 0 .../STM32F10xFWLib/src/stm32f10x_bkp.c | 0 .../STM32F10xFWLib/src/stm32f10x_can.c | 0 .../STM32F10xFWLib/src/stm32f10x_dma.c | 0 .../STM32F10xFWLib/src/stm32f10x_exti.c | 0 .../STM32F10xFWLib/src/stm32f10x_gpio.c | 0 .../STM32F10xFWLib/src/stm32f10x_i2c.c | 0 .../STM32F10xFWLib/src/stm32f10x_iwdg.c | 0 .../STM32F10xFWLib/src/stm32f10x_lib.c | 0 .../STM32F10xFWLib/src/stm32f10x_nvic.c | 0 .../STM32F10xFWLib/src/stm32f10x_pwr.c | 0 .../STM32F10xFWLib/src/stm32f10x_rcc.c | 0 .../STM32F10xFWLib/src/stm32f10x_rtc.c | 0 .../STM32F10xFWLib/src/stm32f10x_spi.c | 0 .../STM32F10xFWLib/src/stm32f10x_systick.c | 0 .../STM32F10xFWLib/src/stm32f10x_tim.c | 0 .../STM32F10xFWLib/src/stm32f10x_tim1.c | 0 .../STM32F10xFWLib/src/stm32f10x_usart.c | 0 .../STM32F10xFWLib/src/stm32f10x_wwdg.c | 0 .../STM32F10xFWLib/version.txt | 0 .../CORTEX_STM32F103_IAR/STM32F10x_FLASH.icf | 0 .../Demo}/CORTEX_STM32F103_IAR/main.c | 0 .../CORTEX_STM32F103_IAR/serial/serial.c | 0 .../Demo}/CORTEX_STM32F103_IAR/spi_flash.c | 0 .../CORTEX_STM32F103_IAR/stm32f10x_conf.h | 0 .../Demo}/CORTEX_STM32F103_IAR/stm32f10x_it.c | 0 .../CORTEX_STM32F103_IAR/stm32f10x_vector.c | 0 .../Demo}/CORTEX_STM32F103_IAR/timertest.c | 0 .../CORTEX_STM32F103_Keil/FreeRTOSConfig.h | 0 .../Demo}/CORTEX_STM32F103_Keil/LCD_Message.h | 0 .../CORTEX_STM32F103_Keil/ParTest/ParTest.c | 0 .../Demo}/CORTEX_STM32F103_Keil/RTOSDemo.Opt | 0 .../Demo}/CORTEX_STM32F103_Keil/RTOSDemo.Uv2 | 0 .../Demo}/CORTEX_STM32F103_Keil/RTOSDemo.plg | 0 .../Demo}/CORTEX_STM32F103_Keil/RTOSDemo.sct | 0 .../Demo}/CORTEX_STM32F103_Keil/STM32F10x.s | 0 .../STM32F10xFWLib/inc/cortexm3_macro.h | 0 .../STM32F10xFWLib/inc/lcd.h | 0 .../STM32F10xFWLib/inc/spi_flash.h | 0 .../STM32F10xFWLib/inc/stm32f10x_adc.h | 0 .../STM32F10xFWLib/inc/stm32f10x_bkp.h | 0 .../STM32F10xFWLib/inc/stm32f10x_can.h | 0 .../STM32F10xFWLib/inc/stm32f10x_dma.h | 0 .../STM32F10xFWLib/inc/stm32f10x_exti.h | 0 .../STM32F10xFWLib/inc/stm32f10x_gpio.h | 0 .../STM32F10xFWLib/inc/stm32f10x_i2c.h | 0 .../STM32F10xFWLib/inc/stm32f10x_it.h | 0 .../STM32F10xFWLib/inc/stm32f10x_iwdg.h | 0 .../STM32F10xFWLib/inc/stm32f10x_lib.h | 0 .../STM32F10xFWLib/inc/stm32f10x_map.h | 0 .../STM32F10xFWLib/inc/stm32f10x_nvic.h | 0 .../STM32F10xFWLib/inc/stm32f10x_pwr.h | 0 .../STM32F10xFWLib/inc/stm32f10x_rcc.h | 0 .../STM32F10xFWLib/inc/stm32f10x_rtc.h | 0 .../STM32F10xFWLib/inc/stm32f10x_spi.h | 0 .../STM32F10xFWLib/inc/stm32f10x_systick.h | 0 .../STM32F10xFWLib/inc/stm32f10x_tim.h | 0 .../STM32F10xFWLib/inc/stm32f10x_tim1.h | 0 .../STM32F10xFWLib/inc/stm32f10x_type.h | 0 .../STM32F10xFWLib/inc/stm32f10x_usart.h | 0 .../STM32F10xFWLib/inc/stm32f10x_wwdg.h | 0 .../STM32F10xFWLib/src/cortexm3_macro.s | 0 .../STM32F10xFWLib/src/lcd.c | 0 .../STM32F10xFWLib/src/stm32f10x_adc.c | 0 .../STM32F10xFWLib/src/stm32f10x_bkp.c | 0 .../STM32F10xFWLib/src/stm32f10x_can.c | 0 .../STM32F10xFWLib/src/stm32f10x_dma.c | 0 .../STM32F10xFWLib/src/stm32f10x_exti.c | 0 .../STM32F10xFWLib/src/stm32f10x_gpio.c | 0 .../STM32F10xFWLib/src/stm32f10x_i2c.c | 0 .../STM32F10xFWLib/src/stm32f10x_iwdg.c | 0 .../STM32F10xFWLib/src/stm32f10x_lib.c | 0 .../STM32F10xFWLib/src/stm32f10x_nvic.c | 0 .../STM32F10xFWLib/src/stm32f10x_pwr.c | 0 .../STM32F10xFWLib/src/stm32f10x_rcc.c | 0 .../STM32F10xFWLib/src/stm32f10x_rtc.c | 0 .../STM32F10xFWLib/src/stm32f10x_spi.c | 0 .../STM32F10xFWLib/src/stm32f10x_systick.c | 0 .../STM32F10xFWLib/src/stm32f10x_tim.c | 0 .../STM32F10xFWLib/src/stm32f10x_tim1.c | 0 .../STM32F10xFWLib/src/stm32f10x_usart.c | 0 .../STM32F10xFWLib/src/stm32f10x_wwdg.c | 0 .../STM32F10xFWLib/version.txt | 0 .../Demo}/CORTEX_STM32F103_Keil/main.c | 0 .../CORTEX_STM32F103_Keil/serial/serial.c | 0 .../Demo}/CORTEX_STM32F103_Keil/spi_flash.c | 0 .../CORTEX_STM32F103_Keil/stm32f10x_conf.h | 0 .../Demo}/CORTEX_STM32F103_Keil/timertest.c | 0 .../FreeRTOSConfig.h | 0 .../ParTest/ParTest.c | 0 .../RTOSDemo-globals.Standard.xml | 0 .../RTOSDemo.Standard.xml | 0 .../CORTEX_STM32F103_Primer_GCC/RTOSDemo.rapp | 0 .../CORTEX_STM32F103_Primer_GCC/RTOSDemo.rprj | 0 .../ST_Code/Util.c | 0 .../CORTEX_STM32F103_Primer_GCC/ST_Code/adc.h | 0 .../ST_Code/buzzer.c | 0 .../ST_Code/circle.h | 0 .../ST_Code/circle_api.h | 0 .../ST_Code/crt0_STM32x.c | 0 .../ST_Code/draw.c | 0 .../CORTEX_STM32F103_Primer_GCC/ST_Code/lcd.c | 0 .../CORTEX_STM32F103_Primer_GCC/ST_Code/lcd.h | 0 .../CORTEX_STM32F103_Primer_GCC/ST_Code/led.c | 0 .../ST_Code/mems.c | 0 .../ST_Code/pointer.c | 0 .../ST_Code/scheduler.h | 0 .../ST_Code/stm32f10x_circle_it.c | 0 .../ST_Code/stm32f10x_conf.h | 0 .../ST_Code/stm32f10x_it.h | 0 .../ST_Code/stm32f10x_tim.c | 0 .../CORTEX_STM32F103_Primer_GCC/bitmap.h | 0 .../Demo}/CORTEX_STM32F103_Primer_GCC/main.c | 0 .../printf-stdarg.c | 0 .../CORTEX_STM32F103_Primer_GCC/syscalls.c | 0 .../CORTEX_STM32F103_Primer_GCC/timertest.c | 0 .../FreeRTOSConfig.h | 0 .../FreeRTOSConfig.h.scsc | 0 .../LCD/STM3210D_lcd.h | 0 .../CORTEX_STM32F107_GCC_Rowley/LCD/fonts.h | 0 .../CORTEX_STM32F107_GCC_Rowley/LCD/lcd.c | 0 .../CORTEX_STM32F107_GCC_Rowley/LCD_Message.h | 0 .../ParTest/ParTest.c | 0 .../CORTEX_STM32F107_GCC_Rowley/RTOSDemo.hzp | 0 .../CORTEX_STM32F107_GCC_Rowley/RTOSDemo.hzs | 0 .../CORTEX_STM32F107_GCC_Rowley/STM32F10x.s | 0 .../STM32F10x_Startup.s | 0 .../Demo}/CORTEX_STM32F107_GCC_Rowley/main.c | 0 .../printf-stdarg.c | 0 .../CORTEX_STM32F107_GCC_Rowley/scsc.tmp | 0 .../CORTEX_STM32F107_GCC_Rowley/spi_flash.c | 0 .../CORTEX_STM32F107_GCC_Rowley/stm32f10x.h | 0 .../stm32f10x_conf.h | 0 .../stm32f10x_connctivity_line.h | 0 .../CORTEX_STM32F107_GCC_Rowley/timertest.c | 0 .../webserver/clock-arch.h | 0 .../webserver/emac.c | 0 .../webserver/emac.c.scsc | 0 .../webserver/emac.h | 0 .../webserver/emac.h.scsc | 0 .../webserver/http-strings | 0 .../webserver/http-strings.c | 0 .../webserver/http-strings.h | 0 .../webserver/httpd-cgi.c | 0 .../webserver/httpd-cgi.h | 0 .../webserver/httpd-fs.c | 0 .../webserver/httpd-fs.h | 0 .../webserver/httpd-fs/404.html | 0 .../webserver/httpd-fs/index.html | 0 .../webserver/httpd-fs/index.shtml | 0 .../webserver/httpd-fs/io.shtml | 0 .../webserver/httpd-fs/runtime.shtml | 0 .../webserver/httpd-fs/stats.shtml | 0 .../webserver/httpd-fs/tcp.shtml | 0 .../webserver/httpd-fsdata.c | 0 .../webserver/httpd-fsdata.h | 0 .../webserver/httpd.c | 0 .../webserver/httpd.h | 0 .../webserver/makefsdata | 0 .../webserver/makestrings | 0 .../webserver/uIP_Task.c | 0 .../webserver/uip-conf.h | 0 .../webserver/webserver.h | 0 .../CORTEX_STM32L152_IAR/FreeRTOSConfig.h | 0 .../Demo}/CORTEX_STM32L152_IAR/ParTest.c | 0 .../Demo}/CORTEX_STM32L152_IAR/RTOSDemo.ewd | 0 .../Demo}/CORTEX_STM32L152_IAR/RTOSDemo.ewp | 0 .../Demo}/CORTEX_STM32L152_IAR/RTOSDemo.eww | 0 .../Demo}/CORTEX_STM32L152_IAR/main.c | 0 .../Demo}/CORTEX_STM32L152_IAR/serial.c | 0 .../settings/RTOSDemo.cspy.bat | 0 .../settings/RTOSDemo.dbgdt | 0 .../settings/RTOSDemo.dni | 0 .../settings/RTOSDemo.wsdt | 0 .../settings/RTOSDemo_Debug.jlink | 0 .../CMSIS/CM3/CoreSupport/core_cm3.c | 0 .../ST/Release_Notes_for_STM32L1xx_CMSIS.html | 0 .../startup/arm/startup_stm32l1xx_md.s | 0 .../startup/iar/startup_stm32l1xx_md.s | 0 .../DeviceSupport/ST/STM32L1xx/stm32l1xx.h | 0 .../ST/STM32L1xx/system_stm32l1xx.h | 0 .../CMSIS/CMSIS changes.htm | 0 .../CMSIS/CMSIS debug support.htm | 0 .../CMSIS/CMSIS_changes.htm | 0 .../CMSIS/Documentation/CMSIS_Core.htm | 0 .../system_and_ST_code/CMSIS/License.doc | Bin .../system_and_ST_code/Common/fonts.c | 0 .../system_and_ST_code/Common/fonts.h | 0 .../STM32L152_EVAL/stm32l152_eval.c | 0 .../STM32L152_EVAL/stm32l152_eval.h | 0 .../STM32L152_EVAL/stm32l152_eval_lcd.c | 0 .../STM32L152_EVAL/stm32l152_eval_lcd.h | 0 .../STM32L1xx_StdPeriph_Driver/inc/misc.h | 0 .../inc/stm32l1xx_exti.h | 0 .../inc/stm32l1xx_gpio.h | 0 .../inc/stm32l1xx_i2c.h | 0 .../inc/stm32l1xx_pwr.h | 0 .../inc/stm32l1xx_rcc.h | 0 .../inc/stm32l1xx_spi.h | 0 .../inc/stm32l1xx_syscfg.h | 0 .../inc/stm32l1xx_tim.h | 0 .../inc/stm32l1xx_usart.h | 0 .../STM32L1xx_StdPeriph_Driver/src/misc.c | 0 .../src/stm32l1xx_exti.c | 0 .../src/stm32l1xx_gpio.c | 0 .../src/stm32l1xx_pwr.c | 0 .../src/stm32l1xx_rcc.c | 0 .../src/stm32l1xx_spi.c | 0 .../src/stm32l1xx_syscfg.c | 0 .../src/stm32l1xx_tim.c | 0 .../src/stm32l1xx_usart.c | 0 .../system_and_ST_code/startup_stm32l1xx_md.s | 0 .../system_and_ST_code/stm32_eval.h | 0 .../system_and_ST_code/stm32l1xx_conf.h | 0 .../system_and_ST_code/stm32l1xx_flash.icf | 0 .../system_and_ST_code/stm32l1xx_it.c | 0 .../system_and_ST_code/stm32l1xx_it.h | 0 .../system_and_ST_code/system_stm32l1xx.c | 0 .../Demo}/CORTUS_APS3_GCC/.cproject | 0 .../Demo}/CORTUS_APS3_GCC/.project | 0 .../BSP_ProjectForDebugging.zip | Bin .../CreateProjectDirectoryStructure.bat | 0 .../Demo}/CORTUS_APS3_GCC/Demo/7seg.c | 0 .../Demo}/CORTUS_APS3_GCC/Demo/7seg.h | 0 .../CORTUS_APS3_GCC/Demo/FreeRTOSConfig.h | 0 .../Demo}/CORTUS_APS3_GCC/Demo/ParTest.c | 0 .../Demo}/CORTUS_APS3_GCC/Demo/RegTest.c | 0 .../Demo}/CORTUS_APS3_GCC/Demo/RegTest.h | 0 .../Demo}/CORTUS_APS3_GCC/Demo/demoGpio.h | 0 .../Demo}/CORTUS_APS3_GCC/Demo/main.c | 0 .../Demo}/CORTUS_APS3_GCC/Demo/serial.c | 0 .../Demo}/CORTUS_APS3_GCC/ReadMe_Set_Up.txt | 0 .../CFV1_BDM_P&E_Multilink_CyclonePro.hwc | 0 .../CFV1_BDM_P&E_Multilink_CyclonePro.ini | 0 .../CFV1_Full_Chip_Simulator.ini | 0 .../C_Layout.hwl | 0 .../Default.mem | Bin .../RTOSDemo.mcp | Bin .../Sources/FEC.c | 0 .../Sources/FEC.h | 0 .../Sources/FreeRTOSConfig.h | 0 .../Sources/ParTest/ParTest.c | 0 .../Sources/derivative.h | 0 .../Sources/eth.h | 0 .../Sources/eth_phy.h | 0 .../Sources/exceptions.c | 0 .../Sources/exceptions.h | 0 .../Sources/exceptions.old0.c | 0 .../Sources/fecbd.h | 0 .../Sources/httpd/clock-arch.h | 0 .../Sources/httpd/http-strings | 0 .../Sources/httpd/http-strings.c | 0 .../Sources/httpd/http-strings.h | 0 .../Sources/httpd/httpd-cgi.c | 0 .../Sources/httpd/httpd-cgi.h | 0 .../Sources/httpd/httpd-fs.c | 0 .../Sources/httpd/httpd-fs.h | 0 .../Sources/httpd/httpd-fs/404.html | 0 .../Sources/httpd/httpd-fs/index.html | 0 .../Sources/httpd/httpd-fs/index.shtml | 0 .../Sources/httpd/httpd-fs/io.shtml | 0 .../Sources/httpd/httpd-fs/stats.shtml | 0 .../Sources/httpd/httpd-fs/tcp.shtml | 0 .../Sources/httpd/httpd-fsdata.c | 0 .../Sources/httpd/httpd-fsdata.h | 0 .../Sources/httpd/httpd.c | 0 .../Sources/httpd/httpd.h | 0 .../Sources/httpd/makefsdata | 0 .../Sources/httpd/makestrings | 0 .../Sources/httpd/pack_struct_end.h | 0 .../Sources/httpd/pack_struct_start.h | 0 .../Sources/httpd/uIP_Task.c | 0 .../Sources/httpd/uip-conf.h | 0 .../Sources/httpd/webserver.h | 0 .../Sources/main.c | 0 .../Sources/mii.h | 0 .../Sources/printf-stdarg.c | 0 .../Sources/startcf.c | 0 .../Sources/startcf.h | 0 .../Sources/stdlib.c | 0 .../Sources/stdlib.h | 0 ..._BDM_P&E_Multilink_CyclonePro_Postload.cmd | 0 ...1_BDM_P&E_Multilink_CyclonePro_Preload.cmd | 0 ...FV1_BDM_P&E_Multilink_CyclonePro_Reset.cmd | 0 ...1_BDM_P&E_Multilink_CyclonePro_Startup.cmd | 0 .../cmd/CFV1_Full_Chip_Simulator_Postload.cmd | 0 .../cmd/CFV1_Full_Chip_Simulator_Preload.cmd | 0 .../cmd/CFV1_Full_Chip_Simulator_Reset.cmd | 0 .../cmd/CFV1_Full_Chip_Simulator_Startup.cmd | 0 .../prm/Project.lcf | 0 .../RTOSDemo.mcp | Bin .../RTOSDemo_Data/CWSettingsWindows.stg | Bin .../INTERNAL_FLASH/TargetDataWindows.tdt | Bin .../cfg/MCF52221_CONSOLE_INTERNAL_RAM.cfg | 0 .../cfg/MCF52221_CONSOLE_INTERNAL_RAM.mem | 0 .../cfg/MCF52221_INTERNAL_FLASH.cfg | 0 .../cfg/MCF52221_INTERNAL_FLASH.mem | 0 .../cfg/MCF52221_INTERNAL_RAM.cfg | 0 .../cfg/MCF52221_INTERNAL_RAM.mem | 0 .../cfg/MCF52221_INTFLASH.xml | 0 .../headers/MCF52221.h | 0 .../headers/MCF52221_ADC.h | 0 .../headers/MCF52221_CCM.h | 0 .../headers/MCF52221_CFM.h | 0 .../headers/MCF52221_CLOCK.h | 0 .../headers/MCF52221_DMA.h | 0 .../headers/MCF52221_DTIM.h | 0 .../headers/MCF52221_EPORT.h | 0 .../headers/MCF52221_GPIO.h | 0 .../headers/MCF52221_GPTA.h | 0 .../headers/MCF52221_I2C.h | 0 .../headers/MCF52221_INTC.h | 0 .../headers/MCF52221_PAD.h | 0 .../headers/MCF52221_PIT.h | 0 .../headers/MCF52221_PMM.h | 0 .../headers/MCF52221_PWM.h | 0 .../headers/MCF52221_QSPI.h | 0 .../headers/MCF52221_RCM.h | 0 .../headers/MCF52221_RTC.h | 0 .../headers/MCF52221_SCM.h | 0 .../headers/MCF52221_UART.h | 0 .../headers/MCF52221_USB_OTG.h | 0 .../lcf/MCF52221_INTERNAL_FLASH.lcf | 0 .../ColdFire_MCF52221_CodeWarrior/readme.txt | 0 .../sources/FreeRTOSConfig.h | 0 .../sources/FreeRTOS_Tick_Setup.c | 0 .../sources/MCF52221_sysinit.c | 0 .../sources/MCF52221_sysinit.h | 0 .../sources/ParTest/ParTest.c | 0 .../sources/cfm.c | 0 .../sources/exceptions.c | 0 .../sources/exceptions.h | 0 .../sources/lwipopts.h | 0 .../sources/main.c | 0 .../sources/printf-stdarg.c | 0 .../sources/serial/serial.c | 0 .../sources/startcf.c | 0 .../sources/startcf.h | 0 .../sources/stdlib.c | 0 .../sources/stdlib.h | 0 .../sources/support_common.h | 0 .../sources/uart_support.c | 0 .../sources/uart_support.h | 0 .../ColdFire_MCF52233_Eclipse/.metadata/.log | 0 .../.metadata/.mylyn/repositories.xml.zip | Bin .../.plugins/org.eclipse.cdt.core/.log | 0 .../org.eclipse.cdt.core/shareddefaults.xml | 0 .../.plugins/org.eclipse.cdt.make.core/.log | 0 .../org.eclipse.cdt.make.core/RTOSDemo.sc | 0 .../org.eclipse.cdt.make.core/specs.c | 0 .../org.eclipse.cdt.make.core/specs.cpp | 0 .../dialog_settings.xml | 0 .../org.eclipse.cdt.ui/dialog_settings.xml | 0 .../RTOSDemo/.indexes/properties.index | Bin .../.root/.indexes/history.version | 0 .../.root/.indexes/properties.index | Bin .../.root/.indexes/properties.version | 0 .../org.eclipse.core.resources/.root/2.tree | Bin .../.safetable/org.eclipse.core.resources | Bin .../.settings/org.eclipse.cdt.core.prefs | 0 .../org.eclipse.cdt.core.prj-RTOSDemo.prefs | 0 .../org.eclipse.cdt.debug.core.prefs | 0 .../org.eclipse.cdt.managedbuilder.core.prefs | 0 .../.settings/org.eclipse.cdt.ui.prefs | 0 .../org.eclipse.core.resources.prefs | 0 .../.settings/org.eclipse.debug.ui.prefs | 0 .../org.eclipse.equinox.p2.ui.sdk.prefs | 0 .../.settings/org.eclipse.jdt.ui.prefs | 0 .../org.eclipse.mylyn.context.core.prefs | 0 .../.settings/org.eclipse.ui.editors.prefs | 0 .../.settings/org.eclipse.ui.ide.prefs | 0 .../.settings/org.eclipse.ui.prefs | 0 .../.settings/org.eclipse.ui.workbench.prefs | 0 .../.launches/RTOSDemo.launch | 0 .../org.eclipse.debug.ui/dialog_settings.xml | 0 .../launchConfigurationHistory.xml | 0 .../variablesAndContainers.dat | Bin .../org.eclipse.jdt.ui/OpenTypeHistory.xml | 0 .../QualifiedTypeNameHistory.xml | 0 .../org.eclipse.jdt.ui/dialog_settings.xml | 0 .../2008/11/47/refactorings.history | 0 .../.workspace/2008/11/47/refactorings.index | 0 .../dialog_settings.xml | 0 .../org.eclipse.ui.ide/dialog_settings.xml | 0 .../org.eclipse.ui.intro/dialog_settings.xml | 0 .../dialog_settings.xml | 0 .../org.eclipse.ui.workbench/workbench.xml | 0 .../org.eclipse.ui.workbench/workingsets.xml | 0 .../.metadata/version.ini | 0 .../RTOSDemo/.cproject | 0 .../RTOSDemo/.project | 0 .../org.eclipse.ltk.core.refactoring.prefs | 0 .../RTOSDemo/FreeRTOSConfig.h | 0 .../RTOSDemo/FreeRTOS_Tick_Setup.c | 0 .../RTOSDemo/MCF5223x/MCF52235.h | 0 .../RTOSDemo/MCF5223x/MCF52235_ADC.h | 0 .../RTOSDemo/MCF5223x/MCF52235_CCM.h | 0 .../RTOSDemo/MCF5223x/MCF52235_CFM.h | 0 .../RTOSDemo/MCF5223x/MCF52235_CLOCK.h | 0 .../RTOSDemo/MCF5223x/MCF52235_DMA.h | 0 .../RTOSDemo/MCF5223x/MCF52235_DTIM.h | 0 .../RTOSDemo/MCF5223x/MCF52235_EPHY.h | 0 .../RTOSDemo/MCF5223x/MCF52235_EPORT.h | 0 .../RTOSDemo/MCF5223x/MCF52235_FEC.h | 0 .../RTOSDemo/MCF5223x/MCF52235_FlexCAN.h | 0 .../RTOSDemo/MCF5223x/MCF52235_GIACR.h | 0 .../RTOSDemo/MCF5223x/MCF52235_GPIO.h | 0 .../RTOSDemo/MCF5223x/MCF52235_GPTA.h | 0 .../RTOSDemo/MCF5223x/MCF52235_I2C.h | 0 .../RTOSDemo/MCF5223x/MCF52235_INTC.h | 0 .../RTOSDemo/MCF5223x/MCF52235_PAD.h | 0 .../RTOSDemo/MCF5223x/MCF52235_PIT.h | 0 .../RTOSDemo/MCF5223x/MCF52235_PMM.h | 0 .../RTOSDemo/MCF5223x/MCF52235_PWM.h | 0 .../RTOSDemo/MCF5223x/MCF52235_QSPI.h | 0 .../RTOSDemo/MCF5223x/MCF52235_RCM.h | 0 .../RTOSDemo/MCF5223x/MCF52235_RNGA.h | 0 .../RTOSDemo/MCF5223x/MCF52235_RTC.h | 0 .../RTOSDemo/MCF5223x/MCF52235_SCM.h | 0 .../RTOSDemo/MCF5223x/MCF52235_UART.h | 0 .../RTOSDemo/Makefile | 0 .../RTOSDemo/ParTest/ParTest.c | 0 .../RTOSDemo/m52235evb-rom-hosted.ld | 0 .../ColdFire_MCF52233_Eclipse/RTOSDemo/main.c | 0 .../RTOSDemo/printf-stdarg.c | 0 .../RTOSDemo/webserver/FEC.c | 0 .../RTOSDemo/webserver/FEC.h | 0 .../RTOSDemo/webserver/eth.h | 0 .../RTOSDemo/webserver/eth_phy.h | 0 .../RTOSDemo/webserver/fecbd.h | 0 .../RTOSDemo/webserver/http-strings.c | 0 .../RTOSDemo/webserver/http-strings.h | 0 .../RTOSDemo/webserver/httpd-cgi.c | 0 .../RTOSDemo/webserver/httpd-cgi.h | 0 .../RTOSDemo/webserver/httpd-fs.c | 0 .../RTOSDemo/webserver/httpd-fs.h | 0 .../RTOSDemo/webserver/httpd-fs/404.html | 0 .../RTOSDemo/webserver/httpd-fs/image.html | 0 .../RTOSDemo/webserver/httpd-fs/image.jpg | Bin .../RTOSDemo/webserver/httpd-fs/index.html | 0 .../RTOSDemo/webserver/httpd-fs/index.shtml | 0 .../RTOSDemo/webserver/httpd-fs/io.shtml | 0 .../RTOSDemo/webserver/httpd-fs/logo.jpg | Bin .../RTOSDemo/webserver/httpd-fs/stats.shtml | 0 .../RTOSDemo/webserver/httpd-fs/tcp.shtml | 0 .../RTOSDemo/webserver/httpd-fsdata.c | 0 .../RTOSDemo/webserver/httpd-fsdata.h | 0 .../RTOSDemo/webserver/httpd.c | 0 .../RTOSDemo/webserver/httpd.h | 0 .../RTOSDemo/webserver/makefsdata | 0 .../RTOSDemo/webserver/mii.h | 0 .../RTOSDemo/webserver/uIP_Task.c | 0 .../RTOSDemo/webserver/uip-conf.h | 0 .../RTOSDemo/webserver/webserver.h | 0 .../FreeRTOSConfig.h | 0 .../FreeRTOS_Tick_Setup.c | 0 .../Freescale_Headers/MCF52259.h | 0 .../Freescale_Headers/MCF52259_ADC.h | 0 .../Freescale_Headers/MCF52259_BWT.h | 0 .../Freescale_Headers/MCF52259_CANMB.h | 0 .../Freescale_Headers/MCF52259_CCM.h | 0 .../Freescale_Headers/MCF52259_CFM.h | 0 .../Freescale_Headers/MCF52259_CLOCK.h | 0 .../Freescale_Headers/MCF52259_DMA.h | 0 .../Freescale_Headers/MCF52259_DTIM.h | 0 .../Freescale_Headers/MCF52259_EPORT.h | 0 .../Freescale_Headers/MCF52259_FBCS.h | 0 .../Freescale_Headers/MCF52259_FEC.h | 0 .../Freescale_Headers/MCF52259_FlexCAN.h | 0 .../Freescale_Headers/MCF52259_GPIO.h | 0 .../Freescale_Headers/MCF52259_GPT.h | 0 .../Freescale_Headers/MCF52259_I2C.h | 0 .../Freescale_Headers/MCF52259_INTC.h | 0 .../Freescale_Headers/MCF52259_PAD.h | 0 .../Freescale_Headers/MCF52259_PIT.h | 0 .../Freescale_Headers/MCF52259_PMM.h | 0 .../Freescale_Headers/MCF52259_PWM.h | 0 .../Freescale_Headers/MCF52259_QSPI.h | 0 .../Freescale_Headers/MCF52259_RCM.h | 0 .../Freescale_Headers/MCF52259_RNGA.h | 0 .../Freescale_Headers/MCF52259_RTC.h | 0 .../Freescale_Headers/MCF52259_SCM.h | 0 .../Freescale_Headers/MCF52259_TMR.h | 0 .../Freescale_Headers/MCF52259_UART.h | 0 .../Freescale_Headers/MCF52259_USB_OTG.h | 0 .../Freescale_Headers/common.h | 0 .../Freescale_Headers/mcf5225x.h | 0 .../Freescale_Headers/mcf5225x_evb.h | 0 .../Freescale_Headers/mcf5xxx.h | 0 .../ColdFire_MCF52259_CodeWarrior/HTTPDemo.c | 0 .../ColdFire_MCF52259_CodeWarrior/HTTPDemo.h | 0 .../ParTest/ParTest.c | 0 .../RTOSDemo.mcp | Bin .../RTOSDemo_Data/CWSettingsWindows.stg | Bin .../INTERNAL_FLASH/TargetDataWindows.tdt | Bin .../cfg/MCF52259_INTERNAL_FLASH.cfg | 0 .../cfg/MCF52259_INTERNAL_FLASH.mem | 0 .../cfg/MCF52259_INTFLASH.xml | 0 .../cfg/mcf5225xEVB_PnE.cfg | 0 .../cpu/mcf5225x.c | 0 .../cpu/mcf5225x.h | 0 .../cpu/mcf5225x_lo.s | 0 .../cpu/mcf5225x_sysinit.c | 0 .../cpu/mcf5225x_vectors.s | 0 .../cpu/mcf5xxx.c | 0 .../cpu/mcf5xxx.h | 0 .../cpu/mcf5xxx_lo.s | 0 .../lcf/MCF52259_INTERNAL_FLASH.lcf | 0 .../ColdFire_MCF52259_CodeWarrior/lwipopts.h | 0 .../ColdFire_MCF52259_CodeWarrior/main.c | 0 .../printf-stdarg.c | 0 .../ColdFire_MCF52259_CodeWarrior/readme.txt | 0 .../ColdFire_MCF52259_CodeWarrior/stdlib.c | 0 .../ColdFire_MCF52259_CodeWarrior/stdlib.h | 0 .../.metadata/.mylyn/repositories.xml.zip | Bin .../org.eclipse.cdt.core/shareddefaults.xml | 0 .../org.eclipse.cdt.make.core/RTOSDemo.sc | 0 .../org.eclipse.cdt.make.core/specs.c | 0 .../org.eclipse.cdt.make.core/specs.cpp | 0 .../dialog_settings.xml | 0 .../org.eclipse.cdt.ui/dialog_settings.xml | 0 .../.indexes/18/5b/5e/properties.index | Bin .../.indexes/18/5b/e7/74/properties.index | Bin .../.indexes/18/5b/e7/a1/history.index | Bin .../.indexes/18/5b/e7/a1/properties.index | Bin .../RTOSDemo/.indexes/18/a8/properties.index | Bin .../RTOSDemo/.indexes/18/history.index | Bin .../RTOSDemo/.indexes/18/properties.index | Bin .../RTOSDemo/.indexes/b3/history.index | Bin .../RTOSDemo/.indexes/b3/properties.index | Bin .../RTOSDemo/.indexes/c/history.index | Bin .../RTOSDemo/.indexes/c/properties.index | Bin .../RTOSDemo/.indexes/c7/properties.index | Bin .../f7/29/7f/99/81/ce/1e/history.index | Bin .../f7/29/7f/99/81/ce/1e/properties.index | Bin .../.indexes/f7/29/7f/e4/1a/properties.index | Bin .../RTOSDemo/.indexes/f7/7f/history.index | Bin .../RTOSDemo/.indexes/f7/7f/properties.index | Bin .../RTOSDemo/.indexes/f7/a8/properties.index | Bin .../.projects/RTOSDemo/.indexes/history.index | Bin .../RTOSDemo/.indexes/properties.index | Bin .../.projects/RTOSDemo/.markers | Bin .../.root/.indexes/history.version | 0 .../.root/.indexes/properties.index | Bin .../.root/.indexes/properties.version | 0 .../org.eclipse.core.resources/.root/33.tree | Bin .../.safetable/org.eclipse.core.resources | Bin .../.settings/org.eclipse.cdt.core.prefs | 0 .../org.eclipse.cdt.core.prj-RTOSDemo.prefs | 0 .../org.eclipse.cdt.debug.core.prefs | 0 .../.settings/org.eclipse.cdt.debug.ui.prefs | 0 .../org.eclipse.cdt.managedbuilder.core.prefs | 0 .../.settings/org.eclipse.cdt.mylyn.ui.prefs | 0 .../.settings/org.eclipse.cdt.ui.prefs | 0 .../org.eclipse.core.resources.prefs | 0 .../.settings/org.eclipse.debug.core.prefs | 0 .../.settings/org.eclipse.debug.ui.prefs | 0 .../org.eclipse.equinox.p2.ui.sdk.prefs | 0 .../.settings/org.eclipse.jdt.core.prefs | 0 .../.settings/org.eclipse.jdt.debug.ui.prefs | 0 .../.settings/org.eclipse.jdt.ui.prefs | 0 .../org.eclipse.mylyn.context.core.prefs | 0 .../.settings/org.eclipse.search.prefs | 0 .../.settings/org.eclipse.team.ui.prefs | 0 .../.settings/org.eclipse.ui.browser.prefs | 0 .../.settings/org.eclipse.ui.editors.prefs | 0 .../.settings/org.eclipse.ui.ide.prefs | 0 .../.settings/org.eclipse.ui.prefs | 0 .../.settings/org.eclipse.ui.workbench.prefs | 0 .../.launches/RTOSDemo.launch | 0 .../org.eclipse.debug.ui/dialog_settings.xml | 0 .../launchConfigurationHistory.xml | 0 .../variablesAndContainers.dat | Bin .../org.eclipse.jdt.ui/OpenTypeHistory.xml | 0 .../QualifiedTypeNameHistory.xml | 0 .../org.eclipse.jdt.ui/dialog_settings.xml | 0 .../dialog_settings.xml | 0 .../.cache/clean-cache.properties | 0 .../org.eclipse.search/dialog_settings.xml | 0 .../org.eclipse.ui.ide/dialog_settings.xml | 0 .../org.eclipse.ui.intro/dialog_settings.xml | 0 .../dialog_settings.xml | 0 .../dialog_settings.xml | 0 .../org.eclipse.ui.workbench/workbench.xml | 0 .../org.eclipse.ui.workbench/workingsets.xml | 0 .../.metadata/version.ini | 0 .../RTOSDemo/.cproject | 0 .../RTOSDemo/.project | 0 .../RTOSDemo/FreeRTOSConfig.h | 0 .../RTOSDemo/FreeRTOS_Tick_Setup.c | 0 .../RTOSDemo/IntQueueTimer.c | 0 .../RTOSDemo/IntQueueTimer.h | 0 .../RTOSDemo/MCF5282/MCF5282.h | 0 .../RTOSDemo/MCF5282/MCF5282_CCM.h | 0 .../RTOSDemo/MCF5282/MCF5282_CFM.h | 0 .../RTOSDemo/MCF5282/MCF5282_CLOCK.h | 0 .../RTOSDemo/MCF5282/MCF5282_CS.h | 0 .../RTOSDemo/MCF5282/MCF5282_DMA.h | 0 .../RTOSDemo/MCF5282/MCF5282_DTIM.h | 0 .../RTOSDemo/MCF5282/MCF5282_EPORT.h | 0 .../RTOSDemo/MCF5282/MCF5282_FEC.h | 0 .../RTOSDemo/MCF5282/MCF5282_FlexCAN.h | 0 .../RTOSDemo/MCF5282/MCF5282_GIACR.h | 0 .../RTOSDemo/MCF5282/MCF5282_GPIO.h | 0 .../RTOSDemo/MCF5282/MCF5282_GPTA.h | 0 .../RTOSDemo/MCF5282/MCF5282_GPTB.h | 0 .../RTOSDemo/MCF5282/MCF5282_I2C.h | 0 .../RTOSDemo/MCF5282/MCF5282_INTC.h | 0 .../RTOSDemo/MCF5282/MCF5282_PAD.h | 0 .../RTOSDemo/MCF5282/MCF5282_PIT.h | 0 .../RTOSDemo/MCF5282/MCF5282_PMM.h | 0 .../RTOSDemo/MCF5282/MCF5282_QADC.h | 0 .../RTOSDemo/MCF5282/MCF5282_QSPI.h | 0 .../RTOSDemo/MCF5282/MCF5282_RCM.h | 0 .../RTOSDemo/MCF5282/MCF5282_SCM.h | 0 .../RTOSDemo/MCF5282/MCF5282_SDRAMC.h | 0 .../RTOSDemo/MCF5282/MCF5282_UART.h | 0 .../RTOSDemo/MCF5282/MCF5282_WTM.h | 0 .../RTOSDemo/Makefile | 0 .../RTOSDemo/ParTest/ParTest.c | 0 .../m5282evb-dram_code-rambar_data-hosted.ld | 0 .../RTOSDemo/m5282evb-ram.ld | 0 .../ColdFire_MCF5282_Eclipse/RTOSDemo/main.c | 0 .../RTOSDemo/serial/serial.c | 0 .../FileSystem/FatFs-0.7e/doc/00index_e.html | 0 .../FileSystem/FatFs-0.7e/doc/00index_j.html | 0 .../FileSystem/FatFs-0.7e/doc/css_e.css | 0 .../FileSystem/FatFs-0.7e/doc/css_j.css | 0 .../FileSystem/FatFs-0.7e/doc/en/appnote.html | 0 .../FileSystem/FatFs-0.7e/doc/en/chdir.html | 0 .../FileSystem/FatFs-0.7e/doc/en/chdrive.html | 0 .../FileSystem/FatFs-0.7e/doc/en/chmod.html | 0 .../FileSystem/FatFs-0.7e/doc/en/close.html | 0 .../FileSystem/FatFs-0.7e/doc/en/dinit.html | 0 .../FileSystem/FatFs-0.7e/doc/en/dioctl.html | 0 .../FileSystem/FatFs-0.7e/doc/en/dread.html | 0 .../FileSystem/FatFs-0.7e/doc/en/dstat.html | 0 .../FileSystem/FatFs-0.7e/doc/en/dwrite.html | 0 .../FileSystem/FatFs-0.7e/doc/en/fattime.html | 0 .../FatFs-0.7e/doc/en/filename.html | 0 .../FileSystem/FatFs-0.7e/doc/en/forward.html | 0 .../FileSystem/FatFs-0.7e/doc/en/getfree.html | 0 .../FileSystem/FatFs-0.7e/doc/en/gets.html | 0 .../FileSystem/FatFs-0.7e/doc/en/lseek.html | 0 .../FileSystem/FatFs-0.7e/doc/en/mkdir.html | 0 .../FileSystem/FatFs-0.7e/doc/en/mkfs.html | 0 .../FileSystem/FatFs-0.7e/doc/en/mount.html | 0 .../FileSystem/FatFs-0.7e/doc/en/open.html | 0 .../FileSystem/FatFs-0.7e/doc/en/opendir.html | 0 .../FileSystem/FatFs-0.7e/doc/en/printf.html | 0 .../FileSystem/FatFs-0.7e/doc/en/putc.html | 0 .../FileSystem/FatFs-0.7e/doc/en/puts.html | 0 .../FileSystem/FatFs-0.7e/doc/en/read.html | 0 .../FileSystem/FatFs-0.7e/doc/en/readdir.html | 0 .../FileSystem/FatFs-0.7e/doc/en/rename.html | 0 .../FileSystem/FatFs-0.7e/doc/en/sdir.html | 0 .../FileSystem/FatFs-0.7e/doc/en/sfatfs.html | 0 .../FileSystem/FatFs-0.7e/doc/en/sfile.html | 0 .../FatFs-0.7e/doc/en/sfileinfo.html | 0 .../FileSystem/FatFs-0.7e/doc/en/stat.html | 0 .../FileSystem/FatFs-0.7e/doc/en/sync.html | 0 .../FatFs-0.7e/doc/en/truncate.html | 0 .../FileSystem/FatFs-0.7e/doc/en/unlink.html | 0 .../FileSystem/FatFs-0.7e/doc/en/utime.html | 0 .../FileSystem/FatFs-0.7e/doc/en/write.html | 0 .../FileSystem/FatFs-0.7e/doc/img/f1.png | Bin .../FileSystem/FatFs-0.7e/doc/img/f2.png | Bin .../FileSystem/FatFs-0.7e/doc/img/f3.png | Bin .../FileSystem/FatFs-0.7e/doc/img/f4.png | Bin .../FileSystem/FatFs-0.7e/doc/img/f5.png | Bin .../FileSystem/FatFs-0.7e/doc/img/layers.png | Bin .../FileSystem/FatFs-0.7e/doc/img/rwtest.png | Bin .../FileSystem/FatFs-0.7e/doc/img/rwtest2.png | Bin .../FileSystem/FatFs-0.7e/doc/ja/appnote.html | 0 .../FileSystem/FatFs-0.7e/doc/ja/chdir.html | 0 .../FileSystem/FatFs-0.7e/doc/ja/chdrive.html | 0 .../FileSystem/FatFs-0.7e/doc/ja/chmod.html | 0 .../FileSystem/FatFs-0.7e/doc/ja/close.html | 0 .../FileSystem/FatFs-0.7e/doc/ja/dinit.html | 0 .../FileSystem/FatFs-0.7e/doc/ja/dioctl.html | 0 .../FileSystem/FatFs-0.7e/doc/ja/dread.html | 0 .../FileSystem/FatFs-0.7e/doc/ja/dstat.html | 0 .../FileSystem/FatFs-0.7e/doc/ja/dwrite.html | 0 .../FileSystem/FatFs-0.7e/doc/ja/fattime.html | 0 .../FatFs-0.7e/doc/ja/filename.html | 0 .../FileSystem/FatFs-0.7e/doc/ja/forward.html | 0 .../FileSystem/FatFs-0.7e/doc/ja/getfree.html | 0 .../FileSystem/FatFs-0.7e/doc/ja/gets.html | 0 .../FileSystem/FatFs-0.7e/doc/ja/lseek.html | 0 .../FileSystem/FatFs-0.7e/doc/ja/mkdir.html | 0 .../FileSystem/FatFs-0.7e/doc/ja/mkfs.html | 0 .../FileSystem/FatFs-0.7e/doc/ja/mount.html | 0 .../FileSystem/FatFs-0.7e/doc/ja/open.html | 0 .../FileSystem/FatFs-0.7e/doc/ja/opendir.html | 0 .../FileSystem/FatFs-0.7e/doc/ja/printf.html | 0 .../FileSystem/FatFs-0.7e/doc/ja/putc.html | 0 .../FileSystem/FatFs-0.7e/doc/ja/puts.html | 0 .../FileSystem/FatFs-0.7e/doc/ja/read.html | 0 .../FileSystem/FatFs-0.7e/doc/ja/readdir.html | 0 .../FileSystem/FatFs-0.7e/doc/ja/rename.html | 0 .../FileSystem/FatFs-0.7e/doc/ja/sdir.html | 0 .../FileSystem/FatFs-0.7e/doc/ja/sfatfs.html | 0 .../FileSystem/FatFs-0.7e/doc/ja/sfile.html | 0 .../FatFs-0.7e/doc/ja/sfileinfo.html | 0 .../FileSystem/FatFs-0.7e/doc/ja/stat.html | 0 .../FileSystem/FatFs-0.7e/doc/ja/sync.html | 0 .../FatFs-0.7e/doc/ja/truncate.html | 0 .../FileSystem/FatFs-0.7e/doc/ja/unlink.html | 0 .../FileSystem/FatFs-0.7e/doc/ja/utime.html | 0 .../FileSystem/FatFs-0.7e/doc/ja/write.html | 0 .../FileSystem/FatFs-0.7e/doc/updates.txt | 0 .../FileSystem/FatFs-0.7e/src/00readme.txt | 0 .../FileSystem/FatFs-0.7e/src/Copy of ff.c | 0 .../FileSystem/FatFs-0.7e/src/fat_integer.h | 0 .../Common/FileSystem/FatFs-0.7e/src/ff.c | 0 .../Common/FileSystem/FatFs-0.7e/src/ff.h | 0 .../FileSystem/FatFs-0.7e/src/option/cc932.c | 0 .../FileSystem/FatFs-0.7e/src/option/cc936.c | 0 .../FileSystem/FatFs-0.7e/src/option/cc949.c | 0 .../FileSystem/FatFs-0.7e/src/option/cc950.c | 0 .../FileSystem/FatFs-0.7e/src/option/ccsbcs.c | 0 .../FatFs-0.7e/src/option/syncobj.c | 0 {Demo => FreeRTOS/Demo}/Common/Full/BlockQ.c | 0 {Demo => FreeRTOS/Demo}/Common/Full/PollQ.c | 0 {Demo => FreeRTOS/Demo}/Common/Full/comtest.c | 0 {Demo => FreeRTOS/Demo}/Common/Full/death.c | 0 {Demo => FreeRTOS/Demo}/Common/Full/dynamic.c | 0 {Demo => FreeRTOS/Demo}/Common/Full/events.c | 0 {Demo => FreeRTOS/Demo}/Common/Full/flash.c | 0 {Demo => FreeRTOS/Demo}/Common/Full/flop.c | 0 {Demo => FreeRTOS/Demo}/Common/Full/integer.c | 0 {Demo => FreeRTOS/Demo}/Common/Full/print.c | 0 {Demo => FreeRTOS/Demo}/Common/Full/semtest.c | 0 .../Demo}/Common/Minimal/AltBlckQ.c | 0 .../Demo}/Common/Minimal/AltBlock.c | 0 .../Demo}/Common/Minimal/AltPollQ.c | 0 .../Demo}/Common/Minimal/AltQTest.c | 0 .../Demo}/Common/Minimal/BlockQ.c | 0 .../Demo}/Common/Minimal/GenQTest.c | 0 .../Demo}/Common/Minimal/IntQueue.c | 0 .../Demo}/Common/Minimal/PollQ.c | 0 .../Demo}/Common/Minimal/QPeek.c | 0 .../Demo}/Common/Minimal/TimerDemo.c | 0 .../Demo}/Common/Minimal/blocktim.c | 0 .../Demo}/Common/Minimal/comtest.c | 0 .../Demo}/Common/Minimal/comtest_strings.c | 0 .../Demo}/Common/Minimal/countsem.c | 0 .../Demo}/Common/Minimal/crflash.c | 0 .../Demo}/Common/Minimal/crhook.c | 0 .../Demo}/Common/Minimal/death.c | 0 .../Demo}/Common/Minimal/dynamic.c | 0 .../Demo}/Common/Minimal/flash.c | 0 .../Demo}/Common/Minimal/flash_timer.c | 0 {Demo => FreeRTOS/Demo}/Common/Minimal/flop.c | 0 .../Demo}/Common/Minimal/integer.c | 0 .../Demo}/Common/Minimal/recmutex.c | 0 .../Demo}/Common/Minimal/semtest.c | 0 .../Demo}/Common/Minimal/sp_flop.c | 0 .../at91sam9xe128/AT91SAM9XE128.h | 0 .../at91sam9xe-ek/at91sam9xe128/flash.icf | 0 .../at91sam9xe-ek/at91sam9xe128/sdram.icf | 0 .../at91sam9xe-ek/at91sam9xe128/sram.icf | 0 .../at91sam9xe256/AT91SAM9XE256.h | 0 .../at91sam9xe-ek/at91sam9xe256/flash.icf | 0 .../at91sam9xe-ek/at91sam9xe256/sdram.icf | 0 .../at91sam9xe-ek/at91sam9xe256/sram.icf | 0 .../at91sam9xe512/AT91SAM9XE512.h | 0 .../at91sam9xe-ek/at91sam9xe512/flash.icf | 0 .../at91sam9xe-ek/at91sam9xe512/sdram.icf | 0 .../at91sam9xe-ek/at91sam9xe512/sram.icf | 0 .../at91lib/boards/at91sam9xe-ek/board.h | 0 .../boards/at91sam9xe-ek/board_cstartup_iar.s | 0 .../boards/at91sam9xe-ek/board_lowlevel.c | 0 .../boards/at91sam9xe-ek/board_memories.c | 0 .../boards/at91sam9xe-ek/board_memories.h | 0 .../Atmel/at91lib/peripherals/ac97c/ac97c.c | 0 .../Atmel/at91lib/peripherals/ac97c/ac97c.h | 0 .../Atmel/at91lib/peripherals/aes/aes.c | 0 .../Atmel/at91lib/peripherals/aes/aes.h | 0 .../Atmel/at91lib/peripherals/aic/aic.c | 0 .../Atmel/at91lib/peripherals/aic/aic.h | 0 .../Atmel/at91lib/peripherals/can/can.c | 0 .../Atmel/at91lib/peripherals/can/can.h | 0 .../Atmel/at91lib/peripherals/dbgu/dbgu.c | 0 .../Atmel/at91lib/peripherals/dbgu/dbgu.h | 0 .../Atmel/at91lib/peripherals/eefc/eefc.c | 0 .../Atmel/at91lib/peripherals/eefc/eefc.h | 0 .../Atmel/at91lib/peripherals/efc/efc.c | 0 .../Atmel/at91lib/peripherals/efc/efc.h | 0 .../Atmel/at91lib/peripherals/emac/emac.c | 0 .../Atmel/at91lib/peripherals/emac/emac.h | 0 .../Atmel/at91lib/peripherals/lcd/lcd.c | 0 .../Atmel/at91lib/peripherals/lcd/lcd.h | 0 .../Atmel/at91lib/peripherals/mci/mci.c | 0 .../Atmel/at91lib/peripherals/mci/mci.h | 0 .../Atmel/at91lib/peripherals/pio/pio.c | 0 .../Atmel/at91lib/peripherals/pio/pio.h | 0 .../Atmel/at91lib/peripherals/pio/pio_it.c | 0 .../Atmel/at91lib/peripherals/pio/pio_it.h | 0 .../Atmel/at91lib/peripherals/pit/pit.c | 0 .../Atmel/at91lib/peripherals/pit/pit.h | 0 .../Atmel/at91lib/peripherals/pmc/pmc.c | 0 .../Atmel/at91lib/peripherals/pmc/pmc.h | 0 .../Atmel/at91lib/peripherals/pwmc/pwmc.c | 0 .../Atmel/at91lib/peripherals/pwmc/pwmc.h | 0 .../Atmel/at91lib/peripherals/rstc/rstc.c | 0 .../Atmel/at91lib/peripherals/rstc/rstc.h | 0 .../Atmel/at91lib/peripherals/rtc/rtc.c | 0 .../Atmel/at91lib/peripherals/rtc/rtc.h | 0 .../Atmel/at91lib/peripherals/rtt/rtt.c | 0 .../Atmel/at91lib/peripherals/rtt/rtt.h | 0 .../Atmel/at91lib/peripherals/slcdc/slcdc.c | 0 .../Atmel/at91lib/peripherals/slcdc/slcdc.h | 0 .../Atmel/at91lib/peripherals/spi/spi.c | 0 .../Atmel/at91lib/peripherals/spi/spi.h | 0 .../Atmel/at91lib/peripherals/ssc/ssc.c | 0 .../Atmel/at91lib/peripherals/ssc/ssc.h | 0 .../Atmel/at91lib/peripherals/supc/supc.c | 0 .../Atmel/at91lib/peripherals/supc/supc.h | 0 .../drivers/Atmel/at91lib/peripherals/tc/tc.c | 0 .../drivers/Atmel/at91lib/peripherals/tc/tc.h | 0 .../Atmel/at91lib/peripherals/tdes/tdes.c | 0 .../Atmel/at91lib/peripherals/tdes/tdes.h | 0 .../Atmel/at91lib/peripherals/twi/twi.c | 0 .../Atmel/at91lib/peripherals/twi/twi.h | 0 .../Atmel/at91lib/peripherals/usart/usart.c | 0 .../Atmel/at91lib/peripherals/usart/usart.h | 0 .../drivers/Atmel/at91lib/utility/assert.h | 0 .../drivers/Atmel/at91lib/utility/led.c | 0 .../drivers/Atmel/at91lib/utility/led.h | 0 .../drivers/Atmel/at91lib/utility/trace.h | 0 .../Common/drivers/LuminaryMicro/EULA.txt | 0 .../drivers/LuminaryMicro/IAR/driverlib.a | Bin .../Common/drivers/LuminaryMicro/IAR/grlib.a | Bin .../drivers/LuminaryMicro/Keil/driverlib.lib | Bin .../drivers/LuminaryMicro/Keil/grlib.lib | Bin .../drivers/LuminaryMicro/Rowley/libdriver.a | Bin .../drivers/LuminaryMicro/Rowley/libgr.a | Bin .../Demo}/Common/drivers/LuminaryMicro/adc.h | 0 .../arm-none-eabi-gcc/libdriver.a | Bin .../LuminaryMicro/arm-none-eabi-gcc/libgr.a | Bin .../Demo}/Common/drivers/LuminaryMicro/can.h | 0 .../Demo}/Common/drivers/LuminaryMicro/comp.h | 0 .../Demo}/Common/drivers/LuminaryMicro/cpu.h | 0 .../Common/drivers/LuminaryMicro/debug.h | 0 .../Common/drivers/LuminaryMicro/ethernet.h | 0 .../Demo}/Common/drivers/LuminaryMicro/gpio.h | 0 .../Common/drivers/LuminaryMicro/grlib.h | 0 .../Common/drivers/LuminaryMicro/hibernate.h | 0 .../Common/drivers/LuminaryMicro/hw_adc.h | 0 .../Common/drivers/LuminaryMicro/hw_can.h | 0 .../Common/drivers/LuminaryMicro/hw_comp.h | 0 .../drivers/LuminaryMicro/hw_ethernet.h | 0 .../Common/drivers/LuminaryMicro/hw_flash.h | 0 .../Common/drivers/LuminaryMicro/hw_gpio.h | 0 .../drivers/LuminaryMicro/hw_hibernate.h | 0 .../Common/drivers/LuminaryMicro/hw_i2c.h | 0 .../Common/drivers/LuminaryMicro/hw_ints.h | 0 .../Common/drivers/LuminaryMicro/hw_memmap.h | 0 .../Common/drivers/LuminaryMicro/hw_nvic.h | 0 .../Common/drivers/LuminaryMicro/hw_pwm.h | 0 .../Common/drivers/LuminaryMicro/hw_qei.h | 0 .../Common/drivers/LuminaryMicro/hw_ssi.h | 0 .../Common/drivers/LuminaryMicro/hw_sysctl.h | 0 .../Common/drivers/LuminaryMicro/hw_timer.h | 0 .../Common/drivers/LuminaryMicro/hw_types.h | 0 .../Common/drivers/LuminaryMicro/hw_uart.h | 0 .../Common/drivers/LuminaryMicro/hw_udma.h | 0 .../Common/drivers/LuminaryMicro/hw_usb.h | 0 .../drivers/LuminaryMicro/hw_watchdog.h | 0 .../Demo}/Common/drivers/LuminaryMicro/i2c.h | 0 .../Common/drivers/LuminaryMicro/interrupt.h | 0 .../Common/drivers/LuminaryMicro/lmi_flash.h | 0 .../Common/drivers/LuminaryMicro/lmi_timer.h | 0 .../Demo}/Common/drivers/LuminaryMicro/mpu.h | 0 .../Demo}/Common/drivers/LuminaryMicro/pwm.h | 0 .../Demo}/Common/drivers/LuminaryMicro/qei.h | 0 .../drivers/LuminaryMicro/rit128x96x4.h | 0 .../Demo}/Common/drivers/LuminaryMicro/rom.h | 0 .../Demo}/Common/drivers/LuminaryMicro/ssi.h | 0 .../Common/drivers/LuminaryMicro/sysctl.h | 0 .../Common/drivers/LuminaryMicro/systick.h | 0 .../Common/drivers/LuminaryMicro/timer.h | 0 .../Demo}/Common/drivers/LuminaryMicro/uart.h | 0 .../Common/drivers/LuminaryMicro/ustdlib.c | 0 .../Common/drivers/LuminaryMicro/watchdog.h | 0 .../Demo}/Common/drivers/OpenOCD/license.txt | 0 .../Common/drivers/OpenOCD/openocd-pp.exe | Bin .../Common/drivers/OpenOCD/openocd_ftdi.exe | Bin .../ST/STM32F10xFWLib/inc/cortexm3_macro.h | 0 .../drivers/ST/STM32F10xFWLib/inc/lcd.h | 0 .../drivers/ST/STM32F10xFWLib/inc/misc.h | 0 .../drivers/ST/STM32F10xFWLib/inc/spi_flash.h | 0 .../ST/STM32F10xFWLib/inc/stm32f10x_adc.h | 0 .../ST/STM32F10xFWLib/inc/stm32f10x_bkp.h | 0 .../ST/STM32F10xFWLib/inc/stm32f10x_can.h | 0 .../ST/STM32F10xFWLib/inc/stm32f10x_crc.h | 0 .../ST/STM32F10xFWLib/inc/stm32f10x_dac.h | 0 .../ST/STM32F10xFWLib/inc/stm32f10x_dbgmcu.h | 0 .../ST/STM32F10xFWLib/inc/stm32f10x_dma.h | 0 .../ST/STM32F10xFWLib/inc/stm32f10x_exti.h | 0 .../ST/STM32F10xFWLib/inc/stm32f10x_flash.h | 0 .../ST/STM32F10xFWLib/inc/stm32f10x_fsmc.h | 0 .../ST/STM32F10xFWLib/inc/stm32f10x_gpio.h | 0 .../ST/STM32F10xFWLib/inc/stm32f10x_i2c.h | 0 .../ST/STM32F10xFWLib/inc/stm32f10x_it.h | 0 .../ST/STM32F10xFWLib/inc/stm32f10x_iwdg.h | 0 .../ST/STM32F10xFWLib/inc/stm32f10x_lib.h | 0 .../ST/STM32F10xFWLib/inc/stm32f10x_map.h | 0 .../ST/STM32F10xFWLib/inc/stm32f10x_nvic.h | 0 .../ST/STM32F10xFWLib/inc/stm32f10x_pwr.h | 0 .../ST/STM32F10xFWLib/inc/stm32f10x_rcc.h | 0 .../ST/STM32F10xFWLib/inc/stm32f10x_rtc.h | 0 .../ST/STM32F10xFWLib/inc/stm32f10x_sdio.h | 0 .../ST/STM32F10xFWLib/inc/stm32f10x_spi.h | 0 .../ST/STM32F10xFWLib/inc/stm32f10x_systick.h | 0 .../ST/STM32F10xFWLib/inc/stm32f10x_tim.h | 0 .../ST/STM32F10xFWLib/inc/stm32f10x_tim1.h | 0 .../ST/STM32F10xFWLib/inc/stm32f10x_type.h | 0 .../ST/STM32F10xFWLib/inc/stm32f10x_usart.h | 0 .../ST/STM32F10xFWLib/inc/stm32f10x_wwdg.h | 0 .../ST/STM32F10xFWLib/inc/stm32fxxx_eth.h | 0 .../STM32F10xFWLib/inc/stm32fxxx_eth_conf.h | 0 .../ST/STM32F10xFWLib/inc/stm32fxxx_eth_lib.h | 0 .../ST/STM32F10xFWLib/inc/stm32fxxx_eth_map.h | 0 .../STM32F10xFWLib/src/cortexm3_macro_iar.s | 0 .../STM32F10xFWLib/src/cortexm3_macro_rvds.s | 0 .../drivers/ST/STM32F10xFWLib/src/lcd.c | 0 .../drivers/ST/STM32F10xFWLib/src/misc.c | 0 .../ST/STM32F10xFWLib/src/stm32f10x_adc.c | 0 .../ST/STM32F10xFWLib/src/stm32f10x_bkp.c | 0 .../ST/STM32F10xFWLib/src/stm32f10x_can.c | 0 .../ST/STM32F10xFWLib/src/stm32f10x_crc.c | 0 .../ST/STM32F10xFWLib/src/stm32f10x_dac.c | 0 .../ST/STM32F10xFWLib/src/stm32f10x_dbgmcu.c | 0 .../ST/STM32F10xFWLib/src/stm32f10x_dma.c | 0 .../ST/STM32F10xFWLib/src/stm32f10x_exti.c | 0 .../ST/STM32F10xFWLib/src/stm32f10x_flash.c | 0 .../ST/STM32F10xFWLib/src/stm32f10x_fsmc.c | 0 .../ST/STM32F10xFWLib/src/stm32f10x_gpio.c | 0 .../ST/STM32F10xFWLib/src/stm32f10x_i2c.c | 0 .../ST/STM32F10xFWLib/src/stm32f10x_iwdg.c | 0 .../ST/STM32F10xFWLib/src/stm32f10x_lib.c | 0 .../ST/STM32F10xFWLib/src/stm32f10x_nvic.c | 0 .../ST/STM32F10xFWLib/src/stm32f10x_pwr.c | 0 .../ST/STM32F10xFWLib/src/stm32f10x_rcc.c | 0 .../ST/STM32F10xFWLib/src/stm32f10x_rtc.c | 0 .../ST/STM32F10xFWLib/src/stm32f10x_sdio.c | 0 .../ST/STM32F10xFWLib/src/stm32f10x_spi.c | 0 .../ST/STM32F10xFWLib/src/stm32f10x_systick.c | 0 .../ST/STM32F10xFWLib/src/stm32f10x_tim.c | 0 .../ST/STM32F10xFWLib/src/stm32f10x_tim1.c | 0 .../ST/STM32F10xFWLib/src/stm32f10x_usart.c | 0 .../ST/STM32F10xFWLib/src/stm32f10x_wwdg.c | 0 .../ST/STM32F10xFWLib/src/stm32fxxx_eth.c | 0 .../ST/STM32F10xFWLib/src/stm32fxxx_eth_lib.c | 0 .../drivers/ST/STM32F10xFWLib/version.txt | 0 .../ethernet/FreeRTOS-uIP/Makefile.include | 0 .../Common/ethernet/FreeRTOS-uIP/clock-arch.h | 0 .../Common/ethernet/FreeRTOS-uIP/clock.h | 0 .../ethernet/FreeRTOS-uIP/lc-addrlabels.h | 0 .../Common/ethernet/FreeRTOS-uIP/lc-switch.h | 0 .../Demo}/Common/ethernet/FreeRTOS-uIP/lc.h | 0 .../Common/ethernet/FreeRTOS-uIP/psock.c | 0 .../Common/ethernet/FreeRTOS-uIP/psock.h | 0 .../Demo}/Common/ethernet/FreeRTOS-uIP/pt.h | 0 .../Common/ethernet/FreeRTOS-uIP/timer.c | 0 .../Common/ethernet/FreeRTOS-uIP/timer.h | 0 .../Common/ethernet/FreeRTOS-uIP/uip-fw.h | 0 .../ethernet/FreeRTOS-uIP/uip-neighbor.h | 0 .../Common/ethernet/FreeRTOS-uIP/uip-split.c | 0 .../Common/ethernet/FreeRTOS-uIP/uip-split.h | 0 .../Demo}/Common/ethernet/FreeRTOS-uIP/uip.c | 0 .../Demo}/Common/ethernet/FreeRTOS-uIP/uip.h | 0 .../Common/ethernet/FreeRTOS-uIP/uip_arch.h | 0 .../Common/ethernet/FreeRTOS-uIP/uip_arp.c | 0 .../Common/ethernet/FreeRTOS-uIP/uip_arp.h | 0 .../Common/ethernet/FreeRTOS-uIP/uip_timer.h | 0 .../Common/ethernet/FreeRTOS-uIP/uiplib.c | 0 .../Common/ethernet/FreeRTOS-uIP/uiplib.h | 0 .../Common/ethernet/FreeRTOS-uIP/uipopt.h | 0 .../FreeTCPIP/apps/httpd/http-strings.c | 0 .../FreeTCPIP/apps/httpd/http-strings.h | 0 .../ethernet/FreeTCPIP/apps/httpd/httpd-cgi.c | 0 .../ethernet/FreeTCPIP/apps/httpd/httpd-cgi.h | 0 .../ethernet/FreeTCPIP/apps/httpd/httpd-fs.c | 0 .../ethernet/FreeTCPIP/apps/httpd/httpd-fs.h | 0 .../FreeTCPIP/apps/httpd/httpd-fsdata.h | 0 .../ethernet/FreeTCPIP/apps/httpd/httpd.c | 0 .../ethernet/FreeTCPIP/apps/httpd/httpd.h | 0 .../ethernet/FreeTCPIP/apps/httpd/makefsdata | 0 .../ethernet/FreeTCPIP/net/clock-arch.h | 0 .../Common/ethernet/FreeTCPIP/net/lc-switch.h | 0 .../Demo}/Common/ethernet/FreeTCPIP/net/lc.h | 0 .../ethernet/FreeTCPIP/net/pack_struct_end.h | 0 .../FreeTCPIP/net/pack_struct_start.h | 0 .../Common/ethernet/FreeTCPIP/net/psock.h | 0 .../Demo}/Common/ethernet/FreeTCPIP/net/pt.h | 0 .../Demo}/Common/ethernet/FreeTCPIP/net/uip.h | 0 .../Common/ethernet/FreeTCPIP/net/uip_arch.h | 0 .../Common/ethernet/FreeTCPIP/net/uip_arp.h | 0 .../Common/ethernet/FreeTCPIP/net/uipopt.h | 0 .../Demo}/Common/ethernet/FreeTCPIP/psock.c | 0 .../Common/ethernet/FreeTCPIP/sys/clock.h | 0 .../Demo}/Common/ethernet/FreeTCPIP/sys/pt.h | 0 .../Common/ethernet/FreeTCPIP/sys/timer.h | 0 .../Demo}/Common/ethernet/FreeTCPIP/timer.c | 0 .../Demo}/Common/ethernet/FreeTCPIP/uip.c | 0 .../Demo}/Common/ethernet/FreeTCPIP/uip_arp.c | 0 .../Demo}/Common/ethernet/lwIP/FILES | 0 .../Demo}/Common/ethernet/lwIP/api/api_lib.c | 0 .../Demo}/Common/ethernet/lwIP/api/api_msg.c | 0 .../Demo}/Common/ethernet/lwIP/api/err.c | 0 .../Demo}/Common/ethernet/lwIP/api/sockets.c | 0 .../Demo}/Common/ethernet/lwIP/api/tcpip.c | 0 .../Demo}/Common/ethernet/lwIP/core/dhcp.c | 0 .../Demo}/Common/ethernet/lwIP/core/inet.c | 0 .../Demo}/Common/ethernet/lwIP/core/inet6.c | 0 .../Common/ethernet/lwIP/core/ipv4/icmp.c | 0 .../Demo}/Common/ethernet/lwIP/core/ipv4/ip.c | 0 .../Common/ethernet/lwIP/core/ipv4/ip_addr.c | 0 .../Common/ethernet/lwIP/core/ipv4/ip_frag.c | 0 .../Demo}/Common/ethernet/lwIP/core/mem.c | 0 .../Demo}/Common/ethernet/lwIP/core/memp.c | 0 .../Demo}/Common/ethernet/lwIP/core/netif.c | 0 .../Demo}/Common/ethernet/lwIP/core/pbuf.c | 0 .../Demo}/Common/ethernet/lwIP/core/raw.c | 0 .../Common/ethernet/lwIP/core/snmp/asn1_dec.c | 0 .../Common/ethernet/lwIP/core/snmp/asn1_enc.c | 0 .../Common/ethernet/lwIP/core/snmp/mib2.c | 0 .../ethernet/lwIP/core/snmp/mib_structs.c | 0 .../Common/ethernet/lwIP/core/snmp/msg_in.c | 0 .../Common/ethernet/lwIP/core/snmp/msg_out.c | 0 .../Demo}/Common/ethernet/lwIP/core/stats.c | 0 .../Demo}/Common/ethernet/lwIP/core/sys.c | 0 .../Demo}/Common/ethernet/lwIP/core/tcp.c | 0 .../Demo}/Common/ethernet/lwIP/core/tcp_in.c | 0 .../Demo}/Common/ethernet/lwIP/core/tcp_out.c | 0 .../Demo}/Common/ethernet/lwIP/core/udp.c | 0 .../ethernet/lwIP/include/ipv4/lwip/icmp.h | 0 .../ethernet/lwIP/include/ipv4/lwip/inet.h | 0 .../ethernet/lwIP/include/ipv4/lwip/ip.h | 0 .../ethernet/lwIP/include/ipv4/lwip/ip_addr.h | 0 .../ethernet/lwIP/include/ipv4/lwip/ip_frag.h | 0 .../Common/ethernet/lwIP/include/lwip/api.h | 0 .../ethernet/lwIP/include/lwip/api_msg.h | 0 .../Common/ethernet/lwIP/include/lwip/arch.h | 0 .../Common/ethernet/lwIP/include/lwip/debug.h | 0 .../Common/ethernet/lwIP/include/lwip/def.h | 0 .../Common/ethernet/lwIP/include/lwip/dhcp.h | 0 .../Common/ethernet/lwIP/include/lwip/err.h | 0 .../Common/ethernet/lwIP/include/lwip/mem.h | 0 .../Common/ethernet/lwIP/include/lwip/memp.h | 0 .../Common/ethernet/lwIP/include/lwip/netif.h | 0 .../Common/ethernet/lwIP/include/lwip/pbuf.h | 0 .../Common/ethernet/lwIP/include/lwip/raw.h | 0 .../Common/ethernet/lwIP/include/lwip/sio.h | 0 .../Common/ethernet/lwIP/include/lwip/snmp.h | 0 .../ethernet/lwIP/include/lwip/snmp_asn1.h | 0 .../ethernet/lwIP/include/lwip/snmp_msg.h | 0 .../ethernet/lwIP/include/lwip/snmp_structs.h | 0 .../ethernet/lwIP/include/lwip/sockets.h | 0 .../Common/ethernet/lwIP/include/lwip/stats.h | 0 .../Common/ethernet/lwIP/include/lwip/sys.h | 0 .../Common/ethernet/lwIP/include/lwip/tcp.h | 0 .../Common/ethernet/lwIP/include/lwip/tcpip.h | 0 .../Common/ethernet/lwIP/include/lwip/udp.h | 0 .../ethernet/lwIP/include/netif/etharp.h | 0 .../ethernet/lwIP/include/netif/loopif.h | 0 .../ethernet/lwIP/include/netif/slipif.h | 0 .../Demo}/Common/ethernet/lwIP/netif/FILES | 0 .../Demo}/Common/ethernet/lwIP/netif/etharp.c | 0 .../Common/ethernet/lwIP/netif/ethernetif.c | 0 .../Demo}/Common/ethernet/lwIP/netif/loopif.c | 0 .../Common/ethernet/lwIP/netif/ppp/auth.c | 0 .../Common/ethernet/lwIP/netif/ppp/auth.h | 0 .../Common/ethernet/lwIP/netif/ppp/chap.c | 0 .../Common/ethernet/lwIP/netif/ppp/chap.h | 0 .../Common/ethernet/lwIP/netif/ppp/chpms.c | 0 .../Common/ethernet/lwIP/netif/ppp/chpms.h | 0 .../Common/ethernet/lwIP/netif/ppp/fsm.c | 0 .../Common/ethernet/lwIP/netif/ppp/fsm.h | 0 .../Common/ethernet/lwIP/netif/ppp/ipcp.c | 0 .../Common/ethernet/lwIP/netif/ppp/ipcp.h | 0 .../Common/ethernet/lwIP/netif/ppp/lcp.c | 0 .../Common/ethernet/lwIP/netif/ppp/lcp.h | 0 .../Common/ethernet/lwIP/netif/ppp/magic.c | 0 .../Common/ethernet/lwIP/netif/ppp/magic.h | 0 .../Common/ethernet/lwIP/netif/ppp/md5.c | 0 .../Common/ethernet/lwIP/netif/ppp/md5.h | 0 .../Common/ethernet/lwIP/netif/ppp/pap.c | 0 .../Common/ethernet/lwIP/netif/ppp/pap.h | 0 .../Common/ethernet/lwIP/netif/ppp/ppp.c | 0 .../Common/ethernet/lwIP/netif/ppp/ppp.h | 0 .../Common/ethernet/lwIP/netif/ppp/pppdebug.h | 0 .../Common/ethernet/lwIP/netif/ppp/randm.c | 0 .../Common/ethernet/lwIP/netif/ppp/randm.h | 0 .../Demo}/Common/ethernet/lwIP/netif/ppp/vj.c | 0 .../Demo}/Common/ethernet/lwIP/netif/ppp/vj.h | 0 .../Common/ethernet/lwIP/netif/ppp/vjbsdhdr.h | 0 .../Demo}/Common/ethernet/lwIP/netif/slipif.c | 0 .../Demo}/Common/ethernet/lwIP_130/CHANGELOG | 0 .../Demo}/Common/ethernet/lwIP_130/COPYING | 0 .../Demo}/Common/ethernet/lwIP_130/FILES | 0 .../Demo}/Common/ethernet/lwIP_130/README | 0 .../FreeRTOS/ColdFire/MCF5225x_ethernetif.c | 0 .../port/FreeRTOS/ColdFire/__sys_arch.c | 0 .../contrib/port/FreeRTOS/ColdFire/arch/cc.h | 0 .../contrib/port/FreeRTOS/ColdFire/arch/cpu.h | 0 .../port/FreeRTOS/ColdFire/arch/perf.h | 0 .../port/FreeRTOS/ColdFire/arch/sys_arch.h | 0 .../contrib/port/FreeRTOS/ColdFire/eth.h | 0 .../contrib/port/FreeRTOS/ColdFire/eth_phy.h | 0 .../contrib/port/FreeRTOS/ColdFire/fec.h | 0 .../contrib/port/FreeRTOS/ColdFire/fecbd.h | 0 .../contrib/port/FreeRTOS/ColdFire/mii.h | 0 .../contrib/port/FreeRTOS/STR91x/arch/cc.h | 0 .../contrib/port/FreeRTOS/STR91x/arch/cpu.h | 0 .../contrib/port/FreeRTOS/STR91x/arch/init.h | 0 .../contrib/port/FreeRTOS/STR91x/arch/lib.h | 0 .../contrib/port/FreeRTOS/STR91x/arch/perf.h | 0 .../port/FreeRTOS/STR91x/arch/sys_arch.h | 0 .../lwIP_130/contrib/port/FreeRTOS/sys_arch.c | 0 .../Demo}/Common/ethernet/lwIP_130/doc/FILES | 0 .../Common/ethernet/lwIP_130/doc/contrib.txt | 0 .../Common/ethernet/lwIP_130/doc/rawapi.txt | 0 .../Common/ethernet/lwIP_130/doc/savannah.txt | 0 .../ethernet/lwIP_130/doc/snmp_agent.txt | 0 .../Common/ethernet/lwIP_130/doc/sys_arch.txt | 0 .../Demo}/Common/ethernet/lwIP_130/src/FILES | 0 .../ethernet/lwIP_130/src/api/api_lib.c | 0 .../ethernet/lwIP_130/src/api/api_msg.c | 0 .../Common/ethernet/lwIP_130/src/api/err.c | 0 .../Common/ethernet/lwIP_130/src/api/netbuf.c | 0 .../Common/ethernet/lwIP_130/src/api/netdb.c | 0 .../ethernet/lwIP_130/src/api/netifapi.c | 0 .../ethernet/lwIP_130/src/api/sockets.c | 0 .../Common/ethernet/lwIP_130/src/api/tcpip.c | 0 .../Common/ethernet/lwIP_130/src/core/dhcp.c | 0 .../Common/ethernet/lwIP_130/src/core/dns.c | 0 .../Common/ethernet/lwIP_130/src/core/init.c | 0 .../ethernet/lwIP_130/src/core/ipv4/autoip.c | 0 .../ethernet/lwIP_130/src/core/ipv4/icmp.c | 0 .../ethernet/lwIP_130/src/core/ipv4/igmp.c | 0 .../ethernet/lwIP_130/src/core/ipv4/inet.c | 0 .../lwIP_130/src/core/ipv4/inet_chksum.c | 0 .../ethernet/lwIP_130/src/core/ipv4/ip.c | 0 .../ethernet/lwIP_130/src/core/ipv4/ip_addr.c | 0 .../ethernet/lwIP_130/src/core/ipv4/ip_frag.c | 0 .../ethernet/lwIP_130/src/core/ipv6/README | 0 .../ethernet/lwIP_130/src/core/ipv6/icmp6.c | 0 .../ethernet/lwIP_130/src/core/ipv6/inet6.c | 0 .../ethernet/lwIP_130/src/core/ipv6/ip6.c | 0 .../lwIP_130/src/core/ipv6/ip6_addr.c | 0 .../Common/ethernet/lwIP_130/src/core/mem.c | 0 .../Common/ethernet/lwIP_130/src/core/memp.c | 0 .../Common/ethernet/lwIP_130/src/core/netif.c | 0 .../Common/ethernet/lwIP_130/src/core/pbuf.c | 0 .../Common/ethernet/lwIP_130/src/core/raw.c | 0 .../lwIP_130/src/core/snmp/asn1_dec.c | 0 .../lwIP_130/src/core/snmp/asn1_enc.c | 0 .../ethernet/lwIP_130/src/core/snmp/mib2.c | 0 .../lwIP_130/src/core/snmp/mib_structs.c | 0 .../ethernet/lwIP_130/src/core/snmp/msg_in.c | 0 .../ethernet/lwIP_130/src/core/snmp/msg_out.c | 0 .../Common/ethernet/lwIP_130/src/core/stats.c | 0 .../Common/ethernet/lwIP_130/src/core/sys.c | 0 .../Common/ethernet/lwIP_130/src/core/tcp.c | 0 .../ethernet/lwIP_130/src/core/tcp_in.c | 0 .../ethernet/lwIP_130/src/core/tcp_out.c | 0 .../Common/ethernet/lwIP_130/src/core/udp.c | 0 .../lwIP_130/src/include/ipv4/lwip/autoip.h | 0 .../lwIP_130/src/include/ipv4/lwip/icmp.h | 0 .../lwIP_130/src/include/ipv4/lwip/igmp.h | 0 .../lwIP_130/src/include/ipv4/lwip/inet.h | 0 .../src/include/ipv4/lwip/inet_chksum.h | 0 .../lwIP_130/src/include/ipv4/lwip/ip.h | 0 .../lwIP_130/src/include/ipv4/lwip/ip_addr.h | 0 .../lwIP_130/src/include/ipv4/lwip/ip_frag.h | 0 .../lwIP_130/src/include/ipv6/lwip/icmp.h | 0 .../lwIP_130/src/include/ipv6/lwip/inet.h | 0 .../lwIP_130/src/include/ipv6/lwip/ip.h | 0 .../lwIP_130/src/include/ipv6/lwip/ip_addr.h | 0 .../ethernet/lwIP_130/src/include/lwip/api.h | 0 .../lwIP_130/src/include/lwip/api_msg.h | 0 .../ethernet/lwIP_130/src/include/lwip/arch.h | 0 .../lwIP_130/src/include/lwip/debug.h | 0 .../ethernet/lwIP_130/src/include/lwip/def.h | 0 .../ethernet/lwIP_130/src/include/lwip/dhcp.h | 0 .../ethernet/lwIP_130/src/include/lwip/dns.h | 0 .../ethernet/lwIP_130/src/include/lwip/err.h | 0 .../ethernet/lwIP_130/src/include/lwip/init.h | 0 .../ethernet/lwIP_130/src/include/lwip/mem.h | 0 .../ethernet/lwIP_130/src/include/lwip/memp.h | 0 .../lwIP_130/src/include/lwip/memp_std.h | 0 .../lwIP_130/src/include/lwip/netbuf.h | 0 .../lwIP_130/src/include/lwip/netdb.h | 0 .../lwIP_130/src/include/lwip/netif.h | 0 .../lwIP_130/src/include/lwip/netifapi.h | 0 .../ethernet/lwIP_130/src/include/lwip/opt.h | 0 .../ethernet/lwIP_130/src/include/lwip/pbuf.h | 0 .../ethernet/lwIP_130/src/include/lwip/raw.h | 0 .../ethernet/lwIP_130/src/include/lwip/sio.h | 0 .../ethernet/lwIP_130/src/include/lwip/snmp.h | 0 .../lwIP_130/src/include/lwip/snmp_asn1.h | 0 .../lwIP_130/src/include/lwip/snmp_msg.h | 0 .../lwIP_130/src/include/lwip/snmp_structs.h | 0 .../lwIP_130/src/include/lwip/sockets.h | 0 .../lwIP_130/src/include/lwip/stats.h | 0 .../ethernet/lwIP_130/src/include/lwip/sys.h | 0 .../ethernet/lwIP_130/src/include/lwip/tcp.h | 0 .../lwIP_130/src/include/lwip/tcpip.h | 0 .../ethernet/lwIP_130/src/include/lwip/udp.h | 0 .../lwIP_130/src/include/netif/etharp.h | 0 .../lwIP_130/src/include/netif/loopif.h | 0 .../lwIP_130/src/include/netif/ppp_oe.h | 0 .../lwIP_130/src/include/netif/slipif.h | 0 .../Common/ethernet/lwIP_130/src/netif/FILES | 0 .../ethernet/lwIP_130/src/netif/etharp.c | 0 .../ethernet/lwIP_130/src/netif/ethernetif.c | 0 .../ethernet/lwIP_130/src/netif/loopif.c | 0 .../ethernet/lwIP_130/src/netif/ppp/auth.c | 0 .../ethernet/lwIP_130/src/netif/ppp/auth.h | 0 .../ethernet/lwIP_130/src/netif/ppp/chap.c | 0 .../ethernet/lwIP_130/src/netif/ppp/chap.h | 0 .../ethernet/lwIP_130/src/netif/ppp/chpms.c | 0 .../ethernet/lwIP_130/src/netif/ppp/chpms.h | 0 .../ethernet/lwIP_130/src/netif/ppp/fsm.c | 0 .../ethernet/lwIP_130/src/netif/ppp/fsm.h | 0 .../ethernet/lwIP_130/src/netif/ppp/ipcp.c | 0 .../ethernet/lwIP_130/src/netif/ppp/ipcp.h | 0 .../ethernet/lwIP_130/src/netif/ppp/lcp.c | 0 .../ethernet/lwIP_130/src/netif/ppp/lcp.h | 0 .../ethernet/lwIP_130/src/netif/ppp/magic.c | 0 .../ethernet/lwIP_130/src/netif/ppp/magic.h | 0 .../ethernet/lwIP_130/src/netif/ppp/md5.c | 0 .../ethernet/lwIP_130/src/netif/ppp/md5.h | 0 .../ethernet/lwIP_130/src/netif/ppp/pap.c | 0 .../ethernet/lwIP_130/src/netif/ppp/pap.h | 0 .../ethernet/lwIP_130/src/netif/ppp/ppp.c | 0 .../ethernet/lwIP_130/src/netif/ppp/ppp.h | 0 .../ethernet/lwIP_130/src/netif/ppp/ppp_oe.c | 0 .../lwIP_130/src/netif/ppp/pppdebug.h | 0 .../ethernet/lwIP_130/src/netif/ppp/randm.c | 0 .../ethernet/lwIP_130/src/netif/ppp/randm.h | 0 .../ethernet/lwIP_130/src/netif/ppp/vj.c | 0 .../ethernet/lwIP_130/src/netif/ppp/vj.h | 0 .../lwIP_130/src/netif/ppp/vjbsdhdr.h | 0 .../ethernet/lwIP_130/src/netif/slipif.c | 0 .../lwIP_130/src/netif/stf91x_ethernetif.c | 0 .../Demo/Common/ethernet/lwIP_130/sys | 0 .../Demo}/Common/ethernet/lwIP_132/CHANGELOG | 0 .../Demo}/Common/ethernet/lwIP_132/COPYING | 0 .../Demo}/Common/ethernet/lwIP_132/FILES | 0 .../Demo}/Common/ethernet/lwIP_132/README | 0 .../Demo}/Common/ethernet/lwIP_132/doc/FILES | 0 .../Common/ethernet/lwIP_132/doc/contrib.txt | 0 .../Common/ethernet/lwIP_132/doc/rawapi.txt | 0 .../Common/ethernet/lwIP_132/doc/savannah.txt | 0 .../ethernet/lwIP_132/doc/snmp_agent.txt | 0 .../Common/ethernet/lwIP_132/doc/sys_arch.txt | 0 .../Demo}/Common/ethernet/lwIP_132/src/FILES | 0 .../ethernet/lwIP_132/src/api/api_lib.c | 0 .../ethernet/lwIP_132/src/api/api_msg.c | 0 .../Common/ethernet/lwIP_132/src/api/err.c | 0 .../Common/ethernet/lwIP_132/src/api/netbuf.c | 0 .../Common/ethernet/lwIP_132/src/api/netdb.c | 0 .../ethernet/lwIP_132/src/api/netifapi.c | 0 .../ethernet/lwIP_132/src/api/sockets.c | 0 .../Common/ethernet/lwIP_132/src/api/tcpip.c | 0 .../Common/ethernet/lwIP_132/src/core/dhcp.c | 0 .../Common/ethernet/lwIP_132/src/core/dns.c | 0 .../Common/ethernet/lwIP_132/src/core/init.c | 0 .../ethernet/lwIP_132/src/core/ipv4/autoip.c | 0 .../ethernet/lwIP_132/src/core/ipv4/icmp.c | 0 .../ethernet/lwIP_132/src/core/ipv4/igmp.c | 0 .../ethernet/lwIP_132/src/core/ipv4/inet.c | 0 .../lwIP_132/src/core/ipv4/inet_chksum.c | 0 .../ethernet/lwIP_132/src/core/ipv4/ip.c | 0 .../ethernet/lwIP_132/src/core/ipv4/ip_addr.c | 0 .../ethernet/lwIP_132/src/core/ipv4/ip_frag.c | 0 .../ethernet/lwIP_132/src/core/ipv6/README | 0 .../ethernet/lwIP_132/src/core/ipv6/icmp6.c | 0 .../ethernet/lwIP_132/src/core/ipv6/inet6.c | 0 .../ethernet/lwIP_132/src/core/ipv6/ip6.c | 0 .../lwIP_132/src/core/ipv6/ip6_addr.c | 0 .../Common/ethernet/lwIP_132/src/core/mem.c | 0 .../Common/ethernet/lwIP_132/src/core/memp.c | 0 .../Common/ethernet/lwIP_132/src/core/netif.c | 0 .../Common/ethernet/lwIP_132/src/core/pbuf.c | 0 .../Common/ethernet/lwIP_132/src/core/raw.c | 0 .../lwIP_132/src/core/snmp/asn1_dec.c | 0 .../lwIP_132/src/core/snmp/asn1_enc.c | 0 .../ethernet/lwIP_132/src/core/snmp/mib2.c | 0 .../lwIP_132/src/core/snmp/mib_structs.c | 0 .../ethernet/lwIP_132/src/core/snmp/msg_in.c | 0 .../ethernet/lwIP_132/src/core/snmp/msg_out.c | 0 .../Common/ethernet/lwIP_132/src/core/stats.c | 0 .../Common/ethernet/lwIP_132/src/core/sys.c | 0 .../Common/ethernet/lwIP_132/src/core/tcp.c | 0 .../ethernet/lwIP_132/src/core/tcp_in.c | 0 .../ethernet/lwIP_132/src/core/tcp_out.c | 0 .../Common/ethernet/lwIP_132/src/core/udp.c | 0 .../lwIP_132/src/include/ipv4/lwip/autoip.h | 0 .../lwIP_132/src/include/ipv4/lwip/icmp.h | 0 .../lwIP_132/src/include/ipv4/lwip/igmp.h | 0 .../lwIP_132/src/include/ipv4/lwip/inet.h | 0 .../src/include/ipv4/lwip/inet_chksum.h | 0 .../lwIP_132/src/include/ipv4/lwip/ip.h | 0 .../lwIP_132/src/include/ipv4/lwip/ip_addr.h | 0 .../lwIP_132/src/include/ipv4/lwip/ip_frag.h | 0 .../lwIP_132/src/include/ipv6/lwip/icmp.h | 0 .../lwIP_132/src/include/ipv6/lwip/inet.h | 0 .../lwIP_132/src/include/ipv6/lwip/ip.h | 0 .../lwIP_132/src/include/ipv6/lwip/ip_addr.h | 0 .../ethernet/lwIP_132/src/include/lwip/api.h | 0 .../lwIP_132/src/include/lwip/api_msg.h | 0 .../ethernet/lwIP_132/src/include/lwip/arch.h | 0 .../lwIP_132/src/include/lwip/debug.h | 0 .../ethernet/lwIP_132/src/include/lwip/def.h | 0 .../ethernet/lwIP_132/src/include/lwip/dhcp.h | 0 .../ethernet/lwIP_132/src/include/lwip/dns.h | 0 .../ethernet/lwIP_132/src/include/lwip/err.h | 0 .../ethernet/lwIP_132/src/include/lwip/init.h | 0 .../ethernet/lwIP_132/src/include/lwip/mem.h | 0 .../ethernet/lwIP_132/src/include/lwip/memp.h | 0 .../lwIP_132/src/include/lwip/memp_std.h | 0 .../lwIP_132/src/include/lwip/netbuf.h | 0 .../lwIP_132/src/include/lwip/netdb.h | 0 .../lwIP_132/src/include/lwip/netif.h | 0 .../lwIP_132/src/include/lwip/netifapi.h | 0 .../ethernet/lwIP_132/src/include/lwip/opt.h | 0 .../ethernet/lwIP_132/src/include/lwip/pbuf.h | 0 .../ethernet/lwIP_132/src/include/lwip/raw.h | 0 .../ethernet/lwIP_132/src/include/lwip/sio.h | 0 .../ethernet/lwIP_132/src/include/lwip/snmp.h | 0 .../lwIP_132/src/include/lwip/snmp_asn1.h | 0 .../lwIP_132/src/include/lwip/snmp_msg.h | 0 .../lwIP_132/src/include/lwip/snmp_structs.h | 0 .../lwIP_132/src/include/lwip/sockets.h | 0 .../lwIP_132/src/include/lwip/stats.h | 0 .../ethernet/lwIP_132/src/include/lwip/sys.h | 0 .../ethernet/lwIP_132/src/include/lwip/tcp.h | 0 .../lwIP_132/src/include/lwip/tcpip.h | 0 .../ethernet/lwIP_132/src/include/lwip/udp.h | 0 .../lwIP_132/src/include/netif/etharp.h | 0 .../lwIP_132/src/include/netif/loopif.h | 0 .../lwIP_132/src/include/netif/ppp_oe.h | 0 .../lwIP_132/src/include/netif/slipif.h | 0 .../Common/ethernet/lwIP_132/src/netif/FILES | 0 .../ethernet/lwIP_132/src/netif/etharp.c | 0 .../ethernet/lwIP_132/src/netif/ethernetif.c | 0 .../ethernet/lwIP_132/src/netif/loopif.c | 0 .../ethernet/lwIP_132/src/netif/ppp/auth.c | 0 .../ethernet/lwIP_132/src/netif/ppp/auth.h | 0 .../ethernet/lwIP_132/src/netif/ppp/chap.c | 0 .../ethernet/lwIP_132/src/netif/ppp/chap.h | 0 .../ethernet/lwIP_132/src/netif/ppp/chpms.c | 0 .../ethernet/lwIP_132/src/netif/ppp/chpms.h | 0 .../ethernet/lwIP_132/src/netif/ppp/fsm.c | 0 .../ethernet/lwIP_132/src/netif/ppp/fsm.h | 0 .../ethernet/lwIP_132/src/netif/ppp/ipcp.c | 0 .../ethernet/lwIP_132/src/netif/ppp/ipcp.h | 0 .../ethernet/lwIP_132/src/netif/ppp/lcp.c | 0 .../ethernet/lwIP_132/src/netif/ppp/lcp.h | 0 .../ethernet/lwIP_132/src/netif/ppp/magic.c | 0 .../ethernet/lwIP_132/src/netif/ppp/magic.h | 0 .../ethernet/lwIP_132/src/netif/ppp/md5.c | 0 .../ethernet/lwIP_132/src/netif/ppp/md5.h | 0 .../ethernet/lwIP_132/src/netif/ppp/pap.c | 0 .../ethernet/lwIP_132/src/netif/ppp/pap.h | 0 .../ethernet/lwIP_132/src/netif/ppp/ppp.c | 0 .../ethernet/lwIP_132/src/netif/ppp/ppp.h | 0 .../ethernet/lwIP_132/src/netif/ppp/ppp_oe.c | 0 .../lwIP_132/src/netif/ppp/pppdebug.h | 0 .../ethernet/lwIP_132/src/netif/ppp/randm.c | 0 .../ethernet/lwIP_132/src/netif/ppp/randm.h | 0 .../ethernet/lwIP_132/src/netif/ppp/vj.c | 0 .../ethernet/lwIP_132/src/netif/ppp/vj.h | 0 .../lwIP_132/src/netif/ppp/vjbsdhdr.h | 0 .../ethernet/lwIP_132/src/netif/slipif.c | 0 .../Common/ethernet/lwip-1.4.0/CHANGELOG | 0 .../Demo}/Common/ethernet/lwip-1.4.0/COPYING | 0 .../Demo}/Common/ethernet/lwip-1.4.0/FILES | 0 .../Demo}/Common/ethernet/lwip-1.4.0/README | 0 .../Common/ethernet/lwip-1.4.0/UPGRADING | 0 .../Common/ethernet/lwip-1.4.0/doc/FILES | 0 .../ethernet/lwip-1.4.0/doc/contrib.txt | 0 .../Common/ethernet/lwip-1.4.0/doc/rawapi.txt | 0 .../ethernet/lwip-1.4.0/doc/savannah.txt | 0 .../ethernet/lwip-1.4.0/doc/snmp_agent.txt | 0 .../ethernet/lwip-1.4.0/doc/sys_arch.txt | 0 .../MicroBlaze-Ethernet-Lite/SP605_PHY.c | 0 .../MicroBlaze-Ethernet-Lite/ethernetif.c | 0 .../include/arch/bpstruct.h | 0 .../include/arch/cc.h | 0 .../include/arch/epstruct.h | 0 .../include/arch/perf.h | 0 .../include/arch/sys_arch.h | 0 .../ports/MicroBlaze-Ethernet-Lite/sys_arch.c | 0 .../lwip-1.4.0/ports/win32/WinPCap/Packet32.h | 0 .../ports/win32/WinPCap/PacketData.h | 0 .../ports/win32/WinPCap/Win32-Extensions.h | 0 .../lwip-1.4.0/ports/win32/WinPCap/arch.c | 0 .../lwip-1.4.0/ports/win32/WinPCap/bittypes.h | 0 .../lwip-1.4.0/ports/win32/WinPCap/ip6_misc.h | 0 .../lwip-1.4.0/ports/win32/WinPCap/netif.h | 0 .../lwip-1.4.0/ports/win32/WinPCap/pcap-bpf.h | 0 .../ports/win32/WinPCap/pcap-namedb.h | 0 .../ports/win32/WinPCap/pcap-stdinc.h | 0 .../lwip-1.4.0/ports/win32/WinPCap/pcap.h | 0 .../ports/win32/WinPCap/pcap/bluetooth.h | 0 .../lwip-1.4.0/ports/win32/WinPCap/pcap/bpf.h | 0 .../ports/win32/WinPCap/pcap/namedb.h | 0 .../lwip-1.4.0/ports/win32/WinPCap/pcap/sll.h | 0 .../lwip-1.4.0/ports/win32/WinPCap/pcap/usb.h | 0 .../ports/win32/WinPCap/pcap/vlan.h | 0 .../ports/win32/WinPCap/remote-ext.h | 0 .../lwip-1.4.0/ports/win32/WinPCap/wpcap.lib | Bin .../lwip-1.4.0/ports/win32/ethernetif.c | 0 .../ports/win32/include/arch/bpstruct.h | 0 .../lwip-1.4.0/ports/win32/include/arch/cc.h | 0 .../ports/win32/include/arch/epstruct.h | 0 .../ports/win32/include/arch/perf.h | 0 .../ports/win32/include/arch/sys_arch.h | 0 .../lwip-1.4.0/ports/win32/lwipcfg_msvc.h | 0 .../lwip-1.4.0/ports/win32/sys_arch.c | 0 .../Common/ethernet/lwip-1.4.0/src/.hgignore | 0 .../Common/ethernet/lwip-1.4.0/src/FILES | 0 .../ethernet/lwip-1.4.0/src/api/api_lib.c | 0 .../ethernet/lwip-1.4.0/src/api/api_msg.c | 0 .../Common/ethernet/lwip-1.4.0/src/api/err.c | 0 .../ethernet/lwip-1.4.0/src/api/netbuf.c | 0 .../ethernet/lwip-1.4.0/src/api/netdb.c | 0 .../ethernet/lwip-1.4.0/src/api/netifapi.c | 0 .../ethernet/lwip-1.4.0/src/api/sockets.c | 0 .../ethernet/lwip-1.4.0/src/api/tcpip.c | 0 .../Common/ethernet/lwip-1.4.0/src/core/def.c | 0 .../ethernet/lwip-1.4.0/src/core/dhcp.c | 0 .../Common/ethernet/lwip-1.4.0/src/core/dns.c | 0 .../ethernet/lwip-1.4.0/src/core/init.c | 0 .../lwip-1.4.0/src/core/ipv4/autoip.c | 0 .../ethernet/lwip-1.4.0/src/core/ipv4/icmp.c | 0 .../ethernet/lwip-1.4.0/src/core/ipv4/igmp.c | 0 .../ethernet/lwip-1.4.0/src/core/ipv4/inet.c | 0 .../lwip-1.4.0/src/core/ipv4/inet_chksum.c | 0 .../ethernet/lwip-1.4.0/src/core/ipv4/ip.c | 0 .../lwip-1.4.0/src/core/ipv4/ip_addr.c | 0 .../lwip-1.4.0/src/core/ipv4/ip_frag.c | 0 .../ethernet/lwip-1.4.0/src/core/ipv6/README | 0 .../ethernet/lwip-1.4.0/src/core/ipv6/icmp6.c | 0 .../ethernet/lwip-1.4.0/src/core/ipv6/inet6.c | 0 .../ethernet/lwip-1.4.0/src/core/ipv6/ip6.c | 0 .../lwip-1.4.0/src/core/ipv6/ip6_addr.c | 0 .../lwip-1.4.0/src/core/lwip_timers.c | 0 .../Common/ethernet/lwip-1.4.0/src/core/mem.c | 0 .../ethernet/lwip-1.4.0/src/core/memp.c | 0 .../ethernet/lwip-1.4.0/src/core/netif.c | 0 .../ethernet/lwip-1.4.0/src/core/pbuf.c | 0 .../Common/ethernet/lwip-1.4.0/src/core/raw.c | 0 .../lwip-1.4.0/src/core/snmp/asn1_dec.c | 0 .../lwip-1.4.0/src/core/snmp/asn1_enc.c | 0 .../ethernet/lwip-1.4.0/src/core/snmp/mib2.c | 0 .../lwip-1.4.0/src/core/snmp/mib_structs.c | 0 .../lwip-1.4.0/src/core/snmp/msg_in.c | 0 .../lwip-1.4.0/src/core/snmp/msg_out.c | 0 .../ethernet/lwip-1.4.0/src/core/stats.c | 0 .../Common/ethernet/lwip-1.4.0/src/core/sys.c | 0 .../Common/ethernet/lwip-1.4.0/src/core/tcp.c | 0 .../ethernet/lwip-1.4.0/src/core/tcp_in.c | 0 .../ethernet/lwip-1.4.0/src/core/tcp_out.c | 0 .../Common/ethernet/lwip-1.4.0/src/core/udp.c | 0 .../lwip-1.4.0/src/include/ipv4/lwip/autoip.h | 0 .../lwip-1.4.0/src/include/ipv4/lwip/icmp.h | 0 .../lwip-1.4.0/src/include/ipv4/lwip/igmp.h | 0 .../lwip-1.4.0/src/include/ipv4/lwip/inet.h | 0 .../src/include/ipv4/lwip/inet_chksum.h | 0 .../lwip-1.4.0/src/include/ipv4/lwip/ip.h | 0 .../src/include/ipv4/lwip/ip_addr.h | 0 .../src/include/ipv4/lwip/ip_frag.h | 0 .../lwip-1.4.0/src/include/ipv6/lwip/icmp.h | 0 .../lwip-1.4.0/src/include/ipv6/lwip/inet.h | 0 .../lwip-1.4.0/src/include/ipv6/lwip/ip.h | 0 .../src/include/ipv6/lwip/ip_addr.h | 0 .../lwip-1.4.0/src/include/lwip/api.h | 0 .../lwip-1.4.0/src/include/lwip/api_msg.h | 0 .../lwip-1.4.0/src/include/lwip/arch.h | 0 .../lwip-1.4.0/src/include/lwip/debug.h | 0 .../lwip-1.4.0/src/include/lwip/def.h | 0 .../lwip-1.4.0/src/include/lwip/dhcp.h | 0 .../lwip-1.4.0/src/include/lwip/dns.h | 0 .../lwip-1.4.0/src/include/lwip/err.h | 0 .../lwip-1.4.0/src/include/lwip/init.h | 0 .../lwip-1.4.0/src/include/lwip/mem.h | 0 .../lwip-1.4.0/src/include/lwip/memp.h | 0 .../lwip-1.4.0/src/include/lwip/memp_std.h | 0 .../lwip-1.4.0/src/include/lwip/netbuf.h | 0 .../lwip-1.4.0/src/include/lwip/netdb.h | 0 .../lwip-1.4.0/src/include/lwip/netif.h | 0 .../lwip-1.4.0/src/include/lwip/netifapi.h | 0 .../lwip-1.4.0/src/include/lwip/opt.h | 0 .../lwip-1.4.0/src/include/lwip/pbuf.h | 0 .../lwip-1.4.0/src/include/lwip/raw.h | 0 .../lwip-1.4.0/src/include/lwip/sio.h | 0 .../lwip-1.4.0/src/include/lwip/snmp.h | 0 .../lwip-1.4.0/src/include/lwip/snmp_asn1.h | 0 .../lwip-1.4.0/src/include/lwip/snmp_msg.h | 0 .../src/include/lwip/snmp_structs.h | 0 .../lwip-1.4.0/src/include/lwip/sockets.h | 0 .../lwip-1.4.0/src/include/lwip/stats.h | 0 .../lwip-1.4.0/src/include/lwip/sys.h | 0 .../lwip-1.4.0/src/include/lwip/tcp.h | 0 .../lwip-1.4.0/src/include/lwip/tcp_impl.h | 0 .../lwip-1.4.0/src/include/lwip/tcpip.h | 0 .../lwip-1.4.0/src/include/lwip/timers.h | 0 .../lwip-1.4.0/src/include/lwip/udp.h | 0 .../lwip-1.4.0/src/include/netif/etharp.h | 0 .../lwip-1.4.0/src/include/netif/ppp_oe.h | 0 .../lwip-1.4.0/src/include/netif/slipif.h | 0 .../ethernet/lwip-1.4.0/src/netif/FILES | 0 .../ethernet/lwip-1.4.0/src/netif/etharp.c | 0 .../lwip-1.4.0/src/netif/ethernetif.c | 0 .../ethernet/lwip-1.4.0/src/netif/ppp/auth.c | 0 .../ethernet/lwip-1.4.0/src/netif/ppp/auth.h | 0 .../ethernet/lwip-1.4.0/src/netif/ppp/chap.c | 0 .../ethernet/lwip-1.4.0/src/netif/ppp/chap.h | 0 .../ethernet/lwip-1.4.0/src/netif/ppp/chpms.c | 0 .../ethernet/lwip-1.4.0/src/netif/ppp/chpms.h | 0 .../ethernet/lwip-1.4.0/src/netif/ppp/fsm.c | 0 .../ethernet/lwip-1.4.0/src/netif/ppp/fsm.h | 0 .../ethernet/lwip-1.4.0/src/netif/ppp/ipcp.c | 0 .../ethernet/lwip-1.4.0/src/netif/ppp/ipcp.h | 0 .../ethernet/lwip-1.4.0/src/netif/ppp/lcp.c | 0 .../ethernet/lwip-1.4.0/src/netif/ppp/lcp.h | 0 .../ethernet/lwip-1.4.0/src/netif/ppp/magic.c | 0 .../ethernet/lwip-1.4.0/src/netif/ppp/magic.h | 0 .../ethernet/lwip-1.4.0/src/netif/ppp/md5.c | 0 .../ethernet/lwip-1.4.0/src/netif/ppp/md5.h | 0 .../ethernet/lwip-1.4.0/src/netif/ppp/pap.c | 0 .../ethernet/lwip-1.4.0/src/netif/ppp/pap.h | 0 .../ethernet/lwip-1.4.0/src/netif/ppp/ppp.c | 0 .../ethernet/lwip-1.4.0/src/netif/ppp/ppp.h | 0 .../lwip-1.4.0/src/netif/ppp/ppp_oe.c | 0 .../lwip-1.4.0/src/netif/ppp/pppdebug.h | 0 .../ethernet/lwip-1.4.0/src/netif/ppp/randm.c | 0 .../ethernet/lwip-1.4.0/src/netif/ppp/randm.h | 0 .../ethernet/lwip-1.4.0/src/netif/ppp/vj.c | 0 .../ethernet/lwip-1.4.0/src/netif/ppp/vj.h | 0 .../ethernet/lwip-1.4.0/src/netif/slipif.c | 0 .../Demo}/Common/ethernet/uIP/uip-1.0/README | 0 .../Common/ethernet/uIP/uip-1.0/apps/README | 0 .../uip-1.0/apps/webserver/Makefile.webserver | 0 .../uIP/uip-1.0/apps/webserver/http-strings | 0 .../uIP/uip-1.0/apps/webserver/http-strings.c | 0 .../uIP/uip-1.0/apps/webserver/http-strings.h | 0 .../uIP/uip-1.0/apps/webserver/httpd-cgi.c | 0 .../uIP/uip-1.0/apps/webserver/httpd-cgi.h | 0 .../uIP/uip-1.0/apps/webserver/httpd-fs.c | 0 .../uIP/uip-1.0/apps/webserver/httpd-fs.h | 0 .../uip-1.0/apps/webserver/httpd-fs/404.html | 0 .../uip-1.0/apps/webserver/httpd-fs/fade.png | Bin .../apps/webserver/httpd-fs/files.shtml | 0 .../apps/webserver/httpd-fs/footer.html | 0 .../apps/webserver/httpd-fs/header.html | 0 .../apps/webserver/httpd-fs/index.html | 0 .../apps/webserver/httpd-fs/processes.shtml | 0 .../apps/webserver/httpd-fs/stats.shtml | 0 .../uip-1.0/apps/webserver/httpd-fs/style.css | 0 .../uip-1.0/apps/webserver/httpd-fs/tcp.shtml | 0 .../uIP/uip-1.0/apps/webserver/httpd-fsdata.c | 0 .../uIP/uip-1.0/apps/webserver/httpd-fsdata.h | 0 .../uIP/uip-1.0/apps/webserver/httpd.c | 0 .../uIP/uip-1.0/apps/webserver/httpd.h | 0 .../uIP/uip-1.0/apps/webserver/makefsdata | 0 .../uIP/uip-1.0/apps/webserver/makestrings | 0 .../uIP/uip-1.0/apps/webserver/webserver.h | 0 .../uIP/uip-1.0/uip-1.0-changelog.txt | 0 .../ethernet/uIP/uip-1.0/uip/Makefile.include | 0 .../Common/ethernet/uIP/uip-1.0/uip/clock.h | 0 .../ethernet/uIP/uip-1.0/uip/lc-addrlabels.h | 0 .../ethernet/uIP/uip-1.0/uip/lc-switch.h | 0 .../Common/ethernet/uIP/uip-1.0/uip/lc.h | 0 .../Common/ethernet/uIP/uip-1.0/uip/psock.c | 0 .../Common/ethernet/uIP/uip-1.0/uip/psock.h | 0 .../Common/ethernet/uIP/uip-1.0/uip/pt.h | 0 .../Common/ethernet/uIP/uip-1.0/uip/timer.c | 0 .../Common/ethernet/uIP/uip-1.0/uip/timer.h | 0 .../Common/ethernet/uIP/uip-1.0/uip/uip-fw.c | 0 .../Common/ethernet/uIP/uip-1.0/uip/uip-fw.h | 0 .../ethernet/uIP/uip-1.0/uip/uip-neighbor.c | 0 .../ethernet/uIP/uip-1.0/uip/uip-neighbor.h | 0 .../ethernet/uIP/uip-1.0/uip/uip-split.c | 0 .../ethernet/uIP/uip-1.0/uip/uip-split.h | 0 .../Common/ethernet/uIP/uip-1.0/uip/uip.c | 0 .../Common/ethernet/uIP/uip-1.0/uip/uip.h | 0 .../ethernet/uIP/uip-1.0/uip/uip_arch.h | 0 .../Common/ethernet/uIP/uip-1.0/uip/uip_arp.c | 0 .../Common/ethernet/uIP/uip-1.0/uip/uip_arp.h | 0 .../Common/ethernet/uIP/uip-1.0/uip/uiplib.c | 0 .../Common/ethernet/uIP/uip-1.0/uip/uiplib.h | 0 .../Common/ethernet/uIP/uip-1.0/uip/uipopt.h | 0 .../Demo}/Common/include/AltBlckQ.h | 0 .../Demo}/Common/include/AltBlock.h | 0 .../Demo}/Common/include/AltPollQ.h | 0 .../Demo}/Common/include/AltQTest.h | 0 .../Demo}/Common/include/BlockQ.h | 0 .../Demo}/Common/include/GenQTest.h | 0 .../Demo}/Common/include/IntQueue.h | 0 .../Demo}/Common/include/PollQ.h | 0 .../Demo}/Common/include/QPeek.h | 0 .../Demo}/Common/include/TimerDemo.h | 0 .../Demo}/Common/include/blocktim.h | 0 .../Demo}/Common/include/comtest.h | 0 .../Demo}/Common/include/comtest2.h | 0 .../Demo}/Common/include/comtest_strings.h | 0 .../Demo}/Common/include/countsem.h | 0 .../Demo}/Common/include/crflash.h | 0 .../Demo}/Common/include/crhook.h | 0 .../Demo}/Common/include/death.h | 0 .../Demo}/Common/include/dynamic.h | 0 .../Demo}/Common/include/fileIO.h | 0 .../Demo}/Common/include/flash.h | 0 .../Demo}/Common/include/flash_timer.h | 0 {Demo => FreeRTOS/Demo}/Common/include/flop.h | 0 .../Demo}/Common/include/integer.h | 0 .../Demo}/Common/include/mevents.h | 0 .../Demo}/Common/include/partest.h | 0 .../Demo}/Common/include/print.h | 0 .../Demo}/Common/include/recmutex.h | 0 .../Demo}/Common/include/semtest.h | 0 .../Demo}/Common/include/serial.h | 0 .../Demo}/Cygnal/FreeRTOSConfig.h | 0 {Demo => FreeRTOS/Demo}/Cygnal/Makefile | 0 .../Demo}/Cygnal/ParTest/ParTest.c | 0 {Demo => FreeRTOS/Demo}/Cygnal/c8051f120.h | 0 {Demo => FreeRTOS/Demo}/Cygnal/main.c | 0 {Demo => FreeRTOS/Demo}/Cygnal/sdcc.wsp | 0 .../Demo}/Cygnal/serial/serial.c | 0 {Demo => FreeRTOS/Demo}/Flshlite/FRConfig.h | 0 .../Demo}/Flshlite/FileIO/fileIO.c | 0 .../Demo}/Flshlite/FreeRTOSConfig.h | 0 .../Demo}/Flshlite/ParTest/ParTest.c | 0 {Demo => FreeRTOS/Demo}/Flshlite/RTOSDEMO.IDE | Bin {Demo => FreeRTOS/Demo}/Flshlite/main.c | 0 {Demo => FreeRTOS/Demo}/Flshlite/rtosdemo.DSW | Bin {Demo => FreeRTOS/Demo}/Flshlite/rtosdemo.lk1 | 0 {Demo => FreeRTOS/Demo}/Flshlite/rtosdemo.mk | 0 {Demo => FreeRTOS/Demo}/Flshlite/rtosdemo.mk1 | 0 {Demo => FreeRTOS/Demo}/Flshlite/rtosdemo.tgt | 0 {Demo => FreeRTOS/Demo}/Flshlite/rtosdemo.wpj | 0 .../Demo}/Flshlite/serial/serial.c | 0 {Demo => FreeRTOS/Demo}/H8S/RTOSDemo.hws | 0 {Demo => FreeRTOS/Demo}/H8S/RTOSDemo.tws | 0 {Demo => FreeRTOS/Demo}/H8S/RTOSDemo/2329S.h | 0 .../Demo}/H8S/RTOSDemo/Debug/Debug.hdp | Bin .../Demo}/H8S/RTOSDemo/Debug/RTOSDemo.x | Bin .../Demo}/H8S/RTOSDemo/Debug/gnuconfig.ini | 0 .../Demo}/H8S/RTOSDemo/FreeRTOSConfig.h | 0 .../Demo}/H8S/RTOSDemo/ParTest/ParTest.c | 0 .../Demo}/H8S/RTOSDemo/RTOSDemo.hwp | 0 .../Demo}/H8S/RTOSDemo/RTOSDemo.tps | 0 .../Demo}/H8S/RTOSDemo/Release session.hsf | 0 .../Demo}/H8S/RTOSDemo/Release/gnuconfig.ini | 0 .../Demo}/H8S/RTOSDemo/Simulator sessions.hsf | 0 {Demo => FreeRTOS/Demo}/H8S/RTOSDemo/main.c | 0 .../Demo}/H8S/RTOSDemo/serial/serial.c | 0 .../Demo}/H8S/RTOSDemo/start.asm | 0 {Demo => FreeRTOS/Demo}/H8S/RTOSDemo/vects.c | 0 .../HCS12_CodeWarrior_banked/CODE/Byte1.C | 0 .../HCS12_CodeWarrior_banked/CODE/Byte1.H | 0 .../HCS12_CodeWarrior_banked/CODE/COM0.C | 0 .../HCS12_CodeWarrior_banked/CODE/COM0.H | 0 .../CODE/Copy of Vectors.c | 0 .../Demo}/HCS12_CodeWarrior_banked/CODE/Cpu.C | 0 .../Demo}/HCS12_CodeWarrior_banked/CODE/Cpu.H | 0 .../HCS12_CodeWarrior_banked/CODE/Events.C | 0 .../HCS12_CodeWarrior_banked/CODE/Events.H | 0 .../HCS12_CodeWarrior_banked/CODE/IO_Map.C | 0 .../HCS12_CodeWarrior_banked/CODE/IO_Map.H | 0 .../HCS12_CodeWarrior_banked/CODE/PESL.h | 0 .../HCS12_CodeWarrior_banked/CODE/PE_Const.H | 0 .../HCS12_CodeWarrior_banked/CODE/PE_Error.H | 0 .../HCS12_CodeWarrior_banked/CODE/PE_Timer.C | 0 .../HCS12_CodeWarrior_banked/CODE/PE_Timer.H | 0 .../HCS12_CodeWarrior_banked/CODE/PE_Types.H | 0 .../HCS12_CodeWarrior_banked/CODE/RTOSDemo.C | 0 .../CODE/RTOSDemo.PRM | 0 .../HCS12_CodeWarrior_banked/CODE/TickTimer.C | 0 .../HCS12_CodeWarrior_banked/CODE/TickTimer.H | 0 .../HCS12_CodeWarrior_banked/CODE/Vectors.c | 0 .../HCS12_CodeWarrior_banked/C_Layout.hwl | 0 .../HCS12_CodeWarrior_banked/DOC/RTOSDemo.sig | 0 .../HCS12_CodeWarrior_banked/DOC/RTOSDemo.txt | 0 .../HCS12_CodeWarrior_banked/FreeRTOSConfig.h | 0 .../HCS12_CodeWarrior_banked/P&E_ICD.ini | 0 .../ParTest/ParTest.c | 0 .../HCS12_CodeWarrior_banked/RTOSDemo.G_C | 0 .../HCS12_CodeWarrior_banked/RTOSDemo.dsk | 0 .../HCS12_CodeWarrior_banked/RTOSDemo.mcp | Bin .../HCS12_CodeWarrior_banked/RTOSDemo.pe | 0 .../RTOSDemo_Data/CWSettingsWindows.stg | Bin .../P&E_ICD/TargetDataWindows.tdt | Bin .../Simulator/TargetDataWindows.tdt | Bin .../HCS12_CodeWarrior_banked/Simulator.ini | 0 .../Sources/Start12.c | 0 .../Sources/datapage.c | 0 .../HCS12_CodeWarrior_banked/bin/P&E_ICD.map | 0 .../bin/Simulator.map | 0 .../cmd/P&E_ICD_Erase_unsecure_hcs12.cmd | 0 .../cmd/P&E_ICD_Postload.cmd | 0 .../cmd/P&E_ICD_Preload.cmd | 0 .../cmd/P&E_ICD_Reset.cmd | 0 .../cmd/P&E_ICD_Startup.cmd | 0 .../cmd/P&E_ICD_Vppoff.cmd | 0 .../cmd/P&E_ICD_Vppon.cmd | 0 .../cmd/Simulator_Postload.cmd | 0 .../cmd/Simulator_Preload.cmd | 0 .../cmd/Simulator_Reset.cmd | 0 .../cmd/Simulator_SetCPU.cmd | 0 .../cmd/Simulator_Startup.cmd | 0 .../Demo}/HCS12_CodeWarrior_banked/main.c | 0 .../HCS12_CodeWarrior_banked/prm/burner.bbl | 0 .../Demo}/HCS12_CodeWarrior_banked/readme.txt | 0 .../HCS12_CodeWarrior_banked/serial/serial.c | 0 .../CODE/ButtonInterrupt.C | 0 .../CODE/ButtonInterrupt.H | 0 .../HCS12_CodeWarrior_small/CODE/Byte1.C | 0 .../HCS12_CodeWarrior_small/CODE/Byte1.H | 0 .../CODE/Copy of Vectors.c | 0 .../Demo}/HCS12_CodeWarrior_small/CODE/Cpu.C | 0 .../Demo}/HCS12_CodeWarrior_small/CODE/Cpu.H | 0 .../HCS12_CodeWarrior_small/CODE/Events.C | 0 .../HCS12_CodeWarrior_small/CODE/Events.H | 0 .../HCS12_CodeWarrior_small/CODE/IO_Map.C | 0 .../HCS12_CodeWarrior_small/CODE/IO_Map.H | 0 .../Demo}/HCS12_CodeWarrior_small/CODE/PESL.h | 0 .../HCS12_CodeWarrior_small/CODE/PE_Const.H | 0 .../HCS12_CodeWarrior_small/CODE/PE_Error.H | 0 .../HCS12_CodeWarrior_small/CODE/PE_Timer.C | 0 .../HCS12_CodeWarrior_small/CODE/PE_Timer.H | 0 .../HCS12_CodeWarrior_small/CODE/PE_Types.H | 0 .../HCS12_CodeWarrior_small/CODE/RTOSDemo.C | 0 .../HCS12_CodeWarrior_small/CODE/RTOSDemo.PRM | 0 .../HCS12_CodeWarrior_small/CODE/TickTimer.C | 0 .../HCS12_CodeWarrior_small/CODE/TickTimer.H | 0 .../HCS12_CodeWarrior_small/CODE/Vectors.c | 0 .../HCS12_CodeWarrior_small/C_Layout.hwl | 0 .../HCS12_CodeWarrior_small/DOC/RTOSDemo.sig | 0 .../HCS12_CodeWarrior_small/DOC/RTOSDemo.txt | 0 .../HCS12_CodeWarrior_small/FreeRTOSConfig.h | 0 .../HCS12_CodeWarrior_small/ParTest/ParTest.c | 0 .../HCS12_CodeWarrior_small/RTOSDemo.G_C | 0 .../HCS12_CodeWarrior_small/RTOSDemo.dsk | 0 .../HCS12_CodeWarrior_small/RTOSDemo.mcp | Bin .../Demo}/HCS12_CodeWarrior_small/RTOSDemo.pe | 0 .../RTOSDemo_Data/CWSettingsWindows.stg | Bin .../Simulator/TargetDataWindows.tdt | Bin .../SofTec/TargetDataWindows.tdt | Bin .../HCS12_CodeWarrior_small/Simulator.ini | 0 .../Demo}/HCS12_CodeWarrior_small/SofTec.ini | 0 .../HCS12_CodeWarrior_small/Sources/Start12.c | 0 .../Sources/datapage.c | 0 .../HCS12_CodeWarrior_small/bin/Simulator.map | 0 .../HCS12_CodeWarrior_small/bin/SofTec.map | 0 .../cmd/Simulator_Postload.cmd | 0 .../cmd/Simulator_Preload.cmd | 0 .../cmd/Simulator_Reset.cmd | 0 .../cmd/Simulator_SetCPU.cmd | 0 .../cmd/Simulator_Startup.cmd | 0 .../cmd/SofTec_Postload.cmd | 0 .../cmd/SofTec_Preload.cmd | 0 .../cmd/SofTec_Reset.cmd | 0 .../cmd/SofTec_Startup.cmd | 0 .../Demo}/HCS12_CodeWarrior_small/main.c | 0 .../HCS12_CodeWarrior_small/prm/burner.bbl | 0 .../Demo}/HCS12_CodeWarrior_small/readme.txt | 0 .../HCS12_CodeWarrior_small/serial/serial.c | 0 .../Demo}/HCS12_GCC_banked/FreeRTOSConfig.h | 0 .../Demo}/HCS12_GCC_banked/Makefile | 0 .../Demo}/HCS12_GCC_banked/PE_Error.h | 0 .../Demo}/HCS12_GCC_banked/ParTest.c | 0 .../Demo}/HCS12_GCC_banked/README.txt | 0 .../asm-m68hcs12/arch-dragon12/arch/exit.h | 0 .../arch-dragon12/arch/interrupts.h | 0 .../asm-m68hcs12/arch-dragon12/arch/param.h | 0 .../asm-m68hcs12/interrupts-dp256.h | 0 .../asm-m68hcs12/interrupts.h | 0 .../HCS12_GCC_banked/asm-m68hcs12/param.h | 0 .../HCS12_GCC_banked/asm-m68hcs12/ports.h | 0 .../HCS12_GCC_banked/asm-m68hcs12/ports_def.h | 0 .../Demo}/HCS12_GCC_banked/asm-m68hcs12/sio.h | 0 .../Demo}/HCS12_GCC_banked/cpu.h | 0 .../Demo}/HCS12_GCC_banked/gelfunc.c | 0 .../Demo}/HCS12_GCC_banked/ldscript-rtos.x | 0 .../Demo}/HCS12_GCC_banked/main.c | 0 .../Demo}/HCS12_GCC_banked/memory.x | 0 .../Demo}/HCS12_GCC_banked/sci.c | 0 .../Demo}/HCS12_GCC_banked/sci.h | 0 .../Demo}/HCS12_GCC_banked/serial.c | 0 .../Demo}/HCS12_GCC_banked/startup.c | 0 .../Demo}/HCS12_GCC_banked/sys/interrupts.h | 0 .../Demo}/HCS12_GCC_banked/sys/param.h | 0 .../Demo}/HCS12_GCC_banked/sys/ports.h | 0 .../Demo}/HCS12_GCC_banked/sys/ports_def.h | 0 .../Demo}/HCS12_GCC_banked/sys/sio.h | 0 .../Demo}/HCS12_GCC_banked/vectors.c | 0 .../MB91460_Softune/91460_template_91467d.dat | 0 .../Demo}/MB91460_Softune/91467d_FreeRTOS.prj | 0 .../Demo}/MB91460_Softune/91467d_FreeRTOS.wsp | 0 .../Demo}/MB91460_Softune/PRC/set_MONITOR.prc | 0 .../PRC/set_MONITOR_INTERNAL.prc | 0 .../Demo}/MB91460_Softune/PRC/set_RESET.prc | 0 .../Demo}/MB91460_Softune/PRC/set_ROMS.prc | 0 .../MB91460_Softune/PRC/set_SIMULATE.prc | 0 .../MB91460_Softune/SRC/FreeRTOSConfig.h | 0 .../Demo}/MB91460_Softune/SRC/Start91460.asm | 0 .../MB91460_Softune/SRC/crflash_modified.c | 0 .../Demo}/MB91460_Softune/SRC/main.c | 0 .../Demo}/MB91460_Softune/SRC/mb91467d.asm | 0 .../Demo}/MB91460_Softune/SRC/mb91467d.h | 0 .../MB91460_Softune/SRC/partest/partest.c | 0 .../Demo}/MB91460_Softune/SRC/serial/serial.c | 0 .../SRC/utility/printf-stdarg.c | 0 .../MB91460_Softune/SRC/utility/taskutility.c | 0 .../MB91460_Softune/SRC/utility/taskutility.h | 0 .../Demo}/MB91460_Softune/SRC/vectors.c | 0 .../Demo}/MB91460_Softune/SRC/vectors.h | 0 .../MB91460_Softune/SRC/watchdog/watchdog.c | 0 .../MB91460_Softune/SRC/watchdog/watchdog.h | 0 .../STANDALONE/MB2198-01-COM1.sup | 0 .../STANDALONE/MB2198-01-LAN.sup | 0 .../STANDALONE/MB2198-01-USB.sup | 0 .../STANDALONE/Mondeb_57K6_com1.sup | 0 .../STANDALONE/Mondeb_57K6_com2.sup | 0 .../MB91460_Softune/STANDALONE/Simulator.sup | 0 .../Demo}/MB91460_Softune/readme.txt | 0 .../96340_FreeRTOS_96348hs.wsp | 0 .../FreeRTOS_96348hs_SK16FX100PMC.prj | 0 .../Prc/romconst.prc | 0 .../OPT/FreeRTOS_96348hs_SK16FX100PMC.opa | 0 .../OPT/FreeRTOS_96348hs_SK16FX100PMC.opb | 0 .../OPT/FreeRTOS_96348hs_SK16FX100PMC.opc | 0 .../OPT/FreeRTOS_96348hs_SK16FX100PMC.opl | 0 .../OPT/FreeRTOS_96348hs_SK16FX100PMC.opv | 0 .../Simulator.sup | 0 .../Src/FreeRTOSConfig.h | 0 .../Src/START.ASM | 0 .../Src/crflash_sk16fx100mpc.c | 0 .../FreeRTOS_96348hs_SK16FX100PMC/Src/main.c | 0 .../Src/mb96348hs.asm | 0 .../Src/mb96348hs.h | 0 .../Src/partest/partest.c | 0 .../Src/serial/serial.c | 0 .../Src/utility/printf_stdarg.c | 0 .../Src/utility/taskutility.c | 0 .../Src/utility/taskutility.h | 0 .../Src/vectors.c | 0 .../Src/watchdog/watchdog.c | 0 .../Src/watchdog/watchdog.h | 0 .../FreeRTOS_96348hs_SK16FX100PMC/options.dat | 0 .../FreeRTOS_96348hs_SK16FX100PMC/readme.txt | 0 .../DebugConfigs/MB2198-01_COM1.sup | 0 .../DebugConfigs/MB2198-01_COM2.sup | 0 .../DebugConfigs/MB2198-01_LAN.sup | 0 .../DebugConfigs/MB2198-01_USB.sup | 0 .../Demo}/MB96350_Softune_Dice_Kit/DiceTask.c | 0 .../Demo}/MB96350_Softune_Dice_Kit/DiceTask.h | 0 .../MB96350_Softune_Dice_Kit/FreeRTOSConfig.h | 0 .../OPT/dicekit16fx_dice2-v10.opa | 0 .../OPT/dicekit16fx_dice2-v10.opb | 0 .../OPT/dicekit16fx_dice2-v10.opc | 0 .../OPT/dicekit16fx_dice2-v10.opl | 0 .../OPT/dicekit16fx_dice2-v10.opv | 0 .../ParTest/ParTest.c | 0 .../MB96350_Softune_Dice_Kit/Prc/romconst.prc | 0 .../Demo}/MB96350_Softune_Dice_Kit/START.ASM | 0 .../SegmentToggleTasks.c | 0 .../MB96350_Softune_Dice_Kit/Simulator.sup | 0 .../Demo}/MB96350_Softune_Dice_Kit/debug.cfg | 0 .../dicekit16fx_dice2-v10.prj | 0 .../dicekit16fx_dice2-v10.wsp | 0 .../Demo}/MB96350_Softune_Dice_Kit/main.c | 0 .../MB96350_Softune_Dice_Kit/mb96356rs.asm | 0 .../MB96350_Softune_Dice_Kit/mb96356rs.h | 0 .../MB96350_Softune_Dice_Kit/options.dat | 0 .../Demo}/MB96350_Softune_Dice_Kit/readme.txt | 0 .../Demo}/MB96350_Softune_Dice_Kit/vectors.c | 0 .../Demo}/MCF5235_GCC/Changelog.txt | 0 .../Demo}/MCF5235_GCC/FreeRTOSConfig.h | 0 .../Demo}/MCF5235_GCC/LICENSE_FREESCALE.TXT | 0 {Demo => FreeRTOS/Demo}/MCF5235_GCC/Makefile | 0 {Demo => FreeRTOS/Demo}/MCF5235_GCC/demo.c | 0 .../Demo}/MCF5235_GCC/include/arch/mcf523x.h | 0 .../include/arch/mcf523x/mcf523x_can.h | 0 .../include/arch/mcf523x/mcf523x_ccm.h | 0 .../include/arch/mcf523x/mcf523x_cs.h | 0 .../include/arch/mcf523x/mcf523x_eport.h | 0 .../include/arch/mcf523x/mcf523x_etpu.h | 0 .../include/arch/mcf523x/mcf523x_fec.h | 0 .../include/arch/mcf523x/mcf523x_fmpll.h | 0 .../include/arch/mcf523x/mcf523x_gpio.h | 0 .../include/arch/mcf523x/mcf523x_i2c.h | 0 .../include/arch/mcf523x/mcf523x_intc0.h | 0 .../include/arch/mcf523x/mcf523x_intc1.h | 0 .../include/arch/mcf523x/mcf523x_mdha.h | 0 .../include/arch/mcf523x/mcf523x_pit.h | 0 .../include/arch/mcf523x/mcf523x_qspi.h | 0 .../include/arch/mcf523x/mcf523x_rcm.h | 0 .../include/arch/mcf523x/mcf523x_rng.h | 0 .../include/arch/mcf523x/mcf523x_scm.h | 0 .../include/arch/mcf523x/mcf523x_sdramc.h | 0 .../include/arch/mcf523x/mcf523x_skha.h | 0 .../include/arch/mcf523x/mcf523x_sram.h | 0 .../include/arch/mcf523x/mcf523x_timer.h | 0 .../include/arch/mcf523x/mcf523x_uart.h | 0 .../include/arch/mcf523x/mcf523x_wtm.h | 0 .../Demo}/MCF5235_GCC/include/arch/mcf5xxx.h | 0 .../Demo}/MCF5235_GCC/m5235-ram.ld | 0 .../Demo}/MCF5235_GCC/m5235-rom.ld | 0 {Demo => FreeRTOS/Demo}/MCF5235_GCC/m5235.gdb | 0 .../Demo}/MCF5235_GCC/system/crt0.S | 0 .../Demo}/MCF5235_GCC/system/init.c | 0 .../Demo}/MCF5235_GCC/system/mcf5xxx.S | 0 .../Demo}/MCF5235_GCC/system/newlib.c | 0 .../Demo}/MCF5235_GCC/system/serial.c | 0 .../Demo}/MCF5235_GCC/system/vector.S | 0 .../Demo}/MSP430X_MSP430F5438_CCS/.ccsproject | 0 .../Demo}/MSP430X_MSP430F5438_CCS/.cdtbuild | 0 .../Demo}/MSP430X_MSP430F5438_CCS/.cdtproject | 0 .../Demo}/MSP430X_MSP430F5438_CCS/.cproject | 0 .../Demo}/MSP430X_MSP430F5438_CCS/.project | 0 .../org.eclipse.cdt.managedbuilder.core.prefs | 0 .../org.eclipse.ltk.core.refactoring.prefs | 0 .../CreateProjectDirectoryStructure.bat | 0 .../Demo_Source/F5XX_6XX_Core_Lib/HAL_PMM.c | 0 .../Demo_Source/F5XX_6XX_Core_Lib/HAL_PMM.h | 0 .../Demo_Source/F5XX_6XX_Core_Lib/hal_UCS.c | 0 .../Demo_Source/F5XX_6XX_Core_Lib/hal_UCS.h | 0 .../F5XX_6XX_Core_Lib/hal_macros.h | 0 .../Demo_Source/FreeRTOSConfig.h | 0 .../MSP-EXP430F5438_HAL/hal_MSP-EXP430F5438.h | 0 .../MSP-EXP430F5438_HAL/hal_board.c | 0 .../MSP-EXP430F5438_HAL/hal_board.h | 0 .../MSP-EXP430F5438_HAL/hal_buttons.c | 0 .../MSP-EXP430F5438_HAL/hal_buttons.h | 0 .../Demo_Source/MSP-EXP430F5438_HAL/hal_lcd.c | 0 .../Demo_Source/MSP-EXP430F5438_HAL/hal_lcd.h | 0 .../MSP-EXP430F5438_HAL/hal_lcd_fonts.c | 0 .../MSP-EXP430F5438_HAL/hal_lcd_fonts.h | 0 .../Demo_Source/ParTest.c | 0 .../Demo_Source/RegTest.asm | 0 .../Demo_Source/RunTimeStatsConfig.c | 0 .../Demo_Source/main.c | 0 .../Demo_Source/printf-stdarg.c | 0 .../Demo_Source/serial.c | 0 .../MSP430F5438A.ccxml | 0 .../MSP430X_MSP430F5438_CCS/READ_ME_FIRST.txt | 0 .../lnk_msp430f5438a.cmd | 0 .../F5XX_6XX_Core_Lib/HAL_PMM.c | 0 .../F5XX_6XX_Core_Lib/HAL_PMM.h | 0 .../F5XX_6XX_Core_Lib/hal_UCS.c | 0 .../F5XX_6XX_Core_Lib/hal_UCS.h | 0 .../F5XX_6XX_Core_Lib/hal_macros.h | 0 .../MSP430X_MSP430F5438_IAR/FreeRTOSConfig.h | 0 .../MSP-EXP430F5438_HAL/hal_MSP-EXP430F5438.h | 0 .../MSP-EXP430F5438_HAL/hal_board.c | 0 .../MSP-EXP430F5438_HAL/hal_board.h | 0 .../MSP-EXP430F5438_HAL/hal_buttons.c | 0 .../MSP-EXP430F5438_HAL/hal_buttons.h | 0 .../MSP-EXP430F5438_HAL/hal_lcd.c | 0 .../MSP-EXP430F5438_HAL/hal_lcd.h | 0 .../MSP-EXP430F5438_HAL/hal_lcd_fonts.c | 0 .../MSP-EXP430F5438_HAL/hal_lcd_fonts.h | 0 .../Demo}/MSP430X_MSP430F5438_IAR/ParTest.c | 0 .../MSP430X_MSP430F5438_IAR/RTOSDemo.ewd | 0 .../MSP430X_MSP430F5438_IAR/RTOSDemo.ewp | 0 .../MSP430X_MSP430F5438_IAR/RTOSDemo.eww | 0 .../Demo}/MSP430X_MSP430F5438_IAR/RegTest.s43 | 0 .../RunTimeStatsConfig.c | 0 .../lnk430F5438A_mod.xcl | 0 .../MSP430X_MSP430F5438_IAR/low_level_init.c | 0 .../Demo}/MSP430X_MSP430F5438_IAR/main.c | 0 .../Demo}/MSP430X_MSP430F5438_IAR/serial.c | 0 .../settings/RTOSDemo.dbgdt | 0 .../settings/RTOSDemo.dni | 0 .../settings/RTOSDemo.wsdt | 0 .../Demo}/MicroBlaze/FreeRTOSConfig.h | 0 .../Demo}/MicroBlaze/ParTest/ParTest.c | 0 .../Demo}/MicroBlaze/__xps/bitinit.opt | 0 .../Demo}/MicroBlaze/__xps/libgen.opt | 0 .../Demo}/MicroBlaze/__xps/platgen.opt | 0 .../MicroBlaze/__xps/rtosdemo_compiler.opt | 0 .../Demo}/MicroBlaze/__xps/simgen.opt | 0 .../__xps/testapp_peripheral_compiler.opt | 0 .../Demo}/MicroBlaze/__xps/vpgen.opt | 0 .../Demo}/MicroBlaze/__xps/xpsxflow.opt | 0 .../Demo}/MicroBlaze/_impact.cmd | 0 {Demo => FreeRTOS/Demo}/MicroBlaze/crt0.s | 0 .../Demo}/MicroBlaze/data/system.ucf | 0 .../Demo}/MicroBlaze/etc/bitgen.ut | 0 .../Demo}/MicroBlaze/etc/bitgen_spartan3.ut | 0 .../Demo}/MicroBlaze/etc/download.cmd | 0 .../Demo}/MicroBlaze/etc/fast_runtime.opt | 0 .../Demo}/MicroBlaze/etc/xmd_microblaze_0.opt | 0 {Demo => FreeRTOS/Demo}/MicroBlaze/main.c | 0 .../Demo}/MicroBlaze/platgen.opt | 0 .../Demo}/MicroBlaze/serial/serial.c | 0 {Demo => FreeRTOS/Demo}/MicroBlaze/system.bsb | 0 .../Demo}/MicroBlaze/system.make | 0 {Demo => FreeRTOS/Demo}/MicroBlaze/system.mhs | 0 {Demo => FreeRTOS/Demo}/MicroBlaze/system.mss | 0 {Demo => FreeRTOS/Demo}/MicroBlaze/system.xmp | 0 .../Demo}/MicroBlaze/system_incl.make | 0 .../bsp/freertos_v2_00_a/data/freertos.mss | 0 .../freertos_v2_00_a/data/freertos_v2_1_0.mld | 0 .../freertos_v2_00_a/data/freertos_v2_1_0.tcl | 0 .../src/CreatingTheDirectoryStructure.txt | 0 .../freertos_v2_00_a/src/License/license.txt | 0 .../bsp/freertos_v2_00_a/src/Makefile | 0 .../src/Source/portable/readme.txt | 0 .../freertos_v2_00_a/src/Source/readme.txt | 0 .../bsp/freertos_v2_00_a/src/readme.txt | 0 .../data/FreeRTOS_Hello_World.mss | 0 .../data/FreeRTOS_Hello_World.tcl | 0 .../FreeRTOS_Hello_World/src/FreeRTOS-main.c | 0 .../SDK/SDK_Export/hw/system.bit | Bin .../SDK/SDK_Export/hw/system.xml | 0 .../SDK/SDK_Export/hw/system_bd.bmm | 0 .../__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl | 0 .../__xps/.dswkshop/MdtSvgDiag_Colors.xsl | 0 .../__xps/.dswkshop/MdtSvgDiag_Globals.xsl | 0 .../__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl | 0 .../MdtTinySvgBLKD_BusLaneSpaces.xsl | 0 .../__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl | 0 .../.dswkshop/MdtTinySvgBLKD_Functions.xsl | 0 .../.dswkshop/MdtTinySvgBLKD_Globals.xsl | 0 .../.dswkshop/MdtTinySvgBLKD_IOPorts.xsl | 0 .../__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl | 0 .../.dswkshop/MdtTinySvgBLKD_Peripherals.xsl | 0 .../.dswkshop/MdtTinySvgBLKD_Processors.xsl | 0 .../.dswkshop/MdtTinySvgDiag_BifShapes.xsl | 0 .../PlatformStudioProject/__xps/bitinit.opt | 0 .../__xps/edw2xtl_sav_globals.xsl | 0 .../__xps/edw2xtl_sav_view.xsl | 0 .../__xps/edw2xtl_sav_view_addr.xsl | 0 .../__xps/edw2xtl_sav_view_busif.xsl | 0 .../__xps/edw2xtl_sav_view_groups.xsl | 0 .../__xps/edw2xtl_sav_view_port.xsl | 0 .../__xps/gensav_cmd.xml | 0 .../__xps/ise/_xmsgs/platgen.xmsgs | 0 .../__xps/ise/system.xreport | 0 .../__xps/ise/xmsgprops.lst | 0 .../PlatformStudioProject/__xps/platgen.opt | 0 .../PlatformStudioProject/__xps/simgen.opt | 0 .../PlatformStudioProject/__xps/system.xml | 0 .../PlatformStudioProject/__xps/xplorer.opt | 0 .../PlatformStudioProject/__xps/xpsxflow.opt | 0 .../PlatformStudioProject/data/system.ucf | 0 .../PlatformStudioProject/etc/bitgen.ut | 0 .../PlatformStudioProject/etc/download.cmd | 0 .../etc/fast_runtime.opt | 0 .../PlatformStudioProject/etc/system.filters | 0 .../PlatformStudioProject/etc/system.gui | 0 .../PlatformStudioProject/system.bsb | 0 .../PlatformStudioProject/system.make | 0 .../PlatformStudioProject/system.mhs | 0 .../PlatformStudioProject/system.xmp | 0 .../PlatformStudioProject/system_incl.make | 0 .../HardwareWithEthernetLite/.project | 0 .../HardwareWithEthernetLite/download.bit | Bin .../HardwareWithEthernetLite/system.bit | Bin .../HardwareWithEthernetLite/system.xml | 0 .../HardwareWithEthernetLite/system_bd.bmm | 0 .../SDKProjects/RTOSDemo/.cproject | 0 .../SDKProjects/RTOSDemo/.project | 0 .../CreateProjectDirectoryStructure.bat | 0 .../SDKProjects/RTOSDemo/FreeRTOSConfig.h | 0 .../SDKProjects/RTOSDemo/ParTest.c | 0 .../SDKProjects/RTOSDemo/RegisterTests.c | 0 .../lwIP/lwIP_Apps/apps/httpserver_raw/fs.c | 0 .../lwIP/lwIP_Apps/apps/httpserver_raw/fs.h | 0 .../lwIP_Apps/apps/httpserver_raw/fsdata.c | 0 .../lwIP_Apps/apps/httpserver_raw/fsdata.h | 0 .../lwIP_Apps/apps/httpserver_raw/httpd.c | 0 .../lwIP_Apps/apps/httpserver_raw/httpd.h | 0 .../apps/httpserver_raw/httpd_structs.h | 0 .../httpserver_raw/makefsdata/fs/404.html | 0 .../httpserver_raw/makefsdata/fs/index.shtml | 0 .../httpserver_raw/makefsdata/fs/logo.jpg | Bin .../makefsdata/fs/runtime.shtml | 0 .../makefsdata/makefsdata.c-source-file | 0 .../httpserver_raw/makefsdata/makefsdata.exe | Bin .../RTOSDemo/lwIP/lwIP_Apps/lwIP_Apps.c | 0 .../lwIP/lwIP_Apps/lwipcfg_MicroBlaze.h | 0 .../RTOSDemo/lwIP/lwIP_Apps/lwipopts.h | 0 .../SDKProjects/RTOSDemo/main-blinky.c | 0 .../SDKProjects/RTOSDemo/main-full.c | 0 .../SDKProjects/RTOSDemo/printf-stdarg.c | 0 .../SDKProjects/RTOSDemo/serial.c | 0 .../SDKProjects/RTOSDemo/src/lscript.ld | 0 .../SDKProjects/StandAloneBSP/.cproject | 0 .../SDKProjects/StandAloneBSP/.project | 0 .../SDKProjects/StandAloneBSP/.sdkproject | 0 .../SDKProjects/StandAloneBSP/Makefile | 0 .../SDKProjects/StandAloneBSP/libgen.options | 0 .../SDKProjects/StandAloneBSP/system.mss | 0 .../Demo}/NEC_78K0R_IAR/ButtonISR.s26 | 0 .../Demo}/NEC_78K0R_IAR/ButtonTask.c | 0 .../Demo}/NEC_78K0R_IAR/FreeRTOSConfig.h | 0 .../Demo}/NEC_78K0R_IAR/RegTest.s26 | 0 .../Demo}/NEC_78K0R_IAR/cstartup.s26 | 0 {Demo => FreeRTOS/Demo}/NEC_78K0R_IAR/main.c | 0 .../Demo}/NEC_78K0R_IAR/rtosdemo.ewd | 0 .../Demo}/NEC_78K0R_IAR/rtosdemo.ewp | 0 .../Demo}/NEC_78K0R_IAR/rtosdemo.eww | 0 .../NEC_78K0R_IAR/settings/rtosdemo.cspy.bat | 0 .../NEC_78K0R_IAR/settings/rtosdemo.dbgdt | 0 .../Demo}/NEC_78K0R_IAR/settings/rtosdemo.dni | 0 .../NEC_78K0R_IAR/settings/rtosdemo.wsdt | 0 .../Demo}/NEC_V850ES_IAR/FreeRTOSConfig.h | 0 .../LowLevelInit/LowLevelInit.c | 0 .../LowLevelInit/LowLevelInit_Fx3.c | 0 .../LowLevelInit/LowLevelInit_Hx2.c | 0 .../ParTest/ParTest_Fx3_App_Board.c | 0 .../ParTest/ParTest_Generic_Target_Board.c | 0 .../Demo}/NEC_V850ES_IAR/RegTest.s85 | 0 {Demo => FreeRTOS/Demo}/NEC_V850ES_IAR/main.c | 0 .../Demo}/NEC_V850ES_IAR/rtosdemo.ewd | 0 .../Demo}/NEC_V850ES_IAR/rtosdemo.ewp | 0 .../Demo}/NEC_V850ES_IAR/rtosdemo.eww | 0 .../Demo}/NEC_V850ES_IAR/serial/serial.c | 0 .../Demo}/NEC_V850ES_IAR/serial/serialISR.s85 | 0 .../NEC_V850ES_IAR/settings/rtosdemo.cspy.bat | 0 .../NEC_V850ES_IAR/settings/rtosdemo.dbgdt | 0 .../NEC_V850ES_IAR/settings/rtosdemo.dni | 0 .../NEC_V850ES_IAR/settings/rtosdemo.wsdt | 0 .../.sopc_builder/install.ptf | 0 .../.sopc_builder/install2.ptf | 0 .../CreateProjectDirectoryStructure.bat | 0 .../RTOSDemo/.cdtbuild | 0 .../RTOSDemo/.cdtproject | 0 .../RTOSDemo/.project | 0 .../.settings/org.eclipse.cdt.core.prefs | 0 .../org.eclipse.cdt.managedbuilder.core.prefs | 0 .../org.eclipse.ltk.core.refactoring.prefs | 0 .../RTOSDemo/FreeRTOSConfig.h | 0 .../RTOSDemo/ParTest/ParTest.c | 0 .../RTOSDemo/application.stf | 0 .../RTOSDemo/main.c | 0 .../RTOSDemo/serial.c | 0 .../RTOSDemo_syslib/.cdtbuild | 0 .../RTOSDemo_syslib/.cdtproject | 0 .../RTOSDemo_syslib/.project | 0 .../.settings/org.eclipse.cdt.core.prefs | 0 .../org.eclipse.cdt.managedbuilder.core.prefs | 0 .../RTOSDemo_syslib/readme.txt | 0 .../RTOSDemo_syslib/system.stf | 0 .../NiosII_CycloneIII_DBC3C40_GCC/cpu.ptf | 0 .../cpu_sim/dummy_file | 0 .../onchip_memory.hex | 0 .../sopc_builder_log.txt | 0 {Demo => FreeRTOS/Demo}/PC/FRConfig.h | 0 {Demo => FreeRTOS/Demo}/PC/FileIO/fileIO.c | 0 {Demo => FreeRTOS/Demo}/PC/FreeRTOSConfig.h | 0 {Demo => FreeRTOS/Demo}/PC/ParTest/ParTest.c | 0 {Demo => FreeRTOS/Demo}/PC/RTOSDEMO.IDE | Bin {Demo => FreeRTOS/Demo}/PC/main.c | 0 {Demo => FreeRTOS/Demo}/PC/rtosdemo.DSW | Bin {Demo => FreeRTOS/Demo}/PC/rtosdemo.tgt | 0 {Demo => FreeRTOS/Demo}/PC/rtosdemo.wpj | 0 {Demo => FreeRTOS/Demo}/PC/serial/serial.c | 0 .../Demo}/PIC18_MPLAB/18f452.lkr | 0 .../Demo}/PIC18_MPLAB/FreeRTOSConfig.h | 0 .../Demo}/PIC18_MPLAB/ParTest/ParTest.c | 0 {Demo => FreeRTOS/Demo}/PIC18_MPLAB/main1.c | 0 {Demo => FreeRTOS/Demo}/PIC18_MPLAB/main2.c | 0 {Demo => FreeRTOS/Demo}/PIC18_MPLAB/main3.c | 0 .../Demo}/PIC18_MPLAB/makebin1.bat | 0 .../Demo}/PIC18_MPLAB/makebin2.bat | 0 .../Demo}/PIC18_MPLAB/makebin3.bat | 0 .../Demo}/PIC18_MPLAB/readme.txt | 0 .../Demo}/PIC18_MPLAB/rtosdemo.mcw | Bin .../Demo}/PIC18_MPLAB/rtosdemo1.mcp | 0 .../Demo}/PIC18_MPLAB/rtosdemo2.mcp | 0 .../Demo}/PIC18_MPLAB/rtosdemo3.mcp | 0 .../Demo}/PIC18_MPLAB/serial/serial.c | 0 .../Demo}/PIC18_WizC/Demo1/Demo1.PC | 0 .../Demo}/PIC18_WizC/Demo1/FreeRTOSConfig.h | 0 .../Demo}/PIC18_WizC/Demo1/MallocConfig.h | 0 .../Demo}/PIC18_WizC/Demo1/WIZCmake.h | 0 .../Demo}/PIC18_WizC/Demo1/fuses.c | 0 .../Demo}/PIC18_WizC/Demo1/interrupt.c | 0 .../Demo}/PIC18_WizC/Demo1/main.c | 0 .../Demo}/PIC18_WizC/Demo2/Demo2.PC | 0 .../Demo}/PIC18_WizC/Demo2/FreeRTOSConfig.h | 0 .../Demo}/PIC18_WizC/Demo2/MallocConfig.h | 0 .../Demo}/PIC18_WizC/Demo2/WIZCmake.h | 0 .../Demo}/PIC18_WizC/Demo2/fuses.c | 0 .../Demo}/PIC18_WizC/Demo2/interrupt.c | 0 .../Demo}/PIC18_WizC/Demo2/main.c | 0 .../Demo}/PIC18_WizC/Demo3/Demo3.PC | 0 .../Demo}/PIC18_WizC/Demo3/FreeRTOSConfig.h | 0 .../Demo}/PIC18_WizC/Demo3/MallocConfig.h | 0 .../Demo}/PIC18_WizC/Demo3/WIZCmake.h | 0 .../Demo}/PIC18_WizC/Demo3/fuses.c | 0 .../Demo}/PIC18_WizC/Demo3/interrupt.c | 0 .../Demo}/PIC18_WizC/Demo3/main.c | 0 .../Demo}/PIC18_WizC/Demo4/Demo4.PC | 0 .../Demo}/PIC18_WizC/Demo4/FreeRTOSConfig.h | 0 .../Demo}/PIC18_WizC/Demo4/MallocConfig.h | 0 .../Demo}/PIC18_WizC/Demo4/WIZCmake.h | 0 .../Demo}/PIC18_WizC/Demo4/fuses.c | 0 .../Demo}/PIC18_WizC/Demo4/interrupt.c | 0 .../Demo}/PIC18_WizC/Demo4/main.c | 0 .../Demo}/PIC18_WizC/Demo5/Demo5.PC | 0 .../Demo}/PIC18_WizC/Demo5/FreeRTOSConfig.h | 0 .../Demo}/PIC18_WizC/Demo5/MallocConfig.h | 0 .../Demo}/PIC18_WizC/Demo5/WIZCmake.h | 0 .../Demo}/PIC18_WizC/Demo5/fuses.c | 0 .../Demo}/PIC18_WizC/Demo5/interrupt.c | 0 .../Demo}/PIC18_WizC/Demo5/main.c | 0 .../Demo}/PIC18_WizC/Demo6/Demo6.PC | 0 .../Demo}/PIC18_WizC/Demo6/FreeRTOSConfig.h | 0 .../Demo}/PIC18_WizC/Demo6/MallocConfig.h | 0 .../Demo}/PIC18_WizC/Demo6/WIZCmake.h | 0 .../Demo}/PIC18_WizC/Demo6/fuses.c | 0 .../Demo}/PIC18_WizC/Demo6/interrupt.c | 0 .../Demo}/PIC18_WizC/Demo6/main.c | 0 .../Demo}/PIC18_WizC/Demo7/Demo7.PC | 0 .../Demo}/PIC18_WizC/Demo7/FreeRTOSConfig.h | 0 .../Demo}/PIC18_WizC/Demo7/MallocConfig.h | 0 .../Demo}/PIC18_WizC/Demo7/WIZCmake.h | 0 .../Demo}/PIC18_WizC/Demo7/fuses.c | 0 .../Demo}/PIC18_WizC/Demo7/interrupt.c | 0 .../Demo}/PIC18_WizC/Demo7/main.c | 0 .../Demo}/PIC18_WizC/ParTest/ParTest.c | 0 .../Demo}/PIC18_WizC/serial/isrSerialRx.c | 0 .../Demo}/PIC18_WizC/serial/isrSerialTx.c | 0 .../Demo}/PIC18_WizC/serial/serial.c | 0 .../Demo}/PIC24_MPLAB/FreeRTOSConfig.h | 0 .../Demo}/PIC24_MPLAB/ParTest/ParTest.c | 0 .../Demo}/PIC24_MPLAB/RTOSDemo.mcs | 0 .../Demo}/PIC24_MPLAB/RTOSDemo.mcw | Bin .../Demo}/PIC24_MPLAB/RTOSDemo_PIC24.mcp | 0 .../Demo}/PIC24_MPLAB/RTOSDemo_PIC24.mcs | 0 {Demo => FreeRTOS/Demo}/PIC24_MPLAB/lcd.c | 0 {Demo => FreeRTOS/Demo}/PIC24_MPLAB/lcd.h | 0 {Demo => FreeRTOS/Demo}/PIC24_MPLAB/main.c | 0 .../Demo}/PIC24_MPLAB/p24FJ128GA010.gld | 0 .../Demo}/PIC24_MPLAB/serial/serial.c | 0 .../Demo}/PIC24_MPLAB/timertest.c | 0 .../Demo}/PIC24_MPLAB/timertest.h | 0 .../Demo}/PIC32MX_MPLAB/FreeRTOSConfig.h | 0 .../Demo}/PIC32MX_MPLAB/IntQueueTimer.c | 0 .../Demo}/PIC32MX_MPLAB/IntQueueTimer.h | 0 .../Demo}/PIC32MX_MPLAB/IntQueueTimer_isr.S | 0 .../Demo}/PIC32MX_MPLAB/ParTest/ParTest.c | 0 .../Demo}/PIC32MX_MPLAB/RTOSDemo.X/Makefile | 0 .../Makefile-EXPLORER_16_PIC32MX360.mk | 0 .../Makefile-EXPLORER_16_PIC32MX460.mk | 0 .../Makefile-EXPLORER_16_PIC32MX795.mk | 0 .../nbproject/Makefile-genesis.properties | 0 .../RTOSDemo.X/nbproject/Makefile-impl.mk | 0 .../Makefile-local-EXPLORER_16_PIC32MX360.mk | 0 .../Makefile-local-EXPLORER_16_PIC32MX460.mk | 0 .../Makefile-local-EXPLORER_16_PIC32MX795.mk | 0 .../nbproject/Makefile-variables.mk | 0 .../Package-EXPLORER_16_PIC32MX360.bash | 0 .../Package-EXPLORER_16_PIC32MX460.bash | 0 .../Package-EXPLORER_16_PIC32MX795.bash | 0 .../RTOSDemo.X/nbproject/configurations.xml | 0 .../nbproject/private/configurations.xml | 0 .../nbproject/private/private.properties | 0 .../RTOSDemo.X/nbproject/private/private.xml | 0 .../RTOSDemo.X/nbproject/project.properties | 0 .../RTOSDemo.X/nbproject/project.xml | 0 .../Demo}/PIC32MX_MPLAB/RTOSDemo.mcp | 0 .../Demo}/PIC32MX_MPLAB/RTOSDemo.mcs | 0 .../Demo}/PIC32MX_MPLAB/RTOSDemo.mcw | Bin .../Demo}/PIC32MX_MPLAB/RegisterTestTasks.S | 0 {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/lcd.c | 0 {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/lcd.h | 0 {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/main.c | 0 .../Demo}/PIC32MX_MPLAB/main_blinky.c | 0 .../Demo}/PIC32MX_MPLAB/main_full.c | 0 .../Demo}/PIC32MX_MPLAB/printf-stdarg.c | 0 .../Demo}/PIC32MX_MPLAB/serial/serial.c | 0 .../Demo}/PIC32MX_MPLAB/serial/serial_isr.S | 0 .../Demo}/PIC32MX_MPLAB/timertest.c | 0 .../Demo}/PIC32MX_MPLAB/timertest.h | 0 .../Demo}/PIC32MX_MPLAB/timertest_isr.S | 0 .../RTOSDemo/FreeRTOSConfig.h | 0 .../RTOSDemo/RTOSDemo_linker_script.ld | 0 .../RTOSDemo/flop/flop-reg-test.c | 0 .../RTOSDemo/flop/flop-reg-test.h | 0 .../RTOSDemo/flop/flop.c | 0 .../RTOSDemo/main.c | 0 .../RTOSDemo/partest/partest.c | 0 .../RTOSDemo/serial/serial.c | 0 .../__xps/.dswkshop/MdtSVG_BifShapes.xsl | 0 .../__xps/.dswkshop/MdtSVG_Colors.xsl | 0 .../__xps/.dswkshop/MdtSVG_Diagrams.css | 0 .../.dswkshop/MdtSvgBLKD_BusLaneSpaces.xsl | 0 .../__xps/.dswkshop/MdtSvgBLKD_Busses.xsl | 0 .../.dswkshop/MdtSvgBLKD_Calculations.xsl | 0 .../__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl | 0 .../__xps/.dswkshop/MdtSvgBLKD_IOPorts.xsl | 0 .../__xps/.dswkshop/MdtSvgBLKD_Main.xsl | 0 .../.dswkshop/MdtSvgBLKD_Peripherals.xsl | 0 .../__xps/.dswkshop/MdtSvgBLKD_Processors.xsl | 0 .../.dswkshop/MdtXdsGen_HTMLDatasheet.css | 0 .../.dswkshop/MdtXdsGen_HTMLDatasheet.xsl | 0 .../.dswkshop/MdtXdsGen_HTMLIPSection.xsl | 0 .../.dswkshop/MdtXdsGen_HTMLMemoryMap.xsl | 0 .../__xps/.dswkshop/MdtXdsGen_HTMLTOCTree.xsl | 0 .../__xps/.dswkshop/svg10.dtd | 0 .../__xps/.dswkshop/system_shapes.xml | 0 .../__xps/bitinit.opt | 0 .../__xps/libgen.opt | 0 .../__xps/platgen.opt | 0 .../__xps/rtosdemo_compiler.opt | 0 .../__xps/simgen.opt | 0 .../__xps/system.gui | 0 .../__xps/system_routed | 0 .../__xps/testapp_peripheral_compiler.opt | 0 .../__xps/vpgen.opt | 0 .../__xps/xplorer.opt | 0 .../__xps/xpsxflow.opt | 0 .../blkdiagram/svg10.dtd | 0 .../blkdiagram/system.css | 0 .../blkdiagram/system.html | 0 .../blkdiagram/system.svg | 0 .../data/system.ucf | 0 .../etc/bitgen.ut | 0 .../etc/download.cmd | 0 .../etc/fast_runtime.opt | 0 .../etc/xmd_ppc405_0.opt | 0 .../PPC405_FPU_Xilinx_Virtex4_GCC/platgen.opt | 0 .../PPC405_FPU_Xilinx_Virtex4_GCC/system.bsb | 0 .../PPC405_FPU_Xilinx_Virtex4_GCC/system.make | 0 .../PPC405_FPU_Xilinx_Virtex4_GCC/system.mhs | 0 .../PPC405_FPU_Xilinx_Virtex4_GCC/system.mss | 0 .../PPC405_FPU_Xilinx_Virtex4_GCC/system.xmp | 0 .../system_incl.make | 0 .../PPC405_FPU_Xilinx_Virtex4_GCC/wizlog | 0 .../RTOSDemo/FreeRTOSConfig.h | 0 .../RTOSDemo/RTOSDemo_linker_script.ld | 0 .../RTOSDemo/flop/flop-reg-test.c | 0 .../RTOSDemo/flop/flop-reg-test.h | 0 .../RTOSDemo/flop/flop.c | 0 .../PPC405_Xilinx_Virtex4_GCC/RTOSDemo/main.c | 0 .../RTOSDemo/partest/partest.c | 0 .../RTOSDemo/serial/serial.c | 0 .../__xps/.dswkshop/MdtSVG_BifShapes.xsl | 0 .../__xps/.dswkshop/MdtSVG_Colors.xsl | 0 .../__xps/.dswkshop/MdtSVG_Diagrams.css | 0 .../.dswkshop/MdtSvgBLKD_BusLaneSpaces.xsl | 0 .../__xps/.dswkshop/MdtSvgBLKD_Busses.xsl | 0 .../.dswkshop/MdtSvgBLKD_Calculations.xsl | 0 .../__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl | 0 .../__xps/.dswkshop/MdtSvgBLKD_IOPorts.xsl | 0 .../__xps/.dswkshop/MdtSvgBLKD_Main.xsl | 0 .../.dswkshop/MdtSvgBLKD_Peripherals.xsl | 0 .../__xps/.dswkshop/MdtSvgBLKD_Processors.xsl | 0 .../.dswkshop/MdtXdsGen_HTMLDatasheet.css | 0 .../.dswkshop/MdtXdsGen_HTMLDatasheet.xsl | 0 .../.dswkshop/MdtXdsGen_HTMLIPSection.xsl | 0 .../.dswkshop/MdtXdsGen_HTMLMemoryMap.xsl | 0 .../__xps/.dswkshop/MdtXdsGen_HTMLTOCTree.xsl | 0 .../__xps/.dswkshop/svg10.dtd | 0 .../__xps/.dswkshop/system_shapes.xml | 0 .../__xps/bitinit.opt | 0 .../__xps/libgen.opt | 0 .../__xps/platgen.opt | 0 .../__xps/rtosdemo_compiler.opt | 0 .../__xps/simgen.opt | 0 .../__xps/system.gui | 0 .../__xps/system_routed | 0 .../__xps/testapp_peripheral_compiler.opt | 0 .../PPC405_Xilinx_Virtex4_GCC/__xps/vpgen.opt | 0 .../__xps/xplorer.opt | 0 .../__xps/xpsxflow.opt | 0 .../blkdiagram/svg10.dtd | 0 .../blkdiagram/system.css | 0 .../blkdiagram/system.html | 0 .../blkdiagram/system.svg | 0 .../PPC405_Xilinx_Virtex4_GCC/data/system.ucf | 0 .../PPC405_Xilinx_Virtex4_GCC/etc/bitgen.ut | 0 .../etc/download.cmd | 0 .../etc/fast_runtime.opt | 0 .../etc/xmd_ppc405_0.opt | 0 .../PPC405_Xilinx_Virtex4_GCC/platgen.opt | 0 .../PPC405_Xilinx_Virtex4_GCC/system.bsb | 0 .../PPC405_Xilinx_Virtex4_GCC/system.make | 0 .../PPC405_Xilinx_Virtex4_GCC/system.mhs | 0 .../PPC405_Xilinx_Virtex4_GCC/system.mss | 0 .../PPC405_Xilinx_Virtex4_GCC/system.xmp | 0 .../system_incl.make | 0 .../Demo}/PPC405_Xilinx_Virtex4_GCC/wizlog | 0 .../RTOSDemo/FreeRTOSConfig.h | 0 .../RTOSDemo/RTOSDemo_linker_script.ld | 0 .../RTOSDemo/flop/flop-reg-test.c | 0 .../RTOSDemo/flop/flop-reg-test.h | 0 .../RTOSDemo/flop/flop.c | 0 .../RTOSDemo/main.c | 0 .../RTOSDemo/partest/partest.c | 0 .../RTOSDemo/serial/serial.c | 0 .../Version_Changes.log | 0 .../__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl | 0 .../__xps/.dswkshop/MdtSvgDiag_Colors.xsl | 0 .../__xps/.dswkshop/MdtSvgDiag_Globals.xsl | 0 .../__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl | 0 .../MdtTinySvgBLKD_BusLaneSpaces.xsl | 0 .../__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl | 0 .../.dswkshop/MdtTinySvgBLKD_Functions.xsl | 0 .../.dswkshop/MdtTinySvgBLKD_Globals.xsl | 0 .../.dswkshop/MdtTinySvgBLKD_IOPorts.xsl | 0 .../__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl | 0 .../.dswkshop/MdtTinySvgBLKD_Peripherals.xsl | 0 .../.dswkshop/MdtTinySvgBLKD_Processors.xsl | 0 .../.dswkshop/MdtTinySvgDiag_BifShapes.xsl | 0 .../__xps/.dswkshop/svg10.dtd | 0 .../__xps/bitinit.opt | 0 .../__xps/ise/system.gise | 0 .../__xps/ise/system.ise | Bin .../__xps/ise/system.xise | 0 .../__xps/ise/system_xdb/tmp/ise.lock | Bin .../HierarchicalDesign/HDProject/HDProject | Bin .../HDProject/HDProject_StrTbl | Bin .../__stored_object_table__ | Bin .../PnAutoRun/Scripts/RunOnce_tcl | Bin .../PnAutoRun/Scripts/RunOnce_tcl_StrTbl | Bin .../dpm_project_main/dpm_project_main | Bin .../dpm_project_main/dpm_project_main_StrTbl | Bin .../xreport/Gc_RvReportViewer-Current-Module | Bin .../Gc_RvReportViewer-Current-Module_StrTbl | Bin .../Gc_RvReportViewer-Module-Data-system | Bin ...c_RvReportViewer-Module-Data-system_StrTbl | Bin ..._RvReportViewer-Module-DataFactory-Default | Bin ...rtViewer-Module-DataFactory-Default_StrTbl | Bin .../tmp/ise/__REGISTRY__/Autonym}/regkeys | 0 .../HierarchicalDesign/HDProject/regkeys | 0 .../ise/__REGISTRY__/ProjectNavigator/regkeys | 0 .../__REGISTRY__/ProjectNavigator11/regkeys | 0 .../tmp/ise/__REGISTRY__/XSLTProcess/regkeys | 0 .../__REGISTRY__/_ProjRepoInternal_/regkeys | 0 .../tmp/ise/__REGISTRY__/bitgen/regkeys | 0 .../tmp/ise/__REGISTRY__/bitinit/regkeys | 0 .../tmp/ise/__REGISTRY__/common/regkeys | 0 .../tmp/ise/__REGISTRY__/cpldfit/regkeys | 0 .../tmp/ise/__REGISTRY__/dumpngdio/regkeys | 0 .../tmp/ise/__REGISTRY__/fuse/regkeys | 0 .../tmp/ise/__REGISTRY__/hprep6/regkeys | 0 .../tmp/ise/__REGISTRY__/idem/regkeys | 0 .../tmp/ise/__REGISTRY__/libgen/regkeys | 0 .../tmp/ise/__REGISTRY__/map/regkeys | 0 .../tmp/ise/__REGISTRY__/netgen/regkeys | 0 .../tmp/ise/__REGISTRY__/ngc2edif/regkeys | 0 .../tmp/ise/__REGISTRY__/ngcbuild/regkeys | 0 .../tmp/ise/__REGISTRY__/ngdbuild/regkeys | 0 .../tmp/ise/__REGISTRY__/par/regkeys | 0 .../tmp/ise/__REGISTRY__/platgen/regkeys | 0 .../tmp/ise/__REGISTRY__/runner/regkeys | 0 .../tmp/ise/__REGISTRY__/simgen/regkeys | 0 .../tmp/ise/__REGISTRY__/taengine/regkeys | 0 .../tmp/ise/__REGISTRY__/trce/regkeys | 0 .../tmp/ise/__REGISTRY__/tsim/regkeys | 0 .../tmp/ise/__REGISTRY__/vhpcomp/regkeys | 0 .../tmp/ise/__REGISTRY__/vlogcomp/regkeys | 0 .../tmp/ise/__REGISTRY__/xpwr/regkeys | 0 .../tmp/ise/__REGISTRY__/xreport}/regkeys | 0 .../tmp/ise/__REGISTRY__/xst/regkeys | 0 .../__xps/ise/system_xdb/tmp/ise/version | 0 .../__xps/ise/xmsgprops.lst | 0 .../__xps/libgen.opt | 0 .../__xps/platgen.opt | 0 .../__xps/rtosdemo_compiler.opt | 0 .../__xps/simgen.opt | 0 .../__xps/system.filters | 0 .../__xps/system.gui | 0 .../__xps/xplorer.opt | 0 .../__xps/xpsxflow.opt | 0 .../blockdiagram/svg10.dtd | 0 .../blockdiagram/system.css | 0 .../blockdiagram/system.svg | 0 .../data/system.ucf | 0 .../etc/bitgen.ut | 0 .../etc/download.cmd | 0 .../etc/fast_runtime.opt | 0 .../revup/system_mhs.11.1 | 0 .../revup/system_mss.11.1 | 0 .../revup/system_xmp.11.1 | 0 .../system.bsb | 0 .../system.log | 0 .../system.make | 0 .../system.mhs | 0 .../system.mss | 0 .../system.xmp | 0 .../system_incl.make | 0 .../RTOSDemo/FreeRTOSConfig.h | 0 .../RTOSDemo/RTOSDemo_linker_script.ld | 0 .../RTOSDemo/flop/flop-reg-test.c | 0 .../RTOSDemo/flop/flop-reg-test.h | 0 .../RTOSDemo/flop/flop.c | 0 .../RTOSDemo/main.c | 0 .../RTOSDemo/partest/partest.c | 0 .../RTOSDemo/serial/serial.c | 0 .../Version_Changes.log | 0 .../__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl | 0 .../__xps/.dswkshop/MdtSvgDiag_Colors.xsl | 0 .../__xps/.dswkshop/MdtSvgDiag_Globals.xsl | 0 .../__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl | 0 .../MdtTinySvgBLKD_BusLaneSpaces.xsl | 0 .../__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl | 0 .../.dswkshop/MdtTinySvgBLKD_Functions.xsl | 0 .../.dswkshop/MdtTinySvgBLKD_Globals.xsl | 0 .../.dswkshop/MdtTinySvgBLKD_IOPorts.xsl | 0 .../__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl | 0 .../.dswkshop/MdtTinySvgBLKD_Peripherals.xsl | 0 .../.dswkshop/MdtTinySvgBLKD_Processors.xsl | 0 .../.dswkshop/MdtTinySvgDiag_BifShapes.xsl | 0 .../__xps/.dswkshop/svg10.dtd | 0 .../__xps/bitinit.opt | 0 .../__xps/ise/system.gise | 0 .../__xps/ise/system.ise | Bin .../__xps/ise/system.xise | 0 .../__xps/ise/system_xdb/tmp/ise.lock | Bin .../HierarchicalDesign/HDProject/HDProject | Bin .../HDProject/HDProject_StrTbl | Bin .../__stored_object_table__ | Bin .../PnAutoRun/Scripts/RunOnce_tcl | Bin .../PnAutoRun/Scripts/RunOnce_tcl_StrTbl | Bin .../dpm_project_main/dpm_project_main | Bin .../dpm_project_main/dpm_project_main_StrTbl | Bin .../xreport/Gc_RvReportViewer-Current-Module | Bin .../Gc_RvReportViewer-Current-Module_StrTbl | Bin .../Gc_RvReportViewer-Module-Data-system | Bin ...c_RvReportViewer-Module-Data-system_StrTbl | Bin ..._RvReportViewer-Module-DataFactory-Default | Bin ...rtViewer-Module-DataFactory-Default_StrTbl | Bin .../tmp/ise/__REGISTRY__/Autonym}/regkeys | 0 .../HierarchicalDesign/HDProject/regkeys | 0 .../ise/__REGISTRY__/ProjectNavigator/regkeys | 0 .../__REGISTRY__/ProjectNavigator11/regkeys | 0 .../tmp/ise/__REGISTRY__/XSLTProcess/regkeys | 0 .../__REGISTRY__/_ProjRepoInternal_/regkeys | 0 .../tmp/ise/__REGISTRY__/bitgen/regkeys | 0 .../tmp/ise/__REGISTRY__/bitinit/regkeys | 0 .../tmp/ise/__REGISTRY__/common/regkeys | 0 .../tmp/ise/__REGISTRY__/cpldfit/regkeys | 0 .../tmp/ise/__REGISTRY__/dumpngdio/regkeys | 0 .../tmp/ise/__REGISTRY__/fuse/regkeys | 0 .../tmp/ise/__REGISTRY__/hprep6/regkeys | 0 .../tmp/ise/__REGISTRY__/idem/regkeys | 0 .../tmp/ise/__REGISTRY__/libgen/regkeys | 0 .../tmp/ise/__REGISTRY__/map/regkeys | 0 .../tmp/ise/__REGISTRY__/netgen/regkeys | 0 .../tmp/ise/__REGISTRY__/ngc2edif/regkeys | 0 .../tmp/ise/__REGISTRY__/ngcbuild/regkeys | 0 .../tmp/ise/__REGISTRY__/ngdbuild/regkeys | 0 .../tmp/ise/__REGISTRY__/par/regkeys | 0 .../tmp/ise/__REGISTRY__/platgen/regkeys | 0 .../tmp/ise/__REGISTRY__/runner/regkeys | 0 .../tmp/ise/__REGISTRY__/simgen/regkeys | 0 .../tmp/ise/__REGISTRY__/taengine/regkeys | 0 .../tmp/ise/__REGISTRY__/trce/regkeys | 0 .../tmp/ise/__REGISTRY__/tsim/regkeys | 0 .../tmp/ise/__REGISTRY__/vhpcomp/regkeys | 0 .../tmp/ise/__REGISTRY__/vlogcomp/regkeys | 0 .../tmp/ise/__REGISTRY__/xpwr/regkeys | 0 .../tmp/ise/__REGISTRY__/xreport/regkeys | 0 .../tmp/ise/__REGISTRY__/xst/regkeys | 0 .../__xps/ise/system_xdb/tmp/ise/version | 0 .../__xps/ise/xmsgprops.lst | 0 .../__xps/libgen.opt | 0 .../__xps/platgen.opt | 0 .../__xps/rtosdemo_compiler.opt | 0 .../__xps/simgen.opt | 0 .../__xps/system.filters | 0 .../__xps/system.gui | 0 .../__xps/xplorer.opt | 0 .../__xps/xpsxflow.opt | 0 .../blockdiagram/svg10.dtd | 0 .../blockdiagram/system.css | 0 .../blockdiagram/system.svg | 0 .../data/system.ucf | 0 .../etc/bitgen.ut | 0 .../etc/download.cmd | 0 .../etc/fast_runtime.opt | 0 .../revup/system_mhs.11.1 | 0 .../revup/system_mss.11.1 | 0 .../revup/system_xmp.11.1 | 0 .../system.bsb | 0 .../system.log | 0 .../system.make | 0 .../system.mhs | 0 .../system.mss | 0 .../system.xmp | 0 .../system_incl.make | 0 .../RTOSDemo/FreeRTOSConfig.h | 0 .../RTOSDemo/RTOSDemo_linker_script.ld | 0 .../RTOSDemo/flop/flop-reg-test.c | 0 .../RTOSDemo/flop/flop-reg-test.h | 0 .../RTOSDemo/flop/flop.c | 0 .../PPC440_Xilinx_Virtex5_GCC/RTOSDemo/main.c | 0 .../RTOSDemo/partest/partest.c | 0 .../RTOSDemo/serial/serial.c | 0 .../Version_Changes.log | 0 .../__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl | 0 .../__xps/.dswkshop/MdtSvgDiag_Colors.xsl | 0 .../__xps/.dswkshop/MdtSvgDiag_Globals.xsl | 0 .../__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl | 0 .../MdtTinySvgBLKD_BusLaneSpaces.xsl | 0 .../__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl | 0 .../.dswkshop/MdtTinySvgBLKD_Functions.xsl | 0 .../.dswkshop/MdtTinySvgBLKD_Globals.xsl | 0 .../.dswkshop/MdtTinySvgBLKD_IOPorts.xsl | 0 .../__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl | 0 .../.dswkshop/MdtTinySvgBLKD_Peripherals.xsl | 0 .../.dswkshop/MdtTinySvgBLKD_Processors.xsl | 0 .../.dswkshop/MdtTinySvgDiag_BifShapes.xsl | 0 .../__xps/.dswkshop/svg10.dtd | 0 .../__xps/bitinit.opt | 0 .../__xps/ise/_xmsgs/map.xmsgs | 0 .../__xps/ise/_xmsgs/ngcbuild.xmsgs | 0 .../__xps/ise/_xmsgs/ngdbuild.xmsgs | 0 .../__xps/ise/_xmsgs/par.xmsgs | 0 .../__xps/ise/_xmsgs/trce.xmsgs | 0 .../__xps/ise/_xmsgs/xst.xmsgs | 0 .../__xps/ise/system.gise | 0 .../__xps/ise/system.ise | Bin .../__xps/ise/system.ntrc_log | 0 .../__xps/ise/system.xise | 0 .../__xps/ise/system_xdb/cst.xbcd | Bin .../__xps/ise/system_xdb/tmp/ise.lock | Bin .../HierarchicalDesign/HDProject/HDProject | Bin .../HDProject/HDProject_StrTbl | Bin .../__stored_object_table__ | Bin .../PnAutoRun/Scripts/RunOnce_tcl | Bin .../PnAutoRun/Scripts/RunOnce_tcl_StrTbl | Bin .../dpm_project_main/dpm_project_main | Bin .../dpm_project_main/dpm_project_main_StrTbl | Bin .../xreport/Gc_RvReportViewer-Current-Module | Bin .../Gc_RvReportViewer-Current-Module_StrTbl | Bin .../Gc_RvReportViewer-Module-Data-system | Bin ...c_RvReportViewer-Module-Data-system_StrTbl | Bin ..._RvReportViewer-Module-DataFactory-Default | Bin ...rtViewer-Module-DataFactory-Default_StrTbl | Bin .../tmp/ise/__REGISTRY__/Autonym/regkeys | 0 .../HierarchicalDesign/HDProject/regkeys | 0 .../__REGISTRY__/HierarchicalDesign/regkeys | 0 .../ise/__REGISTRY__/ProjectNavigator/regkeys | 0 .../__REGISTRY__/ProjectNavigator11/regkeys | 0 .../tmp/ise/__REGISTRY__/XSLTProcess/regkeys | 0 .../__REGISTRY__/_ProjRepoInternal_/regkeys | 0 .../tmp/ise/__REGISTRY__/bitgen/regkeys | 0 .../tmp/ise/__REGISTRY__/bitinit/regkeys | 0 .../tmp/ise/__REGISTRY__/common/regkeys | 0 .../tmp/ise/__REGISTRY__/cpldfit/regkeys | 0 .../tmp/ise/__REGISTRY__/dumpngdio/regkeys | 0 .../tmp/ise/__REGISTRY__/fuse/regkeys | 0 .../tmp/ise/__REGISTRY__/hprep6/regkeys | 0 .../tmp/ise/__REGISTRY__/idem/regkeys | 0 .../tmp/ise/__REGISTRY__/libgen/regkeys | 0 .../tmp/ise/__REGISTRY__/map/regkeys | 0 .../tmp/ise/__REGISTRY__/netgen/regkeys | 0 .../tmp/ise/__REGISTRY__/ngc2edif/regkeys | 0 .../tmp/ise/__REGISTRY__/ngcbuild/regkeys | 0 .../tmp/ise/__REGISTRY__/ngdbuild/regkeys | 0 .../tmp/ise/__REGISTRY__/par/regkeys | 0 .../tmp/ise/__REGISTRY__/platgen/regkeys | 0 .../tmp/ise/__REGISTRY__/runner/regkeys | 0 .../tmp/ise/__REGISTRY__/simgen/regkeys | 0 .../tmp/ise/__REGISTRY__/taengine/regkeys | 0 .../tmp/ise/__REGISTRY__/trce/regkeys | 0 .../tmp/ise/__REGISTRY__/tsim/regkeys | 0 .../tmp/ise/__REGISTRY__/vhpcomp/regkeys | 0 .../tmp/ise/__REGISTRY__/vlogcomp/regkeys | 0 .../tmp/ise/__REGISTRY__/xpwr/regkeys | 0 .../tmp/ise/__REGISTRY__/xreport/regkeys | 0 .../tmp/ise/__REGISTRY__/xst/regkeys | 0 .../__xps/ise/system_xdb/tmp/ise/version | 0 .../__xps/ise/xmsgprops.lst | 0 .../__xps/libgen.opt | 0 .../__xps/platgen.opt | 0 .../__xps/rtosdemo_compiler.opt | 0 .../__xps/simgen.opt | 0 .../__xps/system.filters | 0 .../__xps/system.gui | 0 .../__xps/system.xml | 0 .../__xps/xplorer.opt | 0 .../__xps/xpsxflow.opt | 0 .../blockdiagram/svg10.dtd | 0 .../blockdiagram/system.css | 0 .../blockdiagram/system.svg | 0 .../PPC440_Xilinx_Virtex5_GCC/data/system.ucf | 0 .../PPC440_Xilinx_Virtex5_GCC/etc/bitgen.ut | 0 .../etc/download.cmd | 0 .../etc/fast_runtime.opt | 0 .../etc/xmd_ppc440_0.opt | 0 .../PPC440_Xilinx_Virtex5_GCC/platgen.opt | 0 .../PPC440_Xilinx_Virtex5_GCC/psf2Edward.log | 0 .../revup/system_mhs.11.1 | 0 .../revup/system_mss.11.1 | 0 .../revup/system_xmp.11.1 | 0 .../PPC440_Xilinx_Virtex5_GCC/system.bsb | 0 .../PPC440_Xilinx_Virtex5_GCC/system.log | 0 .../PPC440_Xilinx_Virtex5_GCC/system.make | 0 .../PPC440_Xilinx_Virtex5_GCC/system.mhs | 0 .../PPC440_Xilinx_Virtex5_GCC/system.mss | 0 .../PPC440_Xilinx_Virtex5_GCC/system.xmp | 0 .../system_incl.make | 0 .../FreeRTOSConfig.h | 0 .../RL78_RL78G13_Promo_Board_IAR/RTOSDemo.ewd | 0 .../RL78_RL78G13_Promo_Board_IAR/RTOSDemo.ewp | 0 .../RL78_RL78G13_Promo_Board_IAR/RTOSDemo.eww | 0 .../RL78_RL78G13_Promo_Board_IAR/RegTest.s87 | 0 .../Demo}/RL78_RL78G13_Promo_Board_IAR/main.c | 0 .../settings/rtosdemo.cspy.bat | 0 .../settings/rtosdemo.dbgdt | 0 .../settings/rtosdemo.dni | 0 .../settings/rtosdemo.wsdt | 0 .../RX200_RX210-RSK_Renesas/RTOSDemo.Hbp | 0 .../RX200_RX210-RSK_Renesas/RTOSDemo.hws | 0 .../RX200_RX210-RSK_Renesas/RTOSDemo.tws | 0 .../RTOSDemo/Blinky/Blinky.hdp | Bin .../RTOSDemo/ButtonAndLCD.c | 0 .../RTOSDemo/DefaultSession.hsf | 0 .../RTOSDemo/FreeRTOSConfig.h | 0 .../RTOSDemo/HighFrequencyTimerTest.c | 0 .../RTOSDemo/IntQueueTimer.c | 0 .../RTOSDemo/ParTest.c | 0 .../RTOSDemo/RTOSDemo.hwp | 0 .../RTOSDemo/RTOSDemo.nav | Bin .../RTOSDemo/RTOSDemo.tps | 0 .../RTOSDemo/Renesas-Files/dbsct.c | 0 .../RTOSDemo/Renesas-Files/hd44780.c | 0 .../RTOSDemo/Renesas-Files/hwsetup.c | 0 .../RTOSDemo/Renesas-Files/intprg.c | 0 .../RTOSDemo/Renesas-Files/lcd.c | 0 .../RTOSDemo/Renesas-Files/lowlvl.src | 0 .../RTOSDemo/Renesas-Files/lowsrc.c | 0 .../RTOSDemo/Renesas-Files/resetprg.c | 0 .../RTOSDemo/Renesas-Files/sbrk.c | 0 .../RTOSDemo/Renesas-Files/vecttbl.c | 0 .../RTOSDemo/SessionRX200_E1_E20_SYSTEM.hsf | 0 .../RTOSDemo/SessionRX200_E1_E20_SYSTEM.ini | 0 .../RTOSDemo/include/ButtonAndLCD.h | 0 .../RTOSDemo/include/IntQueueTimer.h | 0 .../RTOSDemo/include/OLDiodefine.h | 0 .../RTOSDemo/include/RX62Niodefine.h | 0 .../RTOSDemo/include/hd44780.h | 0 .../RTOSDemo/include/iodefine.h | 0 .../RTOSDemo/include/lcd.h | 0 .../RTOSDemo/include/lowsrc.h | 0 .../RTOSDemo/include/rskrx210def.h | 0 .../RTOSDemo/include/stacksct.h | 0 .../RTOSDemo/include/typedefine.h | 0 .../RTOSDemo/include/vect.h | 0 .../RTOSDemo/main-blinky.c | 0 .../RTOSDemo/main-full.c | 0 .../RTOSDemo/DefaultSession.hsf | 0 .../RTOSDemo/DefaultSession.ini | 0 .../RTOSDemo/FreeRTOSConfig.h | 0 .../RTOSDemo/GNU-Files/hwinit.c | 0 .../RTOSDemo/GNU-Files/inthandler.c | 0 .../RTOSDemo/GNU-Files/start.asm | 0 .../RTOSDemo/HighFrequencyTimerTest.c | 0 .../RTOSDemo/IntQueueTimer.c | 0 .../RX600_RX62N-RDK_GNURX/RTOSDemo/ParTest.c | 0 .../RTOSDemo/RTOSDemo.hwp | 0 .../RTOSDemo/RTOSDemo.nav | Bin .../RTOSDemo/RTOSDemo.tps | 0 .../RTOSDemo/Renesas-Files/hwsetup.c | 0 .../RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf | 0 .../RTOSDemo/SessionRX600_E1_E20_SYSTEM.ini | 0 .../RTOSDemo/include/IntQueueTimer.h | 0 .../RTOSDemo/include/inthandler.h | 0 .../RTOSDemo/include/iodefine.h | 0 .../RTOSDemo/include/typedefine.h | 0 .../RTOSDemo/include/yrdkrx62ndef.h | 0 .../RTOSDemo/main-blinky.c | 0 .../RTOSDemo/main-full.c | 0 .../RX600_RX62N-RDK_GNURX/RTOSDemo/uIP_Task.c | 0 .../RX600_RX62N-RDK_GNURX/RTOSDemo/vects.c | 0 .../RTOSDemo/webserver/EMAC.c | 0 .../RTOSDemo/webserver/httpd-cgi.c | 0 .../RTOSDemo/webserver/httpd-fs/404.html | 0 .../RTOSDemo/webserver/httpd-fs/index.html | 0 .../RTOSDemo/webserver/httpd-fs/index.shtml | 0 .../RTOSDemo/webserver/httpd-fs/io.shtml | 0 .../RTOSDemo/webserver/httpd-fs/logo.jpg | Bin .../RTOSDemo/webserver/httpd-fs/runtime.shtml | 0 .../RTOSDemo/webserver/httpd-fs/stats.shtml | 0 .../RTOSDemo/webserver/httpd-fs/tcp.shtml | 0 .../RTOSDemo/webserver/httpd-fsdata.c | 0 .../RTOSDemo/webserver/makefsdata | 0 .../RTOSDemo/webserver/phy.c | 0 .../RTOSDemo/webserver/phy.h | 0 .../RTOSDemo/webserver/r_ether.h | 0 .../RTOSDemo/webserver/uip-conf.h | 0 .../RTOSDemo/webserver/webserver.h | 0 .../RX600_RX62N_RDK_GNURX.Hbp | 0 .../RX600_RX62N_RDK_GNURX.hws | 0 .../RX600_RX62N_RDK_GNURX.tws | 0 .../RX600_RX62N-RDK_IAR/FreeRTOSConfig.h | 0 .../HighFrequencyTimerTest.c | 0 .../Demo}/RX600_RX62N-RDK_IAR/IntQueueTimer.c | 0 .../Demo}/RX600_RX62N-RDK_IAR/ParTest.c | 0 .../RX600_RX62N-RDK_IAR/PriorityDefinitions.h | 0 .../Demo}/RX600_RX62N-RDK_IAR/RSKRX62N_Demo.c | 0 .../Demo}/RX600_RX62N-RDK_IAR/RTOSDemo.ewd | 0 .../Demo}/RX600_RX62N-RDK_IAR/RTOSDemo.ewp | 0 .../Demo}/RX600_RX62N-RDK_IAR/RTOSDemo.eww | 0 .../Demo}/RX600_RX62N-RDK_IAR/RegTest.s | 0 .../Renesas-Files/hwsetup.c | 0 .../include/IntQueueTimer.h | 0 .../RX600_RX62N-RDK_IAR/include/inthandler.h | 0 .../RX600_RX62N-RDK_IAR/include/typedefine.h | 0 .../include/yrdkrx62ndef.h | 0 .../Demo}/RX600_RX62N-RDK_IAR/main-blinky.c | 0 .../Demo}/RX600_RX62N-RDK_IAR/main-full.c | 0 .../settings/RTOSDemo.cspy.bat | 0 .../settings/RTOSDemo.dbgdt | 0 .../RX600_RX62N-RDK_IAR/settings/RTOSDemo.dni | 0 .../settings/RTOSDemo.wsdt | 0 .../Demo}/RX600_RX62N-RDK_IAR/uIP_Task.c | 0 .../RX600_RX62N-RDK_IAR/webserver/EMAC.c | 0 .../RX600_RX62N-RDK_IAR/webserver/httpd-cgi.c | 0 .../webserver/httpd-fs/404.html | 0 .../webserver/httpd-fs/index.html | 0 .../webserver/httpd-fs/index.shtml | 0 .../webserver/httpd-fs/io.shtml | 0 .../webserver/httpd-fs/logo.jpg | Bin .../webserver/httpd-fs/runtime.shtml | 0 .../webserver/httpd-fs/stats.shtml | 0 .../webserver/httpd-fs/tcp.shtml | 0 .../webserver/httpd-fsdata.c | 0 .../RX600_RX62N-RDK_IAR/webserver/makefsdata | 0 .../Demo}/RX600_RX62N-RDK_IAR/webserver/phy.c | 0 .../Demo}/RX600_RX62N-RDK_IAR/webserver/phy.h | 0 .../RX600_RX62N-RDK_IAR/webserver/r_ether.h | 0 .../RX600_RX62N-RDK_IAR/webserver/uip-conf.h | 0 .../RX600_RX62N-RDK_IAR/webserver/webserver.h | 0 .../RX600_RX62N-RDK_Renesas/RTOSDemo.Hbp | 0 .../RX600_RX62N-RDK_Renesas/RTOSDemo.hws | 0 .../RX600_RX62N-RDK_Renesas/RTOSDemo.tws | 0 .../RTOSDemo/DefaultSession.hsf | 0 .../RTOSDemo/FreeRTOSConfig.h | 0 .../RTOSDemo/HighFrequencyTimerTest.c | 0 .../RTOSDemo/IntQueueTimer.c | 0 .../RTOSDemo/ParTest.c | 0 .../RTOSDemo/RTOSDemo.hwp | 0 .../RTOSDemo/RTOSDemo.nav | Bin .../RTOSDemo/RTOSDemo.tps | 0 .../RTOSDemo/Renesas-Files/dbsct.c | 0 .../RTOSDemo/Renesas-Files/hwsetup.c | 0 .../RTOSDemo/Renesas-Files/intprg.c | 0 .../RTOSDemo/Renesas-Files/lowlvl.src | 0 .../RTOSDemo/Renesas-Files/lowsrc.c | 0 .../RTOSDemo/Renesas-Files/resetprg.c | 0 .../RTOSDemo/Renesas-Files/sbrk.c | 0 .../RTOSDemo/Renesas-Files/vecttbl.c | 0 .../RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf | 0 .../RTOSDemo/SessionRX600_E1_E20_SYSTEM.ini | 0 .../RTOSDemo/SimSessionRX600.hsf | 0 .../RTOSDemo/include/IntQueueTimer.h | 0 .../RTOSDemo/include/iodefine.h | 0 .../RTOSDemo/include/lowsrc.h | 0 .../RTOSDemo/include/stacksct.h | 0 .../RTOSDemo/include/typedefine.h | 0 .../RTOSDemo/include/vect.h | 0 .../RTOSDemo/include/yrdkrx62ndef.h | 0 .../RTOSDemo/main-blinky.c | 0 .../RTOSDemo/main-full.c | 0 .../RTOSDemo/uIP_Task.c | 0 .../RTOSDemo/webserver/EMAC.c | 0 .../RTOSDemo/webserver/httpd-cgi.c | 0 .../RTOSDemo/webserver/httpd-fs/404.html | 0 .../RTOSDemo/webserver/httpd-fs/index.html | 0 .../RTOSDemo/webserver/httpd-fs/index.shtml | 0 .../RTOSDemo/webserver/httpd-fs/io.shtml | 0 .../RTOSDemo/webserver/httpd-fs/logo.jpg | Bin .../RTOSDemo/webserver/httpd-fs/runtime.shtml | 0 .../RTOSDemo/webserver/httpd-fs/stats.shtml | 0 .../RTOSDemo/webserver/httpd-fs/tcp.shtml | 0 .../RTOSDemo/webserver/httpd-fsdata.c | 0 .../RTOSDemo/webserver/makefsdata | 0 .../RTOSDemo/webserver/phy.c | 0 .../RTOSDemo/webserver/phy.h | 0 .../RTOSDemo/webserver/r_ether.h | 0 .../RTOSDemo/webserver/uip-conf.h | 0 .../RTOSDemo/webserver/webserver.h | 0 .../RTOSDemo/DefaultSession.hsf | 0 .../RTOSDemo/DefaultSession.ini | 0 .../RTOSDemo/FreeRTOSConfig.h | 0 .../RTOSDemo/GNU-Files/hwinit.c | 0 .../RTOSDemo/GNU-Files/inthandler.c | 0 .../RTOSDemo/GNU-Files/start.asm | 0 .../RTOSDemo/HighFrequencyTimerTest.c | 0 .../RTOSDemo/IntQueueTimer.c | 0 .../RX600_RX62N-RSK_GNURX/RTOSDemo/ParTest.c | 0 .../RTOSDemo/RTOSDemo.hwp | 0 .../RTOSDemo/RTOSDemo.nav | Bin .../RTOSDemo/RTOSDemo.tps | 0 .../RTOSDemo/Renesas-Files/hwsetup.c | 0 .../RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf | 0 .../RTOSDemo/SessionRX600_E1_E20_SYSTEM.ini | 0 .../RTOSDemo/include/IntQueueTimer.h | 0 .../RTOSDemo/include/inthandler.h | 0 .../RTOSDemo/include/iodefine.h | 0 .../RTOSDemo/include/rskrx62ndef.h | 0 .../RTOSDemo/include/typedefine.h | 0 .../RTOSDemo/main-blinky.c | 0 .../RTOSDemo/main-full.c | 0 .../RX600_RX62N-RSK_GNURX/RTOSDemo/uIP_Task.c | 0 .../RX600_RX62N-RSK_GNURX/RTOSDemo/vects.c | 0 .../RTOSDemo/webserver/EMAC.c | 0 .../RTOSDemo/webserver/httpd-cgi.c | 0 .../RTOSDemo/webserver/httpd-fs/404.html | 0 .../RTOSDemo/webserver/httpd-fs/index.html | 0 .../RTOSDemo/webserver/httpd-fs/index.shtml | 0 .../RTOSDemo/webserver/httpd-fs/io.shtml | 0 .../RTOSDemo/webserver/httpd-fs/logo.jpg | Bin .../RTOSDemo/webserver/httpd-fs/runtime.shtml | 0 .../RTOSDemo/webserver/httpd-fs/stats.shtml | 0 .../RTOSDemo/webserver/httpd-fs/tcp.shtml | 0 .../RTOSDemo/webserver/httpd-fsdata.c | 0 .../RTOSDemo/webserver/makefsdata | 0 .../RTOSDemo/webserver/phy.c | 0 .../RTOSDemo/webserver/phy.h | 0 .../RTOSDemo/webserver/r_ether.h | 0 .../RTOSDemo/webserver/uip-conf.h | 0 .../RTOSDemo/webserver/webserver.h | 0 .../RX600_RX62N_RSK_GNURX.Hbp | 0 .../RX600_RX62N_RSK_GNURX.hws | 0 .../RX600_RX62N_RSK_GNURX.tws | 0 .../RX600_RX62N-RSK_IAR/FreeRTOSConfig.h | 0 .../HighFrequencyTimerTest.c | 0 .../Demo}/RX600_RX62N-RSK_IAR/IntQueueTimer.c | 0 .../Demo}/RX600_RX62N-RSK_IAR/ParTest.c | 0 .../RX600_RX62N-RSK_IAR/PriorityDefinitions.h | 0 .../Demo}/RX600_RX62N-RSK_IAR/RSKRX62N_Demo.c | 0 .../Demo}/RX600_RX62N-RSK_IAR/RTOSDemo.ewd | 0 .../Demo}/RX600_RX62N-RSK_IAR/RTOSDemo.ewp | 0 .../Demo}/RX600_RX62N-RSK_IAR/RTOSDemo.eww | 0 .../Demo}/RX600_RX62N-RSK_IAR/RegTest.s | 0 .../Renesas-Files/hwsetup.c | 0 .../include/IntQueueTimer.h | 0 .../RX600_RX62N-RSK_IAR/include/inthandler.h | 0 .../RX600_RX62N-RSK_IAR/include/rskrx62ndef.h | 0 .../RX600_RX62N-RSK_IAR/include/typedefine.h | 0 .../Demo}/RX600_RX62N-RSK_IAR/main-blinky.c | 0 .../Demo}/RX600_RX62N-RSK_IAR/main-full.c | 0 .../settings/RTOSDemo.cspy.bat | 0 .../settings/RTOSDemo.dbgdt | 0 .../RX600_RX62N-RSK_IAR/settings/RTOSDemo.dni | 0 .../settings/RTOSDemo.wsdt | 0 .../Demo}/RX600_RX62N-RSK_IAR/uIP_Task.c | 0 .../RX600_RX62N-RSK_IAR/webserver/EMAC.c | 0 .../RX600_RX62N-RSK_IAR/webserver/httpd-cgi.c | 0 .../webserver/httpd-fs/404.html | 0 .../webserver/httpd-fs/index.html | 0 .../webserver/httpd-fs/index.shtml | 0 .../webserver/httpd-fs/io.shtml | 0 .../webserver/httpd-fs/logo.jpg | Bin .../webserver/httpd-fs/runtime.shtml | 0 .../webserver/httpd-fs/stats.shtml | 0 .../webserver/httpd-fs/tcp.shtml | 0 .../webserver/httpd-fsdata.c | 0 .../RX600_RX62N-RSK_IAR/webserver/makefsdata | 0 .../Demo}/RX600_RX62N-RSK_IAR/webserver/phy.c | 0 .../Demo}/RX600_RX62N-RSK_IAR/webserver/phy.h | 0 .../RX600_RX62N-RSK_IAR/webserver/r_ether.h | 0 .../RX600_RX62N-RSK_IAR/webserver/uip-conf.h | 0 .../RX600_RX62N-RSK_IAR/webserver/webserver.h | 0 .../RX600_RX62N-RSK_Renesas/RTOSDemo.Hbp | 0 .../RX600_RX62N-RSK_Renesas/RTOSDemo.hws | 0 .../RX600_RX62N-RSK_Renesas/RTOSDemo.tws | 0 .../RTOSDemo/Debug/Debug.hdp | Bin .../Debug_RX600_E1_E20_SYSTEM.hdp | Bin .../RTOSDemo/DefaultSession.hsf | 0 .../RTOSDemo/FreeRTOSConfig.h | 0 .../RTOSDemo/HighFrequencyTimerTest.c | 0 .../RTOSDemo/IntQueueTimer.c | 0 .../RTOSDemo/ParTest.c | 0 .../RTOSDemo/RTOSDemo.hwp | 0 .../RTOSDemo/RTOSDemo.nav | Bin .../RTOSDemo/RTOSDemo.tps | 0 .../RTOSDemo/Renesas-Files/dbsct.c | 0 .../RTOSDemo/Renesas-Files/hwsetup.c | 0 .../RTOSDemo/Renesas-Files/intprg.c | 0 .../RTOSDemo/Renesas-Files/lowlvl.src | 0 .../RTOSDemo/Renesas-Files/lowsrc.c | 0 .../RTOSDemo/Renesas-Files/resetprg.c | 0 .../RTOSDemo/Renesas-Files/sbrk.c | 0 .../RTOSDemo/Renesas-Files/vecttbl.c | 0 .../RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf | 0 .../RTOSDemo/SessionRX600_E1_E20_SYSTEM.ini | 0 .../SimDebug_RX600/SimDebug_RX600.hdp | Bin .../RTOSDemo/SimSessionRX600.hsf | 0 .../RTOSDemo/include/IntQueueTimer.h | 0 .../RTOSDemo/include/iodefine.h | 0 .../RTOSDemo/include/lowsrc.h | 0 .../RTOSDemo/include/rskrx62ndef.h | 0 .../RTOSDemo/include/stacksct.h | 0 .../RTOSDemo/include/typedefine.h | 0 .../RTOSDemo/include/vect.h | 0 .../RTOSDemo/main-blinky.c | 0 .../RTOSDemo/main-full.c | 0 .../RTOSDemo/uIP_Task.c | 0 .../RTOSDemo/webserver/EMAC.c | 0 .../RTOSDemo/webserver/httpd-cgi.c | 0 .../RTOSDemo/webserver/httpd-fs/404.html | 0 .../RTOSDemo/webserver/httpd-fs/index.html | 0 .../RTOSDemo/webserver/httpd-fs/index.shtml | 0 .../RTOSDemo/webserver/httpd-fs/io.shtml | 0 .../RTOSDemo/webserver/httpd-fs/logo.jpg | Bin .../RTOSDemo/webserver/httpd-fs/runtime.shtml | 0 .../RTOSDemo/webserver/httpd-fs/stats.shtml | 0 .../RTOSDemo/webserver/httpd-fs/tcp.shtml | 0 .../RTOSDemo/webserver/httpd-fsdata.c | 0 .../RTOSDemo/webserver/makefsdata | 0 .../RTOSDemo/webserver/phy.c | 0 .../RTOSDemo/webserver/phy.h | 0 .../RTOSDemo/webserver/r_ether.h | 0 .../RTOSDemo/webserver/uip-conf.h | 0 .../RTOSDemo/webserver/webserver.h | 0 .../RX600_RX630-RSK_Renesas/RTOSDemo.Hbp | 0 .../RX600_RX630-RSK_Renesas/RTOSDemo.hws | 0 .../RX600_RX630-RSK_Renesas/RTOSDemo.tws | 0 .../RTOSDemo/DefaultSession.hsf | 0 .../RTOSDemo/FreeRTOSConfig.h | 0 .../RTOSDemo/HighFrequencyTimerTest.c | 0 .../RTOSDemo/IntQueueTimer.c | 0 .../RTOSDemo/ParTest.c | 0 .../RTOSDemo/RTOSDemo.hwp | 0 .../RTOSDemo/RTOSDemo.nav | Bin .../RTOSDemo/RTOSDemo.tps | 0 .../RTOSDemo/Renesas-Files/cgc.c | 0 .../RTOSDemo/Renesas-Files/cgc.h | 0 .../RTOSDemo/Renesas-Files/cgc_error.h | 0 .../RTOSDemo/Renesas-Files/cgc_set.h | 0 .../RTOSDemo/Renesas-Files/dbsct.c | 0 .../RTOSDemo/Renesas-Files/hwsetup.c | 0 .../RTOSDemo/Renesas-Files/intprg.c | 0 .../RTOSDemo/Renesas-Files/lowlvl.src | 0 .../RTOSDemo/Renesas-Files/lowsrc.c | 0 .../RTOSDemo/Renesas-Files/resetprg.c | 0 .../RTOSDemo/Renesas-Files/sbrk.c | 0 .../RTOSDemo/Renesas-Files/vecttbl.c | 0 .../RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf | 0 .../RTOSDemo/SessionRX600_E1_E20_SYSTEM.ini | 0 .../RTOSDemo/SimSessionRX600.hsf | 0 .../RTOSDemo/Upgrade.txt | 0 .../RTOSDemo/include/IntQueueTimer.h | 0 .../RTOSDemo/include/iodefine.h | 0 .../RTOSDemo/include/lowsrc.h | 0 .../RTOSDemo/include/rskrx630def.h | 0 .../RTOSDemo/include/stacksct.h | 0 .../RTOSDemo/include/typedefine.h | 0 .../RTOSDemo/include/vect.h | 0 .../RTOSDemo/main-blinky.c | 0 .../RTOSDemo/main-full.c | 0 .../RX600_RX63N-RDK_Renesas/RTOSDemo.Hbp | 0 .../RX600_RX63N-RDK_Renesas/RTOSDemo.hws | 0 .../RX600_RX63N-RDK_Renesas/RTOSDemo.tws | 0 .../RTOSDemo/DefaultSession.hsf | 0 .../RTOSDemo/FreeRTOSConfig.h | 0 .../RTOSDemo/HighFrequencyTimerTest.c | 0 .../RTOSDemo/IntQueueTimer.c | 0 .../RTOSDemo/IntQueueTimer.h | 0 .../RTOSDemo/ParTest.c | 0 .../RTOSDemo/RDK_Jlink.hsf | 0 .../RTOSDemo/RDK_Jlink.ini | 0 .../RTOSDemo/RTOSDemo.hwp | 0 .../RTOSDemo/RTOSDemo.nav | Bin .../RTOSDemo/RTOSDemo.tps | 0 .../Renesas-Files/board/rdkrx63n/dbsct.c | 0 .../board/rdkrx63n/flash_options.c | 0 .../Renesas-Files/board/rdkrx63n/hwsetup.c | 0 .../Renesas-Files/board/rdkrx63n/hwsetup.h | 0 .../Renesas-Files/board/rdkrx63n/lowlvl.src | 0 .../Renesas-Files/board/rdkrx63n/lowsrc.c | 0 .../Renesas-Files/board/rdkrx63n/mcu_info.h | 0 .../Renesas-Files/board/rdkrx63n/r_bsp.h | 0 .../board/rdkrx63n/r_bsp_config_reference.h | 0 .../Renesas-Files/board/rdkrx63n/resetprg.c | 0 .../Renesas-Files/board/rdkrx63n/sbrk.c | 0 .../Renesas-Files/board/rdkrx63n/vecttbl.c | 0 .../Renesas-Files/board/rdkrx63n/yrdkrx63n.h | 0 .../Renesas-Files/mcu/rx63n/iodefine.h | 0 .../mcu/rx63n/iodefine.h_from_toolchain | 0 .../RTOSDemo/Renesas-Files/platform.h | 0 .../RTOSDemo/SimSessionRX600.hsf | 0 .../RTOSDemo/main-blinky.c | 0 .../RTOSDemo/main-full.c | 0 .../RTOSDemo/r_bsp_config.h | 0 .../RTOSDemo/uIP_Task.c | 0 .../RTOSDemo/webserver/EMAC.c | 0 .../RTOSDemo/webserver/httpd-cgi.c | 0 .../RTOSDemo/webserver/httpd-fs/404.html | 0 .../RTOSDemo/webserver/httpd-fs/index.html | 0 .../RTOSDemo/webserver/httpd-fs/index.shtml | 0 .../RTOSDemo/webserver/httpd-fs/io.shtml | 0 .../RTOSDemo/webserver/httpd-fs/logo.jpg | Bin .../RTOSDemo/webserver/httpd-fs/runtime.shtml | 0 .../RTOSDemo/webserver/httpd-fs/stats.shtml | 0 .../RTOSDemo/webserver/httpd-fs/tcp.shtml | 0 .../RTOSDemo/webserver/httpd-fsdata.c | 0 .../RTOSDemo/webserver/makefsdata | 0 .../RTOSDemo/webserver/phy.c | 0 .../RTOSDemo/webserver/phy.h | 0 .../RTOSDemo/webserver/r_ether.h | 0 .../RTOSDemo/webserver/uip-conf.h | 0 .../RTOSDemo/webserver/webserver.h | 0 .../RX600_RX63N-RSK_Renesas/RTOSDemo.Hbp | 0 .../RX600_RX63N-RSK_Renesas/RTOSDemo.hws | 0 .../RX600_RX63N-RSK_Renesas/RTOSDemo.tws | 0 .../RTOSDemo/DefaultSession.hsf | 0 .../RTOSDemo/FreeRTOSConfig.h | 0 .../RTOSDemo/HighFrequencyTimerTest.c | 0 .../RTOSDemo/IntQueueTimer.c | 0 .../RTOSDemo/IntQueueTimer.h | 0 .../RTOSDemo/ParTest.c | 0 .../RTOSDemo/RTOSDemo.hwp | 0 .../RTOSDemo/RTOSDemo.nav | Bin .../RTOSDemo/RTOSDemo.tps | 0 .../Renesas-Files/board/rskrx63n/dbsct.c | 0 .../board/rskrx63n/flash_options.c | 0 .../Renesas-Files/board/rskrx63n/hwsetup.c | 0 .../Renesas-Files/board/rskrx63n/hwsetup.h | 0 .../Renesas-Files/board/rskrx63n/lowlvl.src | 0 .../Renesas-Files/board/rskrx63n/lowsrc.c | 0 .../Renesas-Files/board/rskrx63n/mcu_info.h | 0 .../Renesas-Files/board/rskrx63n/r_bsp.h | 0 .../board/rskrx63n/r_bsp_config_reference.h | 0 .../Renesas-Files/board/rskrx63n/resetprg.c | 0 .../Renesas-Files/board/rskrx63n/rskrx63n.h | 0 .../Renesas-Files/board/rskrx63n/sbrk.c | 0 .../Renesas-Files/board/rskrx63n/vecttbl.c | 0 .../Renesas-Files/mcu/rx63n/iodefine.h | 0 .../mcu/rx63n/iodefine.h_from_toolchain | 0 .../RTOSDemo/Renesas-Files/platform.h | 0 .../RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf | 0 .../RTOSDemo/SessionRX600_E1_E20_SYSTEM.ini | 0 .../RTOSDemo/SimSessionRX600.hsf | 0 .../RTOSDemo/main-blinky.c | 0 .../RTOSDemo/main-full.c | 0 .../RTOSDemo/r_bsp_config.h | 0 .../RTOSDemo/uIP_Task.c | 0 .../RTOSDemo/webserver/EMAC.c | 0 .../RTOSDemo/webserver/httpd-cgi.c | 0 .../RTOSDemo/webserver/httpd-fs/404.html | 0 .../RTOSDemo/webserver/httpd-fs/index.html | 0 .../RTOSDemo/webserver/httpd-fs/index.shtml | 0 .../RTOSDemo/webserver/httpd-fs/io.shtml | 0 .../RTOSDemo/webserver/httpd-fs/logo.jpg | Bin .../RTOSDemo/webserver/httpd-fs/runtime.shtml | 0 .../RTOSDemo/webserver/httpd-fs/stats.shtml | 0 .../RTOSDemo/webserver/httpd-fs/tcp.shtml | 0 .../RTOSDemo/webserver/httpd-fsdata.c | 0 .../RTOSDemo/webserver/makefsdata | 0 .../RTOSDemo/webserver/phy.c | 0 .../RTOSDemo/webserver/phy.h | 0 .../RTOSDemo/webserver/r_ether.h | 0 .../RTOSDemo/webserver/uip-conf.h | 0 .../RTOSDemo/webserver/webserver.h | 0 .../Demo}/SuperH_SH7216_Renesas/RTOSDemo.hws | 0 .../Demo}/SuperH_SH7216_Renesas/RTOSDemo.tws | 0 .../RTOSDemo/FreeRTOSConfig.h | 0 .../RTOSDemo/ParTest/ParTest.c | 0 .../SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.c | 0 .../RTOSDemo/RTOSDemo.hwp | 0 .../RTOSDemo/RTOSDemo.nav | Bin .../RTOSDemo/RTOSDemo.pgs | 0 .../RTOSDemo/RTOSDemo.tps | 0 .../RTOSDemo/RenesasCode/compiler.h | 0 .../RTOSDemo/RenesasCode/hwEthernet.h | 0 .../RTOSDemo/RenesasCode/hwEthernetPhy.h | 0 .../RenesasCode/hwEthernetPhyRTL8201.c | 0 .../RTOSDemo/RenesasCode/rsk7216def.h | 0 .../RTOSDemo/RenesasCode/trace.h | 0 .../RTOSDemo/RenesasCode/typedefine.h | 0 .../RTOSDemo/RenesasCode/types.h | 0 .../SessionSH7216_E10A-USB_SYSTEM__SH.hsf | 0 .../SessionSH7216_E10A-USB_SYSTEM__SH.ini | 0 ...216_E10A-USB_SYSTEM__SH_Heush2acustom1.ini | 0 .../SuperH_SH7216_Renesas/RTOSDemo/dbsct.c | 0 .../SuperH_SH7216_Renesas/RTOSDemo/flop.c | 0 .../SuperH_SH7216_Renesas/RTOSDemo/intprg.c | 0 .../SuperH_SH7216_Renesas/RTOSDemo/iodefine.h | 0 .../SuperH_SH7216_Renesas/RTOSDemo/main.c | 0 .../RTOSDemo/printf-stdarg.c | 0 .../RTOSDemo/regtest.src | 0 .../SuperH_SH7216_Renesas/RTOSDemo/resetprg.c | 0 .../SuperH_SH7216_Renesas/RTOSDemo/stacksct.h | 0 .../RTOSDemo/typedefine.h | 0 .../SuperH_SH7216_Renesas/RTOSDemo/uIP_Task.c | 0 .../SuperH_SH7216_Renesas/RTOSDemo/vect.h | 0 .../SuperH_SH7216_Renesas/RTOSDemo/vecttbl.c | 0 .../RTOSDemo/webserver/EMAC.c | 0 .../RTOSDemo/webserver/EMAC_ISR.src | 0 .../RTOSDemo/webserver/httpd-cgi.c | 0 .../RTOSDemo/webserver/httpd-fs/404.html | 0 .../RTOSDemo/webserver/httpd-fs/index.html | 0 .../RTOSDemo/webserver/httpd-fs/index.shtml | 0 .../RTOSDemo/webserver/httpd-fs/io.shtml | 0 .../RTOSDemo/webserver/httpd-fs/logo.jpg | Bin .../RTOSDemo/webserver/httpd-fs/runtime.shtml | 0 .../RTOSDemo/webserver/httpd-fs/stats.shtml | 0 .../RTOSDemo/webserver/httpd-fs/tcp.shtml | 0 .../RTOSDemo/webserver/httpd-fsdata.c | 0 .../RTOSDemo/webserver/makefsdata | 0 .../RTOSDemo/webserver/uip-conf.h | 0 .../RTOSDemo/webserver/webserver.h | 0 .../TriCore_TC1782_TriBoard_GCC/.cproject | 0 .../TriCore_TC1782_TriBoard_GCC/.project | 0 .../.ude/.target/TriBoard_TC1782.cfg | 0 .../.ude/UDEDefEclipseWorkspace.wsx | 0 .../CreateProjectDirectoryStructure.bat | 0 .../RTOSDemo/FreeRTOSConfig.h | 0 .../RTOSDemo/InterruptNestTest.c | 0 .../RTOSDemo/InterruptNestTest.h | 0 .../RTOSDemo/ParTest.c | 0 .../RTOSDemo/ThirdPartyCode/cpufreq.c | 0 .../RTOSDemo/main.c | 0 .../RTOSDemo/serial.c | 0 .../TriCore_TC1782_TriBoard_GCC/ld/iRAM.ld | 0 .../TriCore_TC1782_TriBoard_GCC/ld/iROM.ld | 0 .../models/.parts/ldf_configuration.lm | 0 .../models/TriBoard-TC1782.mdm | 0 .../models/iRAM.lm | 0 .../models/iROM.lm | 0 .../Demo}/Unsupported_Demos/ReadMe.txt | 0 .../Demo}/WIN32-MSVC-lwIP/FreeRTOSConfig.h | 0 FreeRTOS/Demo/WIN32-MSVC-lwIP/WIN32.sln | 20 + .../Demo}/WIN32-MSVC-lwIP/WIN32.suo | Bin .../Demo}/WIN32-MSVC-lwIP/WIN32.vcxproj | 0 .../WIN32-MSVC-lwIP/WIN32.vcxproj.filters | 0 .../BasicSocketCommandServer.c | 0 .../httpserver_raw_from_lwIP_download/fs.c | 0 .../httpserver_raw_from_lwIP_download/fs.h | 0 .../fsdata.c | 0 .../fsdata.h | 0 .../httpserver_raw_from_lwIP_download/httpd.c | 0 .../httpserver_raw_from_lwIP_download/httpd.h | 0 .../httpd_structs.h | 0 .../makefsdata/MakeFSData_proj.sln | 0 .../makefsdata/MakeFSData_proj.suo | Bin .../makefsdata/MakeFSData_proj.vcxproj | 0 .../MakeFSData_proj.vcxproj.filters | 0 .../makefsdata/MakeFSData_proj.vcxproj.user | 3 + .../makefsdata/fs/404.html | 0 .../makefsdata/fs/index.shtml | 0 .../makefsdata/fs/logo.jpg | Bin .../makefsdata/fs/runtime.shtml | 0 .../makefsdata/fsdata.c | 0 .../makefsdata/makefsdata | 0 .../makefsdata/makefsdata.c | 0 .../makefsdata/makefsdata.exe | Bin .../makefsdata/stdafx.cpp | 0 .../makefsdata/stdafx.h | 0 .../makefsdata/targetver.h | 0 .../WIN32-MSVC-lwIP/lwIP_Apps/lwIP_Apps.c | 0 .../WIN32-MSVC-lwIP/lwIP_Apps/lwIP_Apps.h | 0 .../WIN32-MSVC-lwIP/lwIP_Apps/lwipcfg_msvc.h | 0 .../WIN32-MSVC-lwIP/lwIP_Apps/lwipopts.h | 0 .../Demo}/WIN32-MSVC-lwIP/main.c | 0 .../DemosModifiedForLowTickRate/recmutex.c | 0 .../Demo}/WIN32-MSVC/FreeRTOSConfig.h | 0 FreeRTOS/Demo/WIN32-MSVC/WIN32.sln | 20 + {Demo => FreeRTOS/Demo}/WIN32-MSVC/WIN32.suo | Bin .../Demo}/WIN32-MSVC/WIN32.vcxproj | 0 .../Demo}/WIN32-MSVC/WIN32.vcxproj.filters | 0 {Demo => FreeRTOS/Demo}/WIN32-MSVC/main.c | 0 {Demo => FreeRTOS/Demo}/WIN32-MingW/.cproject | 0 {Demo => FreeRTOS/Demo}/WIN32-MingW/.project | 0 .../org.eclipse.cdt.managedbuilder.core.prefs | 0 .../CreateProjectDirectoryStructure.bat | 0 .../DemosModifiedForLowTickRate/recmutex.c | 0 .../Demo}/WIN32-MingW/FreeRTOSConfig.h | 0 {Demo => FreeRTOS/Demo}/WIN32-MingW/main.c | 0 .../WizNET_DEMO_GCC_ARM7/FreeRTOSConfig.h | 0 .../Demo}/WizNET_DEMO_GCC_ARM7/HTTP_Serv.c | 0 .../Demo}/WizNET_DEMO_GCC_ARM7/HTTP_Serv.h | 0 .../Demo}/WizNET_DEMO_GCC_ARM7/Makefile | 0 .../Demo}/WizNET_DEMO_GCC_ARM7/TCP.c | 0 .../Demo}/WizNET_DEMO_GCC_ARM7/TCP.h | 0 .../Demo}/WizNET_DEMO_GCC_ARM7/TCPISR.c | 0 .../Demo}/WizNET_DEMO_GCC_ARM7/boot.s | 0 .../Demo}/WizNET_DEMO_GCC_ARM7/html_pages.h | 0 .../Demo}/WizNET_DEMO_GCC_ARM7/i2c.c | 0 .../Demo}/WizNET_DEMO_GCC_ARM7/i2c.h | 0 .../Demo}/WizNET_DEMO_GCC_ARM7/i2cISR.c | 0 .../Demo}/WizNET_DEMO_GCC_ARM7/lpc2106-rom.ld | 0 .../Demo}/WizNET_DEMO_GCC_ARM7/lpc210x.h | 0 .../Demo}/WizNET_DEMO_GCC_ARM7/main.c | 0 .../Demo}/WizNET_DEMO_TERN_186/186.cfg | 0 .../Demo}/WizNET_DEMO_TERN_186/AE.LIB | Bin .../WizNET_DEMO_TERN_186/FreeRTOSConfig.h | 0 .../Demo}/WizNET_DEMO_TERN_186/HTTPTask.c | 0 .../Demo}/WizNET_DEMO_TERN_186/HTTPTask.h | 0 .../Demo}/WizNET_DEMO_TERN_186/RTOSDemo.DSW | Bin .../Demo}/WizNET_DEMO_TERN_186/RTOSDemo.ide | Bin .../Demo}/WizNET_DEMO_TERN_186/RTOSDemo.mbt | Bin .../Demo}/WizNET_DEMO_TERN_186/RTOSDemo.mrt | Bin .../Demo}/WizNET_DEMO_TERN_186/RTOSDemo.rom | Bin .../WizNET_DEMO_TERN_186/include/SOCKET.H | 0 .../WizNET_DEMO_TERN_186/include/TYPES.H | 0 .../Demo}/WizNET_DEMO_TERN_186/include/ae.H | 0 .../WizNET_DEMO_TERN_186/include/i2chip_hw.h | 0 .../include/utils/system_common.h | 0 .../Demo}/WizNET_DEMO_TERN_186/main.c | 0 .../WizNET_DEMO_TERN_186/serial/serial.c | 0 .../tern_code/i2chip_hw.c | 0 .../WizNET_DEMO_TERN_186/tern_code/socket.c | 0 .../Demo}/dsPIC_MPLAB/FreeRTOSConfig.h | 0 .../Demo}/dsPIC_MPLAB/ParTest/ParTest.c | 0 .../Demo}/dsPIC_MPLAB/RTOSDemo.mcs | 0 .../Demo}/dsPIC_MPLAB/RTOSDemo.mcw | Bin .../Demo}/dsPIC_MPLAB/RTOSDemo_dsPIC.mcp | 0 .../Demo}/dsPIC_MPLAB/RTOSDemo_dsPIC.mcs | 0 {Demo => FreeRTOS/Demo}/dsPIC_MPLAB/lcd.c | 0 {Demo => FreeRTOS/Demo}/dsPIC_MPLAB/lcd.h | 0 {Demo => FreeRTOS/Demo}/dsPIC_MPLAB/main.c | 0 .../Demo}/dsPIC_MPLAB/p33FJ256GP710.gld | 0 .../Demo}/dsPIC_MPLAB/serial/serial.c | 0 .../Demo}/dsPIC_MPLAB/timertest.c | 0 .../Demo}/dsPIC_MPLAB/timertest.h | 0 .../lwIP_AVR32_UC3/AT32UC3A/GCC/Makefile | 0 .../lwIP_AVR32_UC3/AT32UC3A/GCC/config.mk | 0 .../Demo}/lwIP_AVR32_UC3/AT32UC3A/GCC/gdb.ini | 0 .../AT32UC3A/GCC/gdb_cmdfile.txt | 0 .../AT32UC3A/IAR/Debug/Obj/lwipdemo.pbd | 0 .../lwIP_AVR32_UC3/AT32UC3A/IAR/lwipdemo.ewd | 0 .../lwIP_AVR32_UC3/AT32UC3A/IAR/lwipdemo.ewp | 0 .../lwIP_AVR32_UC3/AT32UC3A/IAR/lwipdemo.eww | 0 .../AT32UC3A/IAR/settings/lwipdemo.cspy.bat | 0 .../AT32UC3A/IAR/settings/lwipdemo.dbgdt | 0 .../AT32UC3A/IAR/settings/lwipdemo.dni | 0 .../AT32UC3A/IAR/settings/lwipdemo.wsdt | 0 .../lwIP_AVR32_UC3/BOARDS/EVK1100/evk1100.h | 0 .../Demo}/lwIP_AVR32_UC3/BOARDS/EVK1100/led.c | 0 .../Demo}/lwIP_AVR32_UC3/BOARDS/EVK1100/led.h | 0 .../lwIP_AVR32_UC3/BOARDS/EVK1101/evk1101.h | 0 .../Demo}/lwIP_AVR32_UC3/BOARDS/EVK1101/led.c | 0 .../Demo}/lwIP_AVR32_UC3/BOARDS/EVK1101/led.h | 0 .../Demo}/lwIP_AVR32_UC3/BOARDS/board.h | 0 .../lwIP_AVR32_UC3/DRIVERS/FLASHC/flashc.c | 0 .../lwIP_AVR32_UC3/DRIVERS/FLASHC/flashc.h | 0 .../Demo}/lwIP_AVR32_UC3/DRIVERS/GPIO/gpio.c | 0 .../Demo}/lwIP_AVR32_UC3/DRIVERS/GPIO/gpio.h | 0 .../Demo}/lwIP_AVR32_UC3/DRIVERS/INTC/intc.c | 0 .../Demo}/lwIP_AVR32_UC3/DRIVERS/INTC/intc.h | 0 .../Demo}/lwIP_AVR32_UC3/DRIVERS/MACB/macb.c | 0 .../Demo}/lwIP_AVR32_UC3/DRIVERS/MACB/macb.h | 0 .../Demo}/lwIP_AVR32_UC3/DRIVERS/PM/pm.c | 0 .../Demo}/lwIP_AVR32_UC3/DRIVERS/PM/pm.h | 0 .../Demo}/lwIP_AVR32_UC3/DRIVERS/TC/tc.c | 0 .../Demo}/lwIP_AVR32_UC3/DRIVERS/TC/tc.h | 0 .../lwIP_AVR32_UC3/DRIVERS/USART/usart.c | 0 .../lwIP_AVR32_UC3/DRIVERS/USART/usart.h | 0 .../Demo}/lwIP_AVR32_UC3/FreeRTOSConfig.h | 0 .../NETWORK/BasicSMTP/BasicSMTP.c | 0 .../NETWORK/BasicSMTP/BasicSMTP.h | 0 .../NETWORK/BasicTFTP/BasicTFTP.c | 0 .../NETWORK/BasicTFTP/BasicTFTP.h | 0 .../NETWORK/BasicWEB/BasicWEB.c | 0 .../NETWORK/BasicWEB/BasicWEB.h | 0 .../Demo}/lwIP_AVR32_UC3/NETWORK/ethernet.c | 0 .../Demo}/lwIP_AVR32_UC3/NETWORK/ethernet.h | 0 .../NETWORK/lwip-port/AT32UC3A/IAR/errno.h | 0 .../NETWORK/lwip-port/AT32UC3A/arch/cc.h | 0 .../NETWORK/lwip-port/AT32UC3A/arch/cpu.h | 0 .../NETWORK/lwip-port/AT32UC3A/arch/init.h | 0 .../NETWORK/lwip-port/AT32UC3A/arch/lib.h | 0 .../NETWORK/lwip-port/AT32UC3A/arch/perf.h | 0 .../lwip-port/AT32UC3A/arch/sys_arch.h | 0 .../NETWORK/lwip-port/AT32UC3A/ethernetif.c | 0 .../NETWORK/lwip-port/AT32UC3A/lwip/opt.h | 0 .../NETWORK/lwip-port/AT32UC3A/lwipopts.h | 0 .../NETWORK/lwip-port/AT32UC3A/sys_arch.c | 0 .../Demo}/lwIP_AVR32_UC3/PARTEST/ParTest.c | 0 .../Demo}/lwIP_AVR32_UC3/SERIAL/serial.c | 0 .../CLASS/DFU/EXAMPLES/ISP/BOOT/trampoline.S | 0 .../DFU/EXAMPLES/ISP/BOOT/trampoline.s82 | 0 .../USB/CLASS/DFU/EXAMPLES/ISP/conf_isp.h | 0 .../AT32UC3A/0128/GCC/link_uc3a0128.lds | 0 .../AT32UC3A/0128/IAR/lnkuc3a0128.xcl | 0 .../AT32UC3A/0256/GCC/link_uc3a0256.lds | 0 .../AT32UC3A/0256/IAR/lnkuc3a0256.xcl | 0 .../AT32UC3A/0512/GCC/link_uc3a0512.lds | 0 .../AT32UC3A/0512/IAR/lnkuc3a0512.xcl | 0 .../AT32UC3A/1128/GCC/link_uc3a1128.lds | 0 .../AT32UC3A/1128/IAR/lnkuc3a1128.xcl | 0 .../AT32UC3A/1256/GCC/link_uc3a1256.lds | 0 .../AT32UC3A/1256/IAR/lnkuc3a1256.xcl | 0 .../AT32UC3A/1512/GCC/link_uc3a1512.lds | 0 .../AT32UC3A/1512/IAR/lnkuc3a1512.xcl | 0 .../AT32UC3B/0128/GCC/link_uc3b0128.lds | 0 .../AT32UC3B/0128/IAR/lnkuc3b0128.xcl | 0 .../AT32UC3B/0256/GCC/link_uc3b0256.lds | 0 .../AT32UC3B/0256/IAR/lnkuc3b0256.xcl | 0 .../AT32UC3B/064/GCC/link_uc3b064.lds | 0 .../AT32UC3B/064/IAR/lnkuc3b064.xcl | 0 .../AT32UC3B/1128/GCC/link_uc3b1128.lds | 0 .../AT32UC3B/1128/IAR/lnkuc3b1128.xcl | 0 .../AT32UC3B/1256/GCC/link_uc3b1256.lds | 0 .../AT32UC3B/1256/IAR/lnkuc3b1256.xcl | 0 .../AT32UC3B/164/GCC/link_uc3b164.lds | 0 .../AT32UC3B/164/IAR/lnkuc3b164.xcl | 0 .../UTILS/PREPROCESSOR/mrepeat.h | 0 .../UTILS/PREPROCESSOR/preprocessor.h | 0 .../UTILS/PREPROCESSOR/stringz.h | 0 .../UTILS/PREPROCESSOR/tpaste.h | 0 .../Demo}/lwIP_AVR32_UC3/UTILS/compiler.h | 0 .../Demo}/lwIP_AVR32_UC3/conf_eth.h | 0 .../Demo}/lwIP_AVR32_UC3/lwipopts.h | 0 {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/main.c | 0 .../Demo}/lwIP_AVR32_UC3/printf-stdarg.c | 0 .../Demo}/lwIP_AVR32_UC3/readme.html | 0 .../AT91SAM7S256_MemoryMap.xml | 0 .../lwIP_Demo_Rowley_ARM7/AT91SAM7_Startup.s | 0 .../lwIP_Demo_Rowley_ARM7/AT91SAM7_Target.js | 0 .../Demo}/lwIP_Demo_Rowley_ARM7/BasicWEB.c | 0 .../Demo}/lwIP_Demo_Rowley_ARM7/BasicWEB.h | 0 .../Demo}/lwIP_Demo_Rowley_ARM7/Board.h | 0 .../lwIP_Demo_Rowley_ARM7/Cstartup_SAM7.c | 0 .../Demo}/lwIP_Demo_Rowley_ARM7/EMAC/Emac.h | 0 .../lwIP_Demo_Rowley_ARM7/EMAC/SAM7_EMAC.c | 0 .../lwIP_Demo_Rowley_ARM7/EMAC/SAM7_EMAC.h | 0 .../EMAC/SAM7_EMAC_ISR.c | 0 .../Demo}/lwIP_Demo_Rowley_ARM7/EMAC/mii.h | 0 .../lwIP_Demo_Rowley_ARM7/FreeRTOSConfig.h | 0 .../lwIP_Demo_Rowley_ARM7/ParTest/ParTest.c | 0 .../lwIP_Demo_Rowley_ARM7/USB/FreeRTOSCDC.inf | 0 .../Demo}/lwIP_Demo_Rowley_ARM7/USB/USB-CDC.c | 0 .../Demo}/lwIP_Demo_Rowley_ARM7/USB/USB-CDC.h | 0 .../Demo}/lwIP_Demo_Rowley_ARM7/USB/USBIsr.c | 0 .../lwIP_Demo_Rowley_ARM7/USB/descriptors.h | 0 .../Demo}/lwIP_Demo_Rowley_ARM7/USB/usb.h | 0 .../Demo}/lwIP_Demo_Rowley_ARM7/atmel-rom.ld | 0 .../Demo}/lwIP_Demo_Rowley_ARM7/boot.s | 0 .../Demo}/lwIP_Demo_Rowley_ARM7/crt0.s | 0 .../lwIP_Demo_Rowley_ARM7/flash_placement.xml | 0 .../lwip-1.1.0/CHANGELOG | 0 .../lwIP_Demo_Rowley_ARM7/lwip-1.1.0/COPYING | 0 .../lwIP_Demo_Rowley_ARM7/lwip-1.1.0/FILES | 0 .../lwIP_Demo_Rowley_ARM7/lwip-1.1.0/README | 0 .../contrib/port/FreeRTOS/AT91SAM7X/arch/cc.h | 0 .../port/FreeRTOS/AT91SAM7X/arch/cpu.h | 0 .../port/FreeRTOS/AT91SAM7X/arch/init.h | 0 .../port/FreeRTOS/AT91SAM7X/arch/lib.h | 0 .../port/FreeRTOS/AT91SAM7X/arch/perf.h | 0 .../port/FreeRTOS/AT91SAM7X/arch/sys_arch.h | 0 .../port/FreeRTOS/AT91SAM7X/sys_arch.c | 0 .../lwip-1.1.0/doc/contrib.txt | 0 .../lwip-1.1.0/doc/rawapi.txt | 0 .../lwip-1.1.0/doc/savannah.txt | 0 .../lwip-1.1.0/doc/sys_arch.txt | 0 .../lwip-1.1.0/src/FILES | 0 .../lwip-1.1.0/src/api/api_lib.c | 0 .../lwip-1.1.0/src/api/api_msg.c | 0 .../lwip-1.1.0/src/api/err.c | 0 .../lwip-1.1.0/src/api/sockets.c | 0 .../lwip-1.1.0/src/api/tcpip.c | 0 .../lwip-1.1.0/src/core/dhcp.c | 0 .../lwip-1.1.0/src/core/inet.c | 0 .../lwip-1.1.0/src/core/inet6.c | 0 .../lwip-1.1.0/src/core/ipv4/icmp.c | 0 .../lwip-1.1.0/src/core/ipv4/ip.c | 0 .../lwip-1.1.0/src/core/ipv4/ip_addr.c | 0 .../lwip-1.1.0/src/core/ipv4/ip_frag.c | 0 .../lwip-1.1.0/src/core/ipv6/README | 0 .../lwip-1.1.0/src/core/ipv6/icmp6.c | 0 .../lwip-1.1.0/src/core/ipv6/ip6.c | 0 .../lwip-1.1.0/src/core/ipv6/ip6_addr.c | 0 .../lwip-1.1.0/src/core/mem.c | 0 .../lwip-1.1.0/src/core/memp.c | 0 .../lwip-1.1.0/src/core/netif.c | 0 .../lwip-1.1.0/src/core/pbuf.c | 0 .../lwip-1.1.0/src/core/raw.c | 0 .../lwip-1.1.0/src/core/stats.c | 0 .../lwip-1.1.0/src/core/sys.c | 0 .../lwip-1.1.0/src/core/tcp.c | 0 .../lwip-1.1.0/src/core/tcp_in.c | 0 .../lwip-1.1.0/src/core/tcp_out.c | 0 .../lwip-1.1.0/src/core/udp.c | 0 .../lwip-1.1.0/src/include/ipv4/lwip/icmp.h | 0 .../lwip-1.1.0/src/include/ipv4/lwip/inet.h | 0 .../lwip-1.1.0/src/include/ipv4/lwip/ip.h | 0 .../src/include/ipv4/lwip/ip_addr.h | 0 .../src/include/ipv4/lwip/ip_frag.h | 0 .../lwip-1.1.0/src/include/ipv6/lwip/icmp.h | 0 .../lwip-1.1.0/src/include/ipv6/lwip/inet.h | 0 .../lwip-1.1.0/src/include/ipv6/lwip/ip.h | 0 .../src/include/ipv6/lwip/ip_addr.h | 0 .../lwip-1.1.0/src/include/lwip/api.h | 0 .../lwip-1.1.0/src/include/lwip/api_msg.h | 0 .../lwip-1.1.0/src/include/lwip/arch.h | 0 .../lwip-1.1.0/src/include/lwip/debug.h | 0 .../lwip-1.1.0/src/include/lwip/def.h | 0 .../lwip-1.1.0/src/include/lwip/dhcp.h | 0 .../lwip-1.1.0/src/include/lwip/err.h | 0 .../lwip-1.1.0/src/include/lwip/mem.h | 0 .../lwip-1.1.0/src/include/lwip/memp.h | 0 .../lwip-1.1.0/src/include/lwip/netif.h | 0 .../lwip-1.1.0/src/include/lwip/opt.h | 0 .../lwip-1.1.0/src/include/lwip/pbuf.h | 0 .../lwip-1.1.0/src/include/lwip/raw.h | 0 .../lwip-1.1.0/src/include/lwip/sio.h | 0 .../lwip-1.1.0/src/include/lwip/snmp.h | 0 .../lwip-1.1.0/src/include/lwip/sockets.h | 0 .../lwip-1.1.0/src/include/lwip/stats.h | 0 .../lwip-1.1.0/src/include/lwip/sys.h | 0 .../lwip-1.1.0/src/include/lwip/tcp.h | 0 .../lwip-1.1.0/src/include/lwip/tcpip.h | 0 .../lwip-1.1.0/src/include/lwip/udp.h | 0 .../lwip-1.1.0/src/include/netif/etharp.h | 0 .../lwip-1.1.0/src/include/netif/loopif.h | 0 .../lwip-1.1.0/src/include/netif/slipif.h | 0 .../lwip-1.1.0/src/netif/FILES | 0 .../lwip-1.1.0/src/netif/etharp.c | 0 .../lwip-1.1.0/src/netif/ethernetif.c | 0 .../lwip-1.1.0/src/netif/loopif.c | 0 .../lwip-1.1.0/src/netif/ppp/auth.c | 0 .../lwip-1.1.0/src/netif/ppp/auth.h | 0 .../lwip-1.1.0/src/netif/ppp/chap.c | 0 .../lwip-1.1.0/src/netif/ppp/chap.h | 0 .../lwip-1.1.0/src/netif/ppp/chpms.c | 0 .../lwip-1.1.0/src/netif/ppp/chpms.h | 0 .../lwip-1.1.0/src/netif/ppp/fsm.c | 0 .../lwip-1.1.0/src/netif/ppp/fsm.h | 0 .../lwip-1.1.0/src/netif/ppp/ipcp.c | 0 .../lwip-1.1.0/src/netif/ppp/ipcp.h | 0 .../lwip-1.1.0/src/netif/ppp/lcp.c | 0 .../lwip-1.1.0/src/netif/ppp/lcp.h | 0 .../lwip-1.1.0/src/netif/ppp/magic.c | 0 .../lwip-1.1.0/src/netif/ppp/magic.h | 0 .../lwip-1.1.0/src/netif/ppp/md5.c | 0 .../lwip-1.1.0/src/netif/ppp/md5.h | 0 .../lwip-1.1.0/src/netif/ppp/pap.c | 0 .../lwip-1.1.0/src/netif/ppp/pap.h | 0 .../lwip-1.1.0/src/netif/ppp/ppp.c | 0 .../lwip-1.1.0/src/netif/ppp/ppp.h | 0 .../lwip-1.1.0/src/netif/ppp/pppdebug.h | 0 .../lwip-1.1.0/src/netif/ppp/randm.c | 0 .../lwip-1.1.0/src/netif/ppp/randm.h | 0 .../lwip-1.1.0/src/netif/ppp/vj.c | 0 .../lwip-1.1.0/src/netif/ppp/vj.h | 0 .../lwip-1.1.0/src/netif/ppp/vjbsdhdr.h | 0 .../lwip-1.1.0/src/netif/slipif.c | 0 .../Demo}/lwIP_Demo_Rowley_ARM7/lwipopts.h | 0 .../Demo}/lwIP_Demo_Rowley_ARM7/main.c | 0 .../Demo}/lwIP_Demo_Rowley_ARM7/makefile | 0 .../Demo}/lwIP_Demo_Rowley_ARM7/rtosdemo.hzp | 0 .../Demo}/lwIP_Demo_Rowley_ARM7/rtosdemo.hzs | 0 .../Demo}/lwIP_MCF5235_GCC/Changelog.txt | 0 .../Demo}/lwIP_MCF5235_GCC/FreeRTOSConfig.h | 0 .../lwIP_MCF5235_GCC/LICENSE_FREESCALE.TXT | 0 .../Demo}/lwIP_MCF5235_GCC/Makefile | 0 .../Demo}/lwIP_MCF5235_GCC/README.txt | 0 .../Demo}/lwIP_MCF5235_GCC/demo.c | 0 .../lwIP_MCF5235_GCC/include/arch/mcf523x.h | 0 .../include/arch/mcf523x/mcf523x_can.h | 0 .../include/arch/mcf523x/mcf523x_ccm.h | 0 .../include/arch/mcf523x/mcf523x_cs.h | 0 .../include/arch/mcf523x/mcf523x_eport.h | 0 .../include/arch/mcf523x/mcf523x_etpu.h | 0 .../include/arch/mcf523x/mcf523x_fec.h | 0 .../include/arch/mcf523x/mcf523x_fmpll.h | 0 .../include/arch/mcf523x/mcf523x_gpio.h | 0 .../include/arch/mcf523x/mcf523x_i2c.h | 0 .../include/arch/mcf523x/mcf523x_intc0.h | 0 .../include/arch/mcf523x/mcf523x_intc1.h | 0 .../include/arch/mcf523x/mcf523x_mdha.h | 0 .../include/arch/mcf523x/mcf523x_pit.h | 0 .../include/arch/mcf523x/mcf523x_qspi.h | 0 .../include/arch/mcf523x/mcf523x_rcm.h | 0 .../include/arch/mcf523x/mcf523x_rng.h | 0 .../include/arch/mcf523x/mcf523x_scm.h | 0 .../include/arch/mcf523x/mcf523x_sdramc.h | 0 .../include/arch/mcf523x/mcf523x_skha.h | 0 .../include/arch/mcf523x/mcf523x_sram.h | 0 .../include/arch/mcf523x/mcf523x_timer.h | 0 .../include/arch/mcf523x/mcf523x_uart.h | 0 .../include/arch/mcf523x/mcf523x_wtm.h | 0 .../lwIP_MCF5235_GCC/include/arch/mcf5xxx.h | 0 .../Demo}/lwIP_MCF5235_GCC/lwip/CHANGELOG | 0 .../Demo}/lwIP_MCF5235_GCC/lwip/COPYING | 0 .../Demo}/lwIP_MCF5235_GCC/lwip/FILES | 0 .../Demo}/lwIP_MCF5235_GCC/lwip/README | 0 .../contrib/port/FreeRTOS/MCF5235/arch/cc.h | 0 .../contrib/port/FreeRTOS/MCF5235/arch/cpu.h | 0 .../contrib/port/FreeRTOS/MCF5235/arch/perf.h | 0 .../port/FreeRTOS/MCF5235/arch/sys_arch.h | 0 .../contrib/port/FreeRTOS/MCF5235/netif/fec.c | 0 .../contrib/port/FreeRTOS/MCF5235/netif/fec.h | 0 .../port/FreeRTOS/MCF5235/netif/nbuf.c | 0 .../port/FreeRTOS/MCF5235/netif/nbuf.h | 0 .../contrib/port/FreeRTOS/MCF5235/sys_arch.c | 0 .../lwIP_MCF5235_GCC/lwip/doc/contrib.txt | 0 .../lwIP_MCF5235_GCC/lwip/doc/rawapi.txt | 0 .../lwIP_MCF5235_GCC/lwip/doc/savannah.txt | 0 .../lwIP_MCF5235_GCC/lwip/doc/sys_arch.txt | 0 .../Demo}/lwIP_MCF5235_GCC/lwip/src/FILES | 0 .../lwIP_MCF5235_GCC/lwip/src/api/api_lib.c | 0 .../lwIP_MCF5235_GCC/lwip/src/api/api_msg.c | 0 .../Demo}/lwIP_MCF5235_GCC/lwip/src/api/err.c | 0 .../lwIP_MCF5235_GCC/lwip/src/api/sockets.c | 0 .../lwIP_MCF5235_GCC/lwip/src/api/tcpip.c | 0 .../lwIP_MCF5235_GCC/lwip/src/core/dhcp.c | 0 .../lwIP_MCF5235_GCC/lwip/src/core/inet.c | 0 .../lwIP_MCF5235_GCC/lwip/src/core/inet6.c | 0 .../lwip/src/core/ipv4/icmp.c | 0 .../lwIP_MCF5235_GCC/lwip/src/core/ipv4/ip.c | 0 .../lwip/src/core/ipv4/ip_addr.c | 0 .../lwip/src/core/ipv4/ip_frag.c | 0 .../lwip/src/core/ipv6/README | 0 .../lwip/src/core/ipv6/icmp6.c | 0 .../lwIP_MCF5235_GCC/lwip/src/core/ipv6/ip6.c | 0 .../lwip/src/core/ipv6/ip6_addr.c | 0 .../lwIP_MCF5235_GCC/lwip/src/core/mem.c | 0 .../lwIP_MCF5235_GCC/lwip/src/core/memp.c | 0 .../lwIP_MCF5235_GCC/lwip/src/core/netif.c | 0 .../lwIP_MCF5235_GCC/lwip/src/core/pbuf.c | 0 .../lwIP_MCF5235_GCC/lwip/src/core/raw.c | 0 .../lwIP_MCF5235_GCC/lwip/src/core/stats.c | 0 .../lwIP_MCF5235_GCC/lwip/src/core/sys.c | 0 .../lwIP_MCF5235_GCC/lwip/src/core/tcp.c | 0 .../lwIP_MCF5235_GCC/lwip/src/core/tcp_in.c | 0 .../lwIP_MCF5235_GCC/lwip/src/core/tcp_out.c | 0 .../lwIP_MCF5235_GCC/lwip/src/core/udp.c | 0 .../lwip/src/include/ipv4/lwip/icmp.h | 0 .../lwip/src/include/ipv4/lwip/inet.h | 0 .../lwip/src/include/ipv4/lwip/ip.h | 0 .../lwip/src/include/ipv4/lwip/ip_addr.h | 0 .../lwip/src/include/ipv4/lwip/ip_frag.h | 0 .../lwip/src/include/ipv6/lwip/icmp.h | 0 .../lwip/src/include/ipv6/lwip/inet.h | 0 .../lwip/src/include/ipv6/lwip/ip.h | 0 .../lwip/src/include/ipv6/lwip/ip_addr.h | 0 .../lwip/src/include/lwip/api.h | 0 .../lwip/src/include/lwip/api_msg.h | 0 .../lwip/src/include/lwip/arch.h | 0 .../lwip/src/include/lwip/debug.h | 0 .../lwip/src/include/lwip/def.h | 0 .../lwip/src/include/lwip/dhcp.h | 0 .../lwip/src/include/lwip/err.h | 0 .../lwip/src/include/lwip/mem.h | 0 .../lwip/src/include/lwip/memp.h | 0 .../lwip/src/include/lwip/netif.h | 0 .../lwip/src/include/lwip/opt.h | 0 .../lwip/src/include/lwip/pbuf.h | 0 .../lwip/src/include/lwip/raw.h | 0 .../lwip/src/include/lwip/sio.h | 0 .../lwip/src/include/lwip/snmp.h | 0 .../lwip/src/include/lwip/sockets.h | 0 .../lwip/src/include/lwip/stats.h | 0 .../lwip/src/include/lwip/sys.h | 0 .../lwip/src/include/lwip/tcp.h | 0 .../lwip/src/include/lwip/tcpip.h | 0 .../lwip/src/include/lwip/udp.h | 0 .../lwip/src/include/netif/etharp.h | 0 .../lwip/src/include/netif/loopif.h | 0 .../lwip/src/include/netif/slipif.h | 0 .../lwIP_MCF5235_GCC/lwip/src/netif/FILES | 0 .../lwIP_MCF5235_GCC/lwip/src/netif/etharp.c | 0 .../lwip/src/netif/ethernetif.c | 0 .../lwIP_MCF5235_GCC/lwip/src/netif/loopif.c | 0 .../lwip/src/netif/ppp/auth.c | 0 .../lwip/src/netif/ppp/auth.h | 0 .../lwip/src/netif/ppp/chap.c | 0 .../lwip/src/netif/ppp/chap.h | 0 .../lwip/src/netif/ppp/chpms.c | 0 .../lwip/src/netif/ppp/chpms.h | 0 .../lwIP_MCF5235_GCC/lwip/src/netif/ppp/fsm.c | 0 .../lwIP_MCF5235_GCC/lwip/src/netif/ppp/fsm.h | 0 .../lwip/src/netif/ppp/ipcp.c | 0 .../lwip/src/netif/ppp/ipcp.h | 0 .../lwIP_MCF5235_GCC/lwip/src/netif/ppp/lcp.c | 0 .../lwIP_MCF5235_GCC/lwip/src/netif/ppp/lcp.h | 0 .../lwip/src/netif/ppp/magic.c | 0 .../lwip/src/netif/ppp/magic.h | 0 .../lwIP_MCF5235_GCC/lwip/src/netif/ppp/md5.c | 0 .../lwIP_MCF5235_GCC/lwip/src/netif/ppp/md5.h | 0 .../lwIP_MCF5235_GCC/lwip/src/netif/ppp/pap.c | 0 .../lwIP_MCF5235_GCC/lwip/src/netif/ppp/pap.h | 0 .../lwIP_MCF5235_GCC/lwip/src/netif/ppp/ppp.c | 0 .../lwIP_MCF5235_GCC/lwip/src/netif/ppp/ppp.h | 0 .../lwip/src/netif/ppp/pppdebug.h | 0 .../lwip/src/netif/ppp/randm.c | 0 .../lwip/src/netif/ppp/randm.h | 0 .../lwIP_MCF5235_GCC/lwip/src/netif/ppp/vj.c | 0 .../lwIP_MCF5235_GCC/lwip/src/netif/ppp/vj.h | 0 .../lwip/src/netif/ppp/vjbsdhdr.h | 0 .../lwIP_MCF5235_GCC/lwip/src/netif/slipif.c | 0 .../Demo}/lwIP_MCF5235_GCC/lwipopts.h | 0 .../Demo}/lwIP_MCF5235_GCC/m5235-ram.ld | 0 .../Demo}/lwIP_MCF5235_GCC/m5235-rom.ld | 0 .../Demo}/lwIP_MCF5235_GCC/m5235.gdb | 0 .../Demo}/lwIP_MCF5235_GCC/system/crt0.S | 0 .../Demo}/lwIP_MCF5235_GCC/system/init.c | 0 .../Demo}/lwIP_MCF5235_GCC/system/mcf5xxx.S | 0 .../Demo}/lwIP_MCF5235_GCC/system/newlib.c | 0 .../Demo}/lwIP_MCF5235_GCC/system/serial.c | 0 .../Demo}/lwIP_MCF5235_GCC/system/vector.S | 0 .../Demo}/lwIP_MCF5235_GCC/tools/indent.sh | 0 .../lwIP_MCF5235_GCC/tools/mcf5235-http.png | Bin .../tools/mcf5235-icmp-frame-len1024.png | Bin .../tools/mcf5235-icmp-frame-len64.png | Bin .../Demo}/lwIP_MCF5235_GCC/web.c | 0 .../Demo}/lwIP_MCF5235_GCC/web.h | 0 .../Demo}/msp430_CrossWorks/FreeRTOSConfig.h | 0 .../Demo}/msp430_CrossWorks/ParTest/ParTest.c | 0 .../Demo}/msp430_CrossWorks/RTOSDemo.hzp | 0 .../Demo}/msp430_CrossWorks/RTOSDemo.hzs | 0 .../Demo}/msp430_CrossWorks/main.c | 0 .../Demo}/msp430_CrossWorks/serial/serial.c | 0 .../msp430_CrossWorks/serial/serialASM.asm | 0 .../Demo}/msp430_GCC/FreeRTOSConfig.h | 0 .../Demo}/msp430_GCC/ParTest/ParTest.c | 0 {Demo => FreeRTOS/Demo}/msp430_GCC/gdb.ini | 0 {Demo => FreeRTOS/Demo}/msp430_GCC/main.c | 0 {Demo => FreeRTOS/Demo}/msp430_GCC/makefile | 0 .../Demo}/msp430_GCC/serial/serial.c | 0 .../Demo}/msp430_IAR/FreeRTOSConfig.h | 0 .../Demo}/msp430_IAR/ParTest/ParTest.c | 0 .../Demo}/msp430_IAR/RTOSDemo.ewd | 0 .../Demo}/msp430_IAR/RTOSDemo.ewp | 0 .../Demo}/msp430_IAR/RTOSDemo.eww | 0 {Demo => FreeRTOS/Demo}/msp430_IAR/main.c | 0 .../Demo}/msp430_IAR/serial/serial.c | 0 .../Demo}/msp430_IAR/serial/serialASM.s43 | 0 .../msp430_IAR/settings/RTOSDemo.cspy.bat | 0 .../Demo}/msp430_IAR/settings/RTOSDemo.dbgdt | 0 .../Demo}/msp430_IAR/settings/RTOSDemo.dni | 0 .../Demo}/msp430_IAR/settings/RTOSDemo.wsdt | 0 {Demo => FreeRTOS/Demo}/readme.txt | 0 .../Demo}/uIP_Demo_IAR_ARM7/EMAC/EMAClISR.s79 | 0 .../Demo}/uIP_Demo_IAR_ARM7/EMAC/SAM7_EMAC.c | 0 .../Demo}/uIP_Demo_IAR_ARM7/EMAC/SAM7_EMAC.h | 0 .../Demo}/uIP_Demo_IAR_ARM7/FreeRTOSConfig.h | 0 .../Demo}/uIP_Demo_IAR_ARM7/ParTest/ParTest.c | 0 .../Demo}/uIP_Demo_IAR_ARM7/SrcIAR/Board.h | 0 .../Demo}/uIP_Demo_IAR_ARM7/SrcIAR/Cstartup.s | 0 .../uIP_Demo_IAR_ARM7/SrcIAR/Cstartup_SAM7.c | 0 .../Demo}/uIP_Demo_IAR_ARM7/SrcIAR/Emac.h | 0 .../Demo}/uIP_Demo_IAR_ARM7/SrcIAR/dbgu.c | 0 .../Demo}/uIP_Demo_IAR_ARM7/SrcIAR/dbgu.h | 0 .../Demo}/uIP_Demo_IAR_ARM7/SrcIAR/init.c | 0 .../uIP_Demo_IAR_ARM7/SrcIAR/ioat91sam7x128.h | 0 .../uIP_Demo_IAR_ARM7/SrcIAR/ioat91sam7x256.h | 0 .../Demo}/uIP_Demo_IAR_ARM7/SrcIAR/mii.h | 0 .../Demo}/uIP_Demo_IAR_ARM7/main.c | 0 .../Demo}/uIP_Demo_IAR_ARM7/resource/SAM7.mac | 0 .../uIP_Demo_IAR_ARM7/resource/SAM7_RAM.mac | 0 .../resource/at91SAM7X256_FLASH.icf | 0 .../resource/at91sam7x-ek-flash.mac | 0 .../Demo}/uIP_Demo_IAR_ARM7/rtosdemo.ewd | 0 .../Demo}/uIP_Demo_IAR_ARM7/rtosdemo.ewp | 0 .../Demo}/uIP_Demo_IAR_ARM7/rtosdemo.eww | 0 .../uIP_Demo_IAR_ARM7/settings/Basic.dbgdt | 0 .../uIP_Demo_IAR_ARM7/settings/Basic.dni | 0 .../uIP_Demo_IAR_ARM7/settings/BasicSAM7.wsdt | 0 .../uIP_Demo_IAR_ARM7/settings/rtosdemo.dbgdt | 0 .../uIP_Demo_IAR_ARM7/settings/rtosdemo.dni | 0 .../uIP_Demo_IAR_ARM7/settings/rtosdemo.wsdt | 0 .../Demo}/uIP_Demo_IAR_ARM7/uIP_Task.c | 0 .../Demo}/uIP_Demo_IAR_ARM7/uIP_Task.h | 0 .../Demo}/uIP_Demo_IAR_ARM7/uip/Makefile | 0 .../Demo}/uIP_Demo_IAR_ARM7/uip/cgi.c | 0 .../Demo}/uIP_Demo_IAR_ARM7/uip/cgi.h | 0 .../Demo}/uIP_Demo_IAR_ARM7/uip/crt0.asm | 0 .../Demo}/uIP_Demo_IAR_ARM7/uip/fs.c | 0 .../Demo}/uIP_Demo_IAR_ARM7/uip/fs.h | 0 .../Demo}/uIP_Demo_IAR_ARM7/uip/fs/404.html | 0 .../Demo}/uIP_Demo_IAR_ARM7/uip/fs/cgi/files | 0 .../Demo}/uIP_Demo_IAR_ARM7/uip/fs/cgi/rtos | 0 .../Demo}/uIP_Demo_IAR_ARM7/uip/fs/cgi/stats | 0 .../Demo}/uIP_Demo_IAR_ARM7/uip/fs/cgi/tcp | 0 .../uIP_Demo_IAR_ARM7/uip/fs/control.html | 0 .../uip/fs/files_footer.plain | 0 .../uip/fs/files_header.html | 0 .../uIP_Demo_IAR_ARM7/uip/fs/img/logo.png | Bin .../Demo}/uIP_Demo_IAR_ARM7/uip/fs/index.html | 0 .../uip/fs/stats_footer.plain | 0 .../uip/fs/stats_header.html | 0 .../uIP_Demo_IAR_ARM7/uip/fs/tcp_footer.plain | 0 .../uIP_Demo_IAR_ARM7/uip/fs/tcp_header.html | 0 .../Demo}/uIP_Demo_IAR_ARM7/uip/fsdata.c | 0 .../Demo}/uIP_Demo_IAR_ARM7/uip/fsdata.h | 0 .../Demo}/uIP_Demo_IAR_ARM7/uip/httpd.c | 0 .../Demo}/uIP_Demo_IAR_ARM7/uip/httpd.c_ | 0 .../Demo}/uIP_Demo_IAR_ARM7/uip/httpd.h | 0 .../Demo}/uIP_Demo_IAR_ARM7/uip/main_led | 0 .../Demo}/uIP_Demo_IAR_ARM7/uip/makefsdata | 0 .../Demo}/uIP_Demo_IAR_ARM7/uip/memb.c | 0 .../Demo}/uIP_Demo_IAR_ARM7/uip/memb.h | 0 .../Demo}/uIP_Demo_IAR_ARM7/uip/setarp.bat | 0 .../Demo}/uIP_Demo_IAR_ARM7/uip/slipdev.c | 0 .../Demo}/uIP_Demo_IAR_ARM7/uip/slipdev.h | 0 .../Demo}/uIP_Demo_IAR_ARM7/uip/tapdev.c | 0 .../Demo}/uIP_Demo_IAR_ARM7/uip/tapdev.h | 0 .../uIP_Demo_IAR_ARM7/uip/telnetd-shell.c | 0 .../Demo}/uIP_Demo_IAR_ARM7/uip/telnetd.c | 0 .../Demo}/uIP_Demo_IAR_ARM7/uip/telnetd.h | 0 .../Demo}/uIP_Demo_IAR_ARM7/uip/uip.c | 0 .../Demo}/uIP_Demo_IAR_ARM7/uip/uip.h | 0 .../Demo}/uIP_Demo_IAR_ARM7/uip/uip_arch.c | 0 .../Demo}/uIP_Demo_IAR_ARM7/uip/uip_arch.h | 0 .../Demo}/uIP_Demo_IAR_ARM7/uip/uip_arp.c | 0 .../Demo}/uIP_Demo_IAR_ARM7/uip/uip_arp.h | 0 .../Demo}/uIP_Demo_IAR_ARM7/uip/uipopt.h | 0 .../uIP_Demo_Rowley_ARM7/FreeRTOSConfig.h | 0 .../Philips_LPC210X_Startup.s | 0 .../uIP_Demo_Rowley_ARM7/flash_placement.xml | 0 .../Demo}/uIP_Demo_Rowley_ARM7/lpc210x.h | 0 .../Demo}/uIP_Demo_Rowley_ARM7/main.c | 0 .../Demo}/uIP_Demo_Rowley_ARM7/rtosdemo.hzp | 0 .../Demo}/uIP_Demo_Rowley_ARM7/rtosdemo.hzs | 0 .../Demo}/uIP_Demo_Rowley_ARM7/uip/Makefile | 0 .../Demo}/uIP_Demo_Rowley_ARM7/uip/cgi.c | 0 .../Demo}/uIP_Demo_Rowley_ARM7/uip/cgi.h | 0 .../Demo}/uIP_Demo_Rowley_ARM7/uip/crt0.asm | 0 .../Demo}/uIP_Demo_Rowley_ARM7/uip/cs8900a.c | 0 .../Demo}/uIP_Demo_Rowley_ARM7/uip/cs8900a.h | 0 .../Demo}/uIP_Demo_Rowley_ARM7/uip/fs.c | 0 .../Demo}/uIP_Demo_Rowley_ARM7/uip/fs.h | 0 .../uIP_Demo_Rowley_ARM7/uip/fs/404.html | 0 .../uIP_Demo_Rowley_ARM7/uip/fs/about.html | 0 .../uIP_Demo_Rowley_ARM7/uip/fs/cgi/files | 0 .../uIP_Demo_Rowley_ARM7/uip/fs/cgi/stats | 0 .../Demo}/uIP_Demo_Rowley_ARM7/uip/fs/cgi/tcp | 0 .../uIP_Demo_Rowley_ARM7/uip/fs/control.html | 0 .../uip/fs/files_footer.plain | 0 .../uip/fs/files_header.html | 0 .../uIP_Demo_Rowley_ARM7/uip/fs/img/bg.png | Bin .../uIP_Demo_Rowley_ARM7/uip/fs/index.html | 0 .../uip/fs/stats_footer.plain | 0 .../uip/fs/stats_header.html | 0 .../uip/fs/tcp_footer.plain | 0 .../uip/fs/tcp_header.html | 0 .../Demo}/uIP_Demo_Rowley_ARM7/uip/fsdata.c | 0 .../Demo}/uIP_Demo_Rowley_ARM7/uip/fsdata.h | 0 .../Demo}/uIP_Demo_Rowley_ARM7/uip/httpd.c | 0 .../Demo}/uIP_Demo_Rowley_ARM7/uip/httpd.h | 0 .../Demo}/uIP_Demo_Rowley_ARM7/uip/main_led | 0 .../Demo}/uIP_Demo_Rowley_ARM7/uip/makefsdata | 0 .../Demo}/uIP_Demo_Rowley_ARM7/uip/memb.c | 0 .../Demo}/uIP_Demo_Rowley_ARM7/uip/memb.h | 0 .../Demo}/uIP_Demo_Rowley_ARM7/uip/slipdev.c | 0 .../Demo}/uIP_Demo_Rowley_ARM7/uip/slipdev.h | 0 .../Demo}/uIP_Demo_Rowley_ARM7/uip/tapdev.c | 0 .../Demo}/uIP_Demo_Rowley_ARM7/uip/tapdev.h | 0 .../uIP_Demo_Rowley_ARM7/uip/telnetd-shell.c | 0 .../Demo}/uIP_Demo_Rowley_ARM7/uip/telnetd.c | 0 .../Demo}/uIP_Demo_Rowley_ARM7/uip/telnetd.h | 0 .../Demo}/uIP_Demo_Rowley_ARM7/uip/uIP_Task.c | 0 .../Demo}/uIP_Demo_Rowley_ARM7/uip/uip.c | 0 .../Demo}/uIP_Demo_Rowley_ARM7/uip/uip.h | 0 .../Demo}/uIP_Demo_Rowley_ARM7/uip/uip_arch.c | 0 .../Demo}/uIP_Demo_Rowley_ARM7/uip/uip_arch.h | 0 .../Demo}/uIP_Demo_Rowley_ARM7/uip/uip_arp.c | 0 .../Demo}/uIP_Demo_Rowley_ARM7/uip/uip_arp.h | 0 .../Demo}/uIP_Demo_Rowley_ARM7/uip/uipopt.h | 0 {License => FreeRTOS/License}/license.txt | 0 {Source => FreeRTOS/Source}/croutine.c | 0 .../Source}/include/FreeRTOS.h | 0 .../Source}/include/StackMacros.h | 0 .../Source}/include/croutine.h | 0 {Source => FreeRTOS/Source}/include/list.h | 0 .../Source}/include/mpu_wrappers.h | 0 .../Source}/include/portable.h | 0 .../Source}/include/projdefs.h | 0 {Source => FreeRTOS/Source}/include/queue.h | 0 {Source => FreeRTOS/Source}/include/semphr.h | 0 {Source => FreeRTOS/Source}/include/task.h | 0 {Source => FreeRTOS/Source}/include/timers.h | 0 {Source => FreeRTOS/Source}/list.c | 0 .../portable/BCC/16BitDOS/Flsh186/port.c | 0 .../portable/BCC/16BitDOS/Flsh186/prtmacro.h | 0 .../Source}/portable/BCC/16BitDOS/PC/port.c | 0 .../portable/BCC/16BitDOS/PC/prtmacro.h | 0 .../portable/BCC/16BitDOS/common/portasm.h | 0 .../portable/BCC/16BitDOS/common/portcomn.c | 0 .../Source}/portable/CCS/MSP430X/data_model.h | 0 .../Source}/portable/CCS/MSP430X/port.c | 0 .../Source}/portable/CCS/MSP430X/portext.asm | 0 .../Source}/portable/CCS/MSP430X/portmacro.h | 0 .../portable/CodeWarrior/ColdFire_V1/port.c | 0 .../CodeWarrior/ColdFire_V1/portasm.S | 0 .../CodeWarrior/ColdFire_V1/portmacro.h | 0 .../portable/CodeWarrior/ColdFire_V2/port.c | 0 .../CodeWarrior/ColdFire_V2/portasm.S | 0 .../CodeWarrior/ColdFire_V2/portmacro.h | 0 .../Source}/portable/CodeWarrior/HCS12/port.c | 0 .../portable/CodeWarrior/HCS12/portmacro.h | 0 .../portable/GCC/ARM7_AT91FR40008/port.c | 0 .../portable/GCC/ARM7_AT91FR40008/portISR.c | 0 .../portable/GCC/ARM7_AT91FR40008/portmacro.h | 0 .../GCC/ARM7_AT91SAM7S/AT91SAM7X256.h | 0 .../GCC/ARM7_AT91SAM7S/ioat91sam7x256.h | 0 .../GCC/ARM7_AT91SAM7S/lib_AT91SAM7X256.c | 0 .../GCC/ARM7_AT91SAM7S/lib_AT91SAM7X256.h | 0 .../portable/GCC/ARM7_AT91SAM7S/port.c | 0 .../portable/GCC/ARM7_AT91SAM7S/portISR.c | 0 .../portable/GCC/ARM7_AT91SAM7S/portmacro.h | 0 .../Source}/portable/GCC/ARM7_LPC2000/port.c | 0 .../portable/GCC/ARM7_LPC2000/portISR.c | 0 .../portable/GCC/ARM7_LPC2000/portmacro.h | 0 .../Source}/portable/GCC/ARM7_LPC23xx/port.c | 0 .../portable/GCC/ARM7_LPC23xx/portISR.c | 0 .../portable/GCC/ARM7_LPC23xx/portmacro.h | 0 .../Source}/portable/GCC/ARM_CM0/port.c | 0 .../Source}/portable/GCC/ARM_CM0/portmacro.h | 0 .../Source}/portable/GCC/ARM_CM3/port.c | 0 .../Source}/portable/GCC/ARM_CM3/portmacro.h | 0 .../Source}/portable/GCC/ARM_CM3_MPU/port.c | 0 .../portable/GCC/ARM_CM3_MPU/portmacro.h | 0 .../Source}/portable/GCC/ARM_CM4F/port.c | 0 .../Source}/portable/GCC/ARM_CM4F/portmacro.h | 0 .../Source}/portable/GCC/ATMega323/port.c | 0 .../portable/GCC/ATMega323/portmacro.h | 0 .../portable/GCC/AVR32_UC3/exception.S | 0 .../Source}/portable/GCC/AVR32_UC3/port.c | 0 .../portable/GCC/AVR32_UC3/portmacro.h | 0 .../Source}/portable/GCC/CORTUS_APS3/port.c | 0 .../portable/GCC/CORTUS_APS3/portmacro.h | 0 .../Source}/portable/GCC/ColdFire_V2/port.c | 0 .../portable/GCC/ColdFire_V2/portasm.S | 0 .../portable/GCC/ColdFire_V2/portmacro.h | 0 .../Source}/portable/GCC/H8S2329/port.c | 0 .../Source}/portable/GCC/H8S2329/portmacro.h | 0 .../Source}/portable/GCC/HCS12/port.c | 0 .../Source}/portable/GCC/HCS12/portmacro.h | 0 .../Source}/portable/GCC/MCF5235/port.c | 0 .../Source}/portable/GCC/MCF5235/portmacro.h | 0 .../Source}/portable/GCC/MSP430F449/port.c | 0 .../portable/GCC/MSP430F449/portmacro.h | 0 .../Source}/portable/GCC/MicroBlaze/port.c | 0 .../Source}/portable/GCC/MicroBlaze/portasm.s | 0 .../portable/GCC/MicroBlaze/portmacro.h | 0 .../Source}/portable/GCC/MicroBlazeV8/port.c | 0 .../GCC/MicroBlazeV8/port_exceptions.c | 0 .../portable/GCC/MicroBlazeV8/portasm.S | 0 .../portable/GCC/MicroBlazeV8/portmacro.h | 0 .../Source}/portable/GCC/NiosII/port.c | 0 .../Source}/portable/GCC/NiosII/port_asm.S | 0 .../Source}/portable/GCC/NiosII/portmacro.h | 0 .../portable/GCC/PPC405_Xilinx/FPU_Macros.h | 0 .../Source}/portable/GCC/PPC405_Xilinx/port.c | 0 .../portable/GCC/PPC405_Xilinx/portasm.S | 0 .../portable/GCC/PPC405_Xilinx/portmacro.h | 0 .../portable/GCC/PPC440_Xilinx/FPU_Macros.h | 0 .../Source}/portable/GCC/PPC440_Xilinx/port.c | 0 .../portable/GCC/PPC440_Xilinx/portasm.S | 0 .../portable/GCC/PPC440_Xilinx/portmacro.h | 0 .../Source}/portable/GCC/RX600/port.c | 0 .../Source}/portable/GCC/RX600/portmacro.h | 0 .../Source}/portable/GCC/STR75x/port.c | 0 .../Source}/portable/GCC/STR75x/portISR.c | 0 .../Source}/portable/GCC/STR75x/portmacro.h | 0 .../Source}/portable/GCC/TriCore_1782/port.c | 0 .../portable/GCC/TriCore_1782/portmacro.h | 0 .../portable/GCC/TriCore_1782/porttrap.c | 0 .../Source}/portable/IAR/78K0R/ISR_Support.h | 0 .../Source}/portable/IAR/78K0R/port.c | 0 .../Source}/portable/IAR/78K0R/portasm.s26 | 0 .../Source}/portable/IAR/78K0R/portmacro.h | 0 .../Source}/portable/IAR/ARM_CM0/port.c | 0 .../Source}/portable/IAR/ARM_CM0/portasm.s | 0 .../Source}/portable/IAR/ARM_CM0/portmacro.h | 0 .../Source}/portable/IAR/ARM_CM3/port.c | 0 .../Source}/portable/IAR/ARM_CM3/portasm.s | 0 .../Source}/portable/IAR/ARM_CM3/portmacro.h | 0 .../Source}/portable/IAR/ARM_CM4F/port.c | 0 .../Source}/portable/IAR/ARM_CM4F/portasm.s | 0 .../Source}/portable/IAR/ARM_CM4F/portmacro.h | 0 .../Source}/portable/IAR/ATMega323/port.c | 0 .../portable/IAR/ATMega323/portmacro.h | 0 .../portable/IAR/ATMega323/portmacro.s90 | 0 .../portable/IAR/AVR32_UC3/exception.s82 | 0 .../Source}/portable/IAR/AVR32_UC3/port.c | 0 .../portable/IAR/AVR32_UC3/portmacro.h | 0 .../Source}/portable/IAR/AVR32_UC3/read.c | 0 .../Source}/portable/IAR/AVR32_UC3/write.c | 0 .../portable/IAR/AtmelSAM7S64/AT91SAM7S64.h | 0 .../IAR/AtmelSAM7S64/AT91SAM7S64_inc.h | 0 .../portable/IAR/AtmelSAM7S64/AT91SAM7X128.h | 0 .../IAR/AtmelSAM7S64/AT91SAM7X128_inc.h | 0 .../portable/IAR/AtmelSAM7S64/AT91SAM7X256.h | 0 .../IAR/AtmelSAM7S64/AT91SAM7X256_inc.h | 0 .../portable/IAR/AtmelSAM7S64/ISR_Support.h | 0 .../IAR/AtmelSAM7S64/lib_AT91SAM7S64.h | 0 .../IAR/AtmelSAM7S64/lib_AT91SAM7X128.h | 0 .../IAR/AtmelSAM7S64/lib_AT91SAM7X256.h | 0 .../Source}/portable/IAR/AtmelSAM7S64/port.c | 0 .../portable/IAR/AtmelSAM7S64/portasm.s79 | 0 .../portable/IAR/AtmelSAM7S64/portmacro.h | 0 .../portable/IAR/AtmelSAM9XE/ISR_Support.h | 0 .../Source}/portable/IAR/AtmelSAM9XE/port.c | 0 .../portable/IAR/AtmelSAM9XE/portasm.s79 | 0 .../portable/IAR/AtmelSAM9XE/portmacro.h | 0 .../portable/IAR/LPC2000/ISR_Support.h | 0 .../Source}/portable/IAR/LPC2000/port.c | 0 .../Source}/portable/IAR/LPC2000/portasm.s79 | 0 .../Source}/portable/IAR/LPC2000/portmacro.h | 0 .../Source}/portable/IAR/MSP430/port.c | 0 .../Source}/portable/IAR/MSP430/portasm.h | 0 .../Source}/portable/IAR/MSP430/portext.s43 | 0 .../Source}/portable/IAR/MSP430/portmacro.h | 0 .../Source}/portable/IAR/MSP430X/data_model.h | 0 .../Source}/portable/IAR/MSP430X/port.c | 0 .../Source}/portable/IAR/MSP430X/portext.s43 | 0 .../Source}/portable/IAR/MSP430X/portmacro.h | 0 .../Source}/portable/IAR/RL78/ISR_Support.h | 0 .../Source}/portable/IAR/RL78/port.c | 0 .../Source}/portable/IAR/RL78/portasm.s87 | 0 .../Source}/portable/IAR/RL78/portmacro.h | 0 .../Source}/portable/IAR/RX600/port.c | 0 .../Source}/portable/IAR/RX600/port_asm.s | 0 .../Source}/portable/IAR/RX600/portmacro.h | 0 .../Source}/portable/IAR/STR71x/ISR_Support.h | 0 .../Source}/portable/IAR/STR71x/port.c | 0 .../Source}/portable/IAR/STR71x/portasm.s79 | 0 .../Source}/portable/IAR/STR71x/portmacro.h | 0 .../Source}/portable/IAR/STR75x/ISR_Support.h | 0 .../Source}/portable/IAR/STR75x/port.c | 0 .../Source}/portable/IAR/STR75x/portasm.s79 | 0 .../Source}/portable/IAR/STR75x/portmacro.h | 0 .../Source}/portable/IAR/STR91x/ISR_Support.h | 0 .../Source}/portable/IAR/STR91x/port.c | 0 .../Source}/portable/IAR/STR91x/portasm.s79 | 0 .../Source}/portable/IAR/STR91x/portmacro.h | 0 .../Source}/portable/IAR/V850ES/ISR_Support.h | 0 .../Source}/portable/IAR/V850ES/port.c | 0 .../Source}/portable/IAR/V850ES/portasm.s85 | 0 .../portable/IAR/V850ES/portasm_Fx3.s85 | 0 .../portable/IAR/V850ES/portasm_Hx2.s85 | 0 .../Source}/portable/IAR/V850ES/portmacro.h | 0 .../Keil/See-also-the-RVDS-directory.txt | 0 .../Source}/portable/MPLAB/PIC18F/port.c | 0 .../Source}/portable/MPLAB/PIC18F/portmacro.h | 0 FreeRTOS/Source/portable/MPLAB/PIC18F/stdio.h | 0 .../Source}/portable/MPLAB/PIC24_dsPIC/port.c | 0 .../MPLAB/PIC24_dsPIC/portasm_PIC24.S | 0 .../MPLAB/PIC24_dsPIC/portasm_dsPIC.S | 0 .../portable/MPLAB/PIC24_dsPIC/portmacro.h | 0 .../portable/MPLAB/PIC32MX/ISR_Support.h | 0 .../Source}/portable/MPLAB/PIC32MX/port.c | 0 .../Source}/portable/MPLAB/PIC32MX/port_asm.S | 0 .../portable/MPLAB/PIC32MX/portmacro.h | 0 .../Source}/portable/MSVC-MingW/port.c | 0 .../Source}/portable/MSVC-MingW/portmacro.h | 0 .../Source}/portable/MemMang/heap_1.c | 0 .../Source}/portable/MemMang/heap_2.c | 0 .../Source}/portable/MemMang/heap_3.c | 0 .../Source}/portable/MemMang/heap_4.c | 0 .../Paradigm/Tern_EE/large_untested/port.c | 0 .../Paradigm/Tern_EE/large_untested/portasm.h | 0 .../Tern_EE/large_untested/portmacro.h | 0 .../portable/Paradigm/Tern_EE/small/port.c | 0 .../portable/Paradigm/Tern_EE/small/portasm.h | 0 .../Paradigm/Tern_EE/small/portmacro.h | 0 .../Source}/portable/RVDS/ARM7_LPC21xx/port.c | 0 .../portable/RVDS/ARM7_LPC21xx/portASM.s | 0 .../portable/RVDS/ARM7_LPC21xx/portmacro.h | 0 .../portable/RVDS/ARM7_LPC21xx/portmacro.inc | 0 .../Source}/portable/RVDS/ARM_CM3/port.c | 0 .../Source}/portable/RVDS/ARM_CM3/portmacro.h | 0 .../Source}/portable/RVDS/ARM_CM4F/port.c | 0 .../portable/RVDS/ARM_CM4F/portmacro.h | 0 .../Source}/portable/Renesas/RX200/port.c | 0 .../portable/Renesas/RX200/port_asm.src | 0 .../portable/Renesas/RX200/portmacro.h | 0 .../Source}/portable/Renesas/RX600/port.c | 0 .../portable/Renesas/RX600/port_asm.src | 0 .../portable/Renesas/RX600/portmacro.h | 0 .../portable/Renesas/SH2A_FPU/ISR_Support.inc | 0 .../Source}/portable/Renesas/SH2A_FPU/port.c | 0 .../portable/Renesas/SH2A_FPU/portasm.src | 0 .../portable/Renesas/SH2A_FPU/portmacro.h | 0 .../Source}/portable/Rowley/ARM7/readme.txt | 0 .../Source}/portable/Rowley/MSP430F449/port.c | 0 .../portable/Rowley/MSP430F449/portasm.h | 0 .../portable/Rowley/MSP430F449/portext.asm | 0 .../portable/Rowley/MSP430F449/portmacro.h | 0 .../Source}/portable/SDCC/Cygnal/port.c | 0 .../Source}/portable/SDCC/Cygnal/portmacro.h | 0 .../portable/Softune/MB91460/__STD_LIB_sbrk.c | 0 .../Source}/portable/Softune/MB91460/port.c | 0 .../portable/Softune/MB91460/portmacro.h | 0 .../portable/Softune/MB96340/__STD_LIB_sbrk.c | 0 .../Source}/portable/Softune/MB96340/port.c | 0 .../portable/Softune/MB96340/portmacro.h | 0 .../Source}/portable/Tasking/ARM_CM4F/port.c | 0 .../portable/Tasking/ARM_CM4F/port_asm.asm | 0 .../portable/Tasking/ARM_CM4F/portmacro.h | 0 .../portable/WizC/PIC18/Drivers/Tick/Tick.c | 0 .../WizC/PIC18/Drivers/Tick/isrTick.c | 0 .../Source}/portable/WizC/PIC18/Install.bat | 0 .../Source}/portable/WizC/PIC18/addFreeRTOS.h | 0 .../Source}/portable/WizC/PIC18/port.c | 0 .../Source}/portable/WizC/PIC18/portmacro.h | 0 .../portable/oWatcom/16BitDOS/Flsh186/port.c | 0 .../oWatcom/16BitDOS/Flsh186/portmacro.h | 0 .../portable/oWatcom/16BitDOS/PC/port.c | 0 .../portable/oWatcom/16BitDOS/PC/portmacro.h | 0 .../oWatcom/16BitDOS/common/portasm.h | 0 .../oWatcom/16BitDOS/common/portcomn.c | 0 .../Source}/portable/readme.txt | 0 {Source => FreeRTOS/Source}/queue.c | 0 {Source => FreeRTOS/Source}/readme.txt | 0 {Source => FreeRTOS/Source}/tasks.c | 0 {Source => FreeRTOS/Source}/timers.c | 0 FreeRTOS/readme.txt | 21 + readme.txt | 19 - 6798 files changed, 134949 insertions(+), 19 deletions(-) rename Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/.log => FreeRTOS-Plus/CyaSSL/AUTHORS (100%) create mode 100644 FreeRTOS-Plus/CyaSSL/COPYING rename Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/.log => FreeRTOS-Plus/CyaSSL/ChangeLog (100%) create mode 100644 FreeRTOS-Plus/CyaSSL/Makefile.am create mode 100644 FreeRTOS-Plus/CyaSSL/Makefile.in rename Demo/ColdFire_MCF51CN128_CodeWarrior/CFV1_BDM_P&E_Multilink_CyclonePro.hwc => FreeRTOS-Plus/CyaSSL/NEWS (100%) create mode 100644 FreeRTOS-Plus/CyaSSL/README create mode 100644 FreeRTOS-Plus/CyaSSL/aclocal.m4 create mode 100644 FreeRTOS-Plus/CyaSSL/certs/ca-cert.pem create mode 100644 FreeRTOS-Plus/CyaSSL/certs/ca-key.der create mode 100644 FreeRTOS-Plus/CyaSSL/certs/ca-key.pem create mode 100644 FreeRTOS-Plus/CyaSSL/certs/client-cert.der create mode 100644 FreeRTOS-Plus/CyaSSL/certs/client-cert.pem create mode 100644 FreeRTOS-Plus/CyaSSL/certs/client-ecc-cert.pem create mode 100644 FreeRTOS-Plus/CyaSSL/certs/client-key.der create mode 100644 FreeRTOS-Plus/CyaSSL/certs/client-key.pem create mode 100644 FreeRTOS-Plus/CyaSSL/certs/client-keyEnc.pem create mode 100644 FreeRTOS-Plus/CyaSSL/certs/crl/crl.pem create mode 100644 FreeRTOS-Plus/CyaSSL/certs/crl/include.am create mode 100644 FreeRTOS-Plus/CyaSSL/certs/dh2048.der create mode 100644 FreeRTOS-Plus/CyaSSL/certs/dh2048.pem create mode 100644 FreeRTOS-Plus/CyaSSL/certs/dsa2048.der create mode 100644 FreeRTOS-Plus/CyaSSL/certs/ecc-client-key.pem create mode 100644 FreeRTOS-Plus/CyaSSL/certs/ecc-key.der create mode 100644 FreeRTOS-Plus/CyaSSL/certs/ecc-key.pem create mode 100644 FreeRTOS-Plus/CyaSSL/certs/ecc-keyPkcs8.pem create mode 100644 FreeRTOS-Plus/CyaSSL/certs/include.am create mode 100644 FreeRTOS-Plus/CyaSSL/certs/ntru-cert.pem create mode 100644 FreeRTOS-Plus/CyaSSL/certs/ntru-key.raw create mode 100644 FreeRTOS-Plus/CyaSSL/certs/rsa2048.der create mode 100644 FreeRTOS-Plus/CyaSSL/certs/server-cert.pem create mode 100644 FreeRTOS-Plus/CyaSSL/certs/server-ecc.pem create mode 100644 FreeRTOS-Plus/CyaSSL/certs/server-key.pem create mode 100644 FreeRTOS-Plus/CyaSSL/certs/server-keyEnc.pem create mode 100644 FreeRTOS-Plus/CyaSSL/certs/server-keyPkcs8.pem create mode 100644 FreeRTOS-Plus/CyaSSL/certs/server-keyPkcs8Enc.pem create mode 100644 FreeRTOS-Plus/CyaSSL/certs/server-keyPkcs8Enc12.pem create mode 100644 FreeRTOS-Plus/CyaSSL/certs/server-keyPkcs8Enc2.pem create mode 100644 FreeRTOS-Plus/CyaSSL/certs/taoCert.txt create mode 100644 FreeRTOS-Plus/CyaSSL/config.in create mode 100644 FreeRTOS-Plus/CyaSSL/config/compile create mode 100644 FreeRTOS-Plus/CyaSSL/config/config.guess create mode 100644 FreeRTOS-Plus/CyaSSL/config/config.sub create mode 100644 FreeRTOS-Plus/CyaSSL/config/depcomp create mode 100644 FreeRTOS-Plus/CyaSSL/config/install-sh create mode 100644 FreeRTOS-Plus/CyaSSL/config/ltmain.sh create mode 100644 FreeRTOS-Plus/CyaSSL/config/missing create mode 100644 FreeRTOS-Plus/CyaSSL/configure create mode 100644 FreeRTOS-Plus/CyaSSL/configure.ac create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/benchmark/benchmark.c create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/benchmark/benchmark.sln create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/benchmark/benchmark.vcproj create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/benchmark/include.am create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/aes.c create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/aes_asm.s create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/arc4.c create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/asm.c create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/asn.c create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/coding.c create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/des3.c create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/dh.c create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/dsa.c create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/ecc.c create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/ecc_fp.c create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mont_small.i create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_12.i create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_17.i create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_20.i create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_24.i create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_28.i create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_3.i create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_32.i create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_4.i create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_48.i create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_6.i create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_64.i create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_7.i create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_8.i create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_9.i create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_small_set.i create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_12.i create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_17.i create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_20.i create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_24.i create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_28.i create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_3.i create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_32.i create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_4.i create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_48.i create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_6.i create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_64.i create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_7.i create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_8.i create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_9.i create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_small_set.i create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/hc128.c create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/hmac.c create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/include.am create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/integer.c create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/logging.c create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/md4.c create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/md5.c create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/memory.c create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/misc.c create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/pwdbased.c create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/rabbit.c create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/random.c create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/ripemd.c create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/rsa.c create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/sha.c create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/sha256.c create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/sha512.c create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/src/tfm.c create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/test/include.am create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/test/test.c create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/test/test.sln create mode 100644 FreeRTOS-Plus/CyaSSL/ctaocrypt/test/test.vcproj create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl-iphone.xcodeproj/project.pbxproj create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl-ntru.sln create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl-ntru.vcproj create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl.sln create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl.vcproj create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/callbacks.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/crl.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/aes.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/arc4.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/asn.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/asn_public.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/coding.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/des3.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/dh.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/dsa.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/ecc.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/error.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/hc128.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/hmac.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/include.am create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/integer.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/logging.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/md4.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/md5.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/memory.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/misc.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/mpi_class.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/mpi_superclass.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/pwdbased.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/rabbit.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/random.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/ripemd.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/rsa.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/settings.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/sha.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/sha256.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/sha512.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/tfm.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/types.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/visibility.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/error.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/include.am create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/internal.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/ocsp.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/openssl/asn1.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/openssl/bio.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/openssl/bn.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/openssl/conf.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/openssl/crypto.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/openssl/des.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/openssl/dh.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/openssl/dsa.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/openssl/ec.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/openssl/ecdsa.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/openssl/engine.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/openssl/err.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/openssl/evp.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/openssl/hmac.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/openssl/include.am create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/openssl/lhash.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/openssl/md4.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/openssl/md5.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/openssl/ocsp.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/openssl/opensslconf.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/openssl/opensslv.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/openssl/ossl_typ.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/openssl/pem.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/openssl/pkcs12.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/openssl/rand.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/openssl/ripemd.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/openssl/rsa.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/openssl/sha.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/openssl/ssl.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/openssl/stack.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/openssl/ui.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/openssl/x509.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/openssl/x509v3.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/sniffer.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/sniffer_error.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/sniffer_error.rc create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/ssl.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/test.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/version.h create mode 100644 FreeRTOS-Plus/CyaSSL/cyassl/version.h.in create mode 100644 FreeRTOS-Plus/CyaSSL/doc/README.txt create mode 100644 FreeRTOS-Plus/CyaSSL/doc/include.am create mode 100644 FreeRTOS-Plus/CyaSSL/examples/client/client-ntru.vcproj create mode 100644 FreeRTOS-Plus/CyaSSL/examples/client/client.c create mode 100644 FreeRTOS-Plus/CyaSSL/examples/client/client.sln create mode 100644 FreeRTOS-Plus/CyaSSL/examples/client/client.vcproj create mode 100644 FreeRTOS-Plus/CyaSSL/examples/client/include.am create mode 100644 FreeRTOS-Plus/CyaSSL/examples/echoclient/echoclient-ntru.vcproj create mode 100644 FreeRTOS-Plus/CyaSSL/examples/echoclient/echoclient.c create mode 100644 FreeRTOS-Plus/CyaSSL/examples/echoclient/echoclient.sln create mode 100644 FreeRTOS-Plus/CyaSSL/examples/echoclient/echoclient.vcproj create mode 100644 FreeRTOS-Plus/CyaSSL/examples/echoclient/include.am create mode 100644 FreeRTOS-Plus/CyaSSL/examples/echoserver/echoserver-ntru.vcproj create mode 100644 FreeRTOS-Plus/CyaSSL/examples/echoserver/echoserver.c create mode 100644 FreeRTOS-Plus/CyaSSL/examples/echoserver/echoserver.sln create mode 100644 FreeRTOS-Plus/CyaSSL/examples/echoserver/echoserver.vcproj create mode 100644 FreeRTOS-Plus/CyaSSL/examples/echoserver/include.am create mode 100644 FreeRTOS-Plus/CyaSSL/examples/server/include.am create mode 100644 FreeRTOS-Plus/CyaSSL/examples/server/server-ntru.vcproj create mode 100644 FreeRTOS-Plus/CyaSSL/examples/server/server.c create mode 100644 FreeRTOS-Plus/CyaSSL/examples/server/server.sln create mode 100644 FreeRTOS-Plus/CyaSSL/examples/server/server.vcproj create mode 100644 FreeRTOS-Plus/CyaSSL/input create mode 100644 FreeRTOS-Plus/CyaSSL/lib/dummy create mode 100644 FreeRTOS-Plus/CyaSSL/m4/ax_pthread.m4 create mode 100644 FreeRTOS-Plus/CyaSSL/m4/hexversion.m4 create mode 100644 FreeRTOS-Plus/CyaSSL/m4/lib_socket_nsl.m4 create mode 100644 FreeRTOS-Plus/CyaSSL/m4/libtool.m4 create mode 100644 FreeRTOS-Plus/CyaSSL/m4/ltoptions.m4 create mode 100644 FreeRTOS-Plus/CyaSSL/m4/ltsugar.m4 create mode 100644 FreeRTOS-Plus/CyaSSL/m4/ltversion.m4 create mode 100644 FreeRTOS-Plus/CyaSSL/m4/lt~obsolete.m4 create mode 100644 FreeRTOS-Plus/CyaSSL/m4/visibility.m4 create mode 100644 FreeRTOS-Plus/CyaSSL/quit create mode 100644 FreeRTOS-Plus/CyaSSL/src/crl.c create mode 100644 FreeRTOS-Plus/CyaSSL/src/include.am create mode 100644 FreeRTOS-Plus/CyaSSL/src/internal.c create mode 100644 FreeRTOS-Plus/CyaSSL/src/io.c create mode 100644 FreeRTOS-Plus/CyaSSL/src/keys.c create mode 100644 FreeRTOS-Plus/CyaSSL/src/ocsp.c create mode 100644 FreeRTOS-Plus/CyaSSL/src/sniffer.c create mode 100644 FreeRTOS-Plus/CyaSSL/src/ssl.c create mode 100644 FreeRTOS-Plus/CyaSSL/src/tls.c create mode 100644 FreeRTOS-Plus/CyaSSL/sslSniffer/sslSniffer.vcproj create mode 100644 FreeRTOS-Plus/CyaSSL/sslSniffer/sslSnifferTest/include.am create mode 100644 FreeRTOS-Plus/CyaSSL/sslSniffer/sslSnifferTest/snifftest.c create mode 100644 FreeRTOS-Plus/CyaSSL/sslSniffer/sslSnifferTest/sslSniffTest.vcproj rename Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/.log => FreeRTOS-Plus/CyaSSL/stamp-h.in (100%) create mode 100644 FreeRTOS-Plus/CyaSSL/support/libcyassl.pc.in create mode 100644 FreeRTOS-Plus/CyaSSL/swig/PythonBuild.sh create mode 100644 FreeRTOS-Plus/CyaSSL/swig/README create mode 100644 FreeRTOS-Plus/CyaSSL/swig/cyassl.i create mode 100644 FreeRTOS-Plus/CyaSSL/swig/cyassl_adds.c create mode 100644 FreeRTOS-Plus/CyaSSL/swig/include.am create mode 100644 FreeRTOS-Plus/CyaSSL/swig/python_cyassl.vcproj create mode 100644 FreeRTOS-Plus/CyaSSL/swig/rsasign.py create mode 100644 FreeRTOS-Plus/CyaSSL/swig/runme.py create mode 100644 FreeRTOS-Plus/CyaSSL/tests/api.c create mode 100644 FreeRTOS-Plus/CyaSSL/tests/hash.c create mode 100644 FreeRTOS-Plus/CyaSSL/tests/include.am create mode 100644 FreeRTOS-Plus/CyaSSL/tests/suites.c create mode 100644 FreeRTOS-Plus/CyaSSL/tests/unit.c create mode 100644 FreeRTOS-Plus/CyaSSL/tests/unit.h create mode 100644 FreeRTOS-Plus/CyaSSL/testsuite/include.am create mode 100644 FreeRTOS-Plus/CyaSSL/testsuite/testsuite-ntru.vcproj create mode 100644 FreeRTOS-Plus/CyaSSL/testsuite/testsuite.c create mode 100644 FreeRTOS-Plus/CyaSSL/testsuite/testsuite.sln create mode 100644 FreeRTOS-Plus/CyaSSL/testsuite/testsuite.vcproj create mode 100644 FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/CLI-commands.c create mode 100644 FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/FreeRTOSConfig.h rename Demo/WIN32-MSVC-lwIP/WIN32.sln => FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/FreeRTOS_Plus_CLI_with_Trace.sln (100%) create mode 100644 FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/FreeRTOS_Plus_CLI_with_Trace.suo create mode 100644 FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/Run-time-stats-utils.c create mode 100644 FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/Trace_Recorder_Configuration/trcConfig.h create mode 100644 FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/Trace_Recorder_Configuration/trcPort.h create mode 100644 FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/UDPCommandServer.c create mode 100644 FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/WIN32.vcxproj create mode 100644 FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/WIN32.vcxproj.filters rename Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.vcxproj.user => FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/WIN32.vcxproj.user (100%) create mode 100644 FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/main.c create mode 100644 FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/FreeRTOSConfig.h rename Demo/WIN32-MSVC/WIN32.sln => FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/FreeRTOS_Plus_CyaSSL.sln (100%) create mode 100644 FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/FreeRTOS_Plus_CyaSSL.suo create mode 100644 FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/SecureTCPClientTask.c create mode 100644 FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/SecureTCPServerTask.c create mode 100644 FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/WIN32.vcxproj create mode 100644 FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/WIN32.vcxproj.filters create mode 100644 FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/WIN32.vcxproj.user create mode 100644 FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/ca-cert.pem create mode 100644 FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/main.c create mode 100644 FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/server-cert.pem create mode 100644 FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/server-key.pem create mode 100644 FreeRTOS-Plus/FreeRTOS-Plus-CLI/FreeRTOS_CLI.c create mode 100644 FreeRTOS-Plus/FreeRTOS-Plus-CLI/FreeRTOS_CLI.h create mode 100644 FreeRTOS-Plus/FreeRTOS-Plus-CLI/History.txt create mode 100644 FreeRTOS-Plus/FreeRTOS-Plus-Trace/Configuration - template/Readme Config.txt create mode 100644 FreeRTOS-Plus/FreeRTOS-Plus-Trace/Configuration - template/trcConfig.h create mode 100644 FreeRTOS-Plus/FreeRTOS-Plus-Trace/Configuration - template/trcPort.h create mode 100644 FreeRTOS-Plus/FreeRTOS-Plus-Trace/Include/trcBase.h create mode 100644 FreeRTOS-Plus/FreeRTOS-Plus-Trace/Include/trcHooks.h create mode 100644 FreeRTOS-Plus/FreeRTOS-Plus-Trace/Include/trcKernel.h create mode 100644 FreeRTOS-Plus/FreeRTOS-Plus-Trace/Include/trcTypes.h create mode 100644 FreeRTOS-Plus/FreeRTOS-Plus-Trace/Include/trcUser.h create mode 100644 FreeRTOS-Plus/FreeRTOS-Plus-Trace/readme.txt create mode 100644 FreeRTOS-Plus/FreeRTOS-Plus-Trace/trcBase.c create mode 100644 FreeRTOS-Plus/FreeRTOS-Plus-Trace/trcKernel.c create mode 100644 FreeRTOS-Plus/FreeRTOS-Plus-Trace/trcPort.c create mode 100644 FreeRTOS-Plus/FreeRTOS-Plus-Trace/trcUser.c rename {Demo => FreeRTOS/Demo}/ARM7_AT91FR40008_GCC/AT91R40008.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91FR40008_GCC/ATEB40x.cfg (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91FR40008_GCC/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91FR40008_GCC/Makefile (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91FR40008_GCC/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91FR40008_GCC/aic.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91FR40008_GCC/atmel-ram.ld (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91FR40008_GCC/atmel-rom.ld (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91FR40008_GCC/boot.s (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91FR40008_GCC/ebi.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91FR40008_GCC/main.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91FR40008_GCC/pio.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91FR40008_GCC/ram_arm.bat (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91FR40008_GCC/ram_thumb.bat (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91FR40008_GCC/rom_arm.bat (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91FR40008_GCC/rom_thumb.bat (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91FR40008_GCC/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91FR40008_GCC/serial/serialISR.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91FR40008_GCC/tc.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91FR40008_GCC/usart.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7S64_IAR/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7S64_IAR/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7S64_IAR/SrcIAR/Board.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7S64_IAR/SrcIAR/Cstartup.s (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7S64_IAR/SrcIAR/Cstartup_SAM7.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7S64_IAR/USB/USBSample.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7S64_IAR/USB/USBSample.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7S64_IAR/USB/USB_ISR.s79 (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7S64_IAR/main.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7S64_IAR/resource/SAM7.mac (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7S64_IAR/resource/SAM7_RAM.mac (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7S64_IAR/resource/at91SAM7S64_FLASH.icf (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7S64_IAR/resource/at91sam7s-ek-flash.mac (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7S64_IAR/resource/at91sam7s64-flash.board (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7S64_IAR/rtosdemo.ewd (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7S64_IAR/rtosdemo.ewp (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7S64_IAR/rtosdemo.eww (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7S64_IAR/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7S64_IAR/serial/serialISR.s79 (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7S64_IAR/settings/Basic.dbgdt (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7S64_IAR/settings/Basic.dni (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7S64_IAR/settings/BasicSAM7.wsdt (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7S64_IAR/settings/rtosdemo.dbgdt (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7S64_IAR/settings/rtosdemo.dni (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7S64_IAR/settings/rtosdemo.wsdt (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7S64_IAR/settings/rtosdemo_lnk.par (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/.log (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/shareddefaults.xml (100%) rename Demo/Common/ethernet/lwIP_130/sys => FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/.log (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/RTOSDemo.sc (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.ui/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/cHelpSettings.xml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/64/history.index (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/69/history.index (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/b3/history.index (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/history.index (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/properties.index (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.markers (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/47.tree (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prj-RTOSDemo.prefs (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.core.prefs (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.ui.prefs (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.managedbuilder.core.prefs (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prefs (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.core.prefs (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.help.ui.prefs (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.search.prefs (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/OpenOCD Programmer.launch (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/OpenOCD Server.launch (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/RTOSDemo.elf.launch (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/RTOSDemo.launch (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.help.ui/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/Default.pref (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/relative_path.hist (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/working_set.hist (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/working_sets.hist (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ltk.ui.refactoring/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.search/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui.cheatsheets/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui.intro/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench.texteditor/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.update.ui/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/.metadata/version.ini (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/.cproject (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/.project (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/.settings/org.eclipse.ltk.core.refactoring.prefs (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/Makefile (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/SrcAtmel/Board.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/SrcAtmel/Cstartup.s79 (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/SrcAtmel/Cstartup_SAM7.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/SrcAtmel/Emac.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/SrcAtmel/mii.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/USB/USBSample.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/USB/USBSample.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/USB/USB_ISR.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/atmel-rom.ld (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/boot.s (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/main.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/syscalls.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/EMAC_ISR.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/Makefile.webserver (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/SAM7_EMAC.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/SAM7_EMAC.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/clock-arch.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/emac_atmel.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/http-strings (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/http-strings.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/http-strings.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-cgi.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-cgi.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs/404.html (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs/index.html (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs/index.shtml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs/io.shtml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs/stats.shtml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs/tcp.shtml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fsdata.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fsdata.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/makefsdata (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/makestrings (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/uIP_Task.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/uIP_Task.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/uip-conf.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/webserver.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/SAM7_flash.cfg (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/SAM7_pp.cfg (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/at91sam7_ecr.cfg (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/at91sam7_ecr.script (100%) rename {Demo => FreeRTOS/Demo}/ARM7_AT91SAM7X256_Eclipse/program.script (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2106_GCC/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2106_GCC/Makefile (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2106_GCC/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2106_GCC/boot.s (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2106_GCC/lpc2106-ram.ld (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2106_GCC/lpc2106-rom.ld (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2106_GCC/lpc210x.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2106_GCC/lpc221x.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2106_GCC/main.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2106_GCC/ram_arm.bat (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2106_GCC/ram_thumb.bat (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2106_GCC/readme.txt (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2106_GCC/rom_arm.bat (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2106_GCC/rom_thumb.bat (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2106_GCC/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2106_GCC/serial/serialISR.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2129_IAR/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2129_IAR/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2129_IAR/SrcIAR/lpc2xxx_cstartup.s (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2129_IAR/main.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2129_IAR/resource/lpc212x.icf (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2129_IAR/rtosdemo.ewd (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2129_IAR/rtosdemo.ewp (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2129_IAR/rtosdemo.eww (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2129_IAR/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2129_IAR/serial/serialISR.s79 (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2129_IAR/settings/Basic.dbgdt (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2129_IAR/settings/Basic.dni (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2129_IAR/settings/rtosdemo.dbgdt (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2129_IAR/settings/rtosdemo.dni (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2129_IAR/settings/rtosdemo.wsdt (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2129_IAR/settings/rtosdemo_lnk.par (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2129_Keil_RVDS/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2129_Keil_RVDS/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2129_Keil_RVDS/RTOSDemo.Opt (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2129_Keil_RVDS/RTOSDemo.Uv2 (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2129_Keil_RVDS/RTOSDemo.sct (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2129_Keil_RVDS/RTOSDemo.tra (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2129_Keil_RVDS/RTOSDemoSignal.UVL (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2129_Keil_RVDS/RTOSDemo_Target 1.dep (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2129_Keil_RVDS/Startup.s (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2129_Keil_RVDS/main.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2129_Keil_RVDS/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2129_Keil_RVDS/serial/serialISR.s (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2138_Rowley/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2138_Rowley/LPC21xx.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2138_Rowley/RTOSDemo.hzp (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2138_Rowley/RTOSDemo.hzs (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2138_Rowley/main.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2138_Rowley/mainISR.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2138_Rowley/threads.js (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/shareddefaults.xml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/RTOSDemo.sc (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.ui/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/cHelpSettings.xml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/33/5b/e7/4/history.index (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/69/history.index (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/ad/history.index (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/history.index (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/properties.index (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.markers (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.markers (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/31.tree (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prj-RTOSDemo.prefs (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.core.prefs (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.ui.prefs (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.managedbuilder.core.prefs (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prefs (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.core.prefs (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.help.ui.prefs (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.search.prefs (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/OpenOCD Programmer.launch (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/OpenOCD Server.launch (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/RTOSDemo.launch (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.help.ui/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/Default.pref (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/relative_path.hist (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/working_set.hist (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/working_sets.hist (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ltk.ui.refactoring/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.search/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui.cheatsheets/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui.intro/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench.texteditor/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.update.ui/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/.metadata/version.ini (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/.cproject (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/.project (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/.settings/org.eclipse.ltk.core.refactoring.prefs (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/LCD/portlcd.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/LCD/portlcd.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/Makefile (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/boot.s (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/lpc2368.ld (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/lpc23xx.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/main.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/syscalls.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/EMAC_ISR.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/clock-arch.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/emac.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/emac.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/http-strings (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/http-strings.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/http-strings.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-cgi.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-cgi.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs/404.html (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs/index.html (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs/index.shtml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs/io.shtml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs/stats.shtml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs/tcp.shtml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fsdata.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fsdata.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/makefsdata (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/makestrings (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/uIP_Task.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/uip-conf.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/webserver.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/lpc2368_flash.cfg (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/lpc2xxx_pp.cfg (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Eclipse/program.script (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Rowley/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Rowley/LCD/portlcd.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Rowley/LCD/portlcd.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Rowley/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Rowley/RTOSDemo.hzp (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Rowley/RTOSDemo.hzs (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Rowley/main.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Rowley/webserver/EMAC_ISR.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Rowley/webserver/clock-arch.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Rowley/webserver/emac.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Rowley/webserver/emac.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Rowley/webserver/http-strings (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Rowley/webserver/http-strings.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Rowley/webserver/http-strings.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Rowley/webserver/httpd-cgi.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Rowley/webserver/httpd-cgi.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Rowley/webserver/httpd-fs.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Rowley/webserver/httpd-fs.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Rowley/webserver/httpd-fs/404.html (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Rowley/webserver/httpd-fs/image.jpg (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Rowley/webserver/httpd-fs/index.html (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Rowley/webserver/httpd-fs/index.shtml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Rowley/webserver/httpd-fs/io.shtml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Rowley/webserver/httpd-fs/stats.shtml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Rowley/webserver/httpd-fs/tcp.shtml (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Rowley/webserver/httpd-fsdata.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Rowley/webserver/httpd-fsdata.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Rowley/webserver/httpd.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Rowley/webserver/httpd.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Rowley/webserver/makefsdata (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Rowley/webserver/makestrings (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Rowley/webserver/uIP_Task.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Rowley/webserver/uip-conf.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_LPC2368_Rowley/webserver/webserver.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR71x_IAR/71x_init.s (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR71x_IAR/71x_vect.s (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR71x_IAR/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR71x_IAR/Library/71x_it.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR71x_IAR/Library/71x_lib.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR71x_IAR/Library/gpio.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR71x_IAR/Library/include/71x_conf.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR71x_IAR/Library/include/71x_it.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR71x_IAR/Library/include/71x_lib.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR71x_IAR/Library/include/71x_map.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR71x_IAR/Library/include/71x_type.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR71x_IAR/Library/include/eic.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR71x_IAR/Library/include/gpio.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR71x_IAR/Library/include/pcu.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR71x_IAR/Library/include/rccu.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR71x_IAR/Library/include/tim.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR71x_IAR/Library/include/uart.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR71x_IAR/Library/include/wdg.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR71x_IAR/Library/rccu.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR71x_IAR/Library/uart.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR71x_IAR/Library/wdg.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR71x_IAR/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR71x_IAR/RTOSDemo.ewd (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR71x_IAR/RTOSDemo.ewp (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR71x_IAR/RTOSDemo.eww (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR71x_IAR/STR71x_FLASH.icf (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR71x_IAR/main.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR71x_IAR/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR71x_IAR/serial/serialISR.s79 (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR71x_IAR/settings/RTOSDemo.dbgdt (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR71x_IAR/settings/RTOSDemo.dni (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR71x_IAR/settings/RTOSDemo.wsdt (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/inc/75x_adc.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/inc/75x_can.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/inc/75x_cfg.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/inc/75x_conf.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/inc/75x_dma.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/inc/75x_eic.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/inc/75x_extit.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/inc/75x_gpio.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/inc/75x_i2c.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/inc/75x_lib.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/inc/75x_map.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/inc/75x_mrcc.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/inc/75x_pwm.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/inc/75x_rtc.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/inc/75x_smi.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/inc/75x_ssp.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/inc/75x_tb.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/inc/75x_tim.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/inc/75x_type.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/inc/75x_uart.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/inc/75x_wdg.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/inc/lcd.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/src/75x_adc.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/src/75x_can.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/src/75x_cfg.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/src/75x_dma.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/src/75x_eic.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/src/75x_extit.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/src/75x_gpio.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/src/75x_i2c.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/src/75x_it.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/src/75x_lib.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/src/75x_mrcc.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/src/75x_pwm.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/src/75x_rtc.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/src/75x_smi.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/src/75x_ssp.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/src/75x_tb.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/src/75x_tim.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/src/75x_uart.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/src/75x_wdg.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/STLibrary/src/lcd.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/SystemFiles/STR75xFx0_DEF_FreeRTOS.ld (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/SystemFiles/STR75xFx0_FLASH_FreeRTOS.ld (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/SystemFiles/STR75x_COMMON_FreeRTOS.ld (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/SystemFiles/crt0_STR75x_FreeRTOS.s (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/SystemFiles/sections_FLASH_FreeRTOS.ld (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/main.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/rtosdemo.prj (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_GCC/serial/serialISR.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/75x_init.s (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/75x_vect.s (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/RTOSDemo.ewd (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/RTOSDemo.ewp (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/RTOSDemo.eww (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/inc/75x_adc.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/inc/75x_can.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/inc/75x_cfg.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/inc/75x_conf.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/inc/75x_dma.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/inc/75x_eic.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/inc/75x_extit.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/inc/75x_gpio.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/inc/75x_i2c.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/inc/75x_lib.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/inc/75x_map.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/inc/75x_mrcc.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/inc/75x_pwm.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/inc/75x_rtc.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/inc/75x_smi.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/inc/75x_ssp.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/inc/75x_tb.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/inc/75x_tim.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/inc/75x_type.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/inc/75x_uart.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/inc/75x_wdg.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/inc/lcd.h (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/src/75x_adc.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/src/75x_can.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/src/75x_cfg.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/src/75x_dma.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/src/75x_eic.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/src/75x_extit.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/src/75x_gpio.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/src/75x_i2c.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/src/75x_it.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/src/75x_lib.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/src/75x_mrcc.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/src/75x_pwm.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/src/75x_rtc.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/src/75x_smi.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/src/75x_ssp.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/src/75x_tb.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/src/75x_tim.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/src/75x_uart.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/src/75x_wdg.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STLibrary/src/lcd.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/STR75x_FLASH.icf (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/main.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/settings/RTOSDemo.dbgdt (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/settings/RTOSDemo.dni (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/settings/RTOSDemo.wsdt (100%) rename {Demo => FreeRTOS/Demo}/ARM7_STR75x_IAR/settings/RTOSDemo_lnk.par (100%) rename {Demo => FreeRTOS/Demo}/ARM9_AT91SAM9XE_IAR/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/ARM9_AT91SAM9XE_IAR/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/ARM9_AT91SAM9XE_IAR/RTOSDemo.eww (100%) rename {Demo => FreeRTOS/Demo}/ARM9_AT91SAM9XE_IAR/ewp/at91sam9xe-ek-flash.mac (100%) rename {Demo => FreeRTOS/Demo}/ARM9_AT91SAM9XE_IAR/ewp/at91sam9xe-ek-sdram.mac (100%) rename {Demo => FreeRTOS/Demo}/ARM9_AT91SAM9XE_IAR/ewp/at91sam9xe-ek-sram.mac (100%) rename {Demo => FreeRTOS/Demo}/ARM9_AT91SAM9XE_IAR/ewp/at91sam9xe-ek.ewd (100%) rename {Demo => FreeRTOS/Demo}/ARM9_AT91SAM9XE_IAR/ewp/at91sam9xe-ek.ewp (100%) rename {Demo => FreeRTOS/Demo}/ARM9_AT91SAM9XE_IAR/ewp/flash.icf (100%) rename {Demo => FreeRTOS/Demo}/ARM9_AT91SAM9XE_IAR/ewp/sdram.icf (100%) rename {Demo => FreeRTOS/Demo}/ARM9_AT91SAM9XE_IAR/ewp/settings/at91sam9xe-ek.cspy.bat (100%) rename {Demo => FreeRTOS/Demo}/ARM9_AT91SAM9XE_IAR/ewp/settings/at91sam9xe-ek.dbgdt (100%) rename {Demo => FreeRTOS/Demo}/ARM9_AT91SAM9XE_IAR/ewp/settings/at91sam9xe-ek.dni (100%) rename {Demo => FreeRTOS/Demo}/ARM9_AT91SAM9XE_IAR/main.c (100%) rename {Demo => FreeRTOS/Demo}/ARM9_AT91SAM9XE_IAR/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/ARM9_AT91SAM9XE_IAR/settings/rtosdemo.wsdt (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/91x_init.s (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/91x_init_IAR.s (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/91x_vect.s (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/91x_vect_IAR.s (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/Library/include/91x_ahbapb.h (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/Library/include/91x_conf.h (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/Library/include/91x_dma.h (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/Library/include/91x_enet.h (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/Library/include/91x_fmi.h (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/Library/include/91x_gpio.h (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/Library/include/91x_it.h (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/Library/include/91x_lib.h (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/Library/include/91x_map.h (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/Library/include/91x_scu.h (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/Library/include/91x_tim.h (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/Library/include/91x_type.h (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/Library/include/91x_uart.h (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/Library/include/91x_vic.h (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/Library/include/91x_wdg.h (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/Library/source/91x_can.c (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/Library/source/91x_enet.c (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/Library/source/91x_fmi.c (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/Library/source/91x_gpio.c (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/Library/source/91x_it.c (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/Library/source/91x_lib.c (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/Library/source/91x_scu.c (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/Library/source/91x_tim.c (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/Library/source/91x_uart.c (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/Library/source/91x_vic.c (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/Library/source/91x_wdg.c (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/RTOSDemo.ewd (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/RTOSDemo.ewp (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/RTOSDemo.eww (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/STCode/lcd.c (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/STCode/lcd.h (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/STR91x_FLASH.icf (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/lwip/api/sys_arch.c (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/lwip/include/arch/cc.h (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/lwip/include/arch/cpu.h (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/lwip/include/arch/lwip_errno.h (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/lwip/include/arch/perf.h (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/lwip/include/arch/sys_arch.h (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/lwip/include/lwIPWebServer/BasicWEB.h (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/lwip/include/lwIPWebServer/fs.h (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/lwip/include/lwIPWebServer/fsdata.h (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/lwip/include/lwIPWebServer/httpd.h (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/lwip/include/lwip/lwipopts.h (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/lwip/include/lwip/opt.h (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/lwip/lwipWebServer/BasicWEB.c (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/lwip/lwipWebServer/fs.c (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/lwip/lwipWebServer/fs/WS1/404.html (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/lwip/lwipWebServer/fs/WS1/index.html (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/lwip/lwipWebServer/fs/WS1/logo.gif (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/lwip/lwipWebServer/fsdata.c (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/lwip/lwipWebServer/httpd.c (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/lwip/netif/ethernetif.c (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/main.c (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/settings/FreeRTOS.wsdt (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/settings/RTOSDemo.cspy.bat (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/settings/RTOSDemo.dbgdt (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/settings/RTOSDemo.dni (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/settings/RTOSDemo.wsdt (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/webserver/Makefile.webserver (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/webserver/clock-arch.h (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/webserver/http-strings (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/webserver/http-strings.c (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/webserver/http-strings.h (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/webserver/httpd-cgi.c (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/webserver/httpd-cgi.h (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/webserver/httpd-fs.c (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/webserver/httpd-fs.h (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/webserver/httpd-fs/404.html (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/webserver/httpd-fs/index.html (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/webserver/httpd-fs/index.shtml (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/webserver/httpd-fs/stats.shtml (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/webserver/httpd-fs/tcp.shtml (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/webserver/httpd-fsdata.c (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/webserver/httpd-fsdata.h (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/webserver/httpd.c (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/webserver/httpd.h (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/webserver/makefsdata (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/webserver/makestrings (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/webserver/uIP_Task.c (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/webserver/uip-conf.h (100%) rename {Demo => FreeRTOS/Demo}/ARM9_STR91X_IAR/webserver/webserver.h (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/AT32UC3A/GCC/Makefile (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/AT32UC3A/GCC/config.mk (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/AT32UC3A/GCC/gdb.ini (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/AT32UC3A/GCC/gdb_cmdfile.txt (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/AT32UC3A/IAR/Debug/Obj/rtosdemo.pbd (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/AT32UC3A/IAR/rtosdemo.ewd (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/AT32UC3A/IAR/rtosdemo.ewp (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/AT32UC3A/IAR/rtosdemo.eww (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/AT32UC3A/IAR/settings/rtosdemo.cspy.bat (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/AT32UC3A/IAR/settings/rtosdemo.dbgdt (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/AT32UC3A/IAR/settings/rtosdemo.dni (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/AT32UC3A/IAR/settings/rtosdemo.wsdt (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/AT32UC3A/doxyfile.doxygen (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/AT32UC3B/GCC/Makefile (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/AT32UC3B/GCC/config.mk (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/AT32UC3B/GCC/gdb_cmdfile.txt (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/AT32UC3B/doxyfile.doxygen (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/BOARDS/EVK1100/evk1100.h (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/BOARDS/EVK1100/evk1100_revA.h (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/BOARDS/EVK1100/led.c (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/BOARDS/EVK1100/led.h (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/BOARDS/EVK1101/evk1101.h (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/BOARDS/EVK1101/led.c (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/BOARDS/EVK1101/led.h (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/BOARDS/board.h (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/DRIVERS/GPIO/gpio.c (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/DRIVERS/GPIO/gpio.h (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/DRIVERS/INTC/intc.c (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/DRIVERS/INTC/intc.h (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/DRIVERS/PM/pm.c (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/DRIVERS/PM/pm.h (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/DRIVERS/TC/tc.c (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/DRIVERS/TC/tc.h (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/DRIVERS/USART/usart.c (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/DRIVERS/USART/usart.h (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/BOOT/trampoline.S (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/BOOT/trampoline.s82 (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/conf_isp.h (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0128/GCC/link_uc3a0128.lds (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0128/IAR/lnkuc3a0128.xcl (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0256/GCC/link_uc3a0256.lds (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0256/IAR/lnkuc3a0256.xcl (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0512/GCC/link_uc3a0512.lds (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0512/IAR/lnkuc3a0512.xcl (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1128/GCC/link_uc3a1128.lds (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1128/IAR/lnkuc3a1128.xcl (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1256/GCC/link_uc3a1256.lds (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1256/IAR/lnkuc3a1256.xcl (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1512/GCC/link_uc3a1512.lds (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1512/IAR/lnkuc3a1512.xcl (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0128/GCC/link_uc3b0128.lds (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0128/IAR/lnkuc3b0128.xcl (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0256/GCC/link_uc3b0256.lds (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0256/IAR/lnkuc3b0256.xcl (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/064/GCC/link_uc3b064.lds (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/064/IAR/lnkuc3b064.xcl (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1128/GCC/link_uc3b1128.lds (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1128/IAR/lnkuc3b1128.xcl (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1256/GCC/link_uc3b1256.lds (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1256/IAR/lnkuc3b1256.xcl (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/164/GCC/link_uc3b164.lds (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/164/IAR/lnkuc3b164.xcl (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/UTILS/PREPROCESSOR/mrepeat.h (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/UTILS/PREPROCESSOR/preprocessor.h (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/UTILS/PREPROCESSOR/stringz.h (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/UTILS/PREPROCESSOR/tpaste.h (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/UTILS/compiler.h (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/documentation.h (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/doxyfile.doxygen (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/freertos.gif (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/main.c (100%) rename {Demo => FreeRTOS/Demo}/AVR32_UC3/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/AVR_ATMega323_IAR/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/AVR_ATMega323_IAR/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/AVR_ATMega323_IAR/main.c (100%) rename {Demo => FreeRTOS/Demo}/AVR_ATMega323_IAR/regtest.c (100%) rename {Demo => FreeRTOS/Demo}/AVR_ATMega323_IAR/regtest.h (100%) rename {Demo => FreeRTOS/Demo}/AVR_ATMega323_IAR/rtosdemo.ewd (100%) rename {Demo => FreeRTOS/Demo}/AVR_ATMega323_IAR/rtosdemo.ewp (100%) rename {Demo => FreeRTOS/Demo}/AVR_ATMega323_IAR/rtosdemo.eww (100%) rename {Demo => FreeRTOS/Demo}/AVR_ATMega323_IAR/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/AVR_ATMega323_IAR/settings/rtosdemo.dbgdt (100%) rename {Demo => FreeRTOS/Demo}/AVR_ATMega323_IAR/settings/rtosdemo.dni (100%) rename {Demo => FreeRTOS/Demo}/AVR_ATMega323_IAR/settings/rtosdemo.fmt (100%) rename {Demo => FreeRTOS/Demo}/AVR_ATMega323_IAR/settings/rtosdemo.ini (100%) rename {Demo => FreeRTOS/Demo}/AVR_ATMega323_IAR/settings/rtosdemo.wsdt (100%) rename {Demo => FreeRTOS/Demo}/AVR_ATMega323_WinAVR/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/AVR_ATMega323_WinAVR/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/AVR_ATMega323_WinAVR/main.c (100%) rename {Demo => FreeRTOS/Demo}/AVR_ATMega323_WinAVR/makefile (100%) rename {Demo => FreeRTOS/Demo}/AVR_ATMega323_WinAVR/regtest.c (100%) rename {Demo => FreeRTOS/Demo}/AVR_ATMega323_WinAVR/regtest.h (100%) rename {Demo => FreeRTOS/Demo}/AVR_ATMega323_WinAVR/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/IAR_System/linker_nvm.icf (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/a2fxxxm3.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/core_cm3.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/mss_assert.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/startup_iar/startup_a2fxxxm3.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/startup_keil/core_cm3.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/startup_keil/startus_a2fxxxm3.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/system_a2fxxxm3.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/system_a2fxxxm3.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/I2C/i2c.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/I2C/i2c.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/OLED/oled.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/OLED/oled.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/bsp_config.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ace/ace_convert.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ace/envm_layout.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ace/mss_ace.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ace/mss_ace.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ace/mss_ace_configurator.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ace/mtd_data.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/crc32.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/crc32.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_conf.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_desc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_regs.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_user_cfg.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/phy.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/phy.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_gpio/mss_gpio.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_gpio/mss_gpio.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_pdma/mss_pdma.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_pdma/mss_pdma.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_spi/mss_spi.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_spi/mss_spi.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_timer/mss_timer.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_uart/mss_uart.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_uart/mss_uart.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_watchdog/mss_watchdog.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers_config/mss_ace/ace_config.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers_config/mss_ace/ace_config.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers_config/mss_ace/ace_handles.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/RTOSDemo_IAR.ewd (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/RTOSDemo_IAR.ewp (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/RTOSDemo_IAR.eww (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/RTOSDemo_Keil.uvopt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/RTOSDemo_Keil.uvproj (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-cgi.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/404.html (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/index.html (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/index.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/io.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/logo.jpg (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/runtime.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/stats.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/tcp.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fsdata.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/WebServer/makefsdata (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/WebServer/uip-conf.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/WebServer/webserver.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/main-blinky.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/main-full.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/printf-stdarg.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_IAR_and_Keil/uIP_Task.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/.cproject (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/.project (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/.settings/org.eclipse.ltk.core.refactoring.prefs (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/CreateProjectDirectoryStructure.bat (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/a2fxxxm3.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/core_cm3.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/core_cm3.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/mss_assert.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/startup_gcc/debug-in-actel-smartfusion-envm.ld (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/startup_gcc/debug-in-actel-smartfusion-esram.ld (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/startup_gcc/debug-in-external-ram.ld (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/startup_gcc/newlib_stubs.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/startup_gcc/production-execute-in-place.ld (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/startup_gcc/production-relocate-executable.ld (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/startup_gcc/startup_a2fxxxm3.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/system_a2fxxxm3.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/system_a2fxxxm3.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/I2C/i2c.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/I2C/i2c.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/OLED/oled.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/OLED/oled.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/bsp_config.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ace/ace_convert.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ace/envm_layout.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ace/mss_ace.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ace/mss_ace.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ace/mss_ace_configurator.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ace/mtd_data.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/crc32.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/crc32.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_conf.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_desc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_regs.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_user_cfg.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/phy.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/phy.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_gpio/mss_gpio.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_gpio/mss_gpio.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_timer/mss_timer.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_watchdog/mss_watchdog.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers_config/mss_ace/ace_config.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers_config/mss_ace/ace_config.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers_config/mss_ace/ace_handles.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/WebServer/httpd-cgi.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/404.html (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/index.html (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/index.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/io.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/logo.jpg (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/runtime.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/stats.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/tcp.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/WebServer/httpd-fsdata.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/WebServer/makefsdata (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/WebServer/uip-conf.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/WebServer/webserver.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/main-blinky.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/main-full.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/printf-stdarg.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_A2F200_SoftConsole/uIP_Task.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/cmsis/core_cm3.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/cmsis/core_cm3.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/components/hx8347/hx8347.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/components/hx8347/hx8347.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/color.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/draw.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/draw_hx8347.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/font.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/font.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/font10x14.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/lcdd.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/lcdd_hx8347.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/ac97c/ac97c.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/ac97c/ac97c.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/adc/adc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/adc/adc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/adc/adc12.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/aes/aes.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/aes/aes.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/aic/aic.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/aic/aic.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/can/can.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/can/can.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/cp15/cp15.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/cp15/cp15.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/cp15/cp15_asm_iar.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/dbgu/dbgu.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/dbgu/dbgu.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/dma/dma.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/dma/dma.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/eefc/eefc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/eefc/eefc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/efc/efc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/efc/efc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/emac/emac.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/emac/emac.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/irq/irq.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/irq/nvic.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/isi/isi.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/isi/isi.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/isi/isi2.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/lcd/lcd.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/lcd/lcd.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/mci/mci.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/mci/mci.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/mci/mci_hs.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/mci/mci_hs.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pio/pio.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pio/pio.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pio/pio_it.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pio/pio_it.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pit/pit.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pit/pit.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pmc/pmc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pmc/pmc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pwmc/pwmc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pwmc/pwmc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/rstc/rstc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/rstc/rstc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/rtc/rtc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/rtc/rtc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/rtt/rtt.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/rtt/rtt.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/shdwc/shdwc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/shdwc/shdwc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/slcdc/slcdc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/slcdc/slcdc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/slck/slck.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/slck/slck.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/spi/spi.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/spi/spi.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/ssc/ssc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/ssc/ssc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/supc/supc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/supc/supc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/systick/systick.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/systick/systick.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/tc/tc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/tc/tc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/tdes/tdes.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/tdes/tdes.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/tsadcc/tsadcc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/tsadcc/tsadcc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/twi/twi.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/twi/twi.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/usart/usart.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/usart/usart.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/utility/assert.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/AT91Lib/utility/trace.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/RTOSDemo.ewd (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/RTOSDemo.ewp (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/RTOSDemo.eww (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/lcd_message.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/printf-stdarg.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.cspy.bat (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.dbgdt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.dni (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.wsdt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo_Debug.jlink (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo_Release.jlink (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/system/AT91SAM3U4.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/system/at91sam3u-ek-flash.mac (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/system/at91sam3u4/AT91SAM3U4.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/system/at91sam3u4/chip.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/system/at91sam3u4/flash.icf (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/system/at91sam3u4/sram.icf (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/system/board.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/system/board_cstartup_iar.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/system/board_lowlevel.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/system/board_lowlevel.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/system/board_memories.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/system/board_memories.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/system/chip.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/system/exceptions.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/system/exceptions.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/system/flash.icf (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/system/led.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_AT91SAM3U256_IAR/system/led.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo Workspace.cywrk (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/FreeRTOS_Demo.cydwr (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/FreeRTOS_Demo.cyprj (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/IntQueueTimer.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/IntQueueTimer.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/Serial.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/TimerTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/TopDesign/TopDesign.cysch (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/device.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo Workspace.cywrk (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/FreeRTOS_Demo.cydwr (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/FreeRTOS_Demo.cyprj (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/IntQueueTimer.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/IntQueueTimer.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/Serial.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/TimerTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/TopDesign/TopDesign.cysch (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/device.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo Workspace.cywrk (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/FreeRTOS_Demo.cydwr (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/FreeRTOS_Demo.cyprj (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/IntQueueTimer.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/IntQueueTimer.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/Serial.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/TimerTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/TopDesign/TopDesign.cysch (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/device.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_EFMG890F128_IAR/CMSIS/CM3/CoreSupport/core_cm3.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_EFMG890F128_IAR/CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32/efm32.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_EFMG890F128_IAR/CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32/efm32g890f128.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_EFMG890F128_IAR/CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32/system_efm32.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_EFMG890F128_IAR/CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32/system_efm32.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_EFMG890F128_IAR/CMSIS/CMSIS changes.htm (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_EFMG890F128_IAR/CMSIS/CMSIS debug support.htm (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_EFMG890F128_IAR/CMSIS/Documentation/CMSIS_Core.htm (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_EFMG890F128_IAR/CMSIS/License.doc (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_EFMG890F128_IAR/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_EFMG890F128_IAR/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_EFMG890F128_IAR/RTOSDemo.ewd (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_EFMG890F128_IAR/RTOSDemo.ewp (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_EFMG890F128_IAR/RTOSDemo.eww (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_EFMG890F128_IAR/bsp/chip.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_EFMG890F128_IAR/bsp/dvk.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_EFMG890F128_IAR/bsp/dvk.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_EFMG890F128_IAR/bsp/dvk_bcregisters.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_EFMG890F128_IAR/bsp/dvk_boardcontrol.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_EFMG890F128_IAR/bsp/dvk_boardcontrol.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_EFMG890F128_IAR/bsp/dvk_ebi.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_EFMG890F128_IAR/bsp/dvk_spi.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_EFMG890F128_IAR/lcd/lcdcontroller.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_EFMG890F128_IAR/lcd/lcdcontroller.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_EFMG890F128_IAR/lcd/lcddisplay.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_EFMG890F128_IAR/lcdtest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_EFMG890F128_IAR/lcdtest.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_EFMG890F128_IAR/ledtest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_EFMG890F128_IAR/ledtest.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_EFMG890F128_IAR/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_EFMG890F128_IAR/settings/RTOSDemo.cspy.bat (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_EFMG890F128_IAR/settings/RTOSDemo.dbgdt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_EFMG890F128_IAR/settings/RTOSDemo.dni (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_EFMG890F128_IAR/settings/RTOSDemo.wsdt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_EFMG890F128_IAR/settings/RTOSDemo_Debug.jlink (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_EFMG890F128_IAR/startup_efm32.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/512KB_Pflash.icf (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/assert.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/common.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/iar.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/io.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/queue.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/startup.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/startup.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/arm_cm4.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/arm_cm4.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/crt0.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/dma_channels.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/k60_tower.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/regfile.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/start.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/start.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/sysinit.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/sysinit.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/vectors.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/vectors.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/enet.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/enet.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/eth.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/eth_phy.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/eth_phy.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/mii.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/mii.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/nbuf.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/mcg/mcg.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/mcg/mcg.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/uart/uart.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/uart/uart.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/wdog/wdog.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/wdog/wdog.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/RTOSDemo.ewd (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/RTOSDemo.ewp (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/RTOSDemo.eww (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/main-full.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/main_blinky.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/uIP_Task.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/webserver/EMAC.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/webserver/EMAC.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-cgi.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/404.html (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/index.html (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/index.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/io.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/logo.jpg (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/runtime.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/stats.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/tcp.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fsdata.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/webserver/makefsdata (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/webserver/uip-conf.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_Kinetis_K60_Tower_IAR/webserver/webserver.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_GCC/Demo1/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_GCC/Demo1/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_GCC/Demo1/readme.txt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_GCC/Demo2/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_GCC/Demo2/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_GCC/Demo2/readme.txt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_GCC/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_GCC/Makefile (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_GCC/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_GCC/hw_include/DriverLib.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_GCC/hw_include/debug.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_GCC/hw_include/gpio.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_GCC/hw_include/hw_ints.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_GCC/hw_include/hw_memmap.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_GCC/hw_include/hw_nvic.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_GCC/hw_include/hw_ssi.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_GCC/hw_include/hw_sysctl.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_GCC/hw_include/hw_types.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_GCC/hw_include/hw_uart.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_GCC/hw_include/interrupt.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_GCC/hw_include/libdriver.a (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_GCC/hw_include/pdc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_GCC/hw_include/pdc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_GCC/hw_include/ssi.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_GCC/hw_include/sysctl.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_GCC/hw_include/uart.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_GCC/init/startup.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_GCC/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_GCC/makedefs (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_GCC/standalone.ld (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_KEIL/Demo1/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_KEIL/Demo1/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_KEIL/Demo1/readme.txt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_KEIL/Demo2/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_KEIL/Demo2/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_KEIL/Demo2/readme.txt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_KEIL/FreeRTOS.Opt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_KEIL/FreeRTOS.Uv2 (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_KEIL/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_KEIL/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_KEIL/include/pdc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_KEIL/include/pdc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_KEIL/init/Startup.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_KEIL/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/Demo1/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/Demo1/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/Demo1/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/Demo1/vectors.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/Demo2/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/Demo2/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/Demo2/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/Demo2/vectors.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/Demo3/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/Demo3/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/Demo3/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/Demo3/vectors.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/RTOSDemo.hzp (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/RTOSDemo.hzs (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/hw_include/DriverLib.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/hw_include/EULA.txt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/hw_include/comp.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/hw_include/cpu.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/hw_include/debug.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/hw_include/flash.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/hw_include/gpio.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/hw_include/hw_comp.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/hw_include/hw_flash.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/hw_include/hw_gpio.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/hw_include/hw_i2c.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/hw_include/hw_ints.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/hw_include/hw_memmap.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/hw_include/hw_nvic.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/hw_include/hw_ssi.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/hw_include/hw_sysctl.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/hw_include/hw_timer.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/hw_include/hw_types.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/hw_include/hw_uart.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/hw_include/hw_watchdog.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/hw_include/i2c.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/hw_include/interrupt.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/hw_include/libdriver.a (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/hw_include/pdc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/hw_include/pdc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/hw_include/ssi.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/hw_include/sysctl.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/hw_include/systick.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/hw_include/timer.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/hw_include/uart.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S102_Rowley/hw_include/watchdog.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/LM3S316.icf (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/RTOSDemo.ewd (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/RTOSDemo.ewp (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/RTOSDemo.eww (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/commstest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/commstest.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/DriverLib.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/EULA.txt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/adc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/asmdefs.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/comp.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/cpu.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/cspy.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/debug.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/diag.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/driverlib.r79 (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/flash.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/gpio.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/hw_adc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/hw_comp.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/hw_flash.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/hw_gpio.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/hw_i2c.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/hw_ints.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/hw_memmap.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/hw_nvic.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/hw_pwm.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/hw_ssi.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/hw_sysctl.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/hw_timer.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/hw_types.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/hw_uart.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/hw_watchdog.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/i2c.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/interrupt.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/libdriver.a (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/pdc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/pdc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/pwm.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/ssi.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/startup.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/sysctl.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/systick.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/timer.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/uart.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/hw_include/watchdog.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/registertest.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/settings/RTOSDemo.dbgdt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/settings/RTOSDemo.dni (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/settings/RTOSDemo.wsdt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S316_IAR/settings/driverlib.wsdt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/Makefile (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/DriverLib.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/EULA.txt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/adc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/adc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/comp.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/comp.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/cpu.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/debug.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/driverlib.r79 (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/flash.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/flash.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/gpio.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/gpio.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/hw_adc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/hw_comp.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/hw_flash.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/hw_gpio.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/hw_i2c.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/hw_ints.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/hw_memmap.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/hw_nvic.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/hw_pwm.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/hw_qei.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/hw_ssi.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/hw_sysctl.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/hw_timer.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/hw_types.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/hw_uart.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/hw_watchdog.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/i2c.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/i2c.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/interrupt.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/interrupt.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/libdriver.a (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/osram96x16.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/osram96x16.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/pwm.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/pwm.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/qei.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/qei.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/ssi.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/ssi.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/sysctl.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/sysctl.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/systick.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/systick.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/timer.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/timer.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/uart.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/uart.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/watchdog.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/hw_include/watchdog.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/init/startup.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/makedefs (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_GCC/standalone.ld (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LM3S811.icf (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/DriverLib.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/EULA.txt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/adc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/adc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/comp.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/comp.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/cpu.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/debug.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/driverlib.r79 (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/flash.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/flash.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/gpio.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/gpio.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/hw_adc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/hw_comp.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/hw_flash.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/hw_gpio.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/hw_i2c.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/hw_ints.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/hw_memmap.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/hw_nvic.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/hw_pwm.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/hw_qei.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/hw_ssi.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/hw_sysctl.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/hw_timer.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/hw_types.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/hw_uart.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/hw_watchdog.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/i2c.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/i2c.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/interrupt.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/interrupt.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/osram96x16.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/osram96x16.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/pwm.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/pwm.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/qei.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/qei.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/ssi.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/ssi.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/sysctl.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/sysctl.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/systick.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/systick.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/timer.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/timer.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/uart.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/uart.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/watchdog.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/LuminaryCode/watchdog.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/RTOSDemo.ewd (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/RTOSDemo.ewp (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/RTOSDemo.eww (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_IAR/startup.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/LuminaryCode/DriverLib.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/LuminaryCode/hw_adc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/LuminaryCode/hw_comp.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/LuminaryCode/hw_flash.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/LuminaryCode/hw_gpio.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/LuminaryCode/hw_i2c.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/LuminaryCode/hw_ints.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/LuminaryCode/hw_memmap.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/LuminaryCode/hw_nvic.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/LuminaryCode/hw_pwm.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/LuminaryCode/hw_qei.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/LuminaryCode/hw_ssi.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/LuminaryCode/hw_sysctl.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/LuminaryCode/hw_timer.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/LuminaryCode/hw_types.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/LuminaryCode/hw_uart.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/LuminaryCode/hw_watchdog.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/LuminaryCode/osram96x16.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/LuminaryCode/osram96x16.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/LuminaryCode/src/adc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/LuminaryCode/src/comp.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/LuminaryCode/src/cpu.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/LuminaryCode/src/debug.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/LuminaryCode/src/flash.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/LuminaryCode/src/gpio.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/LuminaryCode/src/i2c.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/LuminaryCode/src/interrupt.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/LuminaryCode/src/pwm.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/LuminaryCode/src/qei.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/LuminaryCode/src/ssi.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/LuminaryCode/src/sysctl.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/LuminaryCode/src/systick.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/LuminaryCode/src/timer.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/LuminaryCode/src/uart.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/LuminaryCode/src/watchdog.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/RTOSDemo.Opt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/RTOSDemo.Uv2 (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/heap/heap_1.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/readme.txt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3S811_KEIL/startup_rvmdk.S (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/.log (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/shareddefaults.xml (100%) rename Demo/NiosII_CycloneIII_DBC3C40_GCC/cpu_sim/dummy_file => FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/.log (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/RTOSDemo.sc (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.ui/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/cHelpSettings.xml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/2f/4b/45/properties.index (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/33/5b/e7/7a/properties.index (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/33/a8/history.index (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/33/history.index (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/33/properties.index (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/history.index (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/properties.index (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.markers (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/19.tree (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/23.tree (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prj-RTOSDemo.prefs (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.core.prefs (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.ui.prefs (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.managedbuilder.core.prefs (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prefs (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.epp.usagedata.recording.prefs (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.equinox.p2.ui.sdk.prefs (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.help.ui.prefs (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.search.prefs (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.cvs.ui.prefs (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/OpenOCD Programmer.launch (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/OpenOCD Server.launch (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/RTOSDemo.launch (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.equinox.p2.ui.sdk/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.equinox.p2.ui.sdk/licenses.xml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.help.ui/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/Default.pref (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/relative_path.hist (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/working_set.hist (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/working_sets.hist (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ltk.ui.refactoring/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.search/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui.cheatsheets/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui.intro/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench.texteditor/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.update.ui/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/.metadata/version.ini (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/.cproject (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/.project (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/.settings/org.eclipse.ltk.core.refactoring.prefs (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/IntQueueTimer.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/IntQueueTimer.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/Makefile (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/bitmap.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/formike128x128x16.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/formike128x128x16.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/lcd_message.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/osram128x64x4.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/osram128x64x4.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/pack_struct_end.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/pack_struct_start.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/rit128x96x4.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/standalone.ld (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/startup.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/timertest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/Makefile.webserver (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/clock-arch.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/emac.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/emac.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/http-strings (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/http-strings.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/http-strings.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-cgi.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-cgi.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs/404.html (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs/index.html (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs/index.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs/io.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs/runtime.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs/stats.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs/tcp.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fsdata.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fsdata.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/makefsdata (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/makestrings (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/uIP_Task.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/uip-conf.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/webserver.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/fury_ft2232.cfg (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/fury_ft2232_flash.cfg (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Eclipse/program.script (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/IntQueueTimer.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/IntQueueTimer.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/LM3Sxxxx.icf (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.Opt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.Uv2 (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.ewd (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.ewp (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.eww (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/bitmap.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/formike128x128x16.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/formike128x128x16.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/lcd_message.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/osram128x64x4.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/osram128x64x4.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/rit128x96x4.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/settings/RTOSDemo.cspy.bat (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/settings/RTOSDemo.dbgdt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/settings/RTOSDemo.dni (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/settings/RTOSDemo.wsdt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/startup_ewarm.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/startup_rvmdk.S (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/timertest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/webserver/Makefile.webserver (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/webserver/clock-arch.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/webserver/emac.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/webserver/emac.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/webserver/http-strings (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/webserver/http-strings.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/webserver/http-strings.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-cgi.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-cgi.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs/404.html (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs/index.html (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs/index.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs/io.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs/stats.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs/tcp.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fsdata.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fsdata.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/webserver/makefsdata (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/webserver/makestrings (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/webserver/uIP_Task.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/webserver/uip-conf.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_IAR_Keil/webserver/webserver.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/IntQueueTimer.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/IntQueueTimer.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/LM3S_Startup.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/LM3S_Target.js (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/RTOSDemo.hzp (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/RTOSDemo.hzs (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/bitmap.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/formike128x128x16.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/formike128x128x16.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/lcd_message.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/osram128x64x4.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/osram128x64x4.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/pack_struct_end.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/pack_struct_start.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/rit128x96x4.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/thumb_crt0.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/timertest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/webserver/Makefile.webserver (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/webserver/clock-arch.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/webserver/emac.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/webserver/emac.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/webserver/http-strings (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/webserver/http-strings.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/webserver/http-strings.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-cgi.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-cgi.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs/404.html (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs/index.html (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs/index.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs/io.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs/runtime.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs/stats.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs/tcp.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fsdata.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fsdata.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/webserver/httpd.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/webserver/httpd.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/webserver/makefsdata (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/webserver/makestrings (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/webserver/uIP_Task.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/webserver/uip-conf.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LM3Sxxxx_Rowley/webserver/webserver.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/.cproject (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/.project (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/CreateProjectDirectoryStructure.bat (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/LCD/font.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/LCD/lcd.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/LCD/lcd.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/LCD/lcd_commands.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/LCD/lcd_driver.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/LCD/lcd_driver.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/LCD/system_fixed_be_8_15.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/LPC17xx.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/USB_CDC.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/type.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbapi.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbcontrol.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbdebug.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbhw_lpc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbhw_lpc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbinit.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbstdreq.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbstruct.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/core_cm3.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/cr_startup_lpc17.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/printf-stdarg.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/rtosdemo_rdb1768_Debug.ld (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/system_LPC17xx.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/EthDev.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/EthDev_LPC17xx.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/clock-arch.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/clock.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/emac.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/http-strings (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/http-strings.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/http-strings.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-cgi.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-cgi.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs/404.html (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs/index.html (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs/index.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs/io.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs/runtime.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs/stats.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs/tcp.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fsdata.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fsdata.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/lc-switch.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/lc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/makefsdata (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/makestrings (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/psock.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/psock.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/pt.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/timer.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/timer.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uIP_Task.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uip-conf.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uip.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uip.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uip_arch.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uip_arp.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uip_arp.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uipopt.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/src/webserver/webserver.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_RedSuite/usbser.inf (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/LED.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/LPC1700_Startup.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/LPC17xx.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/LPCUSB/USB_CDC.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/LPCUSB/type.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbapi.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbcontrol.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbdebug.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbhw_lpc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbhw_lpc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbinit.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbstdreq.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbstruct.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/RTOSDemo.hzp (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/RTOSDemo.hzs (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/core_cm3.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/flash_placement.xml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/printf-stdarg.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/system_LPC17xx.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/usbser.inf (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/webserver/EthDev.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/webserver/EthDev_LPC17xx.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/webserver/clock-arch.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/webserver/emac.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/webserver/http-strings (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/webserver/http-strings.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/webserver/http-strings.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-cgi.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-cgi.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs/404.html (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs/index.html (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs/index.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs/io.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs/runtime.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs/stats.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs/tcp.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fsdata.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fsdata.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/webserver/httpd.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/webserver/httpd.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/webserver/makefsdata (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/webserver/makestrings (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/webserver/uIP_Task.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/webserver/uip-conf.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_GCC_Rowley/webserver/webserver.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/Flash.mac (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/LED.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/LPC1768_Flash.icf (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/LPC17xx.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/LPCUSB/USB_CDC.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/LPCUSB/type.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/LPCUSB/usbapi.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/LPCUSB/usbcontrol.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/LPCUSB/usbdebug.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/LPCUSB/usbhw_lpc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/LPCUSB/usbhw_lpc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/LPCUSB/usbinit.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/LPCUSB/usbstdreq.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/LPCUSB/usbstruct.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/RTOSDemo.ewd (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/RTOSDemo.ewp (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/RTOSDemo.eww (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/cstartup_M.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/printf-stdarg.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/settings/RTOSDemo.cspy.bat (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/settings/RTOSDemo.dbgdt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/settings/RTOSDemo.dni (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/settings/RTOSDemo.wsdt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/settings/RTOSDemo_Debug.jlink (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/system_LPC17xx.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/usbser.inf (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/webserver/EthDev.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/webserver/EthDev_LPC17xx.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/webserver/clock-arch.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/webserver/emac.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/webserver/http-strings (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/webserver/http-strings.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/webserver/http-strings.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/webserver/httpd-cgi.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/webserver/httpd-cgi.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/webserver/httpd-fs.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/webserver/httpd-fs.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/webserver/httpd-fs/404.html (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/webserver/httpd-fs/index.html (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/webserver/httpd-fs/index.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/webserver/httpd-fs/io.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/webserver/httpd-fs/runtime.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/webserver/httpd-fs/stats.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/webserver/httpd-fs/tcp.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/webserver/httpd-fsdata.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/webserver/httpd-fsdata.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/webserver/httpd.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/webserver/httpd.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/webserver/makefsdata (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/webserver/makestrings (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/webserver/uIP_Task.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/webserver/uip-conf.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_LPC1768_IAR/webserver/webserver.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/.cproject (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/.project (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/docs/CMSIS END USER LICENCE AGREEMENT.pdf (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/docs/cmsis_readme.txt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/history.txt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/inc/LPC11xx.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/inc/core_cm0.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/inc/core_cmFunc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/inc/core_cmInstr.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/inc/system_LPC11xx.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/src/core_cm0.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/src/system_LPC11xx.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/.cproject (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/.project (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/CreateProjectDirectoryStructure.bat (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/IntQueueTimer.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/IntQueueTimer.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/RegTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/cr_startup_lpc11.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/main-blinky.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/main-full.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Eval-Board/stm320518_eval.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Eval-Board/stm320518_eval.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Eval-Board/stm32_eval_legacy.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Eval-Board/stm32f0xx_conf.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/CMSIS END USER LICENCE AGREEMENT.pdf (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Include/stm32f0xx.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Include/system_stm32f0xx.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Release_Notes.html (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Source/Templates/TrueSTUDIO/startup_stm32f0xx.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Source/Templates/arm/startup_stm32f0xx.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Source/Templates/gcc_ride7/startup_stm32f0xx.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Source/Templates/iar/startup_stm32f0xx.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Source/Templates/system_stm32f0xx.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/arm_common_tables.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/arm_math.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/core_cm0.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/core_cm3.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/core_cm4.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/core_cm4_simd.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/core_cmFunc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/core_cmInstr.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/README.txt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/MCD-ST Liberty SW License Agreement V2.pdf (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/Release_Notes.html (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_adc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_cec.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_comp.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_crc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_dac.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_dbgmcu.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_dma.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_exti.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_flash.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_gpio.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_i2c.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_iwdg.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_misc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_pwr.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_rcc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_rtc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_spi.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_syscfg.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_tim.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_usart.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_wwdg.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_adc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_cec.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_comp.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_crc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_dac.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_dbgmcu.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_dma.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_exti.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_flash.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_gpio.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_i2c.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_iwdg.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_misc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_pwr.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_rcc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_rtc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_spi.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_syscfg.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_tim.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_usart.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_wwdg.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/RTOSDemo.ewd (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/RTOSDemo.ewp (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/RTOSDemo.eww (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/RegTest.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/main-blinky.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/main-full.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/startup_stm32f0xx.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M0_STM32F0518_IAR/stm32f0xx_flash.icf (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/.cproject (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/.project (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/.settings/com.atollic.truestudio.debug.hardware_device.prefs (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/.settings/org.eclipse.cdt.managedbuilder.core.prefs (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Include/arm_common_tables.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Include/arm_math.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Include/core_cm4.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Include/core_cm4_simd.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Include/core_cmFunc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Include/core_cmInstr.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Infineon/XMC4500_series/Include/XMC4500.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Infineon/XMC4500_series/Include/gpio.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Infineon/XMC4500_series/Include/system_XMC4500.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CreateProjectDirectoryStructure.bat (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/src/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/src/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/src/main_blinky.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/src/main_full.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/src/startup_XMC4500.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/src/system_XMC4500.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/xmc4500_flash.ld (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_IAR/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_IAR/RTOSDemo.ewd (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_IAR/RTOSDemo.ewp (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_IAR/RTOSDemo.eww (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_IAR/RegTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_IAR/RegTest.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_IAR/XMC4500_Flash.icf (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_IAR/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_IAR/main_blinky.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_IAR/main_full.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_IAR/settings/RTOSDemo.cspy.bat (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_IAR/settings/RTOSDemo.dbgdt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_IAR/settings/RTOSDemo.dni (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_IAR/settings/RTOSDemo.wsdt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_IAR/system/CMSIS/DeviceSupport/Infineon/XMC45xx/System_XMC4500.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_IAR/system/CMSIS/DeviceSupport/Infineon/XMC45xx/XMC4500.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_IAR/system/CMSIS/DeviceSupport/Infineon/XMC45xx/startup/iar/vector_table_M_forXMC4500.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_IAR/system/CMSIS/DeviceSupport/Infineon/XMC45xx/system_XMC4500.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_IAR/system/low_level_init.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_Keil/Dbg_Flash.ini (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_Keil/Dbg_RAM TraceETM.ini (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_Keil/Dbg_RAM.ini (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_Keil/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_Keil/RTOSDemo.uvopt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_Keil/RTOSDemo.uvproj (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_Keil/RegTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_Keil/System_XMC4500.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_Keil/Template.sct (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_Keil/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_Keil/main_blinky.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_Keil/main_full.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_Keil/startup_XMC4500.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_Tasking/.cproject (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_Tasking/.project (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_Tasking/CreateProjectDirectoryStructure.bat (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_Tasking/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_Tasking/RTOSDemo.lsl (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_Tasking/Startup/Infineon/XMC4500/cstart_XMC4500.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_Tasking/Startup/Infineon/XMC4500/system_XMC4500.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_Tasking/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_Tasking/main_blinky.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_Infineon_XMC4500_Tasking/main_full.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/M0/ReadMe.txt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/M4/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/M4/LPC43XX-M4-FLASH-DEBUG.ini (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/M4/LPC43XX-M4-FLASH-PROGRAM.ini (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/M4/M4.uvopt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/M4/M4.uvproj (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/M4/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/M4/RegTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/M4/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/M4_M0_ipc.uvmpw (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_Flash.sct (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc43xx_cgu.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc43xx_cgu.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc43xx_emc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc43xx_emc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc43xx_i2c.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc43xx_i2c.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc43xx_libcfg_default.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc_types.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/platform/platform_check.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/platform/platform_config.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/platform/platform_config.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/platform/startup_LPC43xx.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/system/Hitex_Fast_Startup.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/system/LPC43xx.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/system/config.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/system/core_cm4.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/system/core_cm4.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/system/core_cmFunc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/system/core_cmInstr.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/system/dma.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/system/emc_LPC43xx.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/system/emc_LPC43xx.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/system/fpu_init.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/system/fpu_init.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/system/scu.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/system/scu.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/system/startup_LPC43xx.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/system/system_LPC43xx.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/system/system_LPC43xx.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_M0_LPC43xx_Keil/system/type.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/Libraries/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/Libraries/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/Libraries/CMSIS/Device/ST/STM32F4xx/Release_Notes.html (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/Libraries/CMSIS/Device/ST/STM32F4xx/Source/Templates/iar/startup_stm32f4xx.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/Libraries/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/Release_Notes.html (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/misc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_adc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_can.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_crc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_cryp.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_dac.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_dbgmcu.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_dcmi.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_dma.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_exti.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_flash.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_fsmc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_gpio.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_hash.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_i2c.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_iwdg.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_pwr.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_rcc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_rng.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_rtc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_sdio.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_spi.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_syscfg.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_tim.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_usart.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_wwdg.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/src/misc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/src/stm32f4xx_exti.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/src/stm32f4xx_gpio.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/src/stm32f4xx_rcc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/src/stm32f4xx_syscfg.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/RTOSDemo.ewd (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/RTOSDemo.ewp (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/RTOSDemo.eww (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/RegTest.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/board/arm_comm.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/board/iar_stm32f407zg_sk.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/board/iar_stm32f407zg_sk.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/config/stm32f4xx_flash.icf (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/settings/RTOSDemo.cspy.bat (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/settings/RTOSDemo.dbgdt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/settings/RTOSDemo.dni (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/settings/RTOSDemo.wsdt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/settings/Test.cspy.bat (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/settings/Test.dbgdt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/settings/Test.dni (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/settings/Test.wsdt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/settings/Test_Flash Debug.jlink (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/startup/startup_stm32f4xx.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/startup/system_stm32f4xx.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/stm32f4xx_conf.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/stm32f4xx_it.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4F_STM32F407ZG-SK/stm32f4xx_it.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/RTOSDemo.atsln (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/RTOSDemo.atsuo (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/RTOSDemo.cproj (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/BlockQ.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/GenQTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/PollQ.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/blocktim.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/comtest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/countsem.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/death.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/dynamic.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/flash_timer.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/BlockQ.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/GenQTest.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/PollQ.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/blocktim.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/comtest2.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/countsem.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/death.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/demo_serial.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/dynamic.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/flash_timer.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/integer.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/partest.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/recmutex.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/semtest.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/integer.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/recmutex.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/semtest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/boards/board.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/genclk.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/osc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/pll.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/sam4s/genclk.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/sam4s/osc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/sam4s/pll.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/sam4s/sysclk.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/sam4s/sysclk.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/sysclk.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/gpio/gpio.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/gpio/sam_ioport/sam_gpio.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/utils/interrupt.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/utils/interrupt/interrupt_sam_nvic.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/utils/interrupt/interrupt_sam_nvic.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/boards/sam4s_ek/init.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/boards/sam4s_ek/sam4s_ek.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/pio/pio.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/pio/pio.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/pio/pio_handler.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/pio/pio_handler.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/pmc/pmc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/pmc/pmc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/pmc/sleep.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/usart/usart.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/usart/usart.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_acc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_adc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_chipid.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_crccu.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_dacc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_efc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_gpbr.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_hsmci.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_matrix.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_pdc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_pio.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_pmc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_pwm.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_rstc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_rtc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_rtt.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_smc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_spi.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_ssc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_supc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_tc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_twi.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_uart.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_udp.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_usart.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_wdt.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_acc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_adc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_chipid.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_crccu.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_dacc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_efc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_gpbr.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_hsmci.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_matrix.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_pioa.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_piob.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_pioc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_pmc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_pwm.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_rstc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_rtc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_rtt.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_smc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_spi.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_ssc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_supc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_tc0.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_tc1.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_twi0.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_twi1.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_uart0.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_uart1.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_udp.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_usart0.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_usart1.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_wdt.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/pio/pio_sam4s16c.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/sam4s.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/sam4s16c.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/source/templates/exceptions.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/source/templates/exceptions.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/source/templates/gcc/startup_sam4s.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/source/templates/system_sam4s.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/source/templates/system_sam4s.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/compiler.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/header_files/io.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/linker_scripts/sam4s/sam4s16/gcc/flash.ld (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/make/Makefile.in (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/parts.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/preprocessor/mrepeat.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/preprocessor/preprocessor.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/preprocessor/stringz.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/preprocessor/tpaste.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/status_codes.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/CMSIS END USER LICENCE AGREEMENT.pdf (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/Include/arm_math.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/Include/core_cm4.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/Include/core_cm4_simd.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/Include/core_cmFunc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/Include/core_cmInstr.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/README.txt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/license.txt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/FreeRTOS.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/StackMacros.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/croutine.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/list.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/mpu_wrappers.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/portable.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/projdefs.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/queue.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/semphr.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/task.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/timers.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/list.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/portable/GCC/ARM_CM3/port.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/portable/GCC/ARM_CM3/portmacro.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/portable/MemMang/heap_2.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/queue.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/tasks.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/timers.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/config/conf_board.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/config/conf_clock.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/main_blinky.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/main_full.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_M4_ATSAM4S_Atmel_Studio/src/serial.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9A310_IAR_Keil/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9A310_IAR_Keil/Fujitu_source/core_cm3.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9A310_IAR_Keil/Fujitu_source/mb9af314l.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9A310_IAR_Keil/Fujitu_source/mcu.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9A310_IAR_Keil/Fujitu_source/startup_iar/startup_mb9af31x.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9A310_IAR_Keil/Fujitu_source/startup_keil/startup_mb9af31x.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9A310_IAR_Keil/Fujitu_source/system_mb9af31x.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9A310_IAR_Keil/Fujitu_source/system_mb9af31x.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9A310_IAR_Keil/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9A310_IAR_Keil/RTOSDemo_IAR.ewd (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9A310_IAR_Keil/RTOSDemo_IAR.ewp (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9A310_IAR_Keil/RTOSDemo_IAR.eww (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9A310_IAR_Keil/RTOSDemo_Keil.uvopt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9A310_IAR_Keil/RTOSDemo_Keil.uvproj (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9A310_IAR_Keil/config/Ram_VTOR.mac (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9A310_IAR_Keil/config/flashloader/FlashLoader.board (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9A310_IAR_Keil/config/flashloader/FlashMB9A310.flash (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9A310_IAR_Keil/config/flashloader/FlashMB9A310.mac (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9A310_IAR_Keil/config/flashloader/FlashMB9A310.out (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9A310_IAR_Keil/config/mb9af314.icf (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9A310_IAR_Keil/main-full.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9A310_IAR_Keil/main_blinky.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9A310_IAR_Keil/serial.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9B500_IAR_Keil/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9B500_IAR_Keil/Fujitu_source/core_cm3.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9B500_IAR_Keil/Fujitu_source/core_cm3.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9B500_IAR_Keil/Fujitu_source/mb9bf506n.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9B500_IAR_Keil/Fujitu_source/startup_iar/startup_mb9bf50x.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9B500_IAR_Keil/Fujitu_source/startup_keil/startup_mb9bf50x.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9B500_IAR_Keil/Fujitu_source/system_mb9bf50x.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9B500_IAR_Keil/Fujitu_source/system_mb9bf50x.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9B500_IAR_Keil/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9B500_IAR_Keil/RTOSDemo_IAR.ewd (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9B500_IAR_Keil/RTOSDemo_IAR.ewp (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9B500_IAR_Keil/RTOSDemo_IAR.eww (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9B500_IAR_Keil/RTOSDemo_Keil.uvopt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9B500_IAR_Keil/RTOSDemo_Keil.uvproj (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9B500_IAR_Keil/config/MB9BF506.icf (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9B500_IAR_Keil/config/Ram_VTOR.mac (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9B500_IAR_Keil/config/flashloader/FlashLoader.board (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9B500_IAR_Keil/config/flashloader/FlashMB9BF506.flash (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9B500_IAR_Keil/config/flashloader/FlashMB9BF506.mac (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9B500_IAR_Keil/config/flashloader/FlashMB9BF506.out (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9B500_IAR_Keil/config/mb9bf506_ram.icf (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9B500_IAR_Keil/main-full.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9B500_IAR_Keil/main_blinky.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MB9B500_IAR_Keil/serial.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MPU_LM3Sxxxx_Rowley/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MPU_LM3Sxxxx_Rowley/LM3S_Startup.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MPU_LM3Sxxxx_Rowley/LM3S_Target.js (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MPU_LM3Sxxxx_Rowley/RTOSDemo.hzp (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MPU_LM3Sxxxx_Rowley/RTOSDemo.hzs (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MPU_LM3Sxxxx_Rowley/flash_placement.xml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MPU_LM3Sxxxx_Rowley/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MPU_LM3Sxxxx_Rowley/thumb_crt0.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MPU_LPC1768_GCC_RedSuite/.cproject (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MPU_LPC1768_GCC_RedSuite/.project (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MPU_LPC1768_GCC_RedSuite/CreateProjectDirectoryStructure.bat (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MPU_LPC1768_GCC_RedSuite/src/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LCD/font.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LCD/lcd.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LCD/lcd.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LCD/lcd_commands.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LCD/lcd_driver.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LCD/lcd_driver.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LCD/system_fixed_be_8_15.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LPC17xx.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MPU_LPC1768_GCC_RedSuite/src/core_cm3.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MPU_LPC1768_GCC_RedSuite/src/cr_startup_lpc17.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MPU_LPC1768_GCC_RedSuite/src/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MPU_LPC1768_GCC_RedSuite/src/printf-stdarg.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MPU_LPC1768_GCC_RedSuite/src/rtosdemo_rdb1768_Debug.ld (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MPU_LPC1768_GCC_RedSuite/src/syscalls.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_MPU_LPC1768_GCC_RedSuite/src/system_LPC17xx.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F100_Atollic/.cproject (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F100_Atollic/.project (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F100_Atollic/.settings/com.atollic.truestudio.debug.hardware_device.prefs (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F100_Atollic/.settings/org.eclipse.cdt.managedbuilder.core.prefs (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F100_Atollic/CreateProjectDirectoryStructure.bat (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F100_Atollic/Libraries/CMSIS/CM3/CoreSupport/core_cm3.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F100_Atollic/Libraries/CMSIS/CM3/CoreSupport/core_cm3.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F100_Atollic/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/startup/TrueSTUDIO/startup_stm32f10x_md_vl.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F100_Atollic/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/stm32f10x.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F100_Atollic/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F100_Atollic/Libraries/CMSIS/License.doc (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/inc/misc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/inc/stm32f10x_exti.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/inc/stm32f10x_gpio.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/inc/stm32f10x_rcc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/src/misc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F100_Atollic/Simple_Demo_Source/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F100_Atollic/Simple_Demo_Source/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F100_Atollic/Simple_Demo_Source/stm32f10x_conf.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F100_Atollic/Simple_Demo_Source/stm32f10x_it.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F100_Atollic/Simple_Demo_Source/stm32f10x_it.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F100_Atollic/Simple_Demo_Source/system_stm32f10x.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F100_Atollic/Utilities/STM32_EVAL/STM32_Discovery/STM32vldiscovery.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F100_Atollic/Utilities/STM32_EVAL/STM32_Discovery/STM32vldiscovery.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F100_Atollic/stm32_flash.ld (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/Drivers/SPI_Flash_ST_Eval.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/Drivers/SPI_Flash_ST_Eval.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/Drivers/STM32_USART.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/Drivers/STM32_USART.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ParTest/ParTest_MCBSTM32.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ParTest/ParTest_ST_Eval.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ParTest/ReadMe.txt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/RTOSDemo.hzp (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/RTOSDemo.hzs (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/STM32F10x.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/cortexm3_macro.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_adc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_bkp.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_can.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_crc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_dac.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_dbgmcu.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_dma.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_exti.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_flash.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_fsmc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_gpio.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_i2c.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_iwdg.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_lib.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_map.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_nvic.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_pwr.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_rcc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_rtc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_sdio.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_spi.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_systick.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_tim.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_type.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_usart.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_wwdg.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_can.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_gpio.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_i2c.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_lib.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_nvic.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_rcc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_spi.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_systick.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_usart.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/STM32F10x_Startup.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/stm32f10x_conf.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_GCC_Rowley/stm32f10x_it.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/LCD_Message.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/RTOSDemo.ewd (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/RTOSDemo.ewp (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/RTOSDemo.eww (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/cortexm3_macro.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/lcd.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/spi_flash.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_adc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_bkp.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_can.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_dma.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_exti.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_gpio.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_i2c.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_it.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_iwdg.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_lib.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_map.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_nvic.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_pwr.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_rcc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_rtc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_spi.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_systick.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_tim.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_tim1.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_type.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_usart.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_wwdg.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/cortexm3_macro.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/lcd.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_adc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_bkp.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_can.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_dma.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_exti.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_gpio.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_i2c.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_iwdg.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_lib.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_nvic.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_pwr.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_rcc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_rtc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_spi.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_systick.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_tim.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_tim1.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_usart.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_wwdg.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10xFWLib/version.txt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/STM32F10x_FLASH.icf (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/spi_flash.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/stm32f10x_conf.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/stm32f10x_it.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/stm32f10x_vector.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_IAR/timertest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/LCD_Message.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/RTOSDemo.Opt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/RTOSDemo.Uv2 (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/RTOSDemo.plg (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/RTOSDemo.sct (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10x.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/cortexm3_macro.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/lcd.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/spi_flash.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_adc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_bkp.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_can.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_dma.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_exti.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_gpio.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_i2c.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_it.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_iwdg.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_lib.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_map.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_nvic.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_pwr.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_rcc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_rtc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_spi.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_systick.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_tim.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_tim1.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_type.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_usart.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_wwdg.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/cortexm3_macro.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/lcd.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_adc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_bkp.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_can.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_dma.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_exti.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_gpio.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_i2c.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_iwdg.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_lib.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_nvic.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_pwr.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_rcc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_rtc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_spi.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_systick.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_tim.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_tim1.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_usart.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_wwdg.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/STM32F10xFWLib/version.txt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/spi_flash.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/stm32f10x_conf.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Keil/timertest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Primer_GCC/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Primer_GCC/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Primer_GCC/RTOSDemo-globals.Standard.xml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Primer_GCC/RTOSDemo.Standard.xml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Primer_GCC/RTOSDemo.rapp (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Primer_GCC/RTOSDemo.rprj (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Primer_GCC/ST_Code/Util.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Primer_GCC/ST_Code/adc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Primer_GCC/ST_Code/buzzer.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Primer_GCC/ST_Code/circle.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Primer_GCC/ST_Code/circle_api.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Primer_GCC/ST_Code/crt0_STM32x.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Primer_GCC/ST_Code/draw.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Primer_GCC/ST_Code/lcd.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Primer_GCC/ST_Code/lcd.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Primer_GCC/ST_Code/led.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Primer_GCC/ST_Code/mems.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Primer_GCC/ST_Code/pointer.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Primer_GCC/ST_Code/scheduler.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Primer_GCC/ST_Code/stm32f10x_circle_it.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Primer_GCC/ST_Code/stm32f10x_conf.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Primer_GCC/ST_Code/stm32f10x_it.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Primer_GCC/ST_Code/stm32f10x_tim.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Primer_GCC/bitmap.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Primer_GCC/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Primer_GCC/printf-stdarg.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Primer_GCC/syscalls.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F103_Primer_GCC/timertest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/FreeRTOSConfig.h.scsc (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/LCD/STM3210D_lcd.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/LCD/fonts.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/LCD/lcd.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/LCD_Message.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/RTOSDemo.hzp (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/RTOSDemo.hzs (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/STM32F10x.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/STM32F10x_Startup.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/printf-stdarg.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/scsc.tmp (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/spi_flash.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/stm32f10x.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/stm32f10x_conf.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/stm32f10x_connctivity_line.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/timertest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/webserver/clock-arch.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/webserver/emac.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/webserver/emac.c.scsc (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/webserver/emac.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/webserver/emac.h.scsc (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/webserver/http-strings (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/webserver/http-strings.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/webserver/http-strings.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-cgi.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-cgi.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs/404.html (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs/index.html (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs/index.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs/io.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs/runtime.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs/stats.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs/tcp.shtml (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fsdata.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fsdata.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/webserver/httpd.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/webserver/httpd.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/webserver/makefsdata (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/webserver/makestrings (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/webserver/uIP_Task.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/webserver/uip-conf.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32F107_GCC_Rowley/webserver/webserver.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/RTOSDemo.ewd (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/RTOSDemo.ewp (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/RTOSDemo.eww (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/serial.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/settings/RTOSDemo.cspy.bat (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/settings/RTOSDemo.dbgdt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/settings/RTOSDemo.dni (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/settings/RTOSDemo.wsdt (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/settings/RTOSDemo_Debug.jlink (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CM3/CoreSupport/core_cm3.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CM3/DeviceSupport/ST/Release_Notes_for_STM32L1xx_CMSIS.html (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CM3/DeviceSupport/ST/STM32L1xx/startup/arm/startup_stm32l1xx_md.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CM3/DeviceSupport/ST/STM32L1xx/startup/iar/startup_stm32l1xx_md.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CM3/DeviceSupport/ST/STM32L1xx/stm32l1xx.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CM3/DeviceSupport/ST/STM32L1xx/system_stm32l1xx.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CMSIS changes.htm (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CMSIS debug support.htm (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CMSIS_changes.htm (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/Documentation/CMSIS_Core.htm (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/License.doc (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/Common/fonts.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/Common/fonts.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L152_EVAL/stm32l152_eval.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L152_EVAL/stm32l152_eval.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L152_EVAL/stm32l152_eval_lcd.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L152_EVAL/stm32l152_eval_lcd.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/misc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_exti.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_gpio.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_i2c.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_pwr.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_rcc.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_spi.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_syscfg.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_tim.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_usart.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/misc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_exti.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_gpio.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_pwr.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_rcc.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_spi.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_syscfg.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_tim.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_usart.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/startup_stm32l1xx_md.s (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/stm32_eval.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/stm32l1xx_conf.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/stm32l1xx_flash.icf (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/stm32l1xx_it.c (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/stm32l1xx_it.h (100%) rename {Demo => FreeRTOS/Demo}/CORTEX_STM32L152_IAR/system_and_ST_code/system_stm32l1xx.c (100%) rename {Demo => FreeRTOS/Demo}/CORTUS_APS3_GCC/.cproject (100%) rename {Demo => FreeRTOS/Demo}/CORTUS_APS3_GCC/.project (100%) rename {Demo => FreeRTOS/Demo}/CORTUS_APS3_GCC/BSP_ProjectForDebugging.zip (100%) rename {Demo => FreeRTOS/Demo}/CORTUS_APS3_GCC/CreateProjectDirectoryStructure.bat (100%) rename {Demo => FreeRTOS/Demo}/CORTUS_APS3_GCC/Demo/7seg.c (100%) rename {Demo => FreeRTOS/Demo}/CORTUS_APS3_GCC/Demo/7seg.h (100%) rename {Demo => FreeRTOS/Demo}/CORTUS_APS3_GCC/Demo/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/CORTUS_APS3_GCC/Demo/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTUS_APS3_GCC/Demo/RegTest.c (100%) rename {Demo => FreeRTOS/Demo}/CORTUS_APS3_GCC/Demo/RegTest.h (100%) rename {Demo => FreeRTOS/Demo}/CORTUS_APS3_GCC/Demo/demoGpio.h (100%) rename {Demo => FreeRTOS/Demo}/CORTUS_APS3_GCC/Demo/main.c (100%) rename {Demo => FreeRTOS/Demo}/CORTUS_APS3_GCC/Demo/serial.c (100%) rename {Demo => FreeRTOS/Demo}/CORTUS_APS3_GCC/ReadMe_Set_Up.txt (100%) rename Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/private/private.properties => FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/CFV1_BDM_P&E_Multilink_CyclonePro.hwc (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/CFV1_BDM_P&E_Multilink_CyclonePro.ini (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/CFV1_Full_Chip_Simulator.ini (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/C_Layout.hwl (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Default.mem (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/RTOSDemo.mcp (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/FEC.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/FEC.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/derivative.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/eth.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/eth_phy.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/exceptions.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/exceptions.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/exceptions.old0.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/fecbd.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/clock-arch.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/http-strings (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/http-strings.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/http-strings.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-cgi.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-cgi.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs/404.html (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs/index.html (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs/index.shtml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs/io.shtml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs/stats.shtml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs/tcp.shtml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fsdata.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fsdata.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/makefsdata (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/makestrings (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/pack_struct_end.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/pack_struct_start.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/uIP_Task.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/uip-conf.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/webserver.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/main.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/mii.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/printf-stdarg.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/startcf.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/startcf.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/stdlib.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/Sources/stdlib.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_BDM_P&E_Multilink_CyclonePro_Postload.cmd (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_BDM_P&E_Multilink_CyclonePro_Preload.cmd (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_BDM_P&E_Multilink_CyclonePro_Reset.cmd (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_BDM_P&E_Multilink_CyclonePro_Startup.cmd (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_Full_Chip_Simulator_Postload.cmd (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_Full_Chip_Simulator_Preload.cmd (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_Full_Chip_Simulator_Reset.cmd (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_Full_Chip_Simulator_Startup.cmd (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF51CN128_CodeWarrior/prm/Project.lcf (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/RTOSDemo.mcp (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/RTOSDemo_Data/CWSettingsWindows.stg (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/RTOSDemo_Data/INTERNAL_FLASH/TargetDataWindows.tdt (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/cfg/MCF52221_CONSOLE_INTERNAL_RAM.cfg (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/cfg/MCF52221_CONSOLE_INTERNAL_RAM.mem (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/cfg/MCF52221_INTERNAL_FLASH.cfg (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/cfg/MCF52221_INTERNAL_FLASH.mem (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/cfg/MCF52221_INTERNAL_RAM.cfg (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/cfg/MCF52221_INTERNAL_RAM.mem (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/cfg/MCF52221_INTFLASH.xml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/headers/MCF52221.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_ADC.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_CCM.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_CFM.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_CLOCK.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_DMA.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_DTIM.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_EPORT.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_GPIO.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_GPTA.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_I2C.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_INTC.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_PAD.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_PIT.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_PMM.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_PWM.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_QSPI.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_RCM.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_RTC.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_SCM.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_UART.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_USB_OTG.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/lcf/MCF52221_INTERNAL_FLASH.lcf (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/readme.txt (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/sources/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/sources/FreeRTOS_Tick_Setup.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/sources/MCF52221_sysinit.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/sources/MCF52221_sysinit.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/sources/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/sources/cfm.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/sources/exceptions.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/sources/exceptions.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/sources/lwipopts.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/sources/main.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/sources/printf-stdarg.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/sources/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/sources/startcf.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/sources/startcf.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/sources/stdlib.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/sources/stdlib.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/sources/support_common.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/sources/uart_support.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52221_CodeWarrior/sources/uart_support.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.log (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.mylyn/repositories.xml.zip (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/.log (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/shareddefaults.xml (100%) rename Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/project.properties => FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/.log (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/RTOSDemo.sc (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.ui/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/properties.index (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/2.tree (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prefs (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prj-RTOSDemo.prefs (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.core.prefs (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.managedbuilder.core.prefs (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prefs (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.equinox.p2.ui.sdk.prefs (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/RTOSDemo.launch (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.jdt.ui/OpenTypeHistory.xml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/.workspace/2008/11/47/refactorings.history (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/.workspace/2008/11/47/refactorings.index (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ltk.ui.refactoring/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ui.intro/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/.metadata/version.ini (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/.cproject (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/.project (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/.settings/org.eclipse.ltk.core.refactoring.prefs (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/FreeRTOS_Tick_Setup.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_ADC.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_CCM.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_CFM.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_CLOCK.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_DMA.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_DTIM.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_EPHY.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_EPORT.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_FEC.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_FlexCAN.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_GIACR.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_GPIO.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_GPTA.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_I2C.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_INTC.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_PAD.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_PIT.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_PMM.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_PWM.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_QSPI.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_RCM.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_RNGA.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_RTC.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_SCM.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_UART.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/Makefile (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/m52235evb-rom-hosted.ld (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/main.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/printf-stdarg.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/FEC.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/FEC.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/eth.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/eth_phy.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/fecbd.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/http-strings.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/http-strings.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-cgi.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-cgi.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/404.html (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/image.html (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/image.jpg (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/index.html (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/index.shtml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/io.shtml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/logo.jpg (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/stats.shtml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/tcp.shtml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fsdata.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fsdata.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/makefsdata (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/mii.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/uIP_Task.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/uip-conf.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/webserver.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/FreeRTOS_Tick_Setup.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_ADC.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_BWT.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_CANMB.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_CCM.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_CFM.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_CLOCK.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_DMA.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_DTIM.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_EPORT.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_FBCS.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_FEC.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_FlexCAN.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_GPIO.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_GPT.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_I2C.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_INTC.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_PAD.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_PIT.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_PMM.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_PWM.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_QSPI.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_RCM.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_RNGA.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_RTC.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_SCM.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_TMR.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_UART.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_USB_OTG.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/common.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/mcf5225x.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/mcf5225x_evb.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/mcf5xxx.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/HTTPDemo.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/HTTPDemo.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/RTOSDemo.mcp (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/RTOSDemo_Data/CWSettingsWindows.stg (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/RTOSDemo_Data/INTERNAL_FLASH/TargetDataWindows.tdt (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/cfg/MCF52259_INTERNAL_FLASH.cfg (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/cfg/MCF52259_INTERNAL_FLASH.mem (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/cfg/MCF52259_INTFLASH.xml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/cfg/mcf5225xEVB_PnE.cfg (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/cpu/mcf5225x.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/cpu/mcf5225x.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/cpu/mcf5225x_lo.s (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/cpu/mcf5225x_sysinit.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/cpu/mcf5225x_vectors.s (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/cpu/mcf5xxx.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/cpu/mcf5xxx.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/cpu/mcf5xxx_lo.s (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/lcf/MCF52259_INTERNAL_FLASH.lcf (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/lwipopts.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/main.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/printf-stdarg.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/readme.txt (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/stdlib.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF52259_CodeWarrior/stdlib.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.mylyn/repositories.xml.zip (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/shareddefaults.xml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/RTOSDemo.sc (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.ui/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/18/5b/5e/properties.index (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/18/5b/e7/74/properties.index (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/18/5b/e7/a1/history.index (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/18/5b/e7/a1/properties.index (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/18/a8/properties.index (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/18/history.index (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/18/properties.index (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/b3/history.index (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/b3/properties.index (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/c/history.index (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/c/properties.index (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/c7/properties.index (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/f7/29/7f/99/81/ce/1e/history.index (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/f7/29/7f/99/81/ce/1e/properties.index (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/f7/29/7f/e4/1a/properties.index (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/f7/7f/history.index (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/f7/7f/properties.index (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/f7/a8/properties.index (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/history.index (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/properties.index (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.markers (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/33.tree (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prefs (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prj-RTOSDemo.prefs (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.core.prefs (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.ui.prefs (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.managedbuilder.core.prefs (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.mylyn.ui.prefs (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prefs (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.core.prefs (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.equinox.p2.ui.sdk.prefs (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.core.prefs (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.debug.ui.prefs (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.search.prefs (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.browser.prefs (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/RTOSDemo.launch (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.jdt.ui/OpenTypeHistory.xml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.ltk.ui.refactoring/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.pde.core/.cache/clean-cache.properties (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.search/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.ui.intro/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench.texteditor/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/.metadata/version.ini (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/RTOSDemo/.cproject (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/RTOSDemo/.project (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/RTOSDemo/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/RTOSDemo/FreeRTOS_Tick_Setup.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/RTOSDemo/IntQueueTimer.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/RTOSDemo/IntQueueTimer.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_CCM.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_CFM.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_CLOCK.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_CS.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_DMA.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_DTIM.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_EPORT.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_FEC.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_FlexCAN.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_GIACR.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_GPIO.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_GPTA.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_GPTB.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_I2C.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_INTC.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_PAD.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_PIT.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_PMM.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_QADC.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_QSPI.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_RCM.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_SCM.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_SDRAMC.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_UART.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_WTM.h (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/RTOSDemo/Makefile (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/RTOSDemo/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/RTOSDemo/m5282evb-dram_code-rambar_data-hosted.ld (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/RTOSDemo/m5282evb-ram.ld (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/RTOSDemo/main.c (100%) rename {Demo => FreeRTOS/Demo}/ColdFire_MCF5282_Eclipse/RTOSDemo/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/00index_e.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/00index_j.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/css_e.css (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/css_j.css (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/en/appnote.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/en/chdir.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/en/chdrive.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/en/chmod.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/en/close.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/en/dinit.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/en/dioctl.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/en/dread.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/en/dstat.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/en/dwrite.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/en/fattime.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/en/filename.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/en/forward.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/en/getfree.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/en/gets.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/en/lseek.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/en/mkdir.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/en/mkfs.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/en/mount.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/en/open.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/en/opendir.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/en/printf.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/en/putc.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/en/puts.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/en/read.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/en/readdir.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/en/rename.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/en/sdir.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/en/sfatfs.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/en/sfile.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/en/sfileinfo.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/en/stat.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/en/sync.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/en/truncate.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/en/unlink.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/en/utime.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/en/write.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/img/f1.png (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/img/f2.png (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/img/f3.png (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/img/f4.png (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/img/f5.png (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/img/layers.png (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/img/rwtest.png (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/img/rwtest2.png (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/ja/appnote.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/ja/chdir.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/ja/chdrive.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/ja/chmod.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/ja/close.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/ja/dinit.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/ja/dioctl.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/ja/dread.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/ja/dstat.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/ja/dwrite.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/ja/fattime.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/ja/filename.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/ja/forward.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/ja/getfree.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/ja/gets.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/ja/lseek.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/ja/mkdir.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/ja/mkfs.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/ja/mount.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/ja/open.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/ja/opendir.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/ja/printf.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/ja/putc.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/ja/puts.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/ja/read.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/ja/readdir.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/ja/rename.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/ja/sdir.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/ja/sfatfs.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/ja/sfile.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/ja/sfileinfo.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/ja/stat.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/ja/sync.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/ja/truncate.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/ja/unlink.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/ja/utime.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/ja/write.html (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/doc/updates.txt (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/src/00readme.txt (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/src/Copy of ff.c (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/src/fat_integer.h (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/src/ff.c (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/src/ff.h (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/src/option/cc932.c (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/src/option/cc936.c (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/src/option/cc949.c (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/src/option/cc950.c (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/src/option/ccsbcs.c (100%) rename {Demo => FreeRTOS/Demo}/Common/FileSystem/FatFs-0.7e/src/option/syncobj.c (100%) rename {Demo => FreeRTOS/Demo}/Common/Full/BlockQ.c (100%) rename {Demo => FreeRTOS/Demo}/Common/Full/PollQ.c (100%) rename {Demo => FreeRTOS/Demo}/Common/Full/comtest.c (100%) rename {Demo => FreeRTOS/Demo}/Common/Full/death.c (100%) rename {Demo => FreeRTOS/Demo}/Common/Full/dynamic.c (100%) rename {Demo => FreeRTOS/Demo}/Common/Full/events.c (100%) rename {Demo => FreeRTOS/Demo}/Common/Full/flash.c (100%) rename {Demo => FreeRTOS/Demo}/Common/Full/flop.c (100%) rename {Demo => FreeRTOS/Demo}/Common/Full/integer.c (100%) rename {Demo => FreeRTOS/Demo}/Common/Full/print.c (100%) rename {Demo => FreeRTOS/Demo}/Common/Full/semtest.c (100%) rename {Demo => FreeRTOS/Demo}/Common/Minimal/AltBlckQ.c (100%) rename {Demo => FreeRTOS/Demo}/Common/Minimal/AltBlock.c (100%) rename {Demo => FreeRTOS/Demo}/Common/Minimal/AltPollQ.c (100%) rename {Demo => FreeRTOS/Demo}/Common/Minimal/AltQTest.c (100%) rename {Demo => FreeRTOS/Demo}/Common/Minimal/BlockQ.c (100%) rename {Demo => FreeRTOS/Demo}/Common/Minimal/GenQTest.c (100%) rename {Demo => FreeRTOS/Demo}/Common/Minimal/IntQueue.c (100%) rename {Demo => FreeRTOS/Demo}/Common/Minimal/PollQ.c (100%) rename {Demo => FreeRTOS/Demo}/Common/Minimal/QPeek.c (100%) rename {Demo => FreeRTOS/Demo}/Common/Minimal/TimerDemo.c (100%) rename {Demo => FreeRTOS/Demo}/Common/Minimal/blocktim.c (100%) rename {Demo => FreeRTOS/Demo}/Common/Minimal/comtest.c (100%) rename {Demo => FreeRTOS/Demo}/Common/Minimal/comtest_strings.c (100%) rename {Demo => FreeRTOS/Demo}/Common/Minimal/countsem.c (100%) rename {Demo => FreeRTOS/Demo}/Common/Minimal/crflash.c (100%) rename {Demo => FreeRTOS/Demo}/Common/Minimal/crhook.c (100%) rename {Demo => FreeRTOS/Demo}/Common/Minimal/death.c (100%) rename {Demo => FreeRTOS/Demo}/Common/Minimal/dynamic.c (100%) rename {Demo => FreeRTOS/Demo}/Common/Minimal/flash.c (100%) rename {Demo => FreeRTOS/Demo}/Common/Minimal/flash_timer.c (100%) rename {Demo => FreeRTOS/Demo}/Common/Minimal/flop.c (100%) rename {Demo => FreeRTOS/Demo}/Common/Minimal/integer.c (100%) rename {Demo => FreeRTOS/Demo}/Common/Minimal/recmutex.c (100%) rename {Demo => FreeRTOS/Demo}/Common/Minimal/semtest.c (100%) rename {Demo => FreeRTOS/Demo}/Common/Minimal/sp_flop.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe128/AT91SAM9XE128.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe128/flash.icf (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe128/sdram.icf (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe128/sram.icf (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe256/AT91SAM9XE256.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe256/flash.icf (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe256/sdram.icf (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe256/sram.icf (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe512/AT91SAM9XE512.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe512/flash.icf (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe512/sdram.icf (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe512/sram.icf (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/board.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/board_cstartup_iar.s (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/board_lowlevel.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/board_memories.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/board_memories.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/ac97c/ac97c.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/ac97c/ac97c.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/aes/aes.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/aes/aes.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/aic/aic.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/aic/aic.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/can/can.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/can/can.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/dbgu/dbgu.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/dbgu/dbgu.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/eefc/eefc.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/eefc/eefc.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/efc/efc.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/efc/efc.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/emac/emac.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/emac/emac.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/lcd/lcd.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/lcd/lcd.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/mci/mci.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/mci/mci.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/pio/pio.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/pio/pio.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/pio/pio_it.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/pio/pio_it.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/pit/pit.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/pit/pit.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/pmc/pmc.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/pmc/pmc.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/pwmc/pwmc.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/pwmc/pwmc.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/rstc/rstc.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/rstc/rstc.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/rtc/rtc.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/rtc/rtc.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/rtt/rtt.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/rtt/rtt.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/slcdc/slcdc.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/slcdc/slcdc.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/spi/spi.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/spi/spi.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/ssc/ssc.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/ssc/ssc.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/supc/supc.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/supc/supc.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/tc/tc.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/tc/tc.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/tdes/tdes.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/tdes/tdes.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/twi/twi.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/twi/twi.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/usart/usart.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/peripherals/usart/usart.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/utility/assert.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/utility/led.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/utility/led.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/Atmel/at91lib/utility/trace.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/EULA.txt (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/IAR/driverlib.a (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/IAR/grlib.a (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/Keil/driverlib.lib (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/Keil/grlib.lib (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/Rowley/libdriver.a (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/Rowley/libgr.a (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/adc.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/arm-none-eabi-gcc/libdriver.a (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/arm-none-eabi-gcc/libgr.a (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/can.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/comp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/cpu.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/debug.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/ethernet.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/gpio.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/grlib.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/hibernate.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/hw_adc.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/hw_can.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/hw_comp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/hw_ethernet.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/hw_flash.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/hw_gpio.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/hw_hibernate.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/hw_i2c.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/hw_ints.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/hw_memmap.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/hw_nvic.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/hw_pwm.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/hw_qei.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/hw_ssi.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/hw_sysctl.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/hw_timer.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/hw_types.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/hw_uart.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/hw_udma.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/hw_usb.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/hw_watchdog.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/i2c.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/interrupt.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/lmi_flash.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/lmi_timer.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/mpu.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/pwm.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/qei.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/rit128x96x4.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/rom.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/ssi.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/sysctl.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/systick.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/timer.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/uart.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/ustdlib.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/LuminaryMicro/watchdog.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/OpenOCD/license.txt (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/OpenOCD/openocd-pp.exe (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/OpenOCD/openocd_ftdi.exe (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/inc/cortexm3_macro.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/inc/lcd.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/inc/misc.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/inc/spi_flash.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_adc.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_bkp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_can.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_crc.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_dac.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_dbgmcu.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_dma.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_exti.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_flash.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_fsmc.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_gpio.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_i2c.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_it.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_iwdg.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_lib.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_map.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_nvic.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_pwr.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_rcc.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_rtc.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_sdio.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_spi.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_systick.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_tim.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_tim1.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_type.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_usart.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_wwdg.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/inc/stm32fxxx_eth.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/inc/stm32fxxx_eth_conf.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/inc/stm32fxxx_eth_lib.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/inc/stm32fxxx_eth_map.h (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/src/cortexm3_macro_iar.s (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/src/cortexm3_macro_rvds.s (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/src/lcd.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/src/misc.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_adc.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_bkp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_can.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_crc.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_dac.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_dbgmcu.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_dma.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_exti.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_flash.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_fsmc.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_gpio.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_i2c.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_iwdg.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_lib.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_nvic.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_pwr.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_rcc.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_rtc.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_sdio.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_spi.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_systick.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_tim.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_tim1.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_usart.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_wwdg.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/src/stm32fxxx_eth.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/src/stm32fxxx_eth_lib.c (100%) rename {Demo => FreeRTOS/Demo}/Common/drivers/ST/STM32F10xFWLib/version.txt (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeRTOS-uIP/Makefile.include (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeRTOS-uIP/clock-arch.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeRTOS-uIP/clock.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeRTOS-uIP/lc-addrlabels.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeRTOS-uIP/lc-switch.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeRTOS-uIP/lc.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeRTOS-uIP/psock.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeRTOS-uIP/psock.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeRTOS-uIP/pt.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeRTOS-uIP/timer.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeRTOS-uIP/timer.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeRTOS-uIP/uip-fw.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeRTOS-uIP/uip-neighbor.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeRTOS-uIP/uip-split.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeRTOS-uIP/uip-split.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeRTOS-uIP/uip.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeRTOS-uIP/uip.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeRTOS-uIP/uip_arch.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeRTOS-uIP/uip_arp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeRTOS-uIP/uip_arp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeRTOS-uIP/uip_timer.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeRTOS-uIP/uiplib.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeRTOS-uIP/uiplib.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeRTOS-uIP/uipopt.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeTCPIP/apps/httpd/http-strings.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeTCPIP/apps/httpd/http-strings.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeTCPIP/apps/httpd/httpd-cgi.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeTCPIP/apps/httpd/httpd-cgi.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeTCPIP/apps/httpd/httpd-fs.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeTCPIP/apps/httpd/httpd-fs.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeTCPIP/apps/httpd/httpd-fsdata.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeTCPIP/apps/httpd/httpd.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeTCPIP/apps/httpd/httpd.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeTCPIP/apps/httpd/makefsdata (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeTCPIP/net/clock-arch.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeTCPIP/net/lc-switch.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeTCPIP/net/lc.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeTCPIP/net/pack_struct_end.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeTCPIP/net/pack_struct_start.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeTCPIP/net/psock.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeTCPIP/net/pt.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeTCPIP/net/uip.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeTCPIP/net/uip_arch.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeTCPIP/net/uip_arp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeTCPIP/net/uipopt.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeTCPIP/psock.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeTCPIP/sys/clock.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeTCPIP/sys/pt.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeTCPIP/sys/timer.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeTCPIP/timer.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeTCPIP/uip.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/FreeTCPIP/uip_arp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/FILES (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/api/api_lib.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/api/api_msg.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/api/err.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/api/sockets.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/api/tcpip.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/core/dhcp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/core/inet.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/core/inet6.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/core/ipv4/icmp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/core/ipv4/ip.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/core/ipv4/ip_addr.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/core/ipv4/ip_frag.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/core/mem.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/core/memp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/core/netif.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/core/pbuf.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/core/raw.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/core/snmp/asn1_dec.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/core/snmp/asn1_enc.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/core/snmp/mib2.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/core/snmp/mib_structs.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/core/snmp/msg_in.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/core/snmp/msg_out.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/core/stats.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/core/sys.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/core/tcp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/core/tcp_in.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/core/tcp_out.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/core/udp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/include/ipv4/lwip/icmp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/include/ipv4/lwip/inet.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/include/ipv4/lwip/ip.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/include/ipv4/lwip/ip_addr.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/include/ipv4/lwip/ip_frag.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/include/lwip/api.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/include/lwip/api_msg.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/include/lwip/arch.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/include/lwip/debug.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/include/lwip/def.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/include/lwip/dhcp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/include/lwip/err.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/include/lwip/mem.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/include/lwip/memp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/include/lwip/netif.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/include/lwip/pbuf.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/include/lwip/raw.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/include/lwip/sio.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/include/lwip/snmp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/include/lwip/snmp_asn1.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/include/lwip/snmp_msg.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/include/lwip/snmp_structs.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/include/lwip/sockets.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/include/lwip/stats.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/include/lwip/sys.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/include/lwip/tcp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/include/lwip/tcpip.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/include/lwip/udp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/include/netif/etharp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/include/netif/loopif.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/include/netif/slipif.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/netif/FILES (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/netif/etharp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/netif/ethernetif.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/netif/loopif.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/netif/ppp/auth.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/netif/ppp/auth.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/netif/ppp/chap.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/netif/ppp/chap.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/netif/ppp/chpms.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/netif/ppp/chpms.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/netif/ppp/fsm.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/netif/ppp/fsm.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/netif/ppp/ipcp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/netif/ppp/ipcp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/netif/ppp/lcp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/netif/ppp/lcp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/netif/ppp/magic.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/netif/ppp/magic.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/netif/ppp/md5.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/netif/ppp/md5.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/netif/ppp/pap.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/netif/ppp/pap.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/netif/ppp/ppp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/netif/ppp/ppp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/netif/ppp/pppdebug.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/netif/ppp/randm.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/netif/ppp/randm.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/netif/ppp/vj.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/netif/ppp/vj.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/netif/ppp/vjbsdhdr.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP/netif/slipif.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/CHANGELOG (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/COPYING (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/FILES (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/README (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/MCF5225x_ethernetif.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/__sys_arch.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/arch/cc.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/arch/cpu.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/arch/perf.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/arch/sys_arch.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/eth.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/eth_phy.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/fec.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/fecbd.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/mii.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/STR91x/arch/cc.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/STR91x/arch/cpu.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/STR91x/arch/init.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/STR91x/arch/lib.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/STR91x/arch/perf.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/STR91x/arch/sys_arch.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/sys_arch.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/doc/FILES (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/doc/contrib.txt (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/doc/rawapi.txt (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/doc/savannah.txt (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/doc/snmp_agent.txt (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/doc/sys_arch.txt (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/FILES (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/api/api_lib.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/api/api_msg.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/api/err.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/api/netbuf.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/api/netdb.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/api/netifapi.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/api/sockets.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/api/tcpip.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/core/dhcp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/core/dns.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/core/init.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/core/ipv4/autoip.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/core/ipv4/icmp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/core/ipv4/igmp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/core/ipv4/inet.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/core/ipv4/inet_chksum.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/core/ipv4/ip.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/core/ipv4/ip_addr.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/core/ipv4/ip_frag.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/core/ipv6/README (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/core/ipv6/icmp6.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/core/ipv6/inet6.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/core/ipv6/ip6.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/core/ipv6/ip6_addr.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/core/mem.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/core/memp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/core/netif.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/core/pbuf.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/core/raw.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/core/snmp/asn1_dec.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/core/snmp/asn1_enc.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/core/snmp/mib2.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/core/snmp/mib_structs.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/core/snmp/msg_in.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/core/snmp/msg_out.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/core/stats.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/core/sys.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/core/tcp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/core/tcp_in.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/core/tcp_out.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/core/udp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/ipv4/lwip/autoip.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/ipv4/lwip/icmp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/ipv4/lwip/igmp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/ipv4/lwip/inet.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/ipv4/lwip/inet_chksum.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/ipv4/lwip/ip.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/ipv4/lwip/ip_addr.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/ipv4/lwip/ip_frag.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/ipv6/lwip/icmp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/ipv6/lwip/inet.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/ipv6/lwip/ip.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/ipv6/lwip/ip_addr.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/lwip/api.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/lwip/api_msg.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/lwip/arch.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/lwip/debug.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/lwip/def.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/lwip/dhcp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/lwip/dns.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/lwip/err.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/lwip/init.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/lwip/mem.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/lwip/memp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/lwip/memp_std.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/lwip/netbuf.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/lwip/netdb.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/lwip/netif.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/lwip/netifapi.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/lwip/opt.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/lwip/pbuf.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/lwip/raw.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/lwip/sio.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/lwip/snmp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/lwip/snmp_asn1.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/lwip/snmp_msg.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/lwip/snmp_structs.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/lwip/sockets.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/lwip/stats.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/lwip/sys.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/lwip/tcp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/lwip/tcpip.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/lwip/udp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/netif/etharp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/netif/loopif.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/netif/ppp_oe.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/include/netif/slipif.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/netif/FILES (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/netif/etharp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/netif/ethernetif.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/netif/loopif.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/netif/ppp/auth.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/netif/ppp/auth.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/netif/ppp/chap.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/netif/ppp/chap.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/netif/ppp/chpms.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/netif/ppp/chpms.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/netif/ppp/fsm.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/netif/ppp/fsm.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/netif/ppp/ipcp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/netif/ppp/ipcp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/netif/ppp/lcp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/netif/ppp/lcp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/netif/ppp/magic.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/netif/ppp/magic.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/netif/ppp/md5.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/netif/ppp/md5.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/netif/ppp/pap.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/netif/ppp/pap.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/netif/ppp/ppp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/netif/ppp/ppp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/netif/ppp/ppp_oe.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/netif/ppp/pppdebug.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/netif/ppp/randm.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/netif/ppp/randm.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/netif/ppp/vj.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/netif/ppp/vj.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/netif/ppp/vjbsdhdr.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/netif/slipif.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_130/src/netif/stf91x_ethernetif.c (100%) rename Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/system_routed => FreeRTOS/Demo/Common/ethernet/lwIP_130/sys (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/CHANGELOG (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/COPYING (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/FILES (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/README (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/doc/FILES (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/doc/contrib.txt (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/doc/rawapi.txt (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/doc/savannah.txt (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/doc/snmp_agent.txt (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/doc/sys_arch.txt (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/FILES (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/api/api_lib.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/api/api_msg.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/api/err.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/api/netbuf.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/api/netdb.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/api/netifapi.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/api/sockets.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/api/tcpip.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/core/dhcp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/core/dns.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/core/init.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/core/ipv4/autoip.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/core/ipv4/icmp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/core/ipv4/igmp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/core/ipv4/inet.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/core/ipv4/inet_chksum.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/core/ipv4/ip.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/core/ipv4/ip_addr.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/core/ipv4/ip_frag.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/core/ipv6/README (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/core/ipv6/icmp6.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/core/ipv6/inet6.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/core/ipv6/ip6.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/core/ipv6/ip6_addr.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/core/mem.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/core/memp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/core/netif.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/core/pbuf.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/core/raw.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/core/snmp/asn1_dec.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/core/snmp/asn1_enc.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/core/snmp/mib2.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/core/snmp/mib_structs.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/core/snmp/msg_in.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/core/snmp/msg_out.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/core/stats.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/core/sys.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/core/tcp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/core/tcp_in.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/core/tcp_out.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/core/udp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/ipv4/lwip/autoip.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/ipv4/lwip/icmp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/ipv4/lwip/igmp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/ipv4/lwip/inet.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/ipv4/lwip/inet_chksum.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/ipv4/lwip/ip.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/ipv4/lwip/ip_addr.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/ipv4/lwip/ip_frag.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/ipv6/lwip/icmp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/ipv6/lwip/inet.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/ipv6/lwip/ip.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/ipv6/lwip/ip_addr.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/lwip/api.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/lwip/api_msg.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/lwip/arch.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/lwip/debug.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/lwip/def.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/lwip/dhcp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/lwip/dns.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/lwip/err.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/lwip/init.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/lwip/mem.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/lwip/memp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/lwip/memp_std.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/lwip/netbuf.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/lwip/netdb.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/lwip/netif.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/lwip/netifapi.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/lwip/opt.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/lwip/pbuf.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/lwip/raw.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/lwip/sio.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/lwip/snmp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/lwip/snmp_asn1.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/lwip/snmp_msg.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/lwip/snmp_structs.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/lwip/sockets.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/lwip/stats.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/lwip/sys.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/lwip/tcp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/lwip/tcpip.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/lwip/udp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/netif/etharp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/netif/loopif.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/netif/ppp_oe.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/include/netif/slipif.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/netif/FILES (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/netif/etharp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/netif/ethernetif.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/netif/loopif.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/netif/ppp/auth.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/netif/ppp/auth.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/netif/ppp/chap.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/netif/ppp/chap.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/netif/ppp/chpms.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/netif/ppp/chpms.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/netif/ppp/fsm.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/netif/ppp/fsm.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/netif/ppp/ipcp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/netif/ppp/ipcp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/netif/ppp/lcp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/netif/ppp/lcp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/netif/ppp/magic.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/netif/ppp/magic.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/netif/ppp/md5.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/netif/ppp/md5.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/netif/ppp/pap.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/netif/ppp/pap.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/netif/ppp/ppp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/netif/ppp/ppp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/netif/ppp/ppp_oe.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/netif/ppp/pppdebug.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/netif/ppp/randm.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/netif/ppp/randm.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/netif/ppp/vj.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/netif/ppp/vj.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/netif/ppp/vjbsdhdr.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwIP_132/src/netif/slipif.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/CHANGELOG (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/COPYING (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/FILES (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/README (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/UPGRADING (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/doc/FILES (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/doc/contrib.txt (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/doc/rawapi.txt (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/doc/savannah.txt (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/doc/snmp_agent.txt (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/doc/sys_arch.txt (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/SP605_PHY.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/ethernetif.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/include/arch/bpstruct.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/include/arch/cc.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/include/arch/epstruct.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/include/arch/perf.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/include/arch/sys_arch.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/sys_arch.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/Packet32.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/PacketData.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/Win32-Extensions.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/arch.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/bittypes.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/ip6_misc.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/netif.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap-bpf.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap-namedb.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap-stdinc.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap/bluetooth.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap/bpf.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap/namedb.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap/sll.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap/usb.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap/vlan.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/remote-ext.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/wpcap.lib (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/ports/win32/ethernetif.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/ports/win32/include/arch/bpstruct.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/ports/win32/include/arch/cc.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/ports/win32/include/arch/epstruct.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/ports/win32/include/arch/perf.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/ports/win32/include/arch/sys_arch.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/ports/win32/lwipcfg_msvc.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/ports/win32/sys_arch.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/.hgignore (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/FILES (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/api/api_lib.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/api/api_msg.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/api/err.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/api/netbuf.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/api/netdb.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/api/netifapi.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/api/sockets.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/api/tcpip.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/core/def.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/core/dhcp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/core/dns.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/core/init.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/core/ipv4/autoip.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/core/ipv4/icmp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/core/ipv4/igmp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/core/ipv4/inet.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/core/ipv4/inet_chksum.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/core/ipv4/ip.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/core/ipv4/ip_addr.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/core/ipv4/ip_frag.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/core/ipv6/README (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/core/ipv6/icmp6.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/core/ipv6/inet6.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/core/ipv6/ip6.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/core/ipv6/ip6_addr.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/core/lwip_timers.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/core/mem.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/core/memp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/core/netif.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/core/pbuf.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/core/raw.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/core/snmp/asn1_dec.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/core/snmp/asn1_enc.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/core/snmp/mib2.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/core/snmp/mib_structs.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/core/snmp/msg_in.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/core/snmp/msg_out.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/core/stats.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/core/sys.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/core/tcp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/core/tcp_in.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/core/tcp_out.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/core/udp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/autoip.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/icmp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/igmp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/inet.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/inet_chksum.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/ip.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/ip_addr.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/ip_frag.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/ipv6/lwip/icmp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/ipv6/lwip/inet.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/ipv6/lwip/ip.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/ipv6/lwip/ip_addr.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/lwip/api.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/lwip/api_msg.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/lwip/arch.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/lwip/debug.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/lwip/def.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/lwip/dhcp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/lwip/dns.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/lwip/err.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/lwip/init.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/lwip/mem.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/lwip/memp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/lwip/memp_std.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/lwip/netbuf.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/lwip/netdb.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/lwip/netif.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/lwip/netifapi.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/lwip/opt.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/lwip/pbuf.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/lwip/raw.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/lwip/sio.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/lwip/snmp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/lwip/snmp_asn1.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/lwip/snmp_msg.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/lwip/snmp_structs.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/lwip/sockets.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/lwip/stats.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/lwip/sys.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/lwip/tcp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/lwip/tcp_impl.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/lwip/tcpip.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/lwip/timers.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/lwip/udp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/netif/etharp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/netif/ppp_oe.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/include/netif/slipif.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/netif/FILES (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/netif/etharp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/netif/ethernetif.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/netif/ppp/auth.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/netif/ppp/auth.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/netif/ppp/chap.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/netif/ppp/chap.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/netif/ppp/chpms.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/netif/ppp/chpms.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/netif/ppp/fsm.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/netif/ppp/fsm.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/netif/ppp/ipcp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/netif/ppp/ipcp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/netif/ppp/lcp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/netif/ppp/lcp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/netif/ppp/magic.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/netif/ppp/magic.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/netif/ppp/md5.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/netif/ppp/md5.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/netif/ppp/pap.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/netif/ppp/pap.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/netif/ppp/ppp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/netif/ppp/ppp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/netif/ppp/ppp_oe.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/netif/ppp/pppdebug.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/netif/ppp/randm.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/netif/ppp/randm.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/netif/ppp/vj.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/netif/ppp/vj.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/lwip-1.4.0/src/netif/slipif.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/README (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/apps/README (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/apps/webserver/Makefile.webserver (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/apps/webserver/http-strings (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/apps/webserver/http-strings.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/apps/webserver/http-strings.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-cgi.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-cgi.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/404.html (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/fade.png (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/files.shtml (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/footer.html (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/header.html (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/index.html (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/processes.shtml (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/stats.shtml (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/style.css (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/tcp.shtml (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fsdata.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fsdata.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/apps/webserver/makefsdata (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/apps/webserver/makestrings (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/apps/webserver/webserver.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/uip-1.0-changelog.txt (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/uip/Makefile.include (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/uip/clock.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/uip/lc-addrlabels.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/uip/lc-switch.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/uip/lc.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/uip/psock.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/uip/psock.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/uip/pt.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/uip/timer.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/uip/timer.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/uip/uip-fw.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/uip/uip-fw.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/uip/uip-neighbor.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/uip/uip-neighbor.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/uip/uip-split.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/uip/uip-split.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/uip/uip.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/uip/uip.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/uip/uip_arch.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/uip/uip_arp.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/uip/uip_arp.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/uip/uiplib.c (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/uip/uiplib.h (100%) rename {Demo => FreeRTOS/Demo}/Common/ethernet/uIP/uip-1.0/uip/uipopt.h (100%) rename {Demo => FreeRTOS/Demo}/Common/include/AltBlckQ.h (100%) rename {Demo => FreeRTOS/Demo}/Common/include/AltBlock.h (100%) rename {Demo => FreeRTOS/Demo}/Common/include/AltPollQ.h (100%) rename {Demo => FreeRTOS/Demo}/Common/include/AltQTest.h (100%) rename {Demo => FreeRTOS/Demo}/Common/include/BlockQ.h (100%) rename {Demo => FreeRTOS/Demo}/Common/include/GenQTest.h (100%) rename {Demo => FreeRTOS/Demo}/Common/include/IntQueue.h (100%) rename {Demo => FreeRTOS/Demo}/Common/include/PollQ.h (100%) rename {Demo => FreeRTOS/Demo}/Common/include/QPeek.h (100%) rename {Demo => FreeRTOS/Demo}/Common/include/TimerDemo.h (100%) rename {Demo => FreeRTOS/Demo}/Common/include/blocktim.h (100%) rename {Demo => FreeRTOS/Demo}/Common/include/comtest.h (100%) rename {Demo => FreeRTOS/Demo}/Common/include/comtest2.h (100%) rename {Demo => FreeRTOS/Demo}/Common/include/comtest_strings.h (100%) rename {Demo => FreeRTOS/Demo}/Common/include/countsem.h (100%) rename {Demo => FreeRTOS/Demo}/Common/include/crflash.h (100%) rename {Demo => FreeRTOS/Demo}/Common/include/crhook.h (100%) rename {Demo => FreeRTOS/Demo}/Common/include/death.h (100%) rename {Demo => FreeRTOS/Demo}/Common/include/dynamic.h (100%) rename {Demo => FreeRTOS/Demo}/Common/include/fileIO.h (100%) rename {Demo => FreeRTOS/Demo}/Common/include/flash.h (100%) rename {Demo => FreeRTOS/Demo}/Common/include/flash_timer.h (100%) rename {Demo => FreeRTOS/Demo}/Common/include/flop.h (100%) rename {Demo => FreeRTOS/Demo}/Common/include/integer.h (100%) rename {Demo => FreeRTOS/Demo}/Common/include/mevents.h (100%) rename {Demo => FreeRTOS/Demo}/Common/include/partest.h (100%) rename {Demo => FreeRTOS/Demo}/Common/include/print.h (100%) rename {Demo => FreeRTOS/Demo}/Common/include/recmutex.h (100%) rename {Demo => FreeRTOS/Demo}/Common/include/semtest.h (100%) rename {Demo => FreeRTOS/Demo}/Common/include/serial.h (100%) rename {Demo => FreeRTOS/Demo}/Cygnal/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/Cygnal/Makefile (100%) rename {Demo => FreeRTOS/Demo}/Cygnal/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/Cygnal/c8051f120.h (100%) rename {Demo => FreeRTOS/Demo}/Cygnal/main.c (100%) rename {Demo => FreeRTOS/Demo}/Cygnal/sdcc.wsp (100%) rename {Demo => FreeRTOS/Demo}/Cygnal/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/Flshlite/FRConfig.h (100%) rename {Demo => FreeRTOS/Demo}/Flshlite/FileIO/fileIO.c (100%) rename {Demo => FreeRTOS/Demo}/Flshlite/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/Flshlite/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/Flshlite/RTOSDEMO.IDE (100%) rename {Demo => FreeRTOS/Demo}/Flshlite/main.c (100%) rename {Demo => FreeRTOS/Demo}/Flshlite/rtosdemo.DSW (100%) rename {Demo => FreeRTOS/Demo}/Flshlite/rtosdemo.lk1 (100%) rename {Demo => FreeRTOS/Demo}/Flshlite/rtosdemo.mk (100%) rename {Demo => FreeRTOS/Demo}/Flshlite/rtosdemo.mk1 (100%) rename {Demo => FreeRTOS/Demo}/Flshlite/rtosdemo.tgt (100%) rename {Demo => FreeRTOS/Demo}/Flshlite/rtosdemo.wpj (100%) rename {Demo => FreeRTOS/Demo}/Flshlite/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/H8S/RTOSDemo.hws (100%) rename {Demo => FreeRTOS/Demo}/H8S/RTOSDemo.tws (100%) rename {Demo => FreeRTOS/Demo}/H8S/RTOSDemo/2329S.h (100%) rename {Demo => FreeRTOS/Demo}/H8S/RTOSDemo/Debug/Debug.hdp (100%) rename {Demo => FreeRTOS/Demo}/H8S/RTOSDemo/Debug/RTOSDemo.x (100%) rename {Demo => FreeRTOS/Demo}/H8S/RTOSDemo/Debug/gnuconfig.ini (100%) rename {Demo => FreeRTOS/Demo}/H8S/RTOSDemo/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/H8S/RTOSDemo/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/H8S/RTOSDemo/RTOSDemo.hwp (100%) rename {Demo => FreeRTOS/Demo}/H8S/RTOSDemo/RTOSDemo.tps (100%) rename {Demo => FreeRTOS/Demo}/H8S/RTOSDemo/Release session.hsf (100%) rename {Demo => FreeRTOS/Demo}/H8S/RTOSDemo/Release/gnuconfig.ini (100%) rename {Demo => FreeRTOS/Demo}/H8S/RTOSDemo/Simulator sessions.hsf (100%) rename {Demo => FreeRTOS/Demo}/H8S/RTOSDemo/main.c (100%) rename {Demo => FreeRTOS/Demo}/H8S/RTOSDemo/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/H8S/RTOSDemo/start.asm (100%) rename {Demo => FreeRTOS/Demo}/H8S/RTOSDemo/vects.c (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/CODE/Byte1.C (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/CODE/Byte1.H (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/CODE/COM0.C (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/CODE/COM0.H (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/CODE/Copy of Vectors.c (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/CODE/Cpu.C (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/CODE/Cpu.H (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/CODE/Events.C (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/CODE/Events.H (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/CODE/IO_Map.C (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/CODE/IO_Map.H (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/CODE/PESL.h (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/CODE/PE_Const.H (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/CODE/PE_Error.H (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/CODE/PE_Timer.C (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/CODE/PE_Timer.H (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/CODE/PE_Types.H (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/CODE/RTOSDemo.C (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/CODE/RTOSDemo.PRM (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/CODE/TickTimer.C (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/CODE/TickTimer.H (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/CODE/Vectors.c (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/C_Layout.hwl (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/DOC/RTOSDemo.sig (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/DOC/RTOSDemo.txt (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/P&E_ICD.ini (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/RTOSDemo.G_C (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/RTOSDemo.dsk (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/RTOSDemo.mcp (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/RTOSDemo.pe (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/RTOSDemo_Data/CWSettingsWindows.stg (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/RTOSDemo_Data/P&E_ICD/TargetDataWindows.tdt (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/RTOSDemo_Data/Simulator/TargetDataWindows.tdt (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/Simulator.ini (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/Sources/Start12.c (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/Sources/datapage.c (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/bin/P&E_ICD.map (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/bin/Simulator.map (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/cmd/P&E_ICD_Erase_unsecure_hcs12.cmd (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/cmd/P&E_ICD_Postload.cmd (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/cmd/P&E_ICD_Preload.cmd (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/cmd/P&E_ICD_Reset.cmd (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/cmd/P&E_ICD_Startup.cmd (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/cmd/P&E_ICD_Vppoff.cmd (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/cmd/P&E_ICD_Vppon.cmd (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/cmd/Simulator_Postload.cmd (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/cmd/Simulator_Preload.cmd (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/cmd/Simulator_Reset.cmd (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/cmd/Simulator_SetCPU.cmd (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/cmd/Simulator_Startup.cmd (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/main.c (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/prm/burner.bbl (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/readme.txt (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_banked/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/CODE/ButtonInterrupt.C (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/CODE/ButtonInterrupt.H (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/CODE/Byte1.C (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/CODE/Byte1.H (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/CODE/Copy of Vectors.c (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/CODE/Cpu.C (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/CODE/Cpu.H (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/CODE/Events.C (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/CODE/Events.H (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/CODE/IO_Map.C (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/CODE/IO_Map.H (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/CODE/PESL.h (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/CODE/PE_Const.H (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/CODE/PE_Error.H (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/CODE/PE_Timer.C (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/CODE/PE_Timer.H (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/CODE/PE_Types.H (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/CODE/RTOSDemo.C (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/CODE/RTOSDemo.PRM (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/CODE/TickTimer.C (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/CODE/TickTimer.H (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/CODE/Vectors.c (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/C_Layout.hwl (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/DOC/RTOSDemo.sig (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/DOC/RTOSDemo.txt (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/RTOSDemo.G_C (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/RTOSDemo.dsk (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/RTOSDemo.mcp (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/RTOSDemo.pe (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/RTOSDemo_Data/CWSettingsWindows.stg (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/RTOSDemo_Data/Simulator/TargetDataWindows.tdt (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/RTOSDemo_Data/SofTec/TargetDataWindows.tdt (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/Simulator.ini (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/SofTec.ini (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/Sources/Start12.c (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/Sources/datapage.c (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/bin/Simulator.map (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/bin/SofTec.map (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/cmd/Simulator_Postload.cmd (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/cmd/Simulator_Preload.cmd (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/cmd/Simulator_Reset.cmd (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/cmd/Simulator_SetCPU.cmd (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/cmd/Simulator_Startup.cmd (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/cmd/SofTec_Postload.cmd (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/cmd/SofTec_Preload.cmd (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/cmd/SofTec_Reset.cmd (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/cmd/SofTec_Startup.cmd (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/main.c (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/prm/burner.bbl (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/readme.txt (100%) rename {Demo => FreeRTOS/Demo}/HCS12_CodeWarrior_small/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/HCS12_GCC_banked/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/HCS12_GCC_banked/Makefile (100%) rename {Demo => FreeRTOS/Demo}/HCS12_GCC_banked/PE_Error.h (100%) rename {Demo => FreeRTOS/Demo}/HCS12_GCC_banked/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/HCS12_GCC_banked/README.txt (100%) rename {Demo => FreeRTOS/Demo}/HCS12_GCC_banked/asm-m68hcs12/arch-dragon12/arch/exit.h (100%) rename {Demo => FreeRTOS/Demo}/HCS12_GCC_banked/asm-m68hcs12/arch-dragon12/arch/interrupts.h (100%) rename {Demo => FreeRTOS/Demo}/HCS12_GCC_banked/asm-m68hcs12/arch-dragon12/arch/param.h (100%) rename {Demo => FreeRTOS/Demo}/HCS12_GCC_banked/asm-m68hcs12/interrupts-dp256.h (100%) rename {Demo => FreeRTOS/Demo}/HCS12_GCC_banked/asm-m68hcs12/interrupts.h (100%) rename {Demo => FreeRTOS/Demo}/HCS12_GCC_banked/asm-m68hcs12/param.h (100%) rename {Demo => FreeRTOS/Demo}/HCS12_GCC_banked/asm-m68hcs12/ports.h (100%) rename {Demo => FreeRTOS/Demo}/HCS12_GCC_banked/asm-m68hcs12/ports_def.h (100%) rename {Demo => FreeRTOS/Demo}/HCS12_GCC_banked/asm-m68hcs12/sio.h (100%) rename {Demo => FreeRTOS/Demo}/HCS12_GCC_banked/cpu.h (100%) rename {Demo => FreeRTOS/Demo}/HCS12_GCC_banked/gelfunc.c (100%) rename {Demo => FreeRTOS/Demo}/HCS12_GCC_banked/ldscript-rtos.x (100%) rename {Demo => FreeRTOS/Demo}/HCS12_GCC_banked/main.c (100%) rename {Demo => FreeRTOS/Demo}/HCS12_GCC_banked/memory.x (100%) rename {Demo => FreeRTOS/Demo}/HCS12_GCC_banked/sci.c (100%) rename {Demo => FreeRTOS/Demo}/HCS12_GCC_banked/sci.h (100%) rename {Demo => FreeRTOS/Demo}/HCS12_GCC_banked/serial.c (100%) rename {Demo => FreeRTOS/Demo}/HCS12_GCC_banked/startup.c (100%) rename {Demo => FreeRTOS/Demo}/HCS12_GCC_banked/sys/interrupts.h (100%) rename {Demo => FreeRTOS/Demo}/HCS12_GCC_banked/sys/param.h (100%) rename {Demo => FreeRTOS/Demo}/HCS12_GCC_banked/sys/ports.h (100%) rename {Demo => FreeRTOS/Demo}/HCS12_GCC_banked/sys/ports_def.h (100%) rename {Demo => FreeRTOS/Demo}/HCS12_GCC_banked/sys/sio.h (100%) rename {Demo => FreeRTOS/Demo}/HCS12_GCC_banked/vectors.c (100%) rename {Demo => FreeRTOS/Demo}/MB91460_Softune/91460_template_91467d.dat (100%) rename {Demo => FreeRTOS/Demo}/MB91460_Softune/91467d_FreeRTOS.prj (100%) rename {Demo => FreeRTOS/Demo}/MB91460_Softune/91467d_FreeRTOS.wsp (100%) rename {Demo => FreeRTOS/Demo}/MB91460_Softune/PRC/set_MONITOR.prc (100%) rename {Demo => FreeRTOS/Demo}/MB91460_Softune/PRC/set_MONITOR_INTERNAL.prc (100%) rename {Demo => FreeRTOS/Demo}/MB91460_Softune/PRC/set_RESET.prc (100%) rename {Demo => FreeRTOS/Demo}/MB91460_Softune/PRC/set_ROMS.prc (100%) rename {Demo => FreeRTOS/Demo}/MB91460_Softune/PRC/set_SIMULATE.prc (100%) rename {Demo => FreeRTOS/Demo}/MB91460_Softune/SRC/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/MB91460_Softune/SRC/Start91460.asm (100%) rename {Demo => FreeRTOS/Demo}/MB91460_Softune/SRC/crflash_modified.c (100%) rename {Demo => FreeRTOS/Demo}/MB91460_Softune/SRC/main.c (100%) rename {Demo => FreeRTOS/Demo}/MB91460_Softune/SRC/mb91467d.asm (100%) rename {Demo => FreeRTOS/Demo}/MB91460_Softune/SRC/mb91467d.h (100%) rename {Demo => FreeRTOS/Demo}/MB91460_Softune/SRC/partest/partest.c (100%) rename {Demo => FreeRTOS/Demo}/MB91460_Softune/SRC/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/MB91460_Softune/SRC/utility/printf-stdarg.c (100%) rename {Demo => FreeRTOS/Demo}/MB91460_Softune/SRC/utility/taskutility.c (100%) rename {Demo => FreeRTOS/Demo}/MB91460_Softune/SRC/utility/taskutility.h (100%) rename {Demo => FreeRTOS/Demo}/MB91460_Softune/SRC/vectors.c (100%) rename {Demo => FreeRTOS/Demo}/MB91460_Softune/SRC/vectors.h (100%) rename {Demo => FreeRTOS/Demo}/MB91460_Softune/SRC/watchdog/watchdog.c (100%) rename {Demo => FreeRTOS/Demo}/MB91460_Softune/SRC/watchdog/watchdog.h (100%) rename {Demo => FreeRTOS/Demo}/MB91460_Softune/STANDALONE/MB2198-01-COM1.sup (100%) rename {Demo => FreeRTOS/Demo}/MB91460_Softune/STANDALONE/MB2198-01-LAN.sup (100%) rename {Demo => FreeRTOS/Demo}/MB91460_Softune/STANDALONE/MB2198-01-USB.sup (100%) rename {Demo => FreeRTOS/Demo}/MB91460_Softune/STANDALONE/Mondeb_57K6_com1.sup (100%) rename {Demo => FreeRTOS/Demo}/MB91460_Softune/STANDALONE/Mondeb_57K6_com2.sup (100%) rename {Demo => FreeRTOS/Demo}/MB91460_Softune/STANDALONE/Simulator.sup (100%) rename {Demo => FreeRTOS/Demo}/MB91460_Softune/readme.txt (100%) rename {Demo => FreeRTOS/Demo}/MB96340_Softune/96340_FreeRTOS_96348hs.wsp (100%) rename {Demo => FreeRTOS/Demo}/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/FreeRTOS_96348hs_SK16FX100PMC.prj (100%) rename {Demo => FreeRTOS/Demo}/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Prc/romconst.prc (100%) rename {Demo => FreeRTOS/Demo}/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/STANDALONE/OPT/FreeRTOS_96348hs_SK16FX100PMC.opa (100%) rename {Demo => FreeRTOS/Demo}/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/STANDALONE/OPT/FreeRTOS_96348hs_SK16FX100PMC.opb (100%) rename {Demo => FreeRTOS/Demo}/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/STANDALONE/OPT/FreeRTOS_96348hs_SK16FX100PMC.opc (100%) rename {Demo => FreeRTOS/Demo}/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/STANDALONE/OPT/FreeRTOS_96348hs_SK16FX100PMC.opl (100%) rename {Demo => FreeRTOS/Demo}/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/STANDALONE/OPT/FreeRTOS_96348hs_SK16FX100PMC.opv (100%) rename {Demo => FreeRTOS/Demo}/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Simulator.sup (100%) rename {Demo => FreeRTOS/Demo}/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/START.ASM (100%) rename {Demo => FreeRTOS/Demo}/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/crflash_sk16fx100mpc.c (100%) rename {Demo => FreeRTOS/Demo}/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/main.c (100%) rename {Demo => FreeRTOS/Demo}/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/mb96348hs.asm (100%) rename {Demo => FreeRTOS/Demo}/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/mb96348hs.h (100%) rename {Demo => FreeRTOS/Demo}/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/partest/partest.c (100%) rename {Demo => FreeRTOS/Demo}/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/utility/printf_stdarg.c (100%) rename {Demo => FreeRTOS/Demo}/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/utility/taskutility.c (100%) rename {Demo => FreeRTOS/Demo}/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/utility/taskutility.h (100%) rename {Demo => FreeRTOS/Demo}/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/vectors.c (100%) rename {Demo => FreeRTOS/Demo}/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/watchdog/watchdog.c (100%) rename {Demo => FreeRTOS/Demo}/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/watchdog/watchdog.h (100%) rename {Demo => FreeRTOS/Demo}/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/options.dat (100%) rename {Demo => FreeRTOS/Demo}/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/readme.txt (100%) rename {Demo => FreeRTOS/Demo}/MB96350_Softune_Dice_Kit/DebugConfigs/MB2198-01_COM1.sup (100%) rename {Demo => FreeRTOS/Demo}/MB96350_Softune_Dice_Kit/DebugConfigs/MB2198-01_COM2.sup (100%) rename {Demo => FreeRTOS/Demo}/MB96350_Softune_Dice_Kit/DebugConfigs/MB2198-01_LAN.sup (100%) rename {Demo => FreeRTOS/Demo}/MB96350_Softune_Dice_Kit/DebugConfigs/MB2198-01_USB.sup (100%) rename {Demo => FreeRTOS/Demo}/MB96350_Softune_Dice_Kit/DiceTask.c (100%) rename {Demo => FreeRTOS/Demo}/MB96350_Softune_Dice_Kit/DiceTask.h (100%) rename {Demo => FreeRTOS/Demo}/MB96350_Softune_Dice_Kit/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/MB96350_Softune_Dice_Kit/OPT/dicekit16fx_dice2-v10.opa (100%) rename {Demo => FreeRTOS/Demo}/MB96350_Softune_Dice_Kit/OPT/dicekit16fx_dice2-v10.opb (100%) rename {Demo => FreeRTOS/Demo}/MB96350_Softune_Dice_Kit/OPT/dicekit16fx_dice2-v10.opc (100%) rename {Demo => FreeRTOS/Demo}/MB96350_Softune_Dice_Kit/OPT/dicekit16fx_dice2-v10.opl (100%) rename {Demo => FreeRTOS/Demo}/MB96350_Softune_Dice_Kit/OPT/dicekit16fx_dice2-v10.opv (100%) rename {Demo => FreeRTOS/Demo}/MB96350_Softune_Dice_Kit/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/MB96350_Softune_Dice_Kit/Prc/romconst.prc (100%) rename {Demo => FreeRTOS/Demo}/MB96350_Softune_Dice_Kit/START.ASM (100%) rename {Demo => FreeRTOS/Demo}/MB96350_Softune_Dice_Kit/SegmentToggleTasks.c (100%) rename {Demo => FreeRTOS/Demo}/MB96350_Softune_Dice_Kit/Simulator.sup (100%) rename {Demo => FreeRTOS/Demo}/MB96350_Softune_Dice_Kit/debug.cfg (100%) rename {Demo => FreeRTOS/Demo}/MB96350_Softune_Dice_Kit/dicekit16fx_dice2-v10.prj (100%) rename {Demo => FreeRTOS/Demo}/MB96350_Softune_Dice_Kit/dicekit16fx_dice2-v10.wsp (100%) rename {Demo => FreeRTOS/Demo}/MB96350_Softune_Dice_Kit/main.c (100%) rename {Demo => FreeRTOS/Demo}/MB96350_Softune_Dice_Kit/mb96356rs.asm (100%) rename {Demo => FreeRTOS/Demo}/MB96350_Softune_Dice_Kit/mb96356rs.h (100%) rename {Demo => FreeRTOS/Demo}/MB96350_Softune_Dice_Kit/options.dat (100%) rename {Demo => FreeRTOS/Demo}/MB96350_Softune_Dice_Kit/readme.txt (100%) rename {Demo => FreeRTOS/Demo}/MB96350_Softune_Dice_Kit/vectors.c (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/Changelog.txt (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/LICENSE_FREESCALE.TXT (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/Makefile (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/demo.c (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/include/arch/mcf523x.h (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/include/arch/mcf523x/mcf523x_can.h (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/include/arch/mcf523x/mcf523x_ccm.h (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/include/arch/mcf523x/mcf523x_cs.h (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/include/arch/mcf523x/mcf523x_eport.h (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/include/arch/mcf523x/mcf523x_etpu.h (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/include/arch/mcf523x/mcf523x_fec.h (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/include/arch/mcf523x/mcf523x_fmpll.h (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/include/arch/mcf523x/mcf523x_gpio.h (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/include/arch/mcf523x/mcf523x_i2c.h (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/include/arch/mcf523x/mcf523x_intc0.h (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/include/arch/mcf523x/mcf523x_intc1.h (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/include/arch/mcf523x/mcf523x_mdha.h (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/include/arch/mcf523x/mcf523x_pit.h (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/include/arch/mcf523x/mcf523x_qspi.h (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/include/arch/mcf523x/mcf523x_rcm.h (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/include/arch/mcf523x/mcf523x_rng.h (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/include/arch/mcf523x/mcf523x_scm.h (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/include/arch/mcf523x/mcf523x_sdramc.h (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/include/arch/mcf523x/mcf523x_skha.h (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/include/arch/mcf523x/mcf523x_sram.h (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/include/arch/mcf523x/mcf523x_timer.h (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/include/arch/mcf523x/mcf523x_uart.h (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/include/arch/mcf523x/mcf523x_wtm.h (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/include/arch/mcf5xxx.h (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/m5235-ram.ld (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/m5235-rom.ld (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/m5235.gdb (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/system/crt0.S (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/system/init.c (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/system/mcf5xxx.S (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/system/newlib.c (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/system/serial.c (100%) rename {Demo => FreeRTOS/Demo}/MCF5235_GCC/system/vector.S (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_CCS/.ccsproject (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_CCS/.cdtbuild (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_CCS/.cdtproject (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_CCS/.cproject (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_CCS/.project (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_CCS/.settings/org.eclipse.cdt.managedbuilder.core.prefs (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_CCS/.settings/org.eclipse.ltk.core.refactoring.prefs (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_CCS/CreateProjectDirectoryStructure.bat (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_CCS/Demo_Source/F5XX_6XX_Core_Lib/HAL_PMM.c (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_CCS/Demo_Source/F5XX_6XX_Core_Lib/HAL_PMM.h (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_CCS/Demo_Source/F5XX_6XX_Core_Lib/hal_UCS.c (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_CCS/Demo_Source/F5XX_6XX_Core_Lib/hal_UCS.h (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_CCS/Demo_Source/F5XX_6XX_Core_Lib/hal_macros.h (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_CCS/Demo_Source/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_MSP-EXP430F5438.h (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_board.c (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_board.h (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_buttons.c (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_buttons.h (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_lcd.c (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_lcd.h (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_lcd_fonts.c (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_lcd_fonts.h (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_CCS/Demo_Source/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_CCS/Demo_Source/RegTest.asm (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_CCS/Demo_Source/RunTimeStatsConfig.c (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_CCS/Demo_Source/main.c (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_CCS/Demo_Source/printf-stdarg.c (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_CCS/Demo_Source/serial.c (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_CCS/MSP430F5438A.ccxml (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_CCS/READ_ME_FIRST.txt (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_CCS/lnk_msp430f5438a.cmd (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_IAR/F5XX_6XX_Core_Lib/HAL_PMM.c (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_IAR/F5XX_6XX_Core_Lib/HAL_PMM.h (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_IAR/F5XX_6XX_Core_Lib/hal_UCS.c (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_IAR/F5XX_6XX_Core_Lib/hal_UCS.h (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_IAR/F5XX_6XX_Core_Lib/hal_macros.h (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_IAR/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_MSP-EXP430F5438.h (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_board.c (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_board.h (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_buttons.c (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_buttons.h (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_lcd.c (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_lcd.h (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_lcd_fonts.c (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_lcd_fonts.h (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_IAR/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_IAR/RTOSDemo.ewd (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_IAR/RTOSDemo.ewp (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_IAR/RTOSDemo.eww (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_IAR/RegTest.s43 (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_IAR/RunTimeStatsConfig.c (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_IAR/lnk430F5438A_mod.xcl (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_IAR/low_level_init.c (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_IAR/main.c (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_IAR/serial.c (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_IAR/settings/RTOSDemo.dbgdt (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_IAR/settings/RTOSDemo.dni (100%) rename {Demo => FreeRTOS/Demo}/MSP430X_MSP430F5438_IAR/settings/RTOSDemo.wsdt (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze/__xps/bitinit.opt (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze/__xps/libgen.opt (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze/__xps/platgen.opt (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze/__xps/rtosdemo_compiler.opt (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze/__xps/simgen.opt (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze/__xps/testapp_peripheral_compiler.opt (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze/__xps/vpgen.opt (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze/__xps/xpsxflow.opt (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze/_impact.cmd (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze/crt0.s (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze/data/system.ucf (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze/etc/bitgen.ut (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze/etc/bitgen_spartan3.ut (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze/etc/download.cmd (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze/etc/fast_runtime.opt (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze/etc/xmd_microblaze_0.opt (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze/main.c (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze/platgen.opt (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze/system.bsb (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze/system.make (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze/system.mhs (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze/system.mss (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze/system.xmp (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze/system_incl.make (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/data/freertos.mss (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/data/freertos_v2_1_0.mld (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/data/freertos_v2_1_0.tcl (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/CreatingTheDirectoryStructure.txt (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/License/license.txt (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/Makefile (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/Source/portable/readme.txt (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/Source/readme.txt (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/readme.txt (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/sw_apps/FreeRTOS_Hello_World/data/FreeRTOS_Hello_World.mss (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/sw_apps/FreeRTOS_Hello_World/data/FreeRTOS_Hello_World.tcl (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/sw_apps/FreeRTOS_Hello_World/src/FreeRTOS-main.c (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/SDK/SDK_Export/hw/system.bit (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/SDK/SDK_Export/hw/system.xml (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/SDK/SDK_Export/hw/system_bd.bmm (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtSvgDiag_Colors.xsl (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtSvgDiag_Globals.xsl (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_BusLaneSpaces.xsl (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Functions.xsl (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Globals.xsl (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_IOPorts.xsl (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Peripherals.xsl (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Processors.xsl (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgDiag_BifShapes.xsl (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/bitinit.opt (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_globals.xsl (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view.xsl (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view_addr.xsl (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view_busif.xsl (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view_groups.xsl (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view_port.xsl (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/gensav_cmd.xml (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/ise/_xmsgs/platgen.xmsgs (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/ise/system.xreport (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/ise/xmsgprops.lst (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/platgen.opt (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/simgen.opt (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/system.xml (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/xplorer.opt (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/xpsxflow.opt (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/data/system.ucf (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/bitgen.ut (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/download.cmd (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/fast_runtime.opt (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/system.filters (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/system.gui (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system.bsb (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system.make (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system.mhs (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system.xmp (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system_incl.make (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/.project (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/download.bit (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/system.bit (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/system.xml (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/system_bd.bmm (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/.cproject (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/.project (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/CreateProjectDirectoryStructure.bat (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/RegisterTests.c (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/fs.c (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/fs.h (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/fsdata.c (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/fsdata.h (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/httpd.c (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/httpd.h (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/httpd_structs.h (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/404.html (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/index.shtml (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/logo.jpg (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/runtime.shtml (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/makefsdata.c-source-file (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/makefsdata.exe (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/lwIP_Apps.c (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/lwipcfg_MicroBlaze.h (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/lwipopts.h (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/main-blinky.c (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/main-full.c (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/printf-stdarg.c (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/serial.c (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/src/lscript.ld (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/.cproject (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/.project (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/.sdkproject (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/Makefile (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/libgen.options (100%) rename {Demo => FreeRTOS/Demo}/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/system.mss (100%) rename {Demo => FreeRTOS/Demo}/NEC_78K0R_IAR/ButtonISR.s26 (100%) rename {Demo => FreeRTOS/Demo}/NEC_78K0R_IAR/ButtonTask.c (100%) rename {Demo => FreeRTOS/Demo}/NEC_78K0R_IAR/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/NEC_78K0R_IAR/RegTest.s26 (100%) rename {Demo => FreeRTOS/Demo}/NEC_78K0R_IAR/cstartup.s26 (100%) rename {Demo => FreeRTOS/Demo}/NEC_78K0R_IAR/main.c (100%) rename {Demo => FreeRTOS/Demo}/NEC_78K0R_IAR/rtosdemo.ewd (100%) rename {Demo => FreeRTOS/Demo}/NEC_78K0R_IAR/rtosdemo.ewp (100%) rename {Demo => FreeRTOS/Demo}/NEC_78K0R_IAR/rtosdemo.eww (100%) rename {Demo => FreeRTOS/Demo}/NEC_78K0R_IAR/settings/rtosdemo.cspy.bat (100%) rename {Demo => FreeRTOS/Demo}/NEC_78K0R_IAR/settings/rtosdemo.dbgdt (100%) rename {Demo => FreeRTOS/Demo}/NEC_78K0R_IAR/settings/rtosdemo.dni (100%) rename {Demo => FreeRTOS/Demo}/NEC_78K0R_IAR/settings/rtosdemo.wsdt (100%) rename {Demo => FreeRTOS/Demo}/NEC_V850ES_IAR/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/NEC_V850ES_IAR/LowLevelInit/LowLevelInit.c (100%) rename {Demo => FreeRTOS/Demo}/NEC_V850ES_IAR/LowLevelInit/LowLevelInit_Fx3.c (100%) rename {Demo => FreeRTOS/Demo}/NEC_V850ES_IAR/LowLevelInit/LowLevelInit_Hx2.c (100%) rename {Demo => FreeRTOS/Demo}/NEC_V850ES_IAR/ParTest/ParTest_Fx3_App_Board.c (100%) rename {Demo => FreeRTOS/Demo}/NEC_V850ES_IAR/ParTest/ParTest_Generic_Target_Board.c (100%) rename {Demo => FreeRTOS/Demo}/NEC_V850ES_IAR/RegTest.s85 (100%) rename {Demo => FreeRTOS/Demo}/NEC_V850ES_IAR/main.c (100%) rename {Demo => FreeRTOS/Demo}/NEC_V850ES_IAR/rtosdemo.ewd (100%) rename {Demo => FreeRTOS/Demo}/NEC_V850ES_IAR/rtosdemo.ewp (100%) rename {Demo => FreeRTOS/Demo}/NEC_V850ES_IAR/rtosdemo.eww (100%) rename {Demo => FreeRTOS/Demo}/NEC_V850ES_IAR/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/NEC_V850ES_IAR/serial/serialISR.s85 (100%) rename {Demo => FreeRTOS/Demo}/NEC_V850ES_IAR/settings/rtosdemo.cspy.bat (100%) rename {Demo => FreeRTOS/Demo}/NEC_V850ES_IAR/settings/rtosdemo.dbgdt (100%) rename {Demo => FreeRTOS/Demo}/NEC_V850ES_IAR/settings/rtosdemo.dni (100%) rename {Demo => FreeRTOS/Demo}/NEC_V850ES_IAR/settings/rtosdemo.wsdt (100%) rename {Demo => FreeRTOS/Demo}/NiosII_CycloneIII_DBC3C40_GCC/.sopc_builder/install.ptf (100%) rename {Demo => FreeRTOS/Demo}/NiosII_CycloneIII_DBC3C40_GCC/.sopc_builder/install2.ptf (100%) rename {Demo => FreeRTOS/Demo}/NiosII_CycloneIII_DBC3C40_GCC/CreateProjectDirectoryStructure.bat (100%) rename {Demo => FreeRTOS/Demo}/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/.cdtbuild (100%) rename {Demo => FreeRTOS/Demo}/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/.cdtproject (100%) rename {Demo => FreeRTOS/Demo}/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/.project (100%) rename {Demo => FreeRTOS/Demo}/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/.settings/org.eclipse.cdt.core.prefs (100%) rename {Demo => FreeRTOS/Demo}/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/.settings/org.eclipse.cdt.managedbuilder.core.prefs (100%) rename {Demo => FreeRTOS/Demo}/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/.settings/org.eclipse.ltk.core.refactoring.prefs (100%) rename {Demo => FreeRTOS/Demo}/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/application.stf (100%) rename {Demo => FreeRTOS/Demo}/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/main.c (100%) rename {Demo => FreeRTOS/Demo}/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/serial.c (100%) rename {Demo => FreeRTOS/Demo}/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo_syslib/.cdtbuild (100%) rename {Demo => FreeRTOS/Demo}/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo_syslib/.cdtproject (100%) rename {Demo => FreeRTOS/Demo}/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo_syslib/.project (100%) rename {Demo => FreeRTOS/Demo}/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo_syslib/.settings/org.eclipse.cdt.core.prefs (100%) rename {Demo => FreeRTOS/Demo}/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo_syslib/.settings/org.eclipse.cdt.managedbuilder.core.prefs (100%) rename {Demo => FreeRTOS/Demo}/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo_syslib/readme.txt (100%) rename {Demo => FreeRTOS/Demo}/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo_syslib/system.stf (100%) rename {Demo => FreeRTOS/Demo}/NiosII_CycloneIII_DBC3C40_GCC/cpu.ptf (100%) rename Demo/PPC405_Xilinx_Virtex4_GCC/__xps/system_routed => FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/cpu_sim/dummy_file (100%) rename {Demo => FreeRTOS/Demo}/NiosII_CycloneIII_DBC3C40_GCC/onchip_memory.hex (100%) rename {Demo => FreeRTOS/Demo}/NiosII_CycloneIII_DBC3C40_GCC/sopc_builder_log.txt (100%) rename {Demo => FreeRTOS/Demo}/PC/FRConfig.h (100%) rename {Demo => FreeRTOS/Demo}/PC/FileIO/fileIO.c (100%) rename {Demo => FreeRTOS/Demo}/PC/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/PC/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/PC/RTOSDEMO.IDE (100%) rename {Demo => FreeRTOS/Demo}/PC/main.c (100%) rename {Demo => FreeRTOS/Demo}/PC/rtosdemo.DSW (100%) rename {Demo => FreeRTOS/Demo}/PC/rtosdemo.tgt (100%) rename {Demo => FreeRTOS/Demo}/PC/rtosdemo.wpj (100%) rename {Demo => FreeRTOS/Demo}/PC/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/PIC18_MPLAB/18f452.lkr (100%) rename {Demo => FreeRTOS/Demo}/PIC18_MPLAB/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/PIC18_MPLAB/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/PIC18_MPLAB/main1.c (100%) rename {Demo => FreeRTOS/Demo}/PIC18_MPLAB/main2.c (100%) rename {Demo => FreeRTOS/Demo}/PIC18_MPLAB/main3.c (100%) rename {Demo => FreeRTOS/Demo}/PIC18_MPLAB/makebin1.bat (100%) rename {Demo => FreeRTOS/Demo}/PIC18_MPLAB/makebin2.bat (100%) rename {Demo => FreeRTOS/Demo}/PIC18_MPLAB/makebin3.bat (100%) rename {Demo => FreeRTOS/Demo}/PIC18_MPLAB/readme.txt (100%) rename {Demo => FreeRTOS/Demo}/PIC18_MPLAB/rtosdemo.mcw (100%) rename {Demo => FreeRTOS/Demo}/PIC18_MPLAB/rtosdemo1.mcp (100%) rename {Demo => FreeRTOS/Demo}/PIC18_MPLAB/rtosdemo2.mcp (100%) rename {Demo => FreeRTOS/Demo}/PIC18_MPLAB/rtosdemo3.mcp (100%) rename {Demo => FreeRTOS/Demo}/PIC18_MPLAB/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo1/Demo1.PC (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo1/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo1/MallocConfig.h (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo1/WIZCmake.h (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo1/fuses.c (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo1/interrupt.c (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo1/main.c (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo2/Demo2.PC (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo2/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo2/MallocConfig.h (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo2/WIZCmake.h (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo2/fuses.c (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo2/interrupt.c (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo2/main.c (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo3/Demo3.PC (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo3/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo3/MallocConfig.h (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo3/WIZCmake.h (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo3/fuses.c (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo3/interrupt.c (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo3/main.c (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo4/Demo4.PC (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo4/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo4/MallocConfig.h (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo4/WIZCmake.h (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo4/fuses.c (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo4/interrupt.c (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo4/main.c (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo5/Demo5.PC (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo5/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo5/MallocConfig.h (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo5/WIZCmake.h (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo5/fuses.c (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo5/interrupt.c (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo5/main.c (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo6/Demo6.PC (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo6/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo6/MallocConfig.h (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo6/WIZCmake.h (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo6/fuses.c (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo6/interrupt.c (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo6/main.c (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo7/Demo7.PC (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo7/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo7/MallocConfig.h (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo7/WIZCmake.h (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo7/fuses.c (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo7/interrupt.c (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/Demo7/main.c (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/serial/isrSerialRx.c (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/serial/isrSerialTx.c (100%) rename {Demo => FreeRTOS/Demo}/PIC18_WizC/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/PIC24_MPLAB/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/PIC24_MPLAB/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/PIC24_MPLAB/RTOSDemo.mcs (100%) rename {Demo => FreeRTOS/Demo}/PIC24_MPLAB/RTOSDemo.mcw (100%) rename {Demo => FreeRTOS/Demo}/PIC24_MPLAB/RTOSDemo_PIC24.mcp (100%) rename {Demo => FreeRTOS/Demo}/PIC24_MPLAB/RTOSDemo_PIC24.mcs (100%) rename {Demo => FreeRTOS/Demo}/PIC24_MPLAB/lcd.c (100%) rename {Demo => FreeRTOS/Demo}/PIC24_MPLAB/lcd.h (100%) rename {Demo => FreeRTOS/Demo}/PIC24_MPLAB/main.c (100%) rename {Demo => FreeRTOS/Demo}/PIC24_MPLAB/p24FJ128GA010.gld (100%) rename {Demo => FreeRTOS/Demo}/PIC24_MPLAB/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/PIC24_MPLAB/timertest.c (100%) rename {Demo => FreeRTOS/Demo}/PIC24_MPLAB/timertest.h (100%) rename {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/IntQueueTimer.c (100%) rename {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/IntQueueTimer.h (100%) rename {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/IntQueueTimer_isr.S (100%) rename {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/RTOSDemo.X/Makefile (100%) rename {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-EXPLORER_16_PIC32MX360.mk (100%) rename {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-EXPLORER_16_PIC32MX460.mk (100%) rename {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-EXPLORER_16_PIC32MX795.mk (100%) rename {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-genesis.properties (100%) rename {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-impl.mk (100%) rename {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-local-EXPLORER_16_PIC32MX360.mk (100%) rename {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-local-EXPLORER_16_PIC32MX460.mk (100%) rename {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-local-EXPLORER_16_PIC32MX795.mk (100%) rename {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-variables.mk (100%) rename {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Package-EXPLORER_16_PIC32MX360.bash (100%) rename {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Package-EXPLORER_16_PIC32MX460.bash (100%) rename {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Package-EXPLORER_16_PIC32MX795.bash (100%) rename {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/RTOSDemo.X/nbproject/configurations.xml (100%) rename {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/RTOSDemo.X/nbproject/private/configurations.xml (100%) rename Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/Autonym/regkeys => FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/private/private.properties (100%) rename {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/RTOSDemo.X/nbproject/private/private.xml (100%) rename Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xreport/regkeys => FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/project.properties (100%) rename {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/RTOSDemo.X/nbproject/project.xml (100%) rename {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/RTOSDemo.mcp (100%) rename {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/RTOSDemo.mcs (100%) rename {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/RTOSDemo.mcw (100%) rename {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/RegisterTestTasks.S (100%) rename {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/lcd.c (100%) rename {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/lcd.h (100%) rename {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/main.c (100%) rename {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/main_blinky.c (100%) rename {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/main_full.c (100%) rename {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/printf-stdarg.c (100%) rename {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/serial/serial_isr.S (100%) rename {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/timertest.c (100%) rename {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/timertest.h (100%) rename {Demo => FreeRTOS/Demo}/PIC32MX_MPLAB/timertest_isr.S (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/RTOSDemo_linker_script.ld (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop-reg-test.c (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop-reg-test.h (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop.c (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/main.c (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/partest/partest.c (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_BifShapes.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_Colors.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_Diagrams.css (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_BusLaneSpaces.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Busses.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Calculations.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_IOPorts.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Main.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Peripherals.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Processors.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLDatasheet.css (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLDatasheet.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLIPSection.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLMemoryMap.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLTOCTree.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/svg10.dtd (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/system_shapes.xml (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/bitinit.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/libgen.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/platgen.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/rtosdemo_compiler.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/simgen.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/system.gui (100%) rename Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/xmsgprops.lst => FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/system_routed (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/testapp_peripheral_compiler.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/vpgen.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/xplorer.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/xpsxflow.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/blkdiagram/svg10.dtd (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/blkdiagram/system.css (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/blkdiagram/system.html (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/blkdiagram/system.svg (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/data/system.ucf (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/etc/bitgen.ut (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/etc/download.cmd (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/etc/fast_runtime.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/etc/xmd_ppc405_0.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/platgen.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/system.bsb (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/system.make (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/system.mhs (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/system.mss (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/system.xmp (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/system_incl.make (100%) rename {Demo => FreeRTOS/Demo}/PPC405_FPU_Xilinx_Virtex4_GCC/wizlog (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/RTOSDemo_linker_script.ld (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop-reg-test.c (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop-reg-test.h (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop.c (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/main.c (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/partest/partest.c (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_BifShapes.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_Colors.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_Diagrams.css (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_BusLaneSpaces.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Busses.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Calculations.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_IOPorts.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Main.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Peripherals.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Processors.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLDatasheet.css (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLDatasheet.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLIPSection.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLMemoryMap.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLTOCTree.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/svg10.dtd (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/system_shapes.xml (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/__xps/bitinit.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/__xps/libgen.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/__xps/platgen.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/__xps/rtosdemo_compiler.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/__xps/simgen.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/__xps/system.gui (100%) rename Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/Autonym/regkeys => FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/system_routed (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/__xps/testapp_peripheral_compiler.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/__xps/vpgen.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/__xps/xplorer.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/__xps/xpsxflow.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/blkdiagram/svg10.dtd (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/blkdiagram/system.css (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/blkdiagram/system.html (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/blkdiagram/system.svg (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/data/system.ucf (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/etc/bitgen.ut (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/etc/download.cmd (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/etc/fast_runtime.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/etc/xmd_ppc405_0.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/platgen.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/system.bsb (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/system.make (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/system.mhs (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/system.mss (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/system.xmp (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/system_incl.make (100%) rename {Demo => FreeRTOS/Demo}/PPC405_Xilinx_Virtex4_GCC/wizlog (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.h (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/Version_Changes.log (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Colors.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Globals.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_BusLaneSpaces.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Functions.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Globals.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_IOPorts.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Peripherals.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Processors.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgDiag_BifShapes.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/svg10.dtd (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/bitinit.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.gise (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.ise (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.xise (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise.lock (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject_StrTbl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/__stored_object_table__ (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl_StrTbl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main_StrTbl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module_StrTbl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system_StrTbl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default_StrTbl (100%) rename {Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xreport => FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/Autonym}/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/HDProject/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator11/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/XSLTProcess/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/_ProjRepoInternal_/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitgen/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitinit/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/common/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/cpldfit/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/dumpngdio/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/fuse/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/hprep6/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/idem/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/libgen/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/map/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/netgen/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngc2edif/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngcbuild/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngdbuild/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/par/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/platgen/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/runner/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/simgen/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/taengine/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/trce/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/tsim/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vhpcomp/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vlogcomp/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xpwr/regkeys (100%) rename {Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/Autonym => FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xreport}/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xst/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/version (100%) rename {Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC => FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC}/__xps/ise/xmsgprops.lst (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/libgen.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/platgen.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/rtosdemo_compiler.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/simgen.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/system.filters (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/system.gui (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/xplorer.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/xpsxflow.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/blockdiagram/svg10.dtd (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.css (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.svg (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/data/system.ucf (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/etc/bitgen.ut (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/etc/download.cmd (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/etc/fast_runtime.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/revup/system_mhs.11.1 (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/revup/system_mss.11.1 (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/revup/system_xmp.11.1 (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.bsb (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.log (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.make (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.mhs (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.mss (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.xmp (100%) rename {Demo => FreeRTOS/Demo}/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system_incl.make (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.h (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/Version_Changes.log (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Colors.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Globals.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_BusLaneSpaces.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Functions.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Globals.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_IOPorts.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Peripherals.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Processors.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgDiag_BifShapes.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/svg10.dtd (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/bitinit.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.gise (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.ise (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.xise (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise.lock (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject_StrTbl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/__stored_object_table__ (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl_StrTbl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main_StrTbl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module_StrTbl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system_StrTbl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default_StrTbl (100%) rename {Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign => FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/Autonym}/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/HDProject/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator11/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/XSLTProcess/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/_ProjRepoInternal_/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitgen/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitinit/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/common/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/cpldfit/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/dumpngdio/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/fuse/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/hprep6/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/idem/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/libgen/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/map/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/netgen/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngc2edif/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngcbuild/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngdbuild/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/par/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/platgen/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/runner/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/simgen/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/taengine/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/trce/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/tsim/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vhpcomp/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vlogcomp/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xpwr/regkeys (100%) rename {Demo/PPC440_Xilinx_Virtex5_GCC => FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC}/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xreport/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xst/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/version (100%) rename {Demo/PPC440_Xilinx_Virtex5_GCC => FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC}/__xps/ise/xmsgprops.lst (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/libgen.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/platgen.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/rtosdemo_compiler.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/simgen.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/system.filters (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/system.gui (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/xplorer.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/xpsxflow.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/blockdiagram/svg10.dtd (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.css (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.svg (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/data/system.ucf (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/etc/bitgen.ut (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/etc/download.cmd (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/etc/fast_runtime.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/revup/system_mhs.11.1 (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/revup/system_mss.11.1 (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/revup/system_xmp.11.1 (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.bsb (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.log (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.make (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.mhs (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.mss (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.xmp (100%) rename {Demo => FreeRTOS/Demo}/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system_incl.make (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.h (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/main.c (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/Version_Changes.log (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Colors.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Globals.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_BusLaneSpaces.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Functions.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Globals.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_IOPorts.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Peripherals.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Processors.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgDiag_BifShapes.xsl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/svg10.dtd (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/bitinit.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/map.xmsgs (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/ngcbuild.xmsgs (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/ngdbuild.xmsgs (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/par.xmsgs (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/trce.xmsgs (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/xst.xmsgs (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system.gise (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system.ise (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system.ntrc_log (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system.xise (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/cst.xbcd (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise.lock (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject_StrTbl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/__stored_object_table__ (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl_StrTbl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main_StrTbl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module_StrTbl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system_StrTbl (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default_StrTbl (100%) rename Source/portable/MPLAB/PIC18F/stdio.h => FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/Autonym/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/HDProject/regkeys (100%) create mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/regkeys rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator11/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/XSLTProcess/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/_ProjRepoInternal_/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitgen/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitinit/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/common/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/cpldfit/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/dumpngdio/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/fuse/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/hprep6/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/idem/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/libgen/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/map/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/netgen/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngc2edif/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngcbuild/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngdbuild/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/par/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/platgen/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/runner/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/simgen/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/taengine/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/trce/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/tsim/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vhpcomp/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vlogcomp/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xpwr/regkeys (100%) create mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xreport/regkeys rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xst/regkeys (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/version (100%) create mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/xmsgprops.lst rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/libgen.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/platgen.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/rtosdemo_compiler.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/simgen.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/system.filters (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/system.gui (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/system.xml (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/xplorer.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/__xps/xpsxflow.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/blockdiagram/svg10.dtd (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/blockdiagram/system.css (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/blockdiagram/system.svg (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/data/system.ucf (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/etc/bitgen.ut (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/etc/download.cmd (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/etc/fast_runtime.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/etc/xmd_ppc440_0.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/platgen.opt (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/psf2Edward.log (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/revup/system_mhs.11.1 (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/revup/system_mss.11.1 (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/revup/system_xmp.11.1 (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/system.bsb (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/system.log (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/system.make (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/system.mhs (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/system.mss (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/system.xmp (100%) rename {Demo => FreeRTOS/Demo}/PPC440_Xilinx_Virtex5_GCC/system_incl.make (100%) rename {Demo => FreeRTOS/Demo}/RL78_RL78G13_Promo_Board_IAR/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/RL78_RL78G13_Promo_Board_IAR/RTOSDemo.ewd (100%) rename {Demo => FreeRTOS/Demo}/RL78_RL78G13_Promo_Board_IAR/RTOSDemo.ewp (100%) rename {Demo => FreeRTOS/Demo}/RL78_RL78G13_Promo_Board_IAR/RTOSDemo.eww (100%) rename {Demo => FreeRTOS/Demo}/RL78_RL78G13_Promo_Board_IAR/RegTest.s87 (100%) rename {Demo => FreeRTOS/Demo}/RL78_RL78G13_Promo_Board_IAR/main.c (100%) rename {Demo => FreeRTOS/Demo}/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.cspy.bat (100%) rename {Demo => FreeRTOS/Demo}/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.dbgdt (100%) rename {Demo => FreeRTOS/Demo}/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.dni (100%) rename {Demo => FreeRTOS/Demo}/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.wsdt (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo.Hbp (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo.hws (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo.tws (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo/Blinky/Blinky.hdp (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo/ButtonAndLCD.c (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo/DefaultSession.hsf (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo/HighFrequencyTimerTest.c (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo/IntQueueTimer.c (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo/RTOSDemo.hwp (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo/RTOSDemo.nav (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo/RTOSDemo.tps (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/dbsct.c (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/hd44780.c (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/hwsetup.c (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/intprg.c (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/lcd.c (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/lowlvl.src (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/lowsrc.c (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/resetprg.c (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/sbrk.c (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/vecttbl.c (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo/SessionRX200_E1_E20_SYSTEM.hsf (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo/SessionRX200_E1_E20_SYSTEM.ini (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo/include/ButtonAndLCD.h (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo/include/IntQueueTimer.h (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo/include/OLDiodefine.h (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo/include/RX62Niodefine.h (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo/include/hd44780.h (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo/include/iodefine.h (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo/include/lcd.h (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo/include/lowsrc.h (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo/include/rskrx210def.h (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo/include/stacksct.h (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo/include/typedefine.h (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo/include/vect.h (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo/main-blinky.c (100%) rename {Demo => FreeRTOS/Demo}/RX200_RX210-RSK_Renesas/RTOSDemo/main-full.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/DefaultSession.hsf (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/DefaultSession.ini (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/GNU-Files/hwinit.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/GNU-Files/inthandler.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/GNU-Files/start.asm (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/HighFrequencyTimerTest.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/IntQueueTimer.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/RTOSDemo.hwp (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/RTOSDemo.nav (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/RTOSDemo.tps (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/Renesas-Files/hwsetup.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/SessionRX600_E1_E20_SYSTEM.ini (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/include/IntQueueTimer.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/include/inthandler.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/include/iodefine.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/include/typedefine.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/include/yrdkrx62ndef.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/main-blinky.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/main-full.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/uIP_Task.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/vects.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/EMAC.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-cgi.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/404.html (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/index.html (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/index.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/io.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/logo.jpg (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/runtime.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/stats.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/tcp.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fsdata.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/makefsdata (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/phy.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/phy.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/r_ether.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/uip-conf.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/webserver.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RX600_RX62N_RDK_GNURX.Hbp (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RX600_RX62N_RDK_GNURX.hws (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_GNURX/RX600_RX62N_RDK_GNURX.tws (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/HighFrequencyTimerTest.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/IntQueueTimer.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/PriorityDefinitions.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/RSKRX62N_Demo.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/RTOSDemo.ewd (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/RTOSDemo.ewp (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/RTOSDemo.eww (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/RegTest.s (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/Renesas-Files/hwsetup.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/include/IntQueueTimer.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/include/inthandler.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/include/typedefine.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/include/yrdkrx62ndef.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/main-blinky.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/main-full.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/settings/RTOSDemo.cspy.bat (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/settings/RTOSDemo.dbgdt (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/settings/RTOSDemo.dni (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/settings/RTOSDemo.wsdt (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/uIP_Task.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/webserver/EMAC.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/webserver/httpd-cgi.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/webserver/httpd-fs/404.html (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/webserver/httpd-fs/index.html (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/webserver/httpd-fs/index.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/webserver/httpd-fs/io.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/webserver/httpd-fs/logo.jpg (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/webserver/httpd-fs/runtime.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/webserver/httpd-fs/stats.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/webserver/httpd-fs/tcp.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/webserver/httpd-fsdata.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/webserver/makefsdata (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/webserver/phy.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/webserver/phy.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/webserver/r_ether.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/webserver/uip-conf.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_IAR/webserver/webserver.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo.Hbp (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo.hws (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo.tws (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/DefaultSession.hsf (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/HighFrequencyTimerTest.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/IntQueueTimer.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/RTOSDemo.hwp (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/RTOSDemo.nav (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/RTOSDemo.tps (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/dbsct.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/hwsetup.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/intprg.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/lowlvl.src (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/lowsrc.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/resetprg.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/sbrk.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/vecttbl.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.ini (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/SimSessionRX600.hsf (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/include/IntQueueTimer.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/include/iodefine.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/include/lowsrc.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/include/stacksct.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/include/typedefine.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/include/vect.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/include/yrdkrx62ndef.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/main-blinky.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/main-full.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/uIP_Task.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/EMAC.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-cgi.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/404.html (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/index.html (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/index.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/io.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/logo.jpg (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/runtime.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/stats.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/tcp.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fsdata.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/makefsdata (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/phy.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/phy.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/r_ether.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/uip-conf.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/webserver.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/DefaultSession.hsf (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/DefaultSession.ini (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/GNU-Files/hwinit.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/GNU-Files/inthandler.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/GNU-Files/start.asm (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/HighFrequencyTimerTest.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/IntQueueTimer.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/RTOSDemo.hwp (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/RTOSDemo.nav (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/RTOSDemo.tps (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/Renesas-Files/hwsetup.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/SessionRX600_E1_E20_SYSTEM.ini (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/include/IntQueueTimer.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/include/inthandler.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/include/iodefine.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/include/rskrx62ndef.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/include/typedefine.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/main-blinky.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/main-full.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/uIP_Task.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/vects.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/EMAC.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-cgi.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/404.html (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/index.html (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/index.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/io.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/logo.jpg (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/runtime.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/stats.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/tcp.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fsdata.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/makefsdata (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/phy.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/phy.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/r_ether.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/uip-conf.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/webserver.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RX600_RX62N_RSK_GNURX.Hbp (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RX600_RX62N_RSK_GNURX.hws (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_GNURX/RX600_RX62N_RSK_GNURX.tws (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/HighFrequencyTimerTest.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/IntQueueTimer.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/PriorityDefinitions.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/RSKRX62N_Demo.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/RTOSDemo.ewd (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/RTOSDemo.ewp (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/RTOSDemo.eww (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/RegTest.s (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/Renesas-Files/hwsetup.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/include/IntQueueTimer.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/include/inthandler.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/include/rskrx62ndef.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/include/typedefine.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/main-blinky.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/main-full.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/settings/RTOSDemo.cspy.bat (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/settings/RTOSDemo.dbgdt (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/settings/RTOSDemo.dni (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/settings/RTOSDemo.wsdt (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/uIP_Task.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/webserver/EMAC.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/webserver/httpd-cgi.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/webserver/httpd-fs/404.html (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/webserver/httpd-fs/index.html (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/webserver/httpd-fs/index.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/webserver/httpd-fs/io.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/webserver/httpd-fs/logo.jpg (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/webserver/httpd-fs/runtime.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/webserver/httpd-fs/stats.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/webserver/httpd-fs/tcp.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/webserver/httpd-fsdata.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/webserver/makefsdata (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/webserver/phy.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/webserver/phy.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/webserver/r_ether.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/webserver/uip-conf.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_IAR/webserver/webserver.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo.Hbp (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo.hws (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo.tws (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/Debug/Debug.hdp (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/Debug_RX600_E1_E20_SYSTEM/Debug_RX600_E1_E20_SYSTEM.hdp (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/DefaultSession.hsf (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/HighFrequencyTimerTest.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/IntQueueTimer.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/RTOSDemo.hwp (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/RTOSDemo.nav (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/RTOSDemo.tps (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/dbsct.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/hwsetup.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/intprg.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/lowlvl.src (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/lowsrc.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/resetprg.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/sbrk.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/vecttbl.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.ini (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/SimDebug_RX600/SimDebug_RX600.hdp (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/SimSessionRX600.hsf (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/include/IntQueueTimer.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/include/iodefine.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/include/lowsrc.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/include/rskrx62ndef.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/include/stacksct.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/include/typedefine.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/include/vect.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/main-blinky.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/main-full.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/uIP_Task.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/EMAC.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-cgi.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/404.html (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/index.html (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/index.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/io.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/logo.jpg (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/runtime.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/stats.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/tcp.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fsdata.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/makefsdata (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/phy.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/phy.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/r_ether.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/uip-conf.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/webserver.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX630-RSK_Renesas/RTOSDemo.Hbp (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX630-RSK_Renesas/RTOSDemo.hws (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX630-RSK_Renesas/RTOSDemo.tws (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX630-RSK_Renesas/RTOSDemo/DefaultSession.hsf (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX630-RSK_Renesas/RTOSDemo/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX630-RSK_Renesas/RTOSDemo/HighFrequencyTimerTest.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX630-RSK_Renesas/RTOSDemo/IntQueueTimer.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX630-RSK_Renesas/RTOSDemo/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX630-RSK_Renesas/RTOSDemo/RTOSDemo.hwp (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX630-RSK_Renesas/RTOSDemo/RTOSDemo.nav (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX630-RSK_Renesas/RTOSDemo/RTOSDemo.tps (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/cgc.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/cgc.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/cgc_error.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/cgc_set.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/dbsct.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/hwsetup.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/intprg.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/lowlvl.src (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/lowsrc.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/resetprg.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/sbrk.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/vecttbl.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX630-RSK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX630-RSK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.ini (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX630-RSK_Renesas/RTOSDemo/SimSessionRX600.hsf (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX630-RSK_Renesas/RTOSDemo/Upgrade.txt (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX630-RSK_Renesas/RTOSDemo/include/IntQueueTimer.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX630-RSK_Renesas/RTOSDemo/include/iodefine.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX630-RSK_Renesas/RTOSDemo/include/lowsrc.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX630-RSK_Renesas/RTOSDemo/include/rskrx630def.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX630-RSK_Renesas/RTOSDemo/include/stacksct.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX630-RSK_Renesas/RTOSDemo/include/typedefine.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX630-RSK_Renesas/RTOSDemo/include/vect.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX630-RSK_Renesas/RTOSDemo/main-blinky.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX630-RSK_Renesas/RTOSDemo/main-full.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo.Hbp (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo.hws (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo.tws (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/DefaultSession.hsf (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/HighFrequencyTimerTest.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/IntQueueTimer.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/IntQueueTimer.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/RDK_Jlink.hsf (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/RDK_Jlink.ini (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/RTOSDemo.hwp (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/RTOSDemo.nav (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/RTOSDemo.tps (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/dbsct.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/flash_options.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/hwsetup.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/hwsetup.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/lowlvl.src (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/lowsrc.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/mcu_info.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/r_bsp.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/r_bsp_config_reference.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/resetprg.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/sbrk.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/vecttbl.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/yrdkrx63n.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/mcu/rx63n/iodefine.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/mcu/rx63n/iodefine.h_from_toolchain (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/platform.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/SimSessionRX600.hsf (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/main-blinky.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/main-full.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/r_bsp_config.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/uIP_Task.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/EMAC.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-cgi.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/404.html (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/index.html (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/index.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/io.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/logo.jpg (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/runtime.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/stats.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/tcp.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fsdata.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/makefsdata (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/phy.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/phy.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/r_ether.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/uip-conf.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/webserver.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo.Hbp (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo.hws (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo.tws (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/DefaultSession.hsf (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/HighFrequencyTimerTest.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/IntQueueTimer.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/IntQueueTimer.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/RTOSDemo.hwp (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/RTOSDemo.nav (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/RTOSDemo.tps (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/dbsct.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/flash_options.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/hwsetup.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/hwsetup.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/lowlvl.src (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/lowsrc.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/mcu_info.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/r_bsp.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/r_bsp_config_reference.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/resetprg.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/rskrx63n.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/sbrk.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/vecttbl.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/mcu/rx63n/iodefine.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/mcu/rx63n/iodefine.h_from_toolchain (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/platform.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.ini (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/SimSessionRX600.hsf (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/main-blinky.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/main-full.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/r_bsp_config.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/uIP_Task.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/EMAC.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-cgi.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/404.html (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/index.html (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/index.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/io.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/logo.jpg (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/runtime.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/stats.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/tcp.shtml (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fsdata.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/makefsdata (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/phy.c (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/phy.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/r_ether.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/uip-conf.h (100%) rename {Demo => FreeRTOS/Demo}/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/webserver.h (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo.hws (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo.tws (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.c (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.hwp (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.nav (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.pgs (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.tps (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/compiler.h (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/hwEthernet.h (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/hwEthernetPhy.h (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/hwEthernetPhyRTL8201.c (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/rsk7216def.h (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/trace.h (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/typedefine.h (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/types.h (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/SessionSH7216_E10A-USB_SYSTEM__SH.hsf (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/SessionSH7216_E10A-USB_SYSTEM__SH.ini (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/SessionSH7216_E10A-USB_SYSTEM__SH_Heush2acustom1.ini (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/dbsct.c (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/flop.c (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/intprg.c (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/iodefine.h (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/main.c (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/printf-stdarg.c (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/regtest.src (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/resetprg.c (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/stacksct.h (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/typedefine.h (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/uIP_Task.c (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/vect.h (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/vecttbl.c (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/webserver/EMAC.c (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/webserver/EMAC_ISR.src (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-cgi.c (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/404.html (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/index.html (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/index.shtml (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/io.shtml (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/logo.jpg (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/runtime.shtml (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/stats.shtml (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/tcp.shtml (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fsdata.c (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/webserver/makefsdata (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/webserver/uip-conf.h (100%) rename {Demo => FreeRTOS/Demo}/SuperH_SH7216_Renesas/RTOSDemo/webserver/webserver.h (100%) rename {Demo => FreeRTOS/Demo}/TriCore_TC1782_TriBoard_GCC/.cproject (100%) rename {Demo => FreeRTOS/Demo}/TriCore_TC1782_TriBoard_GCC/.project (100%) rename {Demo => FreeRTOS/Demo}/TriCore_TC1782_TriBoard_GCC/.ude/.target/TriBoard_TC1782.cfg (100%) rename {Demo => FreeRTOS/Demo}/TriCore_TC1782_TriBoard_GCC/.ude/UDEDefEclipseWorkspace.wsx (100%) rename {Demo => FreeRTOS/Demo}/TriCore_TC1782_TriBoard_GCC/RTOSDemo/CreateProjectDirectoryStructure.bat (100%) rename {Demo => FreeRTOS/Demo}/TriCore_TC1782_TriBoard_GCC/RTOSDemo/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/TriCore_TC1782_TriBoard_GCC/RTOSDemo/InterruptNestTest.c (100%) rename {Demo => FreeRTOS/Demo}/TriCore_TC1782_TriBoard_GCC/RTOSDemo/InterruptNestTest.h (100%) rename {Demo => FreeRTOS/Demo}/TriCore_TC1782_TriBoard_GCC/RTOSDemo/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/TriCore_TC1782_TriBoard_GCC/RTOSDemo/ThirdPartyCode/cpufreq.c (100%) rename {Demo => FreeRTOS/Demo}/TriCore_TC1782_TriBoard_GCC/RTOSDemo/main.c (100%) rename {Demo => FreeRTOS/Demo}/TriCore_TC1782_TriBoard_GCC/RTOSDemo/serial.c (100%) rename {Demo => FreeRTOS/Demo}/TriCore_TC1782_TriBoard_GCC/ld/iRAM.ld (100%) rename {Demo => FreeRTOS/Demo}/TriCore_TC1782_TriBoard_GCC/ld/iROM.ld (100%) rename {Demo => FreeRTOS/Demo}/TriCore_TC1782_TriBoard_GCC/models/.parts/ldf_configuration.lm (100%) rename {Demo => FreeRTOS/Demo}/TriCore_TC1782_TriBoard_GCC/models/TriBoard-TC1782.mdm (100%) rename {Demo => FreeRTOS/Demo}/TriCore_TC1782_TriBoard_GCC/models/iRAM.lm (100%) rename {Demo => FreeRTOS/Demo}/TriCore_TC1782_TriBoard_GCC/models/iROM.lm (100%) rename {Demo => FreeRTOS/Demo}/Unsupported_Demos/ReadMe.txt (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MSVC-lwIP/FreeRTOSConfig.h (100%) create mode 100644 FreeRTOS/Demo/WIN32-MSVC-lwIP/WIN32.sln rename {Demo => FreeRTOS/Demo}/WIN32-MSVC-lwIP/WIN32.suo (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MSVC-lwIP/WIN32.vcxproj (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MSVC-lwIP/WIN32.vcxproj.filters (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MSVC-lwIP/lwIP_Apps/apps/BasicSocketCommandServer/BasicSocketCommandServer.c (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/fs.c (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/fs.h (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/fsdata.c (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/fsdata.h (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/httpd.c (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/httpd.h (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/httpd_structs.h (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.sln (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.suo (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.vcxproj (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.vcxproj.filters (100%) create mode 100644 FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.vcxproj.user rename {Demo => FreeRTOS/Demo}/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/404.html (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/index.shtml (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/logo.jpg (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/runtime.shtml (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fsdata.c (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/makefsdata (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/makefsdata.c (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/makefsdata.exe (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/stdafx.cpp (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/stdafx.h (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/targetver.h (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MSVC-lwIP/lwIP_Apps/lwIP_Apps.c (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MSVC-lwIP/lwIP_Apps/lwIP_Apps.h (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MSVC-lwIP/lwIP_Apps/lwipcfg_msvc.h (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MSVC-lwIP/lwIP_Apps/lwipopts.h (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MSVC-lwIP/main.c (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MSVC/DemosModifiedForLowTickRate/recmutex.c (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MSVC/FreeRTOSConfig.h (100%) create mode 100644 FreeRTOS/Demo/WIN32-MSVC/WIN32.sln rename {Demo => FreeRTOS/Demo}/WIN32-MSVC/WIN32.suo (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MSVC/WIN32.vcxproj (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MSVC/WIN32.vcxproj.filters (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MSVC/main.c (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MingW/.cproject (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MingW/.project (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MingW/.settings/org.eclipse.cdt.managedbuilder.core.prefs (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MingW/CreateProjectDirectoryStructure.bat (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MingW/DemosModifiedForLowTickRate/recmutex.c (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MingW/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/WIN32-MingW/main.c (100%) rename {Demo => FreeRTOS/Demo}/WizNET_DEMO_GCC_ARM7/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/WizNET_DEMO_GCC_ARM7/HTTP_Serv.c (100%) rename {Demo => FreeRTOS/Demo}/WizNET_DEMO_GCC_ARM7/HTTP_Serv.h (100%) rename {Demo => FreeRTOS/Demo}/WizNET_DEMO_GCC_ARM7/Makefile (100%) rename {Demo => FreeRTOS/Demo}/WizNET_DEMO_GCC_ARM7/TCP.c (100%) rename {Demo => FreeRTOS/Demo}/WizNET_DEMO_GCC_ARM7/TCP.h (100%) rename {Demo => FreeRTOS/Demo}/WizNET_DEMO_GCC_ARM7/TCPISR.c (100%) rename {Demo => FreeRTOS/Demo}/WizNET_DEMO_GCC_ARM7/boot.s (100%) rename {Demo => FreeRTOS/Demo}/WizNET_DEMO_GCC_ARM7/html_pages.h (100%) rename {Demo => FreeRTOS/Demo}/WizNET_DEMO_GCC_ARM7/i2c.c (100%) rename {Demo => FreeRTOS/Demo}/WizNET_DEMO_GCC_ARM7/i2c.h (100%) rename {Demo => FreeRTOS/Demo}/WizNET_DEMO_GCC_ARM7/i2cISR.c (100%) rename {Demo => FreeRTOS/Demo}/WizNET_DEMO_GCC_ARM7/lpc2106-rom.ld (100%) rename {Demo => FreeRTOS/Demo}/WizNET_DEMO_GCC_ARM7/lpc210x.h (100%) rename {Demo => FreeRTOS/Demo}/WizNET_DEMO_GCC_ARM7/main.c (100%) rename {Demo => FreeRTOS/Demo}/WizNET_DEMO_TERN_186/186.cfg (100%) rename {Demo => FreeRTOS/Demo}/WizNET_DEMO_TERN_186/AE.LIB (100%) rename {Demo => FreeRTOS/Demo}/WizNET_DEMO_TERN_186/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/WizNET_DEMO_TERN_186/HTTPTask.c (100%) rename {Demo => FreeRTOS/Demo}/WizNET_DEMO_TERN_186/HTTPTask.h (100%) rename {Demo => FreeRTOS/Demo}/WizNET_DEMO_TERN_186/RTOSDemo.DSW (100%) rename {Demo => FreeRTOS/Demo}/WizNET_DEMO_TERN_186/RTOSDemo.ide (100%) rename {Demo => FreeRTOS/Demo}/WizNET_DEMO_TERN_186/RTOSDemo.mbt (100%) rename {Demo => FreeRTOS/Demo}/WizNET_DEMO_TERN_186/RTOSDemo.mrt (100%) rename {Demo => FreeRTOS/Demo}/WizNET_DEMO_TERN_186/RTOSDemo.rom (100%) rename {Demo => FreeRTOS/Demo}/WizNET_DEMO_TERN_186/include/SOCKET.H (100%) rename {Demo => FreeRTOS/Demo}/WizNET_DEMO_TERN_186/include/TYPES.H (100%) rename {Demo => FreeRTOS/Demo}/WizNET_DEMO_TERN_186/include/ae.H (100%) rename {Demo => FreeRTOS/Demo}/WizNET_DEMO_TERN_186/include/i2chip_hw.h (100%) rename {Demo => FreeRTOS/Demo}/WizNET_DEMO_TERN_186/include/utils/system_common.h (100%) rename {Demo => FreeRTOS/Demo}/WizNET_DEMO_TERN_186/main.c (100%) rename {Demo => FreeRTOS/Demo}/WizNET_DEMO_TERN_186/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/WizNET_DEMO_TERN_186/tern_code/i2chip_hw.c (100%) rename {Demo => FreeRTOS/Demo}/WizNET_DEMO_TERN_186/tern_code/socket.c (100%) rename {Demo => FreeRTOS/Demo}/dsPIC_MPLAB/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/dsPIC_MPLAB/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/dsPIC_MPLAB/RTOSDemo.mcs (100%) rename {Demo => FreeRTOS/Demo}/dsPIC_MPLAB/RTOSDemo.mcw (100%) rename {Demo => FreeRTOS/Demo}/dsPIC_MPLAB/RTOSDemo_dsPIC.mcp (100%) rename {Demo => FreeRTOS/Demo}/dsPIC_MPLAB/RTOSDemo_dsPIC.mcs (100%) rename {Demo => FreeRTOS/Demo}/dsPIC_MPLAB/lcd.c (100%) rename {Demo => FreeRTOS/Demo}/dsPIC_MPLAB/lcd.h (100%) rename {Demo => FreeRTOS/Demo}/dsPIC_MPLAB/main.c (100%) rename {Demo => FreeRTOS/Demo}/dsPIC_MPLAB/p33FJ256GP710.gld (100%) rename {Demo => FreeRTOS/Demo}/dsPIC_MPLAB/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/dsPIC_MPLAB/timertest.c (100%) rename {Demo => FreeRTOS/Demo}/dsPIC_MPLAB/timertest.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/AT32UC3A/GCC/Makefile (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/AT32UC3A/GCC/config.mk (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/AT32UC3A/GCC/gdb.ini (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/AT32UC3A/GCC/gdb_cmdfile.txt (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/AT32UC3A/IAR/Debug/Obj/lwipdemo.pbd (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/AT32UC3A/IAR/lwipdemo.ewd (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/AT32UC3A/IAR/lwipdemo.ewp (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/AT32UC3A/IAR/lwipdemo.eww (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/AT32UC3A/IAR/settings/lwipdemo.cspy.bat (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/AT32UC3A/IAR/settings/lwipdemo.dbgdt (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/AT32UC3A/IAR/settings/lwipdemo.dni (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/AT32UC3A/IAR/settings/lwipdemo.wsdt (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/BOARDS/EVK1100/evk1100.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/BOARDS/EVK1100/led.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/BOARDS/EVK1100/led.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/BOARDS/EVK1101/evk1101.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/BOARDS/EVK1101/led.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/BOARDS/EVK1101/led.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/BOARDS/board.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/DRIVERS/FLASHC/flashc.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/DRIVERS/FLASHC/flashc.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/DRIVERS/GPIO/gpio.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/DRIVERS/GPIO/gpio.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/DRIVERS/INTC/intc.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/DRIVERS/INTC/intc.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/DRIVERS/MACB/macb.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/DRIVERS/MACB/macb.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/DRIVERS/PM/pm.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/DRIVERS/PM/pm.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/DRIVERS/TC/tc.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/DRIVERS/TC/tc.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/DRIVERS/USART/usart.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/DRIVERS/USART/usart.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/NETWORK/BasicSMTP/BasicSMTP.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/NETWORK/BasicSMTP/BasicSMTP.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/NETWORK/BasicTFTP/BasicTFTP.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/NETWORK/BasicTFTP/BasicTFTP.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/NETWORK/BasicWEB/BasicWEB.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/NETWORK/BasicWEB/BasicWEB.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/NETWORK/ethernet.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/NETWORK/ethernet.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/IAR/errno.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/arch/cc.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/arch/cpu.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/arch/init.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/arch/lib.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/arch/perf.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/arch/sys_arch.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/ethernetif.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/lwip/opt.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/lwipopts.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/sys_arch.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/PARTEST/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/SERIAL/serial.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/BOOT/trampoline.S (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/BOOT/trampoline.s82 (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/conf_isp.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0128/GCC/link_uc3a0128.lds (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0128/IAR/lnkuc3a0128.xcl (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0256/GCC/link_uc3a0256.lds (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0256/IAR/lnkuc3a0256.xcl (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0512/GCC/link_uc3a0512.lds (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0512/IAR/lnkuc3a0512.xcl (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1128/GCC/link_uc3a1128.lds (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1128/IAR/lnkuc3a1128.xcl (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1256/GCC/link_uc3a1256.lds (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1256/IAR/lnkuc3a1256.xcl (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1512/GCC/link_uc3a1512.lds (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1512/IAR/lnkuc3a1512.xcl (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0128/GCC/link_uc3b0128.lds (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0128/IAR/lnkuc3b0128.xcl (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0256/GCC/link_uc3b0256.lds (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0256/IAR/lnkuc3b0256.xcl (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/064/GCC/link_uc3b064.lds (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/064/IAR/lnkuc3b064.xcl (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1128/GCC/link_uc3b1128.lds (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1128/IAR/lnkuc3b1128.xcl (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1256/GCC/link_uc3b1256.lds (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1256/IAR/lnkuc3b1256.xcl (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/164/GCC/link_uc3b164.lds (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/164/IAR/lnkuc3b164.xcl (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/UTILS/PREPROCESSOR/mrepeat.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/UTILS/PREPROCESSOR/preprocessor.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/UTILS/PREPROCESSOR/stringz.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/UTILS/PREPROCESSOR/tpaste.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/UTILS/compiler.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/conf_eth.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/lwipopts.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/main.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/printf-stdarg.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_AVR32_UC3/readme.html (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/AT91SAM7S256_MemoryMap.xml (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/AT91SAM7_Startup.s (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/AT91SAM7_Target.js (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/BasicWEB.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/BasicWEB.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/Board.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/Cstartup_SAM7.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/EMAC/Emac.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/EMAC/SAM7_EMAC.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/EMAC/SAM7_EMAC.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/EMAC/SAM7_EMAC_ISR.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/EMAC/mii.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/USB/FreeRTOSCDC.inf (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/USB/USB-CDC.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/USB/USB-CDC.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/USB/USBIsr.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/USB/descriptors.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/USB/usb.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/atmel-rom.ld (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/boot.s (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/crt0.s (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/flash_placement.xml (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/CHANGELOG (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/COPYING (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/FILES (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/README (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/contrib/port/FreeRTOS/AT91SAM7X/arch/cc.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/contrib/port/FreeRTOS/AT91SAM7X/arch/cpu.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/contrib/port/FreeRTOS/AT91SAM7X/arch/init.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/contrib/port/FreeRTOS/AT91SAM7X/arch/lib.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/contrib/port/FreeRTOS/AT91SAM7X/arch/perf.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/contrib/port/FreeRTOS/AT91SAM7X/arch/sys_arch.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/contrib/port/FreeRTOS/AT91SAM7X/sys_arch.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/doc/contrib.txt (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/doc/rawapi.txt (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/doc/savannah.txt (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/doc/sys_arch.txt (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/FILES (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/api/api_lib.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/api/api_msg.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/api/err.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/api/sockets.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/api/tcpip.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/dhcp.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/inet.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/inet6.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv4/icmp.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv4/ip.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv4/ip_addr.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv4/ip_frag.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv6/README (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv6/icmp6.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv6/ip6.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv6/ip6_addr.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/mem.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/memp.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/netif.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/pbuf.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/raw.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/stats.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/sys.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/tcp.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/tcp_in.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/tcp_out.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/udp.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv4/lwip/icmp.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv4/lwip/inet.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv4/lwip/ip.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv4/lwip/ip_addr.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv4/lwip/ip_frag.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv6/lwip/icmp.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv6/lwip/inet.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv6/lwip/ip.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv6/lwip/ip_addr.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/api.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/api_msg.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/arch.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/debug.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/def.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/dhcp.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/err.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/mem.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/memp.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/netif.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/opt.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/pbuf.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/raw.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/sio.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/snmp.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/sockets.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/stats.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/sys.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/tcp.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/tcpip.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/udp.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/netif/etharp.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/netif/loopif.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/netif/slipif.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/FILES (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/etharp.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ethernetif.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/loopif.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/auth.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/auth.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/chap.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/chap.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/chpms.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/chpms.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/fsm.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/fsm.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/ipcp.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/ipcp.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/lcp.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/lcp.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/magic.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/magic.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/md5.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/md5.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/pap.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/pap.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/ppp.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/ppp.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/pppdebug.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/randm.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/randm.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/vj.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/vj.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/vjbsdhdr.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/slipif.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/lwipopts.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/main.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/makefile (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/rtosdemo.hzp (100%) rename {Demo => FreeRTOS/Demo}/lwIP_Demo_Rowley_ARM7/rtosdemo.hzs (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/Changelog.txt (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/LICENSE_FREESCALE.TXT (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/Makefile (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/README.txt (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/demo.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/include/arch/mcf523x.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_can.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_ccm.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_cs.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_eport.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_etpu.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_fec.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_fmpll.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_gpio.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_i2c.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_intc0.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_intc1.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_mdha.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_pit.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_qspi.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_rcm.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_rng.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_scm.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_sdramc.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_skha.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_sram.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_timer.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_uart.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_wtm.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/include/arch/mcf5xxx.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/CHANGELOG (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/COPYING (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/FILES (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/README (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/arch/cc.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/arch/cpu.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/arch/perf.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/arch/sys_arch.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/netif/fec.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/netif/fec.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/netif/nbuf.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/netif/nbuf.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/sys_arch.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/doc/contrib.txt (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/doc/rawapi.txt (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/doc/savannah.txt (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/doc/sys_arch.txt (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/FILES (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/api/api_lib.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/api/api_msg.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/api/err.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/api/sockets.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/api/tcpip.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/core/dhcp.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/core/inet.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/core/inet6.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/core/ipv4/icmp.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/core/ipv4/ip.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/core/ipv4/ip_addr.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/core/ipv4/ip_frag.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/core/ipv6/README (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/core/ipv6/icmp6.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/core/ipv6/ip6.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/core/ipv6/ip6_addr.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/core/mem.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/core/memp.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/core/netif.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/core/pbuf.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/core/raw.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/core/stats.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/core/sys.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/core/tcp.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/core/tcp_in.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/core/tcp_out.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/core/udp.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/include/ipv4/lwip/icmp.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/include/ipv4/lwip/inet.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/include/ipv4/lwip/ip.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/include/ipv4/lwip/ip_addr.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/include/ipv4/lwip/ip_frag.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/include/ipv6/lwip/icmp.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/include/ipv6/lwip/inet.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/include/ipv6/lwip/ip.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/include/ipv6/lwip/ip_addr.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/include/lwip/api.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/include/lwip/api_msg.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/include/lwip/arch.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/include/lwip/debug.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/include/lwip/def.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/include/lwip/dhcp.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/include/lwip/err.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/include/lwip/mem.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/include/lwip/memp.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/include/lwip/netif.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/include/lwip/opt.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/include/lwip/pbuf.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/include/lwip/raw.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/include/lwip/sio.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/include/lwip/snmp.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/include/lwip/sockets.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/include/lwip/stats.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/include/lwip/sys.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/include/lwip/tcp.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/include/lwip/tcpip.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/include/lwip/udp.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/include/netif/etharp.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/include/netif/loopif.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/include/netif/slipif.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/netif/FILES (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/netif/etharp.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/netif/ethernetif.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/netif/loopif.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/netif/ppp/auth.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/netif/ppp/auth.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/netif/ppp/chap.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/netif/ppp/chap.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/netif/ppp/chpms.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/netif/ppp/chpms.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/netif/ppp/fsm.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/netif/ppp/fsm.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/netif/ppp/ipcp.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/netif/ppp/ipcp.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/netif/ppp/lcp.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/netif/ppp/lcp.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/netif/ppp/magic.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/netif/ppp/magic.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/netif/ppp/md5.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/netif/ppp/md5.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/netif/ppp/pap.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/netif/ppp/pap.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/netif/ppp/ppp.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/netif/ppp/ppp.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/netif/ppp/pppdebug.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/netif/ppp/randm.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/netif/ppp/randm.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/netif/ppp/vj.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/netif/ppp/vj.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/netif/ppp/vjbsdhdr.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwip/src/netif/slipif.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/lwipopts.h (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/m5235-ram.ld (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/m5235-rom.ld (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/m5235.gdb (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/system/crt0.S (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/system/init.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/system/mcf5xxx.S (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/system/newlib.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/system/serial.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/system/vector.S (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/tools/indent.sh (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/tools/mcf5235-http.png (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/tools/mcf5235-icmp-frame-len1024.png (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/tools/mcf5235-icmp-frame-len64.png (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/web.c (100%) rename {Demo => FreeRTOS/Demo}/lwIP_MCF5235_GCC/web.h (100%) rename {Demo => FreeRTOS/Demo}/msp430_CrossWorks/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/msp430_CrossWorks/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/msp430_CrossWorks/RTOSDemo.hzp (100%) rename {Demo => FreeRTOS/Demo}/msp430_CrossWorks/RTOSDemo.hzs (100%) rename {Demo => FreeRTOS/Demo}/msp430_CrossWorks/main.c (100%) rename {Demo => FreeRTOS/Demo}/msp430_CrossWorks/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/msp430_CrossWorks/serial/serialASM.asm (100%) rename {Demo => FreeRTOS/Demo}/msp430_GCC/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/msp430_GCC/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/msp430_GCC/gdb.ini (100%) rename {Demo => FreeRTOS/Demo}/msp430_GCC/main.c (100%) rename {Demo => FreeRTOS/Demo}/msp430_GCC/makefile (100%) rename {Demo => FreeRTOS/Demo}/msp430_GCC/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/msp430_IAR/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/msp430_IAR/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/msp430_IAR/RTOSDemo.ewd (100%) rename {Demo => FreeRTOS/Demo}/msp430_IAR/RTOSDemo.ewp (100%) rename {Demo => FreeRTOS/Demo}/msp430_IAR/RTOSDemo.eww (100%) rename {Demo => FreeRTOS/Demo}/msp430_IAR/main.c (100%) rename {Demo => FreeRTOS/Demo}/msp430_IAR/serial/serial.c (100%) rename {Demo => FreeRTOS/Demo}/msp430_IAR/serial/serialASM.s43 (100%) rename {Demo => FreeRTOS/Demo}/msp430_IAR/settings/RTOSDemo.cspy.bat (100%) rename {Demo => FreeRTOS/Demo}/msp430_IAR/settings/RTOSDemo.dbgdt (100%) rename {Demo => FreeRTOS/Demo}/msp430_IAR/settings/RTOSDemo.dni (100%) rename {Demo => FreeRTOS/Demo}/msp430_IAR/settings/RTOSDemo.wsdt (100%) rename {Demo => FreeRTOS/Demo}/readme.txt (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/EMAC/EMAClISR.s79 (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/EMAC/SAM7_EMAC.c (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/EMAC/SAM7_EMAC.h (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/ParTest/ParTest.c (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/SrcIAR/Board.h (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/SrcIAR/Cstartup.s (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/SrcIAR/Cstartup_SAM7.c (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/SrcIAR/Emac.h (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/SrcIAR/dbgu.c (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/SrcIAR/dbgu.h (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/SrcIAR/init.c (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/SrcIAR/ioat91sam7x128.h (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/SrcIAR/ioat91sam7x256.h (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/SrcIAR/mii.h (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/main.c (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/resource/SAM7.mac (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/resource/SAM7_RAM.mac (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/resource/at91SAM7X256_FLASH.icf (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/resource/at91sam7x-ek-flash.mac (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/rtosdemo.ewd (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/rtosdemo.ewp (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/rtosdemo.eww (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/settings/Basic.dbgdt (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/settings/Basic.dni (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/settings/BasicSAM7.wsdt (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/settings/rtosdemo.dbgdt (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/settings/rtosdemo.dni (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/settings/rtosdemo.wsdt (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uIP_Task.c (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uIP_Task.h (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/Makefile (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/cgi.c (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/cgi.h (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/crt0.asm (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/fs.c (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/fs.h (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/fs/404.html (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/fs/cgi/files (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/fs/cgi/rtos (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/fs/cgi/stats (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/fs/cgi/tcp (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/fs/control.html (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/fs/files_footer.plain (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/fs/files_header.html (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/fs/img/logo.png (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/fs/index.html (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/fs/stats_footer.plain (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/fs/stats_header.html (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/fs/tcp_footer.plain (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/fs/tcp_header.html (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/fsdata.c (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/fsdata.h (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/httpd.c (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/httpd.c_ (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/httpd.h (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/main_led (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/makefsdata (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/memb.c (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/memb.h (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/setarp.bat (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/slipdev.c (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/slipdev.h (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/tapdev.c (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/tapdev.h (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/telnetd-shell.c (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/telnetd.c (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/telnetd.h (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/uip.c (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/uip.h (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/uip_arch.c (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/uip_arch.h (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/uip_arp.c (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/uip_arp.h (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_IAR_ARM7/uip/uipopt.h (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/FreeRTOSConfig.h (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/Philips_LPC210X_Startup.s (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/flash_placement.xml (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/lpc210x.h (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/main.c (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/rtosdemo.hzp (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/rtosdemo.hzs (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/Makefile (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/cgi.c (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/cgi.h (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/crt0.asm (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/cs8900a.c (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/cs8900a.h (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/fs.c (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/fs.h (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/fs/404.html (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/fs/about.html (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/fs/cgi/files (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/fs/cgi/stats (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/fs/cgi/tcp (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/fs/control.html (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/fs/files_footer.plain (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/fs/files_header.html (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/fs/img/bg.png (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/fs/index.html (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/fs/stats_footer.plain (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/fs/stats_header.html (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/fs/tcp_footer.plain (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/fs/tcp_header.html (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/fsdata.c (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/fsdata.h (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/httpd.c (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/httpd.h (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/main_led (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/makefsdata (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/memb.c (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/memb.h (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/slipdev.c (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/slipdev.h (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/tapdev.c (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/tapdev.h (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/telnetd-shell.c (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/telnetd.c (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/telnetd.h (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/uIP_Task.c (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/uip.c (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/uip.h (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/uip_arch.c (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/uip_arch.h (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/uip_arp.c (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/uip_arp.h (100%) rename {Demo => FreeRTOS/Demo}/uIP_Demo_Rowley_ARM7/uip/uipopt.h (100%) rename {License => FreeRTOS/License}/license.txt (100%) rename {Source => FreeRTOS/Source}/croutine.c (100%) rename {Source => FreeRTOS/Source}/include/FreeRTOS.h (100%) rename {Source => FreeRTOS/Source}/include/StackMacros.h (100%) rename {Source => FreeRTOS/Source}/include/croutine.h (100%) rename {Source => FreeRTOS/Source}/include/list.h (100%) rename {Source => FreeRTOS/Source}/include/mpu_wrappers.h (100%) rename {Source => FreeRTOS/Source}/include/portable.h (100%) rename {Source => FreeRTOS/Source}/include/projdefs.h (100%) rename {Source => FreeRTOS/Source}/include/queue.h (100%) rename {Source => FreeRTOS/Source}/include/semphr.h (100%) rename {Source => FreeRTOS/Source}/include/task.h (100%) rename {Source => FreeRTOS/Source}/include/timers.h (100%) rename {Source => FreeRTOS/Source}/list.c (100%) rename {Source => FreeRTOS/Source}/portable/BCC/16BitDOS/Flsh186/port.c (100%) rename {Source => FreeRTOS/Source}/portable/BCC/16BitDOS/Flsh186/prtmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/BCC/16BitDOS/PC/port.c (100%) rename {Source => FreeRTOS/Source}/portable/BCC/16BitDOS/PC/prtmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/BCC/16BitDOS/common/portasm.h (100%) rename {Source => FreeRTOS/Source}/portable/BCC/16BitDOS/common/portcomn.c (100%) rename {Source => FreeRTOS/Source}/portable/CCS/MSP430X/data_model.h (100%) rename {Source => FreeRTOS/Source}/portable/CCS/MSP430X/port.c (100%) rename {Source => FreeRTOS/Source}/portable/CCS/MSP430X/portext.asm (100%) rename {Source => FreeRTOS/Source}/portable/CCS/MSP430X/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/CodeWarrior/ColdFire_V1/port.c (100%) rename {Source => FreeRTOS/Source}/portable/CodeWarrior/ColdFire_V1/portasm.S (100%) rename {Source => FreeRTOS/Source}/portable/CodeWarrior/ColdFire_V1/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/CodeWarrior/ColdFire_V2/port.c (100%) rename {Source => FreeRTOS/Source}/portable/CodeWarrior/ColdFire_V2/portasm.S (100%) rename {Source => FreeRTOS/Source}/portable/CodeWarrior/ColdFire_V2/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/CodeWarrior/HCS12/port.c (100%) rename {Source => FreeRTOS/Source}/portable/CodeWarrior/HCS12/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/GCC/ARM7_AT91FR40008/port.c (100%) rename {Source => FreeRTOS/Source}/portable/GCC/ARM7_AT91FR40008/portISR.c (100%) rename {Source => FreeRTOS/Source}/portable/GCC/ARM7_AT91FR40008/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/GCC/ARM7_AT91SAM7S/AT91SAM7X256.h (100%) rename {Source => FreeRTOS/Source}/portable/GCC/ARM7_AT91SAM7S/ioat91sam7x256.h (100%) rename {Source => FreeRTOS/Source}/portable/GCC/ARM7_AT91SAM7S/lib_AT91SAM7X256.c (100%) rename {Source => FreeRTOS/Source}/portable/GCC/ARM7_AT91SAM7S/lib_AT91SAM7X256.h (100%) rename {Source => FreeRTOS/Source}/portable/GCC/ARM7_AT91SAM7S/port.c (100%) rename {Source => FreeRTOS/Source}/portable/GCC/ARM7_AT91SAM7S/portISR.c (100%) rename {Source => FreeRTOS/Source}/portable/GCC/ARM7_AT91SAM7S/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/GCC/ARM7_LPC2000/port.c (100%) rename {Source => FreeRTOS/Source}/portable/GCC/ARM7_LPC2000/portISR.c (100%) rename {Source => FreeRTOS/Source}/portable/GCC/ARM7_LPC2000/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/GCC/ARM7_LPC23xx/port.c (100%) rename {Source => FreeRTOS/Source}/portable/GCC/ARM7_LPC23xx/portISR.c (100%) rename {Source => FreeRTOS/Source}/portable/GCC/ARM7_LPC23xx/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/GCC/ARM_CM0/port.c (100%) rename {Source => FreeRTOS/Source}/portable/GCC/ARM_CM0/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/GCC/ARM_CM3/port.c (100%) rename {Source => FreeRTOS/Source}/portable/GCC/ARM_CM3/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/GCC/ARM_CM3_MPU/port.c (100%) rename {Source => FreeRTOS/Source}/portable/GCC/ARM_CM3_MPU/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/GCC/ARM_CM4F/port.c (100%) rename {Source => FreeRTOS/Source}/portable/GCC/ARM_CM4F/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/GCC/ATMega323/port.c (100%) rename {Source => FreeRTOS/Source}/portable/GCC/ATMega323/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/GCC/AVR32_UC3/exception.S (100%) rename {Source => FreeRTOS/Source}/portable/GCC/AVR32_UC3/port.c (100%) rename {Source => FreeRTOS/Source}/portable/GCC/AVR32_UC3/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/GCC/CORTUS_APS3/port.c (100%) rename {Source => FreeRTOS/Source}/portable/GCC/CORTUS_APS3/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/GCC/ColdFire_V2/port.c (100%) rename {Source => FreeRTOS/Source}/portable/GCC/ColdFire_V2/portasm.S (100%) rename {Source => FreeRTOS/Source}/portable/GCC/ColdFire_V2/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/GCC/H8S2329/port.c (100%) rename {Source => FreeRTOS/Source}/portable/GCC/H8S2329/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/GCC/HCS12/port.c (100%) rename {Source => FreeRTOS/Source}/portable/GCC/HCS12/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/GCC/MCF5235/port.c (100%) rename {Source => FreeRTOS/Source}/portable/GCC/MCF5235/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/GCC/MSP430F449/port.c (100%) rename {Source => FreeRTOS/Source}/portable/GCC/MSP430F449/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/GCC/MicroBlaze/port.c (100%) rename {Source => FreeRTOS/Source}/portable/GCC/MicroBlaze/portasm.s (100%) rename {Source => FreeRTOS/Source}/portable/GCC/MicroBlaze/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/GCC/MicroBlazeV8/port.c (100%) rename {Source => FreeRTOS/Source}/portable/GCC/MicroBlazeV8/port_exceptions.c (100%) rename {Source => FreeRTOS/Source}/portable/GCC/MicroBlazeV8/portasm.S (100%) rename {Source => FreeRTOS/Source}/portable/GCC/MicroBlazeV8/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/GCC/NiosII/port.c (100%) rename {Source => FreeRTOS/Source}/portable/GCC/NiosII/port_asm.S (100%) rename {Source => FreeRTOS/Source}/portable/GCC/NiosII/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/GCC/PPC405_Xilinx/FPU_Macros.h (100%) rename {Source => FreeRTOS/Source}/portable/GCC/PPC405_Xilinx/port.c (100%) rename {Source => FreeRTOS/Source}/portable/GCC/PPC405_Xilinx/portasm.S (100%) rename {Source => FreeRTOS/Source}/portable/GCC/PPC405_Xilinx/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/GCC/PPC440_Xilinx/FPU_Macros.h (100%) rename {Source => FreeRTOS/Source}/portable/GCC/PPC440_Xilinx/port.c (100%) rename {Source => FreeRTOS/Source}/portable/GCC/PPC440_Xilinx/portasm.S (100%) rename {Source => FreeRTOS/Source}/portable/GCC/PPC440_Xilinx/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/GCC/RX600/port.c (100%) rename {Source => FreeRTOS/Source}/portable/GCC/RX600/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/GCC/STR75x/port.c (100%) rename {Source => FreeRTOS/Source}/portable/GCC/STR75x/portISR.c (100%) rename {Source => FreeRTOS/Source}/portable/GCC/STR75x/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/GCC/TriCore_1782/port.c (100%) rename {Source => FreeRTOS/Source}/portable/GCC/TriCore_1782/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/GCC/TriCore_1782/porttrap.c (100%) rename {Source => FreeRTOS/Source}/portable/IAR/78K0R/ISR_Support.h (100%) rename {Source => FreeRTOS/Source}/portable/IAR/78K0R/port.c (100%) rename {Source => FreeRTOS/Source}/portable/IAR/78K0R/portasm.s26 (100%) rename {Source => FreeRTOS/Source}/portable/IAR/78K0R/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/IAR/ARM_CM0/port.c (100%) rename {Source => FreeRTOS/Source}/portable/IAR/ARM_CM0/portasm.s (100%) rename {Source => FreeRTOS/Source}/portable/IAR/ARM_CM0/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/IAR/ARM_CM3/port.c (100%) rename {Source => FreeRTOS/Source}/portable/IAR/ARM_CM3/portasm.s (100%) rename {Source => FreeRTOS/Source}/portable/IAR/ARM_CM3/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/IAR/ARM_CM4F/port.c (100%) rename {Source => FreeRTOS/Source}/portable/IAR/ARM_CM4F/portasm.s (100%) rename {Source => FreeRTOS/Source}/portable/IAR/ARM_CM4F/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/IAR/ATMega323/port.c (100%) rename {Source => FreeRTOS/Source}/portable/IAR/ATMega323/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/IAR/ATMega323/portmacro.s90 (100%) rename {Source => FreeRTOS/Source}/portable/IAR/AVR32_UC3/exception.s82 (100%) rename {Source => FreeRTOS/Source}/portable/IAR/AVR32_UC3/port.c (100%) rename {Source => FreeRTOS/Source}/portable/IAR/AVR32_UC3/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/IAR/AVR32_UC3/read.c (100%) rename {Source => FreeRTOS/Source}/portable/IAR/AVR32_UC3/write.c (100%) rename {Source => FreeRTOS/Source}/portable/IAR/AtmelSAM7S64/AT91SAM7S64.h (100%) rename {Source => FreeRTOS/Source}/portable/IAR/AtmelSAM7S64/AT91SAM7S64_inc.h (100%) rename {Source => FreeRTOS/Source}/portable/IAR/AtmelSAM7S64/AT91SAM7X128.h (100%) rename {Source => FreeRTOS/Source}/portable/IAR/AtmelSAM7S64/AT91SAM7X128_inc.h (100%) rename {Source => FreeRTOS/Source}/portable/IAR/AtmelSAM7S64/AT91SAM7X256.h (100%) rename {Source => FreeRTOS/Source}/portable/IAR/AtmelSAM7S64/AT91SAM7X256_inc.h (100%) rename {Source => FreeRTOS/Source}/portable/IAR/AtmelSAM7S64/ISR_Support.h (100%) rename {Source => FreeRTOS/Source}/portable/IAR/AtmelSAM7S64/lib_AT91SAM7S64.h (100%) rename {Source => FreeRTOS/Source}/portable/IAR/AtmelSAM7S64/lib_AT91SAM7X128.h (100%) rename {Source => FreeRTOS/Source}/portable/IAR/AtmelSAM7S64/lib_AT91SAM7X256.h (100%) rename {Source => FreeRTOS/Source}/portable/IAR/AtmelSAM7S64/port.c (100%) rename {Source => FreeRTOS/Source}/portable/IAR/AtmelSAM7S64/portasm.s79 (100%) rename {Source => FreeRTOS/Source}/portable/IAR/AtmelSAM7S64/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/IAR/AtmelSAM9XE/ISR_Support.h (100%) rename {Source => FreeRTOS/Source}/portable/IAR/AtmelSAM9XE/port.c (100%) rename {Source => FreeRTOS/Source}/portable/IAR/AtmelSAM9XE/portasm.s79 (100%) rename {Source => FreeRTOS/Source}/portable/IAR/AtmelSAM9XE/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/IAR/LPC2000/ISR_Support.h (100%) rename {Source => FreeRTOS/Source}/portable/IAR/LPC2000/port.c (100%) rename {Source => FreeRTOS/Source}/portable/IAR/LPC2000/portasm.s79 (100%) rename {Source => FreeRTOS/Source}/portable/IAR/LPC2000/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/IAR/MSP430/port.c (100%) rename {Source => FreeRTOS/Source}/portable/IAR/MSP430/portasm.h (100%) rename {Source => FreeRTOS/Source}/portable/IAR/MSP430/portext.s43 (100%) rename {Source => FreeRTOS/Source}/portable/IAR/MSP430/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/IAR/MSP430X/data_model.h (100%) rename {Source => FreeRTOS/Source}/portable/IAR/MSP430X/port.c (100%) rename {Source => FreeRTOS/Source}/portable/IAR/MSP430X/portext.s43 (100%) rename {Source => FreeRTOS/Source}/portable/IAR/MSP430X/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/IAR/RL78/ISR_Support.h (100%) rename {Source => FreeRTOS/Source}/portable/IAR/RL78/port.c (100%) rename {Source => FreeRTOS/Source}/portable/IAR/RL78/portasm.s87 (100%) rename {Source => FreeRTOS/Source}/portable/IAR/RL78/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/IAR/RX600/port.c (100%) rename {Source => FreeRTOS/Source}/portable/IAR/RX600/port_asm.s (100%) rename {Source => FreeRTOS/Source}/portable/IAR/RX600/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/IAR/STR71x/ISR_Support.h (100%) rename {Source => FreeRTOS/Source}/portable/IAR/STR71x/port.c (100%) rename {Source => FreeRTOS/Source}/portable/IAR/STR71x/portasm.s79 (100%) rename {Source => FreeRTOS/Source}/portable/IAR/STR71x/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/IAR/STR75x/ISR_Support.h (100%) rename {Source => FreeRTOS/Source}/portable/IAR/STR75x/port.c (100%) rename {Source => FreeRTOS/Source}/portable/IAR/STR75x/portasm.s79 (100%) rename {Source => FreeRTOS/Source}/portable/IAR/STR75x/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/IAR/STR91x/ISR_Support.h (100%) rename {Source => FreeRTOS/Source}/portable/IAR/STR91x/port.c (100%) rename {Source => FreeRTOS/Source}/portable/IAR/STR91x/portasm.s79 (100%) rename {Source => FreeRTOS/Source}/portable/IAR/STR91x/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/IAR/V850ES/ISR_Support.h (100%) rename {Source => FreeRTOS/Source}/portable/IAR/V850ES/port.c (100%) rename {Source => FreeRTOS/Source}/portable/IAR/V850ES/portasm.s85 (100%) rename {Source => FreeRTOS/Source}/portable/IAR/V850ES/portasm_Fx3.s85 (100%) rename {Source => FreeRTOS/Source}/portable/IAR/V850ES/portasm_Hx2.s85 (100%) rename {Source => FreeRTOS/Source}/portable/IAR/V850ES/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/Keil/See-also-the-RVDS-directory.txt (100%) rename {Source => FreeRTOS/Source}/portable/MPLAB/PIC18F/port.c (100%) rename {Source => FreeRTOS/Source}/portable/MPLAB/PIC18F/portmacro.h (100%) create mode 100644 FreeRTOS/Source/portable/MPLAB/PIC18F/stdio.h rename {Source => FreeRTOS/Source}/portable/MPLAB/PIC24_dsPIC/port.c (100%) rename {Source => FreeRTOS/Source}/portable/MPLAB/PIC24_dsPIC/portasm_PIC24.S (100%) rename {Source => FreeRTOS/Source}/portable/MPLAB/PIC24_dsPIC/portasm_dsPIC.S (100%) rename {Source => FreeRTOS/Source}/portable/MPLAB/PIC24_dsPIC/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/MPLAB/PIC32MX/ISR_Support.h (100%) rename {Source => FreeRTOS/Source}/portable/MPLAB/PIC32MX/port.c (100%) rename {Source => FreeRTOS/Source}/portable/MPLAB/PIC32MX/port_asm.S (100%) rename {Source => FreeRTOS/Source}/portable/MPLAB/PIC32MX/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/MSVC-MingW/port.c (100%) rename {Source => FreeRTOS/Source}/portable/MSVC-MingW/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/MemMang/heap_1.c (100%) rename {Source => FreeRTOS/Source}/portable/MemMang/heap_2.c (100%) rename {Source => FreeRTOS/Source}/portable/MemMang/heap_3.c (100%) rename {Source => FreeRTOS/Source}/portable/MemMang/heap_4.c (100%) rename {Source => FreeRTOS/Source}/portable/Paradigm/Tern_EE/large_untested/port.c (100%) rename {Source => FreeRTOS/Source}/portable/Paradigm/Tern_EE/large_untested/portasm.h (100%) rename {Source => FreeRTOS/Source}/portable/Paradigm/Tern_EE/large_untested/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/Paradigm/Tern_EE/small/port.c (100%) rename {Source => FreeRTOS/Source}/portable/Paradigm/Tern_EE/small/portasm.h (100%) rename {Source => FreeRTOS/Source}/portable/Paradigm/Tern_EE/small/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/RVDS/ARM7_LPC21xx/port.c (100%) rename {Source => FreeRTOS/Source}/portable/RVDS/ARM7_LPC21xx/portASM.s (100%) rename {Source => FreeRTOS/Source}/portable/RVDS/ARM7_LPC21xx/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/RVDS/ARM7_LPC21xx/portmacro.inc (100%) rename {Source => FreeRTOS/Source}/portable/RVDS/ARM_CM3/port.c (100%) rename {Source => FreeRTOS/Source}/portable/RVDS/ARM_CM3/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/RVDS/ARM_CM4F/port.c (100%) rename {Source => FreeRTOS/Source}/portable/RVDS/ARM_CM4F/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/Renesas/RX200/port.c (100%) rename {Source => FreeRTOS/Source}/portable/Renesas/RX200/port_asm.src (100%) rename {Source => FreeRTOS/Source}/portable/Renesas/RX200/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/Renesas/RX600/port.c (100%) rename {Source => FreeRTOS/Source}/portable/Renesas/RX600/port_asm.src (100%) rename {Source => FreeRTOS/Source}/portable/Renesas/RX600/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/Renesas/SH2A_FPU/ISR_Support.inc (100%) rename {Source => FreeRTOS/Source}/portable/Renesas/SH2A_FPU/port.c (100%) rename {Source => FreeRTOS/Source}/portable/Renesas/SH2A_FPU/portasm.src (100%) rename {Source => FreeRTOS/Source}/portable/Renesas/SH2A_FPU/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/Rowley/ARM7/readme.txt (100%) rename {Source => FreeRTOS/Source}/portable/Rowley/MSP430F449/port.c (100%) rename {Source => FreeRTOS/Source}/portable/Rowley/MSP430F449/portasm.h (100%) rename {Source => FreeRTOS/Source}/portable/Rowley/MSP430F449/portext.asm (100%) rename {Source => FreeRTOS/Source}/portable/Rowley/MSP430F449/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/SDCC/Cygnal/port.c (100%) rename {Source => FreeRTOS/Source}/portable/SDCC/Cygnal/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/Softune/MB91460/__STD_LIB_sbrk.c (100%) rename {Source => FreeRTOS/Source}/portable/Softune/MB91460/port.c (100%) rename {Source => FreeRTOS/Source}/portable/Softune/MB91460/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/Softune/MB96340/__STD_LIB_sbrk.c (100%) rename {Source => FreeRTOS/Source}/portable/Softune/MB96340/port.c (100%) rename {Source => FreeRTOS/Source}/portable/Softune/MB96340/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/Tasking/ARM_CM4F/port.c (100%) rename {Source => FreeRTOS/Source}/portable/Tasking/ARM_CM4F/port_asm.asm (100%) rename {Source => FreeRTOS/Source}/portable/Tasking/ARM_CM4F/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/WizC/PIC18/Drivers/Tick/Tick.c (100%) rename {Source => FreeRTOS/Source}/portable/WizC/PIC18/Drivers/Tick/isrTick.c (100%) rename {Source => FreeRTOS/Source}/portable/WizC/PIC18/Install.bat (100%) rename {Source => FreeRTOS/Source}/portable/WizC/PIC18/addFreeRTOS.h (100%) rename {Source => FreeRTOS/Source}/portable/WizC/PIC18/port.c (100%) rename {Source => FreeRTOS/Source}/portable/WizC/PIC18/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/oWatcom/16BitDOS/Flsh186/port.c (100%) rename {Source => FreeRTOS/Source}/portable/oWatcom/16BitDOS/Flsh186/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/oWatcom/16BitDOS/PC/port.c (100%) rename {Source => FreeRTOS/Source}/portable/oWatcom/16BitDOS/PC/portmacro.h (100%) rename {Source => FreeRTOS/Source}/portable/oWatcom/16BitDOS/common/portasm.h (100%) rename {Source => FreeRTOS/Source}/portable/oWatcom/16BitDOS/common/portcomn.c (100%) rename {Source => FreeRTOS/Source}/portable/readme.txt (100%) rename {Source => FreeRTOS/Source}/queue.c (100%) rename {Source => FreeRTOS/Source}/readme.txt (100%) rename {Source => FreeRTOS/Source}/tasks.c (100%) rename {Source => FreeRTOS/Source}/timers.c (100%) create mode 100644 FreeRTOS/readme.txt delete mode 100644 readme.txt diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/.log b/FreeRTOS-Plus/CyaSSL/AUTHORS similarity index 100% rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/.log rename to FreeRTOS-Plus/CyaSSL/AUTHORS diff --git a/FreeRTOS-Plus/CyaSSL/COPYING b/FreeRTOS-Plus/CyaSSL/COPYING new file mode 100644 index 000000000..d60c31a97 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/COPYING @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/.log b/FreeRTOS-Plus/CyaSSL/ChangeLog similarity index 100% rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/.log rename to FreeRTOS-Plus/CyaSSL/ChangeLog diff --git a/FreeRTOS-Plus/CyaSSL/Makefile.am b/FreeRTOS-Plus/CyaSSL/Makefile.am new file mode 100644 index 000000000..95d4ead56 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/Makefile.am @@ -0,0 +1,82 @@ +# includes append to these: +SUFFIXES = +TESTS = +CLEANFILES = +DISTCLEANFILES = +bin_PROGRAMS = +noinst_HEADERS = +lib_LTLIBRARIES = +man_MANS = +noinst_LTLIBRARIES = +noinst_PROGRAMS = +include_HEADERS = +nobase_include_HEADERS = +check_PROGRAMS = +EXTRA_HEADERS = +BUILT_SOURCES= +EXTRA_DIST= +doc_DATA= + +exampledir = $(docdir)/@PACKAGE@/example +example_DATA= +EXTRA_DIST+= $(example_DATA) + +certsdir = $(sysconfdir)/ssl/certs +certs_DATA= +EXTRA_DIST+= $(certs_DATA) + +EXTRA_DIST+= $(doc_DATA) + +ACLOCAL_AMFLAGS= -I m4 --install + +EXTRA_DIST+= lib/dummy + +EXTRA_DIST+= cyassl-ntru.vcproj +EXTRA_DIST+= cyassl.vcproj +EXTRA_DIST+= cyassl-iphone.xcodeproj/project.pbxproj +EXTRA_DIST+= cyassl-ntru.sln +EXTRA_DIST+= cyassl.sln + +include cyassl/include.am +include certs/include.am +include certs/crl/include.am +include doc/include.am +include swig/include.am + +include src/include.am +include ctaocrypt/benchmark/include.am +include ctaocrypt/src/include.am +include ctaocrypt/test/include.am +include examples/client/include.am +include examples/server/include.am +include examples/echoclient/include.am +include examples/echoserver/include.am +include testsuite/include.am +include tests/include.am +include sslSniffer/sslSnifferTest/include.am + +TESTS += $(check_PROGRAMS) +test: check + +# !!!! first line of rule has to start with a hard (real) tab, not spaces +egs: + $(MAKE) examples/client/client; \ + $(MAKE) examples/echoclient/echoclient;\ + $(MAKE) examples/server/server; \ + $(MAKE) examples/echoserver/echoserver; + +ctc: + $(MAKE) ctaocrypt/test/testctaocrypt; \ + $(MAKE) ctaocrypt/benchmark/benchmark; + +merge-clean: + @find ./ | $(GREP) \.gcda | xargs rm -f + @find ./ | $(GREP) \.gcno | xargs rm -f + @find ./ | $(GREP) \.gz | xargs rm -f + @find ./ | $(GREP) \.orig | xargs rm -f + @find ./ | $(GREP) \.rej | xargs rm -f + @find ./ | $(GREP) \.rpm | xargs rm -f + @find ./ | $(GREP) \.THIS | xargs rm -f + @find ./ | $(GREP) \.OTHER | xargs rm -f + @find ./ | $(GREP) \.BASE | xargs rm -f + @find ./ | $(GREP) \~$$ | xargs rm -f diff --git a/FreeRTOS-Plus/CyaSSL/Makefile.in b/FreeRTOS-Plus/CyaSSL/Makefile.in new file mode 100644 index 000000000..42db53439 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/Makefile.in @@ -0,0 +1,2066 @@ +# Makefile.in generated by automake 1.10 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# vim:ft=automake +# All paths should be given relative to the root +# + +# vim:ft=automake +# All paths should be given relative to the root + +# vim:ft=automake +# All paths should be given relative to the root + +# vim:ft=automake +# All paths should be given relative to the root +# + +# vim:ft=automake +# All paths should be given relative to the root +# + +# vim:ft=automake +# included from Top Level Makefile.am +# All paths should be given relative to the root + +# vim:ft=automake +# All paths should be given relative to the root + +# vim:ft=automake +# included from Top Level Makefile.am +# All paths should be given relative to the root + +# vim:ft=automake +# All paths should be given relative to the root + +# vim:ft=automake +# All paths should be given relative to the root + +# vim:ft=automake +# All paths should be given relative to the root + +# vim:ft=automake +# All paths should be given relative to the root + +# vim:ft=automake +# included from Top Level Makefile.am +# All paths should be given relative to the root + +# vim:ft=automake +# included from Top Level Makefile.am +# All paths should be given relative to the root + +# vim:ft=automake +# included from Top Level Makefile.am +# All paths should be given relative to the root + +# vim:ft=automake +# included from Top Level Makefile.am +# All paths should be given relative to the root + +# vim:ft=automake +# included from Top Level Makefile.am +# All paths should be given relative to the root + +# vim:ft=automake +# included from Top Level Makefile.am +# All paths should be given relative to the root + + + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +bin_PROGRAMS = +noinst_PROGRAMS = ctaocrypt/benchmark/benchmark$(EXEEXT) \ + ctaocrypt/test/testctaocrypt$(EXEEXT) \ + examples/client/client$(EXEEXT) \ + examples/server/server$(EXEEXT) \ + examples/echoclient/echoclient$(EXEEXT) \ + examples/echoserver/echoserver$(EXEEXT) \ + testsuite/testsuite$(EXEEXT) tests/unit$(EXEEXT) \ + sslSniffer/sslSnifferTest/snifftest$(EXEEXT) +check_PROGRAMS = testsuite/testsuite$(EXEEXT) tests/unit$(EXEEXT) +DIST_COMMON = README $(am__configure_deps) $(include_HEADERS) \ + $(nobase_include_HEADERS) $(noinst_HEADERS) \ + $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(srcdir)/certs/crl/include.am $(srcdir)/certs/include.am \ + $(srcdir)/config.in $(srcdir)/ctaocrypt/benchmark/include.am \ + $(srcdir)/ctaocrypt/src/include.am \ + $(srcdir)/ctaocrypt/test/include.am \ + $(srcdir)/cyassl/ctaocrypt/include.am \ + $(srcdir)/cyassl/include.am \ + $(srcdir)/cyassl/openssl/include.am $(srcdir)/doc/include.am \ + $(srcdir)/examples/client/include.am \ + $(srcdir)/examples/echoclient/include.am \ + $(srcdir)/examples/echoserver/include.am \ + $(srcdir)/examples/server/include.am $(srcdir)/src/include.am \ + $(srcdir)/sslSniffer/sslSnifferTest/include.am \ + $(srcdir)/stamp-h.in $(srcdir)/swig/include.am \ + $(srcdir)/tests/include.am $(srcdir)/testsuite/include.am \ + $(top_srcdir)/configure $(top_srcdir)/cyassl/version.h.in \ + $(top_srcdir)/support/libcyassl.pc.in AUTHORS COPYING \ + ChangeLog NEWS config/compile config/config.guess \ + config/config.sub config/depcomp config/install-sh \ + config/ltmain.sh config/missing +@BUILD_AESNI_TRUE@am__append_1 = ctaocrypt/src/aes_asm.s +@BUILD_RIPEMD_TRUE@am__append_2 = ctaocrypt/src/ripemd.c +@BUILD_SHA512_TRUE@am__append_3 = ctaocrypt/src/sha512.c +@BUILD_SNIFFER_TRUE@am__append_4 = src/sniffer.c +@BUILD_HC128_TRUE@am__append_5 = ctaocrypt/src/hc128.c +@BUILD_NOINLINE_TRUE@am__append_6 = ctaocrypt/src/misc.c +@BUILD_FASTMATH_TRUE@am__append_7 = ctaocrypt/src/tfm.c +@BUILD_FASTMATH_FALSE@am__append_8 = ctaocrypt/src/integer.c +@BUILD_ECC_TRUE@am__append_9 = ctaocrypt/src/ecc.c +@BUILD_OCSP_TRUE@am__append_10 = src/ocsp.c +@BUILD_CRL_TRUE@am__append_11 = src/crl.c +subdir = . +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pthread.m4 \ + $(top_srcdir)/m4/hexversion.m4 \ + $(top_srcdir)/m4/lib_socket_nsl.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = stamp-h cyassl/version.h support/libcyassl.pc +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ + "$(DESTDIR)$(certsdir)" "$(DESTDIR)$(docdir)" \ + "$(DESTDIR)$(exampledir)" "$(DESTDIR)$(includedir)" \ + "$(DESTDIR)$(includedir)" +libLTLIBRARIES_INSTALL = $(INSTALL) +LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES) +am__DEPENDENCIES_1 = +src_libcyassl_la_DEPENDENCIES = $(am__DEPENDENCIES_1) +am__src_libcyassl_la_SOURCES_DIST = src/internal.c src/io.c src/keys.c \ + src/ssl.c src/tls.c ctaocrypt/src/asn.c ctaocrypt/src/coding.c \ + ctaocrypt/src/des3.c ctaocrypt/src/hmac.c ctaocrypt/src/md5.c \ + ctaocrypt/src/md4.c ctaocrypt/src/random.c ctaocrypt/src/rsa.c \ + ctaocrypt/src/sha.c ctaocrypt/src/aes.c ctaocrypt/src/sha256.c \ + ctaocrypt/src/dh.c ctaocrypt/src/dsa.c ctaocrypt/src/arc4.c \ + ctaocrypt/src/rabbit.c ctaocrypt/src/pwdbased.c \ + ctaocrypt/src/logging.c ctaocrypt/src/memory.c \ + ctaocrypt/src/aes_asm.s ctaocrypt/src/ripemd.c \ + ctaocrypt/src/sha512.c src/sniffer.c ctaocrypt/src/hc128.c \ + ctaocrypt/src/misc.c ctaocrypt/src/tfm.c \ + ctaocrypt/src/integer.c ctaocrypt/src/ecc.c src/ocsp.c \ + src/crl.c +am__dirstamp = $(am__leading_dot)dirstamp +@BUILD_AESNI_TRUE@am__objects_1 = ctaocrypt/src/aes_asm.lo +@BUILD_RIPEMD_TRUE@am__objects_2 = \ +@BUILD_RIPEMD_TRUE@ ctaocrypt/src/src_libcyassl_la-ripemd.lo +@BUILD_SHA512_TRUE@am__objects_3 = \ +@BUILD_SHA512_TRUE@ ctaocrypt/src/src_libcyassl_la-sha512.lo +@BUILD_SNIFFER_TRUE@am__objects_4 = src/src_libcyassl_la-sniffer.lo +@BUILD_HC128_TRUE@am__objects_5 = \ +@BUILD_HC128_TRUE@ ctaocrypt/src/src_libcyassl_la-hc128.lo +@BUILD_NOINLINE_TRUE@am__objects_6 = \ +@BUILD_NOINLINE_TRUE@ ctaocrypt/src/src_libcyassl_la-misc.lo +@BUILD_FASTMATH_TRUE@am__objects_7 = \ +@BUILD_FASTMATH_TRUE@ ctaocrypt/src/src_libcyassl_la-tfm.lo +@BUILD_FASTMATH_FALSE@am__objects_8 = ctaocrypt/src/src_libcyassl_la-integer.lo +@BUILD_ECC_TRUE@am__objects_9 = ctaocrypt/src/src_libcyassl_la-ecc.lo +@BUILD_OCSP_TRUE@am__objects_10 = src/src_libcyassl_la-ocsp.lo +@BUILD_CRL_TRUE@am__objects_11 = src/src_libcyassl_la-crl.lo +am_src_libcyassl_la_OBJECTS = src/src_libcyassl_la-internal.lo \ + src/src_libcyassl_la-io.lo src/src_libcyassl_la-keys.lo \ + src/src_libcyassl_la-ssl.lo src/src_libcyassl_la-tls.lo \ + ctaocrypt/src/src_libcyassl_la-asn.lo \ + ctaocrypt/src/src_libcyassl_la-coding.lo \ + ctaocrypt/src/src_libcyassl_la-des3.lo \ + ctaocrypt/src/src_libcyassl_la-hmac.lo \ + ctaocrypt/src/src_libcyassl_la-md5.lo \ + ctaocrypt/src/src_libcyassl_la-md4.lo \ + ctaocrypt/src/src_libcyassl_la-random.lo \ + ctaocrypt/src/src_libcyassl_la-rsa.lo \ + ctaocrypt/src/src_libcyassl_la-sha.lo \ + ctaocrypt/src/src_libcyassl_la-aes.lo \ + ctaocrypt/src/src_libcyassl_la-sha256.lo \ + ctaocrypt/src/src_libcyassl_la-dh.lo \ + ctaocrypt/src/src_libcyassl_la-dsa.lo \ + ctaocrypt/src/src_libcyassl_la-arc4.lo \ + ctaocrypt/src/src_libcyassl_la-rabbit.lo \ + ctaocrypt/src/src_libcyassl_la-pwdbased.lo \ + ctaocrypt/src/src_libcyassl_la-logging.lo \ + ctaocrypt/src/src_libcyassl_la-memory.lo $(am__objects_1) \ + $(am__objects_2) $(am__objects_3) $(am__objects_4) \ + $(am__objects_5) $(am__objects_6) $(am__objects_7) \ + $(am__objects_8) $(am__objects_9) $(am__objects_10) \ + $(am__objects_11) +src_libcyassl_la_OBJECTS = $(am_src_libcyassl_la_OBJECTS) +src_libcyassl_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(src_libcyassl_la_CFLAGS) \ + $(CFLAGS) $(src_libcyassl_la_LDFLAGS) $(LDFLAGS) -o $@ +binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) +PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) +am_ctaocrypt_benchmark_benchmark_OBJECTS = \ + ctaocrypt/benchmark/benchmark.$(OBJEXT) +ctaocrypt_benchmark_benchmark_OBJECTS = \ + $(am_ctaocrypt_benchmark_benchmark_OBJECTS) +am_ctaocrypt_test_testctaocrypt_OBJECTS = \ + ctaocrypt/test/test.$(OBJEXT) +ctaocrypt_test_testctaocrypt_OBJECTS = \ + $(am_ctaocrypt_test_testctaocrypt_OBJECTS) +am_examples_client_client_OBJECTS = examples/client/client.$(OBJEXT) +examples_client_client_OBJECTS = $(am_examples_client_client_OBJECTS) +am_examples_echoclient_echoclient_OBJECTS = \ + examples/echoclient/echoclient.$(OBJEXT) +examples_echoclient_echoclient_OBJECTS = \ + $(am_examples_echoclient_echoclient_OBJECTS) +am_examples_echoserver_echoserver_OBJECTS = \ + examples/echoserver/echoserver.$(OBJEXT) +examples_echoserver_echoserver_OBJECTS = \ + $(am_examples_echoserver_echoserver_OBJECTS) +am_examples_server_server_OBJECTS = examples/server/server.$(OBJEXT) +examples_server_server_OBJECTS = $(am_examples_server_server_OBJECTS) +am_sslSniffer_sslSnifferTest_snifftest_OBJECTS = \ + sslSniffer/sslSnifferTest/snifftest.$(OBJEXT) +sslSniffer_sslSnifferTest_snifftest_OBJECTS = \ + $(am_sslSniffer_sslSnifferTest_snifftest_OBJECTS) +am_tests_unit_OBJECTS = tests/tests_unit-unit.$(OBJEXT) \ + tests/tests_unit-api.$(OBJEXT) \ + tests/tests_unit-suites.$(OBJEXT) \ + tests/tests_unit-hash.$(OBJEXT) +tests_unit_OBJECTS = $(am_tests_unit_OBJECTS) +tests_unit_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(tests_unit_CFLAGS) \ + $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +am_testsuite_testsuite_OBJECTS = \ + ctaocrypt/test/testsuite_testsuite-test.$(OBJEXT) \ + examples/client/testsuite_testsuite-client.$(OBJEXT) \ + examples/echoclient/testsuite_testsuite-echoclient.$(OBJEXT) \ + examples/echoserver/testsuite_testsuite-echoserver.$(OBJEXT) \ + examples/server/testsuite_testsuite-server.$(OBJEXT) \ + testsuite/testsuite_testsuite-testsuite.$(OBJEXT) +testsuite_testsuite_OBJECTS = $(am_testsuite_testsuite_OBJECTS) +testsuite_testsuite_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(testsuite_testsuite_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ +depcomp = $(SHELL) $(top_srcdir)/config/depcomp +am__depfiles_maybe = depfiles +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +CCASCOMPILE = $(CCAS) $(AM_CCASFLAGS) $(CCASFLAGS) +LTCCASCOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=compile $(CCAS) $(AM_CCASFLAGS) $(CCASFLAGS) +SOURCES = $(src_libcyassl_la_SOURCES) \ + $(ctaocrypt_benchmark_benchmark_SOURCES) \ + $(ctaocrypt_test_testctaocrypt_SOURCES) \ + $(examples_client_client_SOURCES) \ + $(examples_echoclient_echoclient_SOURCES) \ + $(examples_echoserver_echoserver_SOURCES) \ + $(examples_server_server_SOURCES) \ + $(sslSniffer_sslSnifferTest_snifftest_SOURCES) \ + $(tests_unit_SOURCES) $(testsuite_testsuite_SOURCES) +DIST_SOURCES = $(am__src_libcyassl_la_SOURCES_DIST) \ + $(ctaocrypt_benchmark_benchmark_SOURCES) \ + $(ctaocrypt_test_testctaocrypt_SOURCES) \ + $(examples_client_client_SOURCES) \ + $(examples_echoclient_echoclient_SOURCES) \ + $(examples_echoserver_echoserver_SOURCES) \ + $(examples_server_server_SOURCES) \ + $(sslSniffer_sslSnifferTest_snifftest_SOURCES) \ + $(tests_unit_SOURCES) $(testsuite_testsuite_SOURCES) +certsDATA_INSTALL = $(INSTALL_DATA) +docDATA_INSTALL = $(INSTALL_DATA) +exampleDATA_INSTALL = $(INSTALL_DATA) +DATA = $(certs_DATA) $(doc_DATA) $(example_DATA) +includeHEADERS_INSTALL = $(INSTALL_HEADER) +nobase_includeHEADERS_INSTALL = $(install_sh_DATA) +HEADERS = $(include_HEADERS) $(nobase_include_HEADERS) \ + $(noinst_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + { test ! -d $(distdir) \ + || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -fr $(distdir); }; } +DIST_ARCHIVES = $(distdir).tar.gz +GZIP_ENV = --best +distuninstallcheck_listfiles = find . -type f -print +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_CFLAGS = @AM_CFLAGS@ +AM_LDFLAGS = @AM_LDFLAGS@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCAS = @CCAS@ +CCASDEPMODE = @CCASDEPMODE@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYASSL_LIBRARY_VERSION = @CYASSL_LIBRARY_VERSION@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +HAVE_VISIBILITY = @HAVE_VISIBILITY@ +HEX_VERSION = @HEX_VERSION@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBM = @LIBM@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +ax_pthread_config = @ax_pthread_config@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ + +# includes append to these: +SUFFIXES = +TESTS = $(check_PROGRAMS) +CLEANFILES = +DISTCLEANFILES = +noinst_HEADERS = +lib_LTLIBRARIES = src/libcyassl.la +man_MANS = +noinst_LTLIBRARIES = +include_HEADERS = +nobase_include_HEADERS = cyassl/ctaocrypt/aes.h \ + cyassl/ctaocrypt/arc4.h cyassl/ctaocrypt/asn.h \ + cyassl/ctaocrypt/asn_public.h cyassl/ctaocrypt/coding.h \ + cyassl/ctaocrypt/des3.h cyassl/ctaocrypt/dh.h \ + cyassl/ctaocrypt/dsa.h cyassl/ctaocrypt/ecc.h \ + cyassl/ctaocrypt/error.h cyassl/ctaocrypt/hc128.h \ + cyassl/ctaocrypt/hmac.h cyassl/ctaocrypt/integer.h \ + cyassl/ctaocrypt/md4.h cyassl/ctaocrypt/md5.h \ + cyassl/ctaocrypt/misc.h cyassl/ctaocrypt/pwdbased.h \ + cyassl/ctaocrypt/rabbit.h cyassl/ctaocrypt/random.h \ + cyassl/ctaocrypt/ripemd.h cyassl/ctaocrypt/rsa.h \ + cyassl/ctaocrypt/settings.h cyassl/ctaocrypt/sha256.h \ + cyassl/ctaocrypt/sha512.h cyassl/ctaocrypt/sha.h \ + cyassl/ctaocrypt/tfm.h cyassl/ctaocrypt/types.h \ + cyassl/ctaocrypt/visibility.h cyassl/ctaocrypt/logging.h \ + cyassl/ctaocrypt/memory.h cyassl/ctaocrypt/mpi_class.h \ + cyassl/ctaocrypt/mpi_superclass.h cyassl/openssl/asn1.h \ + cyassl/openssl/bio.h cyassl/openssl/bn.h cyassl/openssl/conf.h \ + cyassl/openssl/crypto.h cyassl/openssl/des.h \ + cyassl/openssl/dh.h cyassl/openssl/dsa.h \ + cyassl/openssl/ecdsa.h cyassl/openssl/ec.h \ + cyassl/openssl/engine.h cyassl/openssl/err.h \ + cyassl/openssl/evp.h cyassl/openssl/hmac.h \ + cyassl/openssl/lhash.h cyassl/openssl/md4.h \ + cyassl/openssl/md5.h cyassl/openssl/ripemd.h \ + cyassl/openssl/ocsp.h cyassl/openssl/opensslconf.h \ + cyassl/openssl/opensslv.h cyassl/openssl/ossl_typ.h \ + cyassl/openssl/pem.h cyassl/openssl/pkcs12.h \ + cyassl/openssl/rand.h cyassl/openssl/rsa.h \ + cyassl/openssl/sha.h cyassl/openssl/ssl.h \ + cyassl/openssl/stack.h cyassl/openssl/ui.h \ + cyassl/openssl/x509.h cyassl/openssl/x509v3.h cyassl/error.h \ + cyassl/internal.h cyassl/ssl.h cyassl/sniffer_error.h \ + cyassl/sniffer.h cyassl/callbacks.h cyassl/test.h \ + cyassl/version.h cyassl/ocsp.h cyassl/crl.h +EXTRA_HEADERS = +BUILT_SOURCES = +EXTRA_DIST = $(example_DATA) $(certs_DATA) $(doc_DATA) lib/dummy \ + cyassl-ntru.vcproj cyassl.vcproj \ + cyassl-iphone.xcodeproj/project.pbxproj cyassl-ntru.sln \ + cyassl.sln cyassl/sniffer_error.rc ${certs_DATA} \ + certs/ntru-key.raw ${certs_DATA} swig/PythonBuild.sh \ + swig/README swig/cyassl.i swig/cyassl_adds.c \ + swig/python_cyassl.vcproj swig/rsasign.py swig/runme.py \ + ctaocrypt/benchmark/benchmark.sln \ + ctaocrypt/benchmark/benchmark.vcproj ctaocrypt/src/misc.c \ + ctaocrypt/src/asm.c ctaocrypt/src/ecc_fp.c \ + ctaocrypt/src/fp_mont_small.i ctaocrypt/src/fp_mul_comba_12.i \ + ctaocrypt/src/fp_mul_comba_17.i \ + ctaocrypt/src/fp_mul_comba_20.i \ + ctaocrypt/src/fp_mul_comba_24.i \ + ctaocrypt/src/fp_mul_comba_28.i \ + ctaocrypt/src/fp_mul_comba_32.i ctaocrypt/src/fp_mul_comba_3.i \ + ctaocrypt/src/fp_mul_comba_48.i ctaocrypt/src/fp_mul_comba_4.i \ + ctaocrypt/src/fp_mul_comba_64.i ctaocrypt/src/fp_mul_comba_6.i \ + ctaocrypt/src/fp_mul_comba_7.i ctaocrypt/src/fp_mul_comba_8.i \ + ctaocrypt/src/fp_mul_comba_9.i \ + ctaocrypt/src/fp_mul_comba_small_set.i \ + ctaocrypt/src/fp_sqr_comba_12.i \ + ctaocrypt/src/fp_sqr_comba_17.i \ + ctaocrypt/src/fp_sqr_comba_20.i \ + ctaocrypt/src/fp_sqr_comba_24.i \ + ctaocrypt/src/fp_sqr_comba_28.i \ + ctaocrypt/src/fp_sqr_comba_32.i ctaocrypt/src/fp_sqr_comba_3.i \ + ctaocrypt/src/fp_sqr_comba_48.i ctaocrypt/src/fp_sqr_comba_4.i \ + ctaocrypt/src/fp_sqr_comba_64.i ctaocrypt/src/fp_sqr_comba_6.i \ + ctaocrypt/src/fp_sqr_comba_7.i ctaocrypt/src/fp_sqr_comba_8.i \ + ctaocrypt/src/fp_sqr_comba_9.i \ + ctaocrypt/src/fp_sqr_comba_small_set.i ctaocrypt/test/test.sln \ + ctaocrypt/test/test.vcproj examples/client/client.sln \ + examples/client/client-ntru.vcproj \ + examples/client/client.vcproj examples/server/server.sln \ + examples/server/server-ntru.vcproj \ + examples/server/server.vcproj \ + examples/echoclient/echoclient.sln \ + examples/echoclient/echoclient-ntru.vcproj \ + examples/echoclient/echoclient.vcproj \ + examples/echoserver/echoserver.sln \ + examples/echoserver/echoserver-ntru.vcproj \ + examples/echoserver/echoserver.vcproj testsuite/testsuite.sln \ + testsuite/testsuite-ntru.vcproj testsuite/testsuite.vcproj \ + input quit tests/unit.h sslSniffer/sslSniffer.vcproj \ + sslSniffer/sslSnifferTest/sslSniffTest.vcproj +doc_DATA = certs/taoCert.txt doc/README.txt +exampledir = $(docdir)/@PACKAGE@/example +example_DATA = examples/client/client.c examples/server/server.c \ + examples/echoclient/echoclient.c \ + examples/echoserver/echoserver.c +certsdir = $(sysconfdir)/ssl/certs +certs_DATA = certs/ca-cert.pem certs/ca-key.pem certs/client-cert.pem \ + certs/client-keyEnc.pem certs/client-key.pem certs/ecc-key.pem \ + certs/ecc-keyPkcs8.pem certs/ecc-client-key.pem \ + certs/client-ecc-cert.pem certs/ntru-cert.pem certs/dh2048.pem \ + certs/server-cert.pem certs/server-ecc.pem \ + certs/server-keyEnc.pem certs/server-key.pem \ + certs/server-keyPkcs8Enc12.pem certs/server-keyPkcs8Enc2.pem \ + certs/server-keyPkcs8Enc.pem certs/server-keyPkcs8.pem \ + certs/ca-key.der certs/client-cert.der certs/client-key.der \ + certs/dh2048.der certs/rsa2048.der certs/dsa2048.der \ + certs/ecc-key.der certs/crl/crl.pem +ACLOCAL_AMFLAGS = -I m4 --install +src_libcyassl_la_SOURCES = src/internal.c src/io.c src/keys.c \ + src/ssl.c src/tls.c ctaocrypt/src/asn.c ctaocrypt/src/coding.c \ + ctaocrypt/src/des3.c ctaocrypt/src/hmac.c ctaocrypt/src/md5.c \ + ctaocrypt/src/md4.c ctaocrypt/src/random.c ctaocrypt/src/rsa.c \ + ctaocrypt/src/sha.c ctaocrypt/src/aes.c ctaocrypt/src/sha256.c \ + ctaocrypt/src/dh.c ctaocrypt/src/dsa.c ctaocrypt/src/arc4.c \ + ctaocrypt/src/rabbit.c ctaocrypt/src/pwdbased.c \ + ctaocrypt/src/logging.c ctaocrypt/src/memory.c $(am__append_1) \ + $(am__append_2) $(am__append_3) $(am__append_4) \ + $(am__append_5) $(am__append_6) $(am__append_7) \ + $(am__append_8) $(am__append_9) $(am__append_10) \ + $(am__append_11) +src_libcyassl_la_LDFLAGS = ${AM_LDFLAGS} -no-undefined -version-info ${CYASSL_LIBRARY_VERSION} +src_libcyassl_la_LIBADD = $(LIBM) +src_libcyassl_la_CFLAGS = -DBUILDING_CYASSL $(AM_CFLAGS) +src_libcyassl_la_CPPFLAGS = -DBUILDING_CYASSL $(AM_CPPFLAGS) +ctaocrypt_benchmark_benchmark_SOURCES = ctaocrypt/benchmark/benchmark.c +ctaocrypt_benchmark_benchmark_LDADD = src/libcyassl.la +ctaocrypt_benchmark_benchmark_DEPENDENCIES = src/libcyassl.la +ctaocrypt_test_testctaocrypt_SOURCES = ctaocrypt/test/test.c +ctaocrypt_test_testctaocrypt_LDADD = src/libcyassl.la +ctaocrypt_test_testctaocrypt_DEPENDENCIES = src/libcyassl.la +examples_client_client_SOURCES = examples/client/client.c +examples_client_client_LDADD = src/libcyassl.la +examples_client_client_DEPENDENCIES = src/libcyassl.la +examples_server_server_SOURCES = examples/server/server.c +examples_server_server_LDADD = src/libcyassl.la +examples_server_server_DEPENDENCIES = src/libcyassl.la +examples_echoclient_echoclient_SOURCES = examples/echoclient/echoclient.c +examples_echoclient_echoclient_LDADD = src/libcyassl.la +examples_echoclient_echoclient_DEPENDENCIES = src/libcyassl.la +examples_echoserver_echoserver_SOURCES = examples/echoserver/echoserver.c +examples_echoserver_echoserver_LDADD = src/libcyassl.la +examples_echoserver_echoserver_DEPENDENCIES = src/libcyassl.la +testsuite_testsuite_SOURCES = \ + ctaocrypt/test/test.c \ + examples/client/client.c \ + examples/echoclient/echoclient.c \ + examples/echoserver/echoserver.c \ + examples/server/server.c \ + testsuite/testsuite.c + +testsuite_testsuite_CFLAGS = -DNO_MAIN_DRIVER $(AM_CFLAGS) $(PTHREAD_CFLAGS) +testsuite_testsuite_LDADD = src/libcyassl.la $(PTHREAD_LIBS) +testsuite_testsuite_DEPENDENCIES = src/libcyassl.la +tests_unit_SOURCES = \ + tests/unit.c \ + tests/api.c \ + tests/suites.c \ + tests/hash.c + +tests_unit_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) +tests_unit_LDADD = src/libcyassl.la $(PTHREAD_LIBS) +tests_unit_DEPENDENCIES = src/libcyassl.la +sslSniffer_sslSnifferTest_snifftest_SOURCES = sslSniffer/sslSnifferTest/snifftest.c +@BUILD_SNIFFER_TRUE@sslSniffer_sslSnifferTest_snifftest_LDADD = src/libcyassl.la -lpcap +@BUILD_SNIFFER_TRUE@sslSniffer_sslSnifferTest_snifftest_DEPENDENCIES = src/libcyassl.la +all: $(BUILT_SOURCES) config.h + $(MAKE) $(AM_MAKEFLAGS) all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj .s +am--refresh: + @: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/cyassl/include.am $(srcdir)/cyassl/ctaocrypt/include.am $(srcdir)/cyassl/openssl/include.am $(srcdir)/certs/include.am $(srcdir)/certs/crl/include.am $(srcdir)/doc/include.am $(srcdir)/swig/include.am $(srcdir)/src/include.am $(srcdir)/ctaocrypt/benchmark/include.am $(srcdir)/ctaocrypt/src/include.am $(srcdir)/ctaocrypt/test/include.am $(srcdir)/examples/client/include.am $(srcdir)/examples/server/include.am $(srcdir)/examples/echoclient/include.am $(srcdir)/examples/echoserver/include.am $(srcdir)/testsuite/include.am $(srcdir)/tests/include.am $(srcdir)/sslSniffer/sslSnifferTest/include.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ + cd $(srcdir) && $(AUTOMAKE) --foreign \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --foreign Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.h: stamp-h1 + @if test ! -f $@; then \ + rm -f stamp-h1; \ + $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ + else :; fi + +stamp-h1: $(srcdir)/config.in $(top_builddir)/config.status + @rm -f stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status config.h +$(srcdir)/config.in: $(am__configure_deps) + cd $(top_srcdir) && $(AUTOHEADER) + rm -f stamp-h1 + touch $@ + +distclean-hdr: + -rm -f config.h stamp-h1 +stamp-h: $(top_builddir)/config.status $(srcdir)/stamp-h.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +cyassl/version.h: $(top_builddir)/config.status $(top_srcdir)/cyassl/version.h.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +support/libcyassl.pc: $(top_builddir)/config.status $(top_srcdir)/support/libcyassl.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +install-libLTLIBRARIES: $(lib_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" + @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ + if test -f $$p; then \ + f=$(am__strip_dir) \ + echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ + $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ + else :; fi; \ + done + +uninstall-libLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ + p=$(am__strip_dir) \ + echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \ + $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \ + done + +clean-libLTLIBRARIES: + -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) + @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +src/$(am__dirstamp): + @$(MKDIR_P) src + @: > src/$(am__dirstamp) +src/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) src/$(DEPDIR) + @: > src/$(DEPDIR)/$(am__dirstamp) +src/src_libcyassl_la-internal.lo: src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/src_libcyassl_la-io.lo: src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/src_libcyassl_la-keys.lo: src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/src_libcyassl_la-ssl.lo: src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/src_libcyassl_la-tls.lo: src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +ctaocrypt/src/$(am__dirstamp): + @$(MKDIR_P) ctaocrypt/src + @: > ctaocrypt/src/$(am__dirstamp) +ctaocrypt/src/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) ctaocrypt/src/$(DEPDIR) + @: > ctaocrypt/src/$(DEPDIR)/$(am__dirstamp) +ctaocrypt/src/src_libcyassl_la-asn.lo: ctaocrypt/src/$(am__dirstamp) \ + ctaocrypt/src/$(DEPDIR)/$(am__dirstamp) +ctaocrypt/src/src_libcyassl_la-coding.lo: \ + ctaocrypt/src/$(am__dirstamp) \ + ctaocrypt/src/$(DEPDIR)/$(am__dirstamp) +ctaocrypt/src/src_libcyassl_la-des3.lo: ctaocrypt/src/$(am__dirstamp) \ + ctaocrypt/src/$(DEPDIR)/$(am__dirstamp) +ctaocrypt/src/src_libcyassl_la-hmac.lo: ctaocrypt/src/$(am__dirstamp) \ + ctaocrypt/src/$(DEPDIR)/$(am__dirstamp) +ctaocrypt/src/src_libcyassl_la-md5.lo: ctaocrypt/src/$(am__dirstamp) \ + ctaocrypt/src/$(DEPDIR)/$(am__dirstamp) +ctaocrypt/src/src_libcyassl_la-md4.lo: ctaocrypt/src/$(am__dirstamp) \ + ctaocrypt/src/$(DEPDIR)/$(am__dirstamp) +ctaocrypt/src/src_libcyassl_la-random.lo: \ + ctaocrypt/src/$(am__dirstamp) \ + ctaocrypt/src/$(DEPDIR)/$(am__dirstamp) +ctaocrypt/src/src_libcyassl_la-rsa.lo: ctaocrypt/src/$(am__dirstamp) \ + ctaocrypt/src/$(DEPDIR)/$(am__dirstamp) +ctaocrypt/src/src_libcyassl_la-sha.lo: ctaocrypt/src/$(am__dirstamp) \ + ctaocrypt/src/$(DEPDIR)/$(am__dirstamp) +ctaocrypt/src/src_libcyassl_la-aes.lo: ctaocrypt/src/$(am__dirstamp) \ + ctaocrypt/src/$(DEPDIR)/$(am__dirstamp) +ctaocrypt/src/src_libcyassl_la-sha256.lo: \ + ctaocrypt/src/$(am__dirstamp) \ + ctaocrypt/src/$(DEPDIR)/$(am__dirstamp) +ctaocrypt/src/src_libcyassl_la-dh.lo: ctaocrypt/src/$(am__dirstamp) \ + ctaocrypt/src/$(DEPDIR)/$(am__dirstamp) +ctaocrypt/src/src_libcyassl_la-dsa.lo: ctaocrypt/src/$(am__dirstamp) \ + ctaocrypt/src/$(DEPDIR)/$(am__dirstamp) +ctaocrypt/src/src_libcyassl_la-arc4.lo: ctaocrypt/src/$(am__dirstamp) \ + ctaocrypt/src/$(DEPDIR)/$(am__dirstamp) +ctaocrypt/src/src_libcyassl_la-rabbit.lo: \ + ctaocrypt/src/$(am__dirstamp) \ + ctaocrypt/src/$(DEPDIR)/$(am__dirstamp) +ctaocrypt/src/src_libcyassl_la-pwdbased.lo: \ + ctaocrypt/src/$(am__dirstamp) \ + ctaocrypt/src/$(DEPDIR)/$(am__dirstamp) +ctaocrypt/src/src_libcyassl_la-logging.lo: \ + ctaocrypt/src/$(am__dirstamp) \ + ctaocrypt/src/$(DEPDIR)/$(am__dirstamp) +ctaocrypt/src/src_libcyassl_la-memory.lo: \ + ctaocrypt/src/$(am__dirstamp) \ + ctaocrypt/src/$(DEPDIR)/$(am__dirstamp) +ctaocrypt/src/aes_asm.lo: ctaocrypt/src/$(am__dirstamp) \ + ctaocrypt/src/$(DEPDIR)/$(am__dirstamp) +ctaocrypt/src/src_libcyassl_la-ripemd.lo: \ + ctaocrypt/src/$(am__dirstamp) \ + ctaocrypt/src/$(DEPDIR)/$(am__dirstamp) +ctaocrypt/src/src_libcyassl_la-sha512.lo: \ + ctaocrypt/src/$(am__dirstamp) \ + ctaocrypt/src/$(DEPDIR)/$(am__dirstamp) +src/src_libcyassl_la-sniffer.lo: src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +ctaocrypt/src/src_libcyassl_la-hc128.lo: \ + ctaocrypt/src/$(am__dirstamp) \ + ctaocrypt/src/$(DEPDIR)/$(am__dirstamp) +ctaocrypt/src/src_libcyassl_la-misc.lo: ctaocrypt/src/$(am__dirstamp) \ + ctaocrypt/src/$(DEPDIR)/$(am__dirstamp) +ctaocrypt/src/src_libcyassl_la-tfm.lo: ctaocrypt/src/$(am__dirstamp) \ + ctaocrypt/src/$(DEPDIR)/$(am__dirstamp) +ctaocrypt/src/src_libcyassl_la-integer.lo: \ + ctaocrypt/src/$(am__dirstamp) \ + ctaocrypt/src/$(DEPDIR)/$(am__dirstamp) +ctaocrypt/src/src_libcyassl_la-ecc.lo: ctaocrypt/src/$(am__dirstamp) \ + ctaocrypt/src/$(DEPDIR)/$(am__dirstamp) +src/src_libcyassl_la-ocsp.lo: src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/src_libcyassl_la-crl.lo: src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/libcyassl.la: $(src_libcyassl_la_OBJECTS) $(src_libcyassl_la_DEPENDENCIES) src/$(am__dirstamp) + $(src_libcyassl_la_LINK) -rpath $(libdir) $(src_libcyassl_la_OBJECTS) $(src_libcyassl_la_LIBADD) $(LIBS) +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + if test -f $$p \ + || test -f $$p1 \ + ; then \ + f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ + echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ + $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ + else :; fi; \ + done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ + echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ + rm -f "$(DESTDIR)$(bindir)/$$f"; \ + done + +clean-binPROGRAMS: + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f $$p $$f"; \ + rm -f $$p $$f ; \ + done + +clean-checkPROGRAMS: + @list='$(check_PROGRAMS)'; for p in $$list; do \ + f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f $$p $$f"; \ + rm -f $$p $$f ; \ + done + +clean-noinstPROGRAMS: + @list='$(noinst_PROGRAMS)'; for p in $$list; do \ + f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f $$p $$f"; \ + rm -f $$p $$f ; \ + done +ctaocrypt/benchmark/$(am__dirstamp): + @$(MKDIR_P) ctaocrypt/benchmark + @: > ctaocrypt/benchmark/$(am__dirstamp) +ctaocrypt/benchmark/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) ctaocrypt/benchmark/$(DEPDIR) + @: > ctaocrypt/benchmark/$(DEPDIR)/$(am__dirstamp) +ctaocrypt/benchmark/benchmark.$(OBJEXT): \ + ctaocrypt/benchmark/$(am__dirstamp) \ + ctaocrypt/benchmark/$(DEPDIR)/$(am__dirstamp) +ctaocrypt/benchmark/benchmark$(EXEEXT): $(ctaocrypt_benchmark_benchmark_OBJECTS) $(ctaocrypt_benchmark_benchmark_DEPENDENCIES) ctaocrypt/benchmark/$(am__dirstamp) + @rm -f ctaocrypt/benchmark/benchmark$(EXEEXT) + $(LINK) $(ctaocrypt_benchmark_benchmark_OBJECTS) $(ctaocrypt_benchmark_benchmark_LDADD) $(LIBS) +ctaocrypt/test/$(am__dirstamp): + @$(MKDIR_P) ctaocrypt/test + @: > ctaocrypt/test/$(am__dirstamp) +ctaocrypt/test/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) ctaocrypt/test/$(DEPDIR) + @: > ctaocrypt/test/$(DEPDIR)/$(am__dirstamp) +ctaocrypt/test/test.$(OBJEXT): ctaocrypt/test/$(am__dirstamp) \ + ctaocrypt/test/$(DEPDIR)/$(am__dirstamp) +ctaocrypt/test/testctaocrypt$(EXEEXT): $(ctaocrypt_test_testctaocrypt_OBJECTS) $(ctaocrypt_test_testctaocrypt_DEPENDENCIES) ctaocrypt/test/$(am__dirstamp) + @rm -f ctaocrypt/test/testctaocrypt$(EXEEXT) + $(LINK) $(ctaocrypt_test_testctaocrypt_OBJECTS) $(ctaocrypt_test_testctaocrypt_LDADD) $(LIBS) +examples/client/$(am__dirstamp): + @$(MKDIR_P) examples/client + @: > examples/client/$(am__dirstamp) +examples/client/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) examples/client/$(DEPDIR) + @: > examples/client/$(DEPDIR)/$(am__dirstamp) +examples/client/client.$(OBJEXT): examples/client/$(am__dirstamp) \ + examples/client/$(DEPDIR)/$(am__dirstamp) +examples/client/client$(EXEEXT): $(examples_client_client_OBJECTS) $(examples_client_client_DEPENDENCIES) examples/client/$(am__dirstamp) + @rm -f examples/client/client$(EXEEXT) + $(LINK) $(examples_client_client_OBJECTS) $(examples_client_client_LDADD) $(LIBS) +examples/echoclient/$(am__dirstamp): + @$(MKDIR_P) examples/echoclient + @: > examples/echoclient/$(am__dirstamp) +examples/echoclient/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) examples/echoclient/$(DEPDIR) + @: > examples/echoclient/$(DEPDIR)/$(am__dirstamp) +examples/echoclient/echoclient.$(OBJEXT): \ + examples/echoclient/$(am__dirstamp) \ + examples/echoclient/$(DEPDIR)/$(am__dirstamp) +examples/echoclient/echoclient$(EXEEXT): $(examples_echoclient_echoclient_OBJECTS) $(examples_echoclient_echoclient_DEPENDENCIES) examples/echoclient/$(am__dirstamp) + @rm -f examples/echoclient/echoclient$(EXEEXT) + $(LINK) $(examples_echoclient_echoclient_OBJECTS) $(examples_echoclient_echoclient_LDADD) $(LIBS) +examples/echoserver/$(am__dirstamp): + @$(MKDIR_P) examples/echoserver + @: > examples/echoserver/$(am__dirstamp) +examples/echoserver/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) examples/echoserver/$(DEPDIR) + @: > examples/echoserver/$(DEPDIR)/$(am__dirstamp) +examples/echoserver/echoserver.$(OBJEXT): \ + examples/echoserver/$(am__dirstamp) \ + examples/echoserver/$(DEPDIR)/$(am__dirstamp) +examples/echoserver/echoserver$(EXEEXT): $(examples_echoserver_echoserver_OBJECTS) $(examples_echoserver_echoserver_DEPENDENCIES) examples/echoserver/$(am__dirstamp) + @rm -f examples/echoserver/echoserver$(EXEEXT) + $(LINK) $(examples_echoserver_echoserver_OBJECTS) $(examples_echoserver_echoserver_LDADD) $(LIBS) +examples/server/$(am__dirstamp): + @$(MKDIR_P) examples/server + @: > examples/server/$(am__dirstamp) +examples/server/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) examples/server/$(DEPDIR) + @: > examples/server/$(DEPDIR)/$(am__dirstamp) +examples/server/server.$(OBJEXT): examples/server/$(am__dirstamp) \ + examples/server/$(DEPDIR)/$(am__dirstamp) +examples/server/server$(EXEEXT): $(examples_server_server_OBJECTS) $(examples_server_server_DEPENDENCIES) examples/server/$(am__dirstamp) + @rm -f examples/server/server$(EXEEXT) + $(LINK) $(examples_server_server_OBJECTS) $(examples_server_server_LDADD) $(LIBS) +sslSniffer/sslSnifferTest/$(am__dirstamp): + @$(MKDIR_P) sslSniffer/sslSnifferTest + @: > sslSniffer/sslSnifferTest/$(am__dirstamp) +sslSniffer/sslSnifferTest/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) sslSniffer/sslSnifferTest/$(DEPDIR) + @: > sslSniffer/sslSnifferTest/$(DEPDIR)/$(am__dirstamp) +sslSniffer/sslSnifferTest/snifftest.$(OBJEXT): \ + sslSniffer/sslSnifferTest/$(am__dirstamp) \ + sslSniffer/sslSnifferTest/$(DEPDIR)/$(am__dirstamp) +sslSniffer/sslSnifferTest/snifftest$(EXEEXT): $(sslSniffer_sslSnifferTest_snifftest_OBJECTS) $(sslSniffer_sslSnifferTest_snifftest_DEPENDENCIES) sslSniffer/sslSnifferTest/$(am__dirstamp) + @rm -f sslSniffer/sslSnifferTest/snifftest$(EXEEXT) + $(LINK) $(sslSniffer_sslSnifferTest_snifftest_OBJECTS) $(sslSniffer_sslSnifferTest_snifftest_LDADD) $(LIBS) +tests/$(am__dirstamp): + @$(MKDIR_P) tests + @: > tests/$(am__dirstamp) +tests/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) tests/$(DEPDIR) + @: > tests/$(DEPDIR)/$(am__dirstamp) +tests/tests_unit-unit.$(OBJEXT): tests/$(am__dirstamp) \ + tests/$(DEPDIR)/$(am__dirstamp) +tests/tests_unit-api.$(OBJEXT): tests/$(am__dirstamp) \ + tests/$(DEPDIR)/$(am__dirstamp) +tests/tests_unit-suites.$(OBJEXT): tests/$(am__dirstamp) \ + tests/$(DEPDIR)/$(am__dirstamp) +tests/tests_unit-hash.$(OBJEXT): tests/$(am__dirstamp) \ + tests/$(DEPDIR)/$(am__dirstamp) +tests/unit$(EXEEXT): $(tests_unit_OBJECTS) $(tests_unit_DEPENDENCIES) tests/$(am__dirstamp) + @rm -f tests/unit$(EXEEXT) + $(tests_unit_LINK) $(tests_unit_OBJECTS) $(tests_unit_LDADD) $(LIBS) +ctaocrypt/test/testsuite_testsuite-test.$(OBJEXT): \ + ctaocrypt/test/$(am__dirstamp) \ + ctaocrypt/test/$(DEPDIR)/$(am__dirstamp) +examples/client/testsuite_testsuite-client.$(OBJEXT): \ + examples/client/$(am__dirstamp) \ + examples/client/$(DEPDIR)/$(am__dirstamp) +examples/echoclient/testsuite_testsuite-echoclient.$(OBJEXT): \ + examples/echoclient/$(am__dirstamp) \ + examples/echoclient/$(DEPDIR)/$(am__dirstamp) +examples/echoserver/testsuite_testsuite-echoserver.$(OBJEXT): \ + examples/echoserver/$(am__dirstamp) \ + examples/echoserver/$(DEPDIR)/$(am__dirstamp) +examples/server/testsuite_testsuite-server.$(OBJEXT): \ + examples/server/$(am__dirstamp) \ + examples/server/$(DEPDIR)/$(am__dirstamp) +testsuite/$(am__dirstamp): + @$(MKDIR_P) testsuite + @: > testsuite/$(am__dirstamp) +testsuite/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) testsuite/$(DEPDIR) + @: > testsuite/$(DEPDIR)/$(am__dirstamp) +testsuite/testsuite_testsuite-testsuite.$(OBJEXT): \ + testsuite/$(am__dirstamp) testsuite/$(DEPDIR)/$(am__dirstamp) +testsuite/testsuite$(EXEEXT): $(testsuite_testsuite_OBJECTS) $(testsuite_testsuite_DEPENDENCIES) testsuite/$(am__dirstamp) + @rm -f testsuite/testsuite$(EXEEXT) + $(testsuite_testsuite_LINK) $(testsuite_testsuite_OBJECTS) $(testsuite_testsuite_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + -rm -f ctaocrypt/benchmark/benchmark.$(OBJEXT) + -rm -f ctaocrypt/src/aes_asm.$(OBJEXT) + -rm -f ctaocrypt/src/aes_asm.lo + -rm -f ctaocrypt/src/src_libcyassl_la-aes.$(OBJEXT) + -rm -f ctaocrypt/src/src_libcyassl_la-aes.lo + -rm -f ctaocrypt/src/src_libcyassl_la-arc4.$(OBJEXT) + -rm -f ctaocrypt/src/src_libcyassl_la-arc4.lo + -rm -f ctaocrypt/src/src_libcyassl_la-asn.$(OBJEXT) + -rm -f ctaocrypt/src/src_libcyassl_la-asn.lo + -rm -f ctaocrypt/src/src_libcyassl_la-coding.$(OBJEXT) + -rm -f ctaocrypt/src/src_libcyassl_la-coding.lo + -rm -f ctaocrypt/src/src_libcyassl_la-des3.$(OBJEXT) + -rm -f ctaocrypt/src/src_libcyassl_la-des3.lo + -rm -f ctaocrypt/src/src_libcyassl_la-dh.$(OBJEXT) + -rm -f ctaocrypt/src/src_libcyassl_la-dh.lo + -rm -f ctaocrypt/src/src_libcyassl_la-dsa.$(OBJEXT) + -rm -f ctaocrypt/src/src_libcyassl_la-dsa.lo + -rm -f ctaocrypt/src/src_libcyassl_la-ecc.$(OBJEXT) + -rm -f ctaocrypt/src/src_libcyassl_la-ecc.lo + -rm -f ctaocrypt/src/src_libcyassl_la-hc128.$(OBJEXT) + -rm -f ctaocrypt/src/src_libcyassl_la-hc128.lo + -rm -f ctaocrypt/src/src_libcyassl_la-hmac.$(OBJEXT) + -rm -f ctaocrypt/src/src_libcyassl_la-hmac.lo + -rm -f ctaocrypt/src/src_libcyassl_la-integer.$(OBJEXT) + -rm -f ctaocrypt/src/src_libcyassl_la-integer.lo + -rm -f ctaocrypt/src/src_libcyassl_la-logging.$(OBJEXT) + -rm -f ctaocrypt/src/src_libcyassl_la-logging.lo + -rm -f ctaocrypt/src/src_libcyassl_la-md4.$(OBJEXT) + -rm -f ctaocrypt/src/src_libcyassl_la-md4.lo + -rm -f ctaocrypt/src/src_libcyassl_la-md5.$(OBJEXT) + -rm -f ctaocrypt/src/src_libcyassl_la-md5.lo + -rm -f ctaocrypt/src/src_libcyassl_la-memory.$(OBJEXT) + -rm -f ctaocrypt/src/src_libcyassl_la-memory.lo + -rm -f ctaocrypt/src/src_libcyassl_la-misc.$(OBJEXT) + -rm -f ctaocrypt/src/src_libcyassl_la-misc.lo + -rm -f ctaocrypt/src/src_libcyassl_la-pwdbased.$(OBJEXT) + -rm -f ctaocrypt/src/src_libcyassl_la-pwdbased.lo + -rm -f ctaocrypt/src/src_libcyassl_la-rabbit.$(OBJEXT) + -rm -f ctaocrypt/src/src_libcyassl_la-rabbit.lo + -rm -f ctaocrypt/src/src_libcyassl_la-random.$(OBJEXT) + -rm -f ctaocrypt/src/src_libcyassl_la-random.lo + -rm -f ctaocrypt/src/src_libcyassl_la-ripemd.$(OBJEXT) + -rm -f ctaocrypt/src/src_libcyassl_la-ripemd.lo + -rm -f ctaocrypt/src/src_libcyassl_la-rsa.$(OBJEXT) + -rm -f ctaocrypt/src/src_libcyassl_la-rsa.lo + -rm -f ctaocrypt/src/src_libcyassl_la-sha.$(OBJEXT) + -rm -f ctaocrypt/src/src_libcyassl_la-sha.lo + -rm -f ctaocrypt/src/src_libcyassl_la-sha256.$(OBJEXT) + -rm -f ctaocrypt/src/src_libcyassl_la-sha256.lo + -rm -f ctaocrypt/src/src_libcyassl_la-sha512.$(OBJEXT) + -rm -f ctaocrypt/src/src_libcyassl_la-sha512.lo + -rm -f ctaocrypt/src/src_libcyassl_la-tfm.$(OBJEXT) + -rm -f ctaocrypt/src/src_libcyassl_la-tfm.lo + -rm -f ctaocrypt/test/test.$(OBJEXT) + -rm -f ctaocrypt/test/testsuite_testsuite-test.$(OBJEXT) + -rm -f examples/client/client.$(OBJEXT) + -rm -f examples/client/testsuite_testsuite-client.$(OBJEXT) + -rm -f examples/echoclient/echoclient.$(OBJEXT) + -rm -f examples/echoclient/testsuite_testsuite-echoclient.$(OBJEXT) + -rm -f examples/echoserver/echoserver.$(OBJEXT) + -rm -f examples/echoserver/testsuite_testsuite-echoserver.$(OBJEXT) + -rm -f examples/server/server.$(OBJEXT) + -rm -f examples/server/testsuite_testsuite-server.$(OBJEXT) + -rm -f src/src_libcyassl_la-crl.$(OBJEXT) + -rm -f src/src_libcyassl_la-crl.lo + -rm -f src/src_libcyassl_la-internal.$(OBJEXT) + -rm -f src/src_libcyassl_la-internal.lo + -rm -f src/src_libcyassl_la-io.$(OBJEXT) + -rm -f src/src_libcyassl_la-io.lo + -rm -f src/src_libcyassl_la-keys.$(OBJEXT) + -rm -f src/src_libcyassl_la-keys.lo + -rm -f src/src_libcyassl_la-ocsp.$(OBJEXT) + -rm -f src/src_libcyassl_la-ocsp.lo + -rm -f src/src_libcyassl_la-sniffer.$(OBJEXT) + -rm -f src/src_libcyassl_la-sniffer.lo + -rm -f src/src_libcyassl_la-ssl.$(OBJEXT) + -rm -f src/src_libcyassl_la-ssl.lo + -rm -f src/src_libcyassl_la-tls.$(OBJEXT) + -rm -f src/src_libcyassl_la-tls.lo + -rm -f sslSniffer/sslSnifferTest/snifftest.$(OBJEXT) + -rm -f tests/tests_unit-api.$(OBJEXT) + -rm -f tests/tests_unit-hash.$(OBJEXT) + -rm -f tests/tests_unit-suites.$(OBJEXT) + -rm -f tests/tests_unit-unit.$(OBJEXT) + -rm -f testsuite/testsuite_testsuite-testsuite.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@ctaocrypt/benchmark/$(DEPDIR)/benchmark.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-aes.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-arc4.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-asn.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-coding.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-des3.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-dh.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-dsa.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-ecc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-hc128.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-hmac.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-integer.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-logging.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-md4.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-md5.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-memory.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-misc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-pwdbased.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-rabbit.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-random.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-ripemd.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-rsa.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-sha.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-sha256.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-sha512.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-tfm.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@ctaocrypt/test/$(DEPDIR)/test.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@ctaocrypt/test/$(DEPDIR)/testsuite_testsuite-test.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@examples/client/$(DEPDIR)/client.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@examples/client/$(DEPDIR)/testsuite_testsuite-client.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@examples/echoclient/$(DEPDIR)/echoclient.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@examples/echoclient/$(DEPDIR)/testsuite_testsuite-echoclient.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@examples/echoserver/$(DEPDIR)/echoserver.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@examples/echoserver/$(DEPDIR)/testsuite_testsuite-echoserver.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@examples/server/$(DEPDIR)/server.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@examples/server/$(DEPDIR)/testsuite_testsuite-server.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_libcyassl_la-crl.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_libcyassl_la-internal.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_libcyassl_la-io.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_libcyassl_la-keys.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_libcyassl_la-ocsp.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_libcyassl_la-sniffer.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_libcyassl_la-ssl.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_libcyassl_la-tls.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sslSniffer/sslSnifferTest/$(DEPDIR)/snifftest.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@tests/$(DEPDIR)/tests_unit-api.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@tests/$(DEPDIR)/tests_unit-hash.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@tests/$(DEPDIR)/tests_unit-suites.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@tests/$(DEPDIR)/tests_unit-unit.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@testsuite/$(DEPDIR)/testsuite_testsuite-testsuite.Po@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ mv -f $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ mv -f $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ mv -f $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +src/src_libcyassl_la-internal.lo: src/internal.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -MT src/src_libcyassl_la-internal.lo -MD -MP -MF src/$(DEPDIR)/src_libcyassl_la-internal.Tpo -c -o src/src_libcyassl_la-internal.lo `test -f 'src/internal.c' || echo '$(srcdir)/'`src/internal.c +@am__fastdepCC_TRUE@ mv -f src/$(DEPDIR)/src_libcyassl_la-internal.Tpo src/$(DEPDIR)/src_libcyassl_la-internal.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/internal.c' object='src/src_libcyassl_la-internal.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -c -o src/src_libcyassl_la-internal.lo `test -f 'src/internal.c' || echo '$(srcdir)/'`src/internal.c + +src/src_libcyassl_la-io.lo: src/io.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -MT src/src_libcyassl_la-io.lo -MD -MP -MF src/$(DEPDIR)/src_libcyassl_la-io.Tpo -c -o src/src_libcyassl_la-io.lo `test -f 'src/io.c' || echo '$(srcdir)/'`src/io.c +@am__fastdepCC_TRUE@ mv -f src/$(DEPDIR)/src_libcyassl_la-io.Tpo src/$(DEPDIR)/src_libcyassl_la-io.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/io.c' object='src/src_libcyassl_la-io.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -c -o src/src_libcyassl_la-io.lo `test -f 'src/io.c' || echo '$(srcdir)/'`src/io.c + +src/src_libcyassl_la-keys.lo: src/keys.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -MT src/src_libcyassl_la-keys.lo -MD -MP -MF src/$(DEPDIR)/src_libcyassl_la-keys.Tpo -c -o src/src_libcyassl_la-keys.lo `test -f 'src/keys.c' || echo '$(srcdir)/'`src/keys.c +@am__fastdepCC_TRUE@ mv -f src/$(DEPDIR)/src_libcyassl_la-keys.Tpo src/$(DEPDIR)/src_libcyassl_la-keys.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/keys.c' object='src/src_libcyassl_la-keys.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -c -o src/src_libcyassl_la-keys.lo `test -f 'src/keys.c' || echo '$(srcdir)/'`src/keys.c + +src/src_libcyassl_la-ssl.lo: src/ssl.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -MT src/src_libcyassl_la-ssl.lo -MD -MP -MF src/$(DEPDIR)/src_libcyassl_la-ssl.Tpo -c -o src/src_libcyassl_la-ssl.lo `test -f 'src/ssl.c' || echo '$(srcdir)/'`src/ssl.c +@am__fastdepCC_TRUE@ mv -f src/$(DEPDIR)/src_libcyassl_la-ssl.Tpo src/$(DEPDIR)/src_libcyassl_la-ssl.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/ssl.c' object='src/src_libcyassl_la-ssl.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -c -o src/src_libcyassl_la-ssl.lo `test -f 'src/ssl.c' || echo '$(srcdir)/'`src/ssl.c + +src/src_libcyassl_la-tls.lo: src/tls.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -MT src/src_libcyassl_la-tls.lo -MD -MP -MF src/$(DEPDIR)/src_libcyassl_la-tls.Tpo -c -o src/src_libcyassl_la-tls.lo `test -f 'src/tls.c' || echo '$(srcdir)/'`src/tls.c +@am__fastdepCC_TRUE@ mv -f src/$(DEPDIR)/src_libcyassl_la-tls.Tpo src/$(DEPDIR)/src_libcyassl_la-tls.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/tls.c' object='src/src_libcyassl_la-tls.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -c -o src/src_libcyassl_la-tls.lo `test -f 'src/tls.c' || echo '$(srcdir)/'`src/tls.c + +ctaocrypt/src/src_libcyassl_la-asn.lo: ctaocrypt/src/asn.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -MT ctaocrypt/src/src_libcyassl_la-asn.lo -MD -MP -MF ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-asn.Tpo -c -o ctaocrypt/src/src_libcyassl_la-asn.lo `test -f 'ctaocrypt/src/asn.c' || echo '$(srcdir)/'`ctaocrypt/src/asn.c +@am__fastdepCC_TRUE@ mv -f ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-asn.Tpo ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-asn.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ctaocrypt/src/asn.c' object='ctaocrypt/src/src_libcyassl_la-asn.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -c -o ctaocrypt/src/src_libcyassl_la-asn.lo `test -f 'ctaocrypt/src/asn.c' || echo '$(srcdir)/'`ctaocrypt/src/asn.c + +ctaocrypt/src/src_libcyassl_la-coding.lo: ctaocrypt/src/coding.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -MT ctaocrypt/src/src_libcyassl_la-coding.lo -MD -MP -MF ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-coding.Tpo -c -o ctaocrypt/src/src_libcyassl_la-coding.lo `test -f 'ctaocrypt/src/coding.c' || echo '$(srcdir)/'`ctaocrypt/src/coding.c +@am__fastdepCC_TRUE@ mv -f ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-coding.Tpo ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-coding.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ctaocrypt/src/coding.c' object='ctaocrypt/src/src_libcyassl_la-coding.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -c -o ctaocrypt/src/src_libcyassl_la-coding.lo `test -f 'ctaocrypt/src/coding.c' || echo '$(srcdir)/'`ctaocrypt/src/coding.c + +ctaocrypt/src/src_libcyassl_la-des3.lo: ctaocrypt/src/des3.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -MT ctaocrypt/src/src_libcyassl_la-des3.lo -MD -MP -MF ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-des3.Tpo -c -o ctaocrypt/src/src_libcyassl_la-des3.lo `test -f 'ctaocrypt/src/des3.c' || echo '$(srcdir)/'`ctaocrypt/src/des3.c +@am__fastdepCC_TRUE@ mv -f ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-des3.Tpo ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-des3.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ctaocrypt/src/des3.c' object='ctaocrypt/src/src_libcyassl_la-des3.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -c -o ctaocrypt/src/src_libcyassl_la-des3.lo `test -f 'ctaocrypt/src/des3.c' || echo '$(srcdir)/'`ctaocrypt/src/des3.c + +ctaocrypt/src/src_libcyassl_la-hmac.lo: ctaocrypt/src/hmac.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -MT ctaocrypt/src/src_libcyassl_la-hmac.lo -MD -MP -MF ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-hmac.Tpo -c -o ctaocrypt/src/src_libcyassl_la-hmac.lo `test -f 'ctaocrypt/src/hmac.c' || echo '$(srcdir)/'`ctaocrypt/src/hmac.c +@am__fastdepCC_TRUE@ mv -f ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-hmac.Tpo ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-hmac.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ctaocrypt/src/hmac.c' object='ctaocrypt/src/src_libcyassl_la-hmac.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -c -o ctaocrypt/src/src_libcyassl_la-hmac.lo `test -f 'ctaocrypt/src/hmac.c' || echo '$(srcdir)/'`ctaocrypt/src/hmac.c + +ctaocrypt/src/src_libcyassl_la-md5.lo: ctaocrypt/src/md5.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -MT ctaocrypt/src/src_libcyassl_la-md5.lo -MD -MP -MF ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-md5.Tpo -c -o ctaocrypt/src/src_libcyassl_la-md5.lo `test -f 'ctaocrypt/src/md5.c' || echo '$(srcdir)/'`ctaocrypt/src/md5.c +@am__fastdepCC_TRUE@ mv -f ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-md5.Tpo ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-md5.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ctaocrypt/src/md5.c' object='ctaocrypt/src/src_libcyassl_la-md5.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -c -o ctaocrypt/src/src_libcyassl_la-md5.lo `test -f 'ctaocrypt/src/md5.c' || echo '$(srcdir)/'`ctaocrypt/src/md5.c + +ctaocrypt/src/src_libcyassl_la-md4.lo: ctaocrypt/src/md4.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -MT ctaocrypt/src/src_libcyassl_la-md4.lo -MD -MP -MF ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-md4.Tpo -c -o ctaocrypt/src/src_libcyassl_la-md4.lo `test -f 'ctaocrypt/src/md4.c' || echo '$(srcdir)/'`ctaocrypt/src/md4.c +@am__fastdepCC_TRUE@ mv -f ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-md4.Tpo ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-md4.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ctaocrypt/src/md4.c' object='ctaocrypt/src/src_libcyassl_la-md4.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -c -o ctaocrypt/src/src_libcyassl_la-md4.lo `test -f 'ctaocrypt/src/md4.c' || echo '$(srcdir)/'`ctaocrypt/src/md4.c + +ctaocrypt/src/src_libcyassl_la-random.lo: ctaocrypt/src/random.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -MT ctaocrypt/src/src_libcyassl_la-random.lo -MD -MP -MF ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-random.Tpo -c -o ctaocrypt/src/src_libcyassl_la-random.lo `test -f 'ctaocrypt/src/random.c' || echo '$(srcdir)/'`ctaocrypt/src/random.c +@am__fastdepCC_TRUE@ mv -f ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-random.Tpo ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-random.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ctaocrypt/src/random.c' object='ctaocrypt/src/src_libcyassl_la-random.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -c -o ctaocrypt/src/src_libcyassl_la-random.lo `test -f 'ctaocrypt/src/random.c' || echo '$(srcdir)/'`ctaocrypt/src/random.c + +ctaocrypt/src/src_libcyassl_la-rsa.lo: ctaocrypt/src/rsa.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -MT ctaocrypt/src/src_libcyassl_la-rsa.lo -MD -MP -MF ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-rsa.Tpo -c -o ctaocrypt/src/src_libcyassl_la-rsa.lo `test -f 'ctaocrypt/src/rsa.c' || echo '$(srcdir)/'`ctaocrypt/src/rsa.c +@am__fastdepCC_TRUE@ mv -f ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-rsa.Tpo ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-rsa.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ctaocrypt/src/rsa.c' object='ctaocrypt/src/src_libcyassl_la-rsa.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -c -o ctaocrypt/src/src_libcyassl_la-rsa.lo `test -f 'ctaocrypt/src/rsa.c' || echo '$(srcdir)/'`ctaocrypt/src/rsa.c + +ctaocrypt/src/src_libcyassl_la-sha.lo: ctaocrypt/src/sha.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -MT ctaocrypt/src/src_libcyassl_la-sha.lo -MD -MP -MF ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-sha.Tpo -c -o ctaocrypt/src/src_libcyassl_la-sha.lo `test -f 'ctaocrypt/src/sha.c' || echo '$(srcdir)/'`ctaocrypt/src/sha.c +@am__fastdepCC_TRUE@ mv -f ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-sha.Tpo ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-sha.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ctaocrypt/src/sha.c' object='ctaocrypt/src/src_libcyassl_la-sha.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -c -o ctaocrypt/src/src_libcyassl_la-sha.lo `test -f 'ctaocrypt/src/sha.c' || echo '$(srcdir)/'`ctaocrypt/src/sha.c + +ctaocrypt/src/src_libcyassl_la-aes.lo: ctaocrypt/src/aes.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -MT ctaocrypt/src/src_libcyassl_la-aes.lo -MD -MP -MF ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-aes.Tpo -c -o ctaocrypt/src/src_libcyassl_la-aes.lo `test -f 'ctaocrypt/src/aes.c' || echo '$(srcdir)/'`ctaocrypt/src/aes.c +@am__fastdepCC_TRUE@ mv -f ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-aes.Tpo ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-aes.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ctaocrypt/src/aes.c' object='ctaocrypt/src/src_libcyassl_la-aes.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -c -o ctaocrypt/src/src_libcyassl_la-aes.lo `test -f 'ctaocrypt/src/aes.c' || echo '$(srcdir)/'`ctaocrypt/src/aes.c + +ctaocrypt/src/src_libcyassl_la-sha256.lo: ctaocrypt/src/sha256.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -MT ctaocrypt/src/src_libcyassl_la-sha256.lo -MD -MP -MF ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-sha256.Tpo -c -o ctaocrypt/src/src_libcyassl_la-sha256.lo `test -f 'ctaocrypt/src/sha256.c' || echo '$(srcdir)/'`ctaocrypt/src/sha256.c +@am__fastdepCC_TRUE@ mv -f ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-sha256.Tpo ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-sha256.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ctaocrypt/src/sha256.c' object='ctaocrypt/src/src_libcyassl_la-sha256.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -c -o ctaocrypt/src/src_libcyassl_la-sha256.lo `test -f 'ctaocrypt/src/sha256.c' || echo '$(srcdir)/'`ctaocrypt/src/sha256.c + +ctaocrypt/src/src_libcyassl_la-dh.lo: ctaocrypt/src/dh.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -MT ctaocrypt/src/src_libcyassl_la-dh.lo -MD -MP -MF ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-dh.Tpo -c -o ctaocrypt/src/src_libcyassl_la-dh.lo `test -f 'ctaocrypt/src/dh.c' || echo '$(srcdir)/'`ctaocrypt/src/dh.c +@am__fastdepCC_TRUE@ mv -f ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-dh.Tpo ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-dh.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ctaocrypt/src/dh.c' object='ctaocrypt/src/src_libcyassl_la-dh.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -c -o ctaocrypt/src/src_libcyassl_la-dh.lo `test -f 'ctaocrypt/src/dh.c' || echo '$(srcdir)/'`ctaocrypt/src/dh.c + +ctaocrypt/src/src_libcyassl_la-dsa.lo: ctaocrypt/src/dsa.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -MT ctaocrypt/src/src_libcyassl_la-dsa.lo -MD -MP -MF ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-dsa.Tpo -c -o ctaocrypt/src/src_libcyassl_la-dsa.lo `test -f 'ctaocrypt/src/dsa.c' || echo '$(srcdir)/'`ctaocrypt/src/dsa.c +@am__fastdepCC_TRUE@ mv -f ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-dsa.Tpo ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-dsa.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ctaocrypt/src/dsa.c' object='ctaocrypt/src/src_libcyassl_la-dsa.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -c -o ctaocrypt/src/src_libcyassl_la-dsa.lo `test -f 'ctaocrypt/src/dsa.c' || echo '$(srcdir)/'`ctaocrypt/src/dsa.c + +ctaocrypt/src/src_libcyassl_la-arc4.lo: ctaocrypt/src/arc4.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -MT ctaocrypt/src/src_libcyassl_la-arc4.lo -MD -MP -MF ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-arc4.Tpo -c -o ctaocrypt/src/src_libcyassl_la-arc4.lo `test -f 'ctaocrypt/src/arc4.c' || echo '$(srcdir)/'`ctaocrypt/src/arc4.c +@am__fastdepCC_TRUE@ mv -f ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-arc4.Tpo ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-arc4.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ctaocrypt/src/arc4.c' object='ctaocrypt/src/src_libcyassl_la-arc4.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -c -o ctaocrypt/src/src_libcyassl_la-arc4.lo `test -f 'ctaocrypt/src/arc4.c' || echo '$(srcdir)/'`ctaocrypt/src/arc4.c + +ctaocrypt/src/src_libcyassl_la-rabbit.lo: ctaocrypt/src/rabbit.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -MT ctaocrypt/src/src_libcyassl_la-rabbit.lo -MD -MP -MF ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-rabbit.Tpo -c -o ctaocrypt/src/src_libcyassl_la-rabbit.lo `test -f 'ctaocrypt/src/rabbit.c' || echo '$(srcdir)/'`ctaocrypt/src/rabbit.c +@am__fastdepCC_TRUE@ mv -f ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-rabbit.Tpo ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-rabbit.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ctaocrypt/src/rabbit.c' object='ctaocrypt/src/src_libcyassl_la-rabbit.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -c -o ctaocrypt/src/src_libcyassl_la-rabbit.lo `test -f 'ctaocrypt/src/rabbit.c' || echo '$(srcdir)/'`ctaocrypt/src/rabbit.c + +ctaocrypt/src/src_libcyassl_la-pwdbased.lo: ctaocrypt/src/pwdbased.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -MT ctaocrypt/src/src_libcyassl_la-pwdbased.lo -MD -MP -MF ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-pwdbased.Tpo -c -o ctaocrypt/src/src_libcyassl_la-pwdbased.lo `test -f 'ctaocrypt/src/pwdbased.c' || echo '$(srcdir)/'`ctaocrypt/src/pwdbased.c +@am__fastdepCC_TRUE@ mv -f ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-pwdbased.Tpo ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-pwdbased.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ctaocrypt/src/pwdbased.c' object='ctaocrypt/src/src_libcyassl_la-pwdbased.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -c -o ctaocrypt/src/src_libcyassl_la-pwdbased.lo `test -f 'ctaocrypt/src/pwdbased.c' || echo '$(srcdir)/'`ctaocrypt/src/pwdbased.c + +ctaocrypt/src/src_libcyassl_la-logging.lo: ctaocrypt/src/logging.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -MT ctaocrypt/src/src_libcyassl_la-logging.lo -MD -MP -MF ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-logging.Tpo -c -o ctaocrypt/src/src_libcyassl_la-logging.lo `test -f 'ctaocrypt/src/logging.c' || echo '$(srcdir)/'`ctaocrypt/src/logging.c +@am__fastdepCC_TRUE@ mv -f ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-logging.Tpo ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-logging.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ctaocrypt/src/logging.c' object='ctaocrypt/src/src_libcyassl_la-logging.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -c -o ctaocrypt/src/src_libcyassl_la-logging.lo `test -f 'ctaocrypt/src/logging.c' || echo '$(srcdir)/'`ctaocrypt/src/logging.c + +ctaocrypt/src/src_libcyassl_la-memory.lo: ctaocrypt/src/memory.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -MT ctaocrypt/src/src_libcyassl_la-memory.lo -MD -MP -MF ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-memory.Tpo -c -o ctaocrypt/src/src_libcyassl_la-memory.lo `test -f 'ctaocrypt/src/memory.c' || echo '$(srcdir)/'`ctaocrypt/src/memory.c +@am__fastdepCC_TRUE@ mv -f ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-memory.Tpo ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-memory.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ctaocrypt/src/memory.c' object='ctaocrypt/src/src_libcyassl_la-memory.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -c -o ctaocrypt/src/src_libcyassl_la-memory.lo `test -f 'ctaocrypt/src/memory.c' || echo '$(srcdir)/'`ctaocrypt/src/memory.c + +ctaocrypt/src/src_libcyassl_la-ripemd.lo: ctaocrypt/src/ripemd.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -MT ctaocrypt/src/src_libcyassl_la-ripemd.lo -MD -MP -MF ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-ripemd.Tpo -c -o ctaocrypt/src/src_libcyassl_la-ripemd.lo `test -f 'ctaocrypt/src/ripemd.c' || echo '$(srcdir)/'`ctaocrypt/src/ripemd.c +@am__fastdepCC_TRUE@ mv -f ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-ripemd.Tpo ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-ripemd.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ctaocrypt/src/ripemd.c' object='ctaocrypt/src/src_libcyassl_la-ripemd.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -c -o ctaocrypt/src/src_libcyassl_la-ripemd.lo `test -f 'ctaocrypt/src/ripemd.c' || echo '$(srcdir)/'`ctaocrypt/src/ripemd.c + +ctaocrypt/src/src_libcyassl_la-sha512.lo: ctaocrypt/src/sha512.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -MT ctaocrypt/src/src_libcyassl_la-sha512.lo -MD -MP -MF ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-sha512.Tpo -c -o ctaocrypt/src/src_libcyassl_la-sha512.lo `test -f 'ctaocrypt/src/sha512.c' || echo '$(srcdir)/'`ctaocrypt/src/sha512.c +@am__fastdepCC_TRUE@ mv -f ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-sha512.Tpo ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-sha512.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ctaocrypt/src/sha512.c' object='ctaocrypt/src/src_libcyassl_la-sha512.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -c -o ctaocrypt/src/src_libcyassl_la-sha512.lo `test -f 'ctaocrypt/src/sha512.c' || echo '$(srcdir)/'`ctaocrypt/src/sha512.c + +src/src_libcyassl_la-sniffer.lo: src/sniffer.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -MT src/src_libcyassl_la-sniffer.lo -MD -MP -MF src/$(DEPDIR)/src_libcyassl_la-sniffer.Tpo -c -o src/src_libcyassl_la-sniffer.lo `test -f 'src/sniffer.c' || echo '$(srcdir)/'`src/sniffer.c +@am__fastdepCC_TRUE@ mv -f src/$(DEPDIR)/src_libcyassl_la-sniffer.Tpo src/$(DEPDIR)/src_libcyassl_la-sniffer.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/sniffer.c' object='src/src_libcyassl_la-sniffer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -c -o src/src_libcyassl_la-sniffer.lo `test -f 'src/sniffer.c' || echo '$(srcdir)/'`src/sniffer.c + +ctaocrypt/src/src_libcyassl_la-hc128.lo: ctaocrypt/src/hc128.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -MT ctaocrypt/src/src_libcyassl_la-hc128.lo -MD -MP -MF ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-hc128.Tpo -c -o ctaocrypt/src/src_libcyassl_la-hc128.lo `test -f 'ctaocrypt/src/hc128.c' || echo '$(srcdir)/'`ctaocrypt/src/hc128.c +@am__fastdepCC_TRUE@ mv -f ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-hc128.Tpo ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-hc128.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ctaocrypt/src/hc128.c' object='ctaocrypt/src/src_libcyassl_la-hc128.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -c -o ctaocrypt/src/src_libcyassl_la-hc128.lo `test -f 'ctaocrypt/src/hc128.c' || echo '$(srcdir)/'`ctaocrypt/src/hc128.c + +ctaocrypt/src/src_libcyassl_la-misc.lo: ctaocrypt/src/misc.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -MT ctaocrypt/src/src_libcyassl_la-misc.lo -MD -MP -MF ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-misc.Tpo -c -o ctaocrypt/src/src_libcyassl_la-misc.lo `test -f 'ctaocrypt/src/misc.c' || echo '$(srcdir)/'`ctaocrypt/src/misc.c +@am__fastdepCC_TRUE@ mv -f ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-misc.Tpo ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-misc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ctaocrypt/src/misc.c' object='ctaocrypt/src/src_libcyassl_la-misc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -c -o ctaocrypt/src/src_libcyassl_la-misc.lo `test -f 'ctaocrypt/src/misc.c' || echo '$(srcdir)/'`ctaocrypt/src/misc.c + +ctaocrypt/src/src_libcyassl_la-tfm.lo: ctaocrypt/src/tfm.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -MT ctaocrypt/src/src_libcyassl_la-tfm.lo -MD -MP -MF ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-tfm.Tpo -c -o ctaocrypt/src/src_libcyassl_la-tfm.lo `test -f 'ctaocrypt/src/tfm.c' || echo '$(srcdir)/'`ctaocrypt/src/tfm.c +@am__fastdepCC_TRUE@ mv -f ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-tfm.Tpo ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-tfm.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ctaocrypt/src/tfm.c' object='ctaocrypt/src/src_libcyassl_la-tfm.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -c -o ctaocrypt/src/src_libcyassl_la-tfm.lo `test -f 'ctaocrypt/src/tfm.c' || echo '$(srcdir)/'`ctaocrypt/src/tfm.c + +ctaocrypt/src/src_libcyassl_la-integer.lo: ctaocrypt/src/integer.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -MT ctaocrypt/src/src_libcyassl_la-integer.lo -MD -MP -MF ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-integer.Tpo -c -o ctaocrypt/src/src_libcyassl_la-integer.lo `test -f 'ctaocrypt/src/integer.c' || echo '$(srcdir)/'`ctaocrypt/src/integer.c +@am__fastdepCC_TRUE@ mv -f ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-integer.Tpo ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-integer.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ctaocrypt/src/integer.c' object='ctaocrypt/src/src_libcyassl_la-integer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -c -o ctaocrypt/src/src_libcyassl_la-integer.lo `test -f 'ctaocrypt/src/integer.c' || echo '$(srcdir)/'`ctaocrypt/src/integer.c + +ctaocrypt/src/src_libcyassl_la-ecc.lo: ctaocrypt/src/ecc.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -MT ctaocrypt/src/src_libcyassl_la-ecc.lo -MD -MP -MF ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-ecc.Tpo -c -o ctaocrypt/src/src_libcyassl_la-ecc.lo `test -f 'ctaocrypt/src/ecc.c' || echo '$(srcdir)/'`ctaocrypt/src/ecc.c +@am__fastdepCC_TRUE@ mv -f ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-ecc.Tpo ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-ecc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ctaocrypt/src/ecc.c' object='ctaocrypt/src/src_libcyassl_la-ecc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -c -o ctaocrypt/src/src_libcyassl_la-ecc.lo `test -f 'ctaocrypt/src/ecc.c' || echo '$(srcdir)/'`ctaocrypt/src/ecc.c + +src/src_libcyassl_la-ocsp.lo: src/ocsp.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -MT src/src_libcyassl_la-ocsp.lo -MD -MP -MF src/$(DEPDIR)/src_libcyassl_la-ocsp.Tpo -c -o src/src_libcyassl_la-ocsp.lo `test -f 'src/ocsp.c' || echo '$(srcdir)/'`src/ocsp.c +@am__fastdepCC_TRUE@ mv -f src/$(DEPDIR)/src_libcyassl_la-ocsp.Tpo src/$(DEPDIR)/src_libcyassl_la-ocsp.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/ocsp.c' object='src/src_libcyassl_la-ocsp.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -c -o src/src_libcyassl_la-ocsp.lo `test -f 'src/ocsp.c' || echo '$(srcdir)/'`src/ocsp.c + +src/src_libcyassl_la-crl.lo: src/crl.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -MT src/src_libcyassl_la-crl.lo -MD -MP -MF src/$(DEPDIR)/src_libcyassl_la-crl.Tpo -c -o src/src_libcyassl_la-crl.lo `test -f 'src/crl.c' || echo '$(srcdir)/'`src/crl.c +@am__fastdepCC_TRUE@ mv -f src/$(DEPDIR)/src_libcyassl_la-crl.Tpo src/$(DEPDIR)/src_libcyassl_la-crl.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/crl.c' object='src/src_libcyassl_la-crl.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -c -o src/src_libcyassl_la-crl.lo `test -f 'src/crl.c' || echo '$(srcdir)/'`src/crl.c + +tests/tests_unit-unit.o: tests/unit.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tests_unit_CFLAGS) $(CFLAGS) -MT tests/tests_unit-unit.o -MD -MP -MF tests/$(DEPDIR)/tests_unit-unit.Tpo -c -o tests/tests_unit-unit.o `test -f 'tests/unit.c' || echo '$(srcdir)/'`tests/unit.c +@am__fastdepCC_TRUE@ mv -f tests/$(DEPDIR)/tests_unit-unit.Tpo tests/$(DEPDIR)/tests_unit-unit.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/unit.c' object='tests/tests_unit-unit.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tests_unit_CFLAGS) $(CFLAGS) -c -o tests/tests_unit-unit.o `test -f 'tests/unit.c' || echo '$(srcdir)/'`tests/unit.c + +tests/tests_unit-unit.obj: tests/unit.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tests_unit_CFLAGS) $(CFLAGS) -MT tests/tests_unit-unit.obj -MD -MP -MF tests/$(DEPDIR)/tests_unit-unit.Tpo -c -o tests/tests_unit-unit.obj `if test -f 'tests/unit.c'; then $(CYGPATH_W) 'tests/unit.c'; else $(CYGPATH_W) '$(srcdir)/tests/unit.c'; fi` +@am__fastdepCC_TRUE@ mv -f tests/$(DEPDIR)/tests_unit-unit.Tpo tests/$(DEPDIR)/tests_unit-unit.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/unit.c' object='tests/tests_unit-unit.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tests_unit_CFLAGS) $(CFLAGS) -c -o tests/tests_unit-unit.obj `if test -f 'tests/unit.c'; then $(CYGPATH_W) 'tests/unit.c'; else $(CYGPATH_W) '$(srcdir)/tests/unit.c'; fi` + +tests/tests_unit-api.o: tests/api.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tests_unit_CFLAGS) $(CFLAGS) -MT tests/tests_unit-api.o -MD -MP -MF tests/$(DEPDIR)/tests_unit-api.Tpo -c -o tests/tests_unit-api.o `test -f 'tests/api.c' || echo '$(srcdir)/'`tests/api.c +@am__fastdepCC_TRUE@ mv -f tests/$(DEPDIR)/tests_unit-api.Tpo tests/$(DEPDIR)/tests_unit-api.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/api.c' object='tests/tests_unit-api.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tests_unit_CFLAGS) $(CFLAGS) -c -o tests/tests_unit-api.o `test -f 'tests/api.c' || echo '$(srcdir)/'`tests/api.c + +tests/tests_unit-api.obj: tests/api.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tests_unit_CFLAGS) $(CFLAGS) -MT tests/tests_unit-api.obj -MD -MP -MF tests/$(DEPDIR)/tests_unit-api.Tpo -c -o tests/tests_unit-api.obj `if test -f 'tests/api.c'; then $(CYGPATH_W) 'tests/api.c'; else $(CYGPATH_W) '$(srcdir)/tests/api.c'; fi` +@am__fastdepCC_TRUE@ mv -f tests/$(DEPDIR)/tests_unit-api.Tpo tests/$(DEPDIR)/tests_unit-api.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/api.c' object='tests/tests_unit-api.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tests_unit_CFLAGS) $(CFLAGS) -c -o tests/tests_unit-api.obj `if test -f 'tests/api.c'; then $(CYGPATH_W) 'tests/api.c'; else $(CYGPATH_W) '$(srcdir)/tests/api.c'; fi` + +tests/tests_unit-suites.o: tests/suites.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tests_unit_CFLAGS) $(CFLAGS) -MT tests/tests_unit-suites.o -MD -MP -MF tests/$(DEPDIR)/tests_unit-suites.Tpo -c -o tests/tests_unit-suites.o `test -f 'tests/suites.c' || echo '$(srcdir)/'`tests/suites.c +@am__fastdepCC_TRUE@ mv -f tests/$(DEPDIR)/tests_unit-suites.Tpo tests/$(DEPDIR)/tests_unit-suites.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/suites.c' object='tests/tests_unit-suites.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tests_unit_CFLAGS) $(CFLAGS) -c -o tests/tests_unit-suites.o `test -f 'tests/suites.c' || echo '$(srcdir)/'`tests/suites.c + +tests/tests_unit-suites.obj: tests/suites.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tests_unit_CFLAGS) $(CFLAGS) -MT tests/tests_unit-suites.obj -MD -MP -MF tests/$(DEPDIR)/tests_unit-suites.Tpo -c -o tests/tests_unit-suites.obj `if test -f 'tests/suites.c'; then $(CYGPATH_W) 'tests/suites.c'; else $(CYGPATH_W) '$(srcdir)/tests/suites.c'; fi` +@am__fastdepCC_TRUE@ mv -f tests/$(DEPDIR)/tests_unit-suites.Tpo tests/$(DEPDIR)/tests_unit-suites.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/suites.c' object='tests/tests_unit-suites.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tests_unit_CFLAGS) $(CFLAGS) -c -o tests/tests_unit-suites.obj `if test -f 'tests/suites.c'; then $(CYGPATH_W) 'tests/suites.c'; else $(CYGPATH_W) '$(srcdir)/tests/suites.c'; fi` + +tests/tests_unit-hash.o: tests/hash.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tests_unit_CFLAGS) $(CFLAGS) -MT tests/tests_unit-hash.o -MD -MP -MF tests/$(DEPDIR)/tests_unit-hash.Tpo -c -o tests/tests_unit-hash.o `test -f 'tests/hash.c' || echo '$(srcdir)/'`tests/hash.c +@am__fastdepCC_TRUE@ mv -f tests/$(DEPDIR)/tests_unit-hash.Tpo tests/$(DEPDIR)/tests_unit-hash.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/hash.c' object='tests/tests_unit-hash.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tests_unit_CFLAGS) $(CFLAGS) -c -o tests/tests_unit-hash.o `test -f 'tests/hash.c' || echo '$(srcdir)/'`tests/hash.c + +tests/tests_unit-hash.obj: tests/hash.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tests_unit_CFLAGS) $(CFLAGS) -MT tests/tests_unit-hash.obj -MD -MP -MF tests/$(DEPDIR)/tests_unit-hash.Tpo -c -o tests/tests_unit-hash.obj `if test -f 'tests/hash.c'; then $(CYGPATH_W) 'tests/hash.c'; else $(CYGPATH_W) '$(srcdir)/tests/hash.c'; fi` +@am__fastdepCC_TRUE@ mv -f tests/$(DEPDIR)/tests_unit-hash.Tpo tests/$(DEPDIR)/tests_unit-hash.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/hash.c' object='tests/tests_unit-hash.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tests_unit_CFLAGS) $(CFLAGS) -c -o tests/tests_unit-hash.obj `if test -f 'tests/hash.c'; then $(CYGPATH_W) 'tests/hash.c'; else $(CYGPATH_W) '$(srcdir)/tests/hash.c'; fi` + +ctaocrypt/test/testsuite_testsuite-test.o: ctaocrypt/test/test.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testsuite_testsuite_CFLAGS) $(CFLAGS) -MT ctaocrypt/test/testsuite_testsuite-test.o -MD -MP -MF ctaocrypt/test/$(DEPDIR)/testsuite_testsuite-test.Tpo -c -o ctaocrypt/test/testsuite_testsuite-test.o `test -f 'ctaocrypt/test/test.c' || echo '$(srcdir)/'`ctaocrypt/test/test.c +@am__fastdepCC_TRUE@ mv -f ctaocrypt/test/$(DEPDIR)/testsuite_testsuite-test.Tpo ctaocrypt/test/$(DEPDIR)/testsuite_testsuite-test.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ctaocrypt/test/test.c' object='ctaocrypt/test/testsuite_testsuite-test.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testsuite_testsuite_CFLAGS) $(CFLAGS) -c -o ctaocrypt/test/testsuite_testsuite-test.o `test -f 'ctaocrypt/test/test.c' || echo '$(srcdir)/'`ctaocrypt/test/test.c + +ctaocrypt/test/testsuite_testsuite-test.obj: ctaocrypt/test/test.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testsuite_testsuite_CFLAGS) $(CFLAGS) -MT ctaocrypt/test/testsuite_testsuite-test.obj -MD -MP -MF ctaocrypt/test/$(DEPDIR)/testsuite_testsuite-test.Tpo -c -o ctaocrypt/test/testsuite_testsuite-test.obj `if test -f 'ctaocrypt/test/test.c'; then $(CYGPATH_W) 'ctaocrypt/test/test.c'; else $(CYGPATH_W) '$(srcdir)/ctaocrypt/test/test.c'; fi` +@am__fastdepCC_TRUE@ mv -f ctaocrypt/test/$(DEPDIR)/testsuite_testsuite-test.Tpo ctaocrypt/test/$(DEPDIR)/testsuite_testsuite-test.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ctaocrypt/test/test.c' object='ctaocrypt/test/testsuite_testsuite-test.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testsuite_testsuite_CFLAGS) $(CFLAGS) -c -o ctaocrypt/test/testsuite_testsuite-test.obj `if test -f 'ctaocrypt/test/test.c'; then $(CYGPATH_W) 'ctaocrypt/test/test.c'; else $(CYGPATH_W) '$(srcdir)/ctaocrypt/test/test.c'; fi` + +examples/client/testsuite_testsuite-client.o: examples/client/client.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testsuite_testsuite_CFLAGS) $(CFLAGS) -MT examples/client/testsuite_testsuite-client.o -MD -MP -MF examples/client/$(DEPDIR)/testsuite_testsuite-client.Tpo -c -o examples/client/testsuite_testsuite-client.o `test -f 'examples/client/client.c' || echo '$(srcdir)/'`examples/client/client.c +@am__fastdepCC_TRUE@ mv -f examples/client/$(DEPDIR)/testsuite_testsuite-client.Tpo examples/client/$(DEPDIR)/testsuite_testsuite-client.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='examples/client/client.c' object='examples/client/testsuite_testsuite-client.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testsuite_testsuite_CFLAGS) $(CFLAGS) -c -o examples/client/testsuite_testsuite-client.o `test -f 'examples/client/client.c' || echo '$(srcdir)/'`examples/client/client.c + +examples/client/testsuite_testsuite-client.obj: examples/client/client.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testsuite_testsuite_CFLAGS) $(CFLAGS) -MT examples/client/testsuite_testsuite-client.obj -MD -MP -MF examples/client/$(DEPDIR)/testsuite_testsuite-client.Tpo -c -o examples/client/testsuite_testsuite-client.obj `if test -f 'examples/client/client.c'; then $(CYGPATH_W) 'examples/client/client.c'; else $(CYGPATH_W) '$(srcdir)/examples/client/client.c'; fi` +@am__fastdepCC_TRUE@ mv -f examples/client/$(DEPDIR)/testsuite_testsuite-client.Tpo examples/client/$(DEPDIR)/testsuite_testsuite-client.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='examples/client/client.c' object='examples/client/testsuite_testsuite-client.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testsuite_testsuite_CFLAGS) $(CFLAGS) -c -o examples/client/testsuite_testsuite-client.obj `if test -f 'examples/client/client.c'; then $(CYGPATH_W) 'examples/client/client.c'; else $(CYGPATH_W) '$(srcdir)/examples/client/client.c'; fi` + +examples/echoclient/testsuite_testsuite-echoclient.o: examples/echoclient/echoclient.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testsuite_testsuite_CFLAGS) $(CFLAGS) -MT examples/echoclient/testsuite_testsuite-echoclient.o -MD -MP -MF examples/echoclient/$(DEPDIR)/testsuite_testsuite-echoclient.Tpo -c -o examples/echoclient/testsuite_testsuite-echoclient.o `test -f 'examples/echoclient/echoclient.c' || echo '$(srcdir)/'`examples/echoclient/echoclient.c +@am__fastdepCC_TRUE@ mv -f examples/echoclient/$(DEPDIR)/testsuite_testsuite-echoclient.Tpo examples/echoclient/$(DEPDIR)/testsuite_testsuite-echoclient.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='examples/echoclient/echoclient.c' object='examples/echoclient/testsuite_testsuite-echoclient.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testsuite_testsuite_CFLAGS) $(CFLAGS) -c -o examples/echoclient/testsuite_testsuite-echoclient.o `test -f 'examples/echoclient/echoclient.c' || echo '$(srcdir)/'`examples/echoclient/echoclient.c + +examples/echoclient/testsuite_testsuite-echoclient.obj: examples/echoclient/echoclient.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testsuite_testsuite_CFLAGS) $(CFLAGS) -MT examples/echoclient/testsuite_testsuite-echoclient.obj -MD -MP -MF examples/echoclient/$(DEPDIR)/testsuite_testsuite-echoclient.Tpo -c -o examples/echoclient/testsuite_testsuite-echoclient.obj `if test -f 'examples/echoclient/echoclient.c'; then $(CYGPATH_W) 'examples/echoclient/echoclient.c'; else $(CYGPATH_W) '$(srcdir)/examples/echoclient/echoclient.c'; fi` +@am__fastdepCC_TRUE@ mv -f examples/echoclient/$(DEPDIR)/testsuite_testsuite-echoclient.Tpo examples/echoclient/$(DEPDIR)/testsuite_testsuite-echoclient.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='examples/echoclient/echoclient.c' object='examples/echoclient/testsuite_testsuite-echoclient.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testsuite_testsuite_CFLAGS) $(CFLAGS) -c -o examples/echoclient/testsuite_testsuite-echoclient.obj `if test -f 'examples/echoclient/echoclient.c'; then $(CYGPATH_W) 'examples/echoclient/echoclient.c'; else $(CYGPATH_W) '$(srcdir)/examples/echoclient/echoclient.c'; fi` + +examples/echoserver/testsuite_testsuite-echoserver.o: examples/echoserver/echoserver.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testsuite_testsuite_CFLAGS) $(CFLAGS) -MT examples/echoserver/testsuite_testsuite-echoserver.o -MD -MP -MF examples/echoserver/$(DEPDIR)/testsuite_testsuite-echoserver.Tpo -c -o examples/echoserver/testsuite_testsuite-echoserver.o `test -f 'examples/echoserver/echoserver.c' || echo '$(srcdir)/'`examples/echoserver/echoserver.c +@am__fastdepCC_TRUE@ mv -f examples/echoserver/$(DEPDIR)/testsuite_testsuite-echoserver.Tpo examples/echoserver/$(DEPDIR)/testsuite_testsuite-echoserver.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='examples/echoserver/echoserver.c' object='examples/echoserver/testsuite_testsuite-echoserver.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testsuite_testsuite_CFLAGS) $(CFLAGS) -c -o examples/echoserver/testsuite_testsuite-echoserver.o `test -f 'examples/echoserver/echoserver.c' || echo '$(srcdir)/'`examples/echoserver/echoserver.c + +examples/echoserver/testsuite_testsuite-echoserver.obj: examples/echoserver/echoserver.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testsuite_testsuite_CFLAGS) $(CFLAGS) -MT examples/echoserver/testsuite_testsuite-echoserver.obj -MD -MP -MF examples/echoserver/$(DEPDIR)/testsuite_testsuite-echoserver.Tpo -c -o examples/echoserver/testsuite_testsuite-echoserver.obj `if test -f 'examples/echoserver/echoserver.c'; then $(CYGPATH_W) 'examples/echoserver/echoserver.c'; else $(CYGPATH_W) '$(srcdir)/examples/echoserver/echoserver.c'; fi` +@am__fastdepCC_TRUE@ mv -f examples/echoserver/$(DEPDIR)/testsuite_testsuite-echoserver.Tpo examples/echoserver/$(DEPDIR)/testsuite_testsuite-echoserver.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='examples/echoserver/echoserver.c' object='examples/echoserver/testsuite_testsuite-echoserver.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testsuite_testsuite_CFLAGS) $(CFLAGS) -c -o examples/echoserver/testsuite_testsuite-echoserver.obj `if test -f 'examples/echoserver/echoserver.c'; then $(CYGPATH_W) 'examples/echoserver/echoserver.c'; else $(CYGPATH_W) '$(srcdir)/examples/echoserver/echoserver.c'; fi` + +examples/server/testsuite_testsuite-server.o: examples/server/server.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testsuite_testsuite_CFLAGS) $(CFLAGS) -MT examples/server/testsuite_testsuite-server.o -MD -MP -MF examples/server/$(DEPDIR)/testsuite_testsuite-server.Tpo -c -o examples/server/testsuite_testsuite-server.o `test -f 'examples/server/server.c' || echo '$(srcdir)/'`examples/server/server.c +@am__fastdepCC_TRUE@ mv -f examples/server/$(DEPDIR)/testsuite_testsuite-server.Tpo examples/server/$(DEPDIR)/testsuite_testsuite-server.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='examples/server/server.c' object='examples/server/testsuite_testsuite-server.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testsuite_testsuite_CFLAGS) $(CFLAGS) -c -o examples/server/testsuite_testsuite-server.o `test -f 'examples/server/server.c' || echo '$(srcdir)/'`examples/server/server.c + +examples/server/testsuite_testsuite-server.obj: examples/server/server.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testsuite_testsuite_CFLAGS) $(CFLAGS) -MT examples/server/testsuite_testsuite-server.obj -MD -MP -MF examples/server/$(DEPDIR)/testsuite_testsuite-server.Tpo -c -o examples/server/testsuite_testsuite-server.obj `if test -f 'examples/server/server.c'; then $(CYGPATH_W) 'examples/server/server.c'; else $(CYGPATH_W) '$(srcdir)/examples/server/server.c'; fi` +@am__fastdepCC_TRUE@ mv -f examples/server/$(DEPDIR)/testsuite_testsuite-server.Tpo examples/server/$(DEPDIR)/testsuite_testsuite-server.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='examples/server/server.c' object='examples/server/testsuite_testsuite-server.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testsuite_testsuite_CFLAGS) $(CFLAGS) -c -o examples/server/testsuite_testsuite-server.obj `if test -f 'examples/server/server.c'; then $(CYGPATH_W) 'examples/server/server.c'; else $(CYGPATH_W) '$(srcdir)/examples/server/server.c'; fi` + +testsuite/testsuite_testsuite-testsuite.o: testsuite/testsuite.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testsuite_testsuite_CFLAGS) $(CFLAGS) -MT testsuite/testsuite_testsuite-testsuite.o -MD -MP -MF testsuite/$(DEPDIR)/testsuite_testsuite-testsuite.Tpo -c -o testsuite/testsuite_testsuite-testsuite.o `test -f 'testsuite/testsuite.c' || echo '$(srcdir)/'`testsuite/testsuite.c +@am__fastdepCC_TRUE@ mv -f testsuite/$(DEPDIR)/testsuite_testsuite-testsuite.Tpo testsuite/$(DEPDIR)/testsuite_testsuite-testsuite.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testsuite/testsuite.c' object='testsuite/testsuite_testsuite-testsuite.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testsuite_testsuite_CFLAGS) $(CFLAGS) -c -o testsuite/testsuite_testsuite-testsuite.o `test -f 'testsuite/testsuite.c' || echo '$(srcdir)/'`testsuite/testsuite.c + +testsuite/testsuite_testsuite-testsuite.obj: testsuite/testsuite.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testsuite_testsuite_CFLAGS) $(CFLAGS) -MT testsuite/testsuite_testsuite-testsuite.obj -MD -MP -MF testsuite/$(DEPDIR)/testsuite_testsuite-testsuite.Tpo -c -o testsuite/testsuite_testsuite-testsuite.obj `if test -f 'testsuite/testsuite.c'; then $(CYGPATH_W) 'testsuite/testsuite.c'; else $(CYGPATH_W) '$(srcdir)/testsuite/testsuite.c'; fi` +@am__fastdepCC_TRUE@ mv -f testsuite/$(DEPDIR)/testsuite_testsuite-testsuite.Tpo testsuite/$(DEPDIR)/testsuite_testsuite-testsuite.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testsuite/testsuite.c' object='testsuite/testsuite_testsuite-testsuite.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testsuite_testsuite_CFLAGS) $(CFLAGS) -c -o testsuite/testsuite_testsuite-testsuite.obj `if test -f 'testsuite/testsuite.c'; then $(CYGPATH_W) 'testsuite/testsuite.c'; else $(CYGPATH_W) '$(srcdir)/testsuite/testsuite.c'; fi` + +.s.o: + $(CCASCOMPILE) -c -o $@ $< + +.s.obj: + $(CCASCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.s.lo: + $(LTCCASCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + -rm -rf ctaocrypt/src/.libs ctaocrypt/src/_libs + -rm -rf src/.libs src/_libs + +distclean-libtool: + -rm -f libtool +install-certsDATA: $(certs_DATA) + @$(NORMAL_INSTALL) + test -z "$(certsdir)" || $(MKDIR_P) "$(DESTDIR)$(certsdir)" + @list='$(certs_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(certsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(certsdir)/$$f'"; \ + $(certsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(certsdir)/$$f"; \ + done + +uninstall-certsDATA: + @$(NORMAL_UNINSTALL) + @list='$(certs_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(certsdir)/$$f'"; \ + rm -f "$(DESTDIR)$(certsdir)/$$f"; \ + done +install-docDATA: $(doc_DATA) + @$(NORMAL_INSTALL) + test -z "$(docdir)" || $(MKDIR_P) "$(DESTDIR)$(docdir)" + @list='$(doc_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(docDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(docdir)/$$f'"; \ + $(docDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(docdir)/$$f"; \ + done + +uninstall-docDATA: + @$(NORMAL_UNINSTALL) + @list='$(doc_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(docdir)/$$f'"; \ + rm -f "$(DESTDIR)$(docdir)/$$f"; \ + done +install-exampleDATA: $(example_DATA) + @$(NORMAL_INSTALL) + test -z "$(exampledir)" || $(MKDIR_P) "$(DESTDIR)$(exampledir)" + @list='$(example_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(exampleDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(exampledir)/$$f'"; \ + $(exampleDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(exampledir)/$$f"; \ + done + +uninstall-exampleDATA: + @$(NORMAL_UNINSTALL) + @list='$(example_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(exampledir)/$$f'"; \ + rm -f "$(DESTDIR)$(exampledir)/$$f"; \ + done +install-includeHEADERS: $(include_HEADERS) + @$(NORMAL_INSTALL) + test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)" + @list='$(include_HEADERS)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \ + $(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \ + done + +uninstall-includeHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(include_HEADERS)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \ + rm -f "$(DESTDIR)$(includedir)/$$f"; \ + done +install-nobase_includeHEADERS: $(nobase_include_HEADERS) + @$(NORMAL_INSTALL) + test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)" + @$(am__vpath_adj_setup) \ + list='$(nobase_include_HEADERS)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + $(am__vpath_adj) \ + echo " $(nobase_includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \ + $(nobase_includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \ + done + +uninstall-nobase_includeHEADERS: + @$(NORMAL_UNINSTALL) + @$(am__vpath_adj_setup) \ + list='$(nobase_include_HEADERS)'; for p in $$list; do \ + $(am__vpath_adj) \ + echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \ + rm -f "$(DESTDIR)$(includedir)/$$f"; \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) config.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) config.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) config.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) config.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; ws='[ ]'; \ + srcdir=$(srcdir); export srcdir; \ + list=' $(TESTS) '; \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *$$ws$$tst$$ws*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + echo "XPASS: $$tst"; \ + ;; \ + *) \ + echo "PASS: $$tst"; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *$$ws$$tst$$ws*) \ + xfail=`expr $$xfail + 1`; \ + echo "XFAIL: $$tst"; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + echo "FAIL: $$tst"; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + echo "SKIP: $$tst"; \ + fi; \ + done; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="All $$all tests passed"; \ + else \ + banner="All $$all tests behaved as expected ($$xfail expected failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all tests failed"; \ + else \ + banner="$$failed of $$all tests did not behave as expected ($$xpass unexpected passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + skipped="($$skip tests were not run)"; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + echo "$$dashes"; \ + echo "$$banner"; \ + test -z "$$skipped" || echo "$$skipped"; \ + test -z "$$report" || echo "$$report"; \ + echo "$$dashes"; \ + test "$$failed" -eq 0; \ + else :; fi + +distdir: $(DISTFILES) + $(am__remove_distdir) + test -d $(distdir) || mkdir $(distdir) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + -find $(distdir) -type d ! -perm -755 -exec chmod u+rwx,go+rx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r $(distdir) +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) + +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 + $(am__remove_distdir) + +dist-tarZ: distdir + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__remove_distdir) + +dist-shar: distdir + shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz + $(am__remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__remove_distdir) + +dist dist-all: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + esac + chmod -R a-w $(distdir); chmod a+w $(distdir) + mkdir $(distdir)/_build + mkdir $(distdir)/_inst + chmod a-w $(distdir) + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && cd $(distdir)/_build \ + && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck + $(am__remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' +distuninstallcheck: + @cd $(distuninstallcheck_dir) \ + && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) check-am +all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS) \ + config.h +install-binPROGRAMS: install-libLTLIBRARIES + +installdirs: + for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(certsdir)" "$(DESTDIR)$(docdir)" "$(DESTDIR)$(exampledir)" "$(DESTDIR)$(includedir)" "$(DESTDIR)$(includedir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -rm -f ctaocrypt/benchmark/$(DEPDIR)/$(am__dirstamp) + -rm -f ctaocrypt/benchmark/$(am__dirstamp) + -rm -f ctaocrypt/src/$(DEPDIR)/$(am__dirstamp) + -rm -f ctaocrypt/src/$(am__dirstamp) + -rm -f ctaocrypt/test/$(DEPDIR)/$(am__dirstamp) + -rm -f ctaocrypt/test/$(am__dirstamp) + -rm -f examples/client/$(DEPDIR)/$(am__dirstamp) + -rm -f examples/client/$(am__dirstamp) + -rm -f examples/echoclient/$(DEPDIR)/$(am__dirstamp) + -rm -f examples/echoclient/$(am__dirstamp) + -rm -f examples/echoserver/$(DEPDIR)/$(am__dirstamp) + -rm -f examples/echoserver/$(am__dirstamp) + -rm -f examples/server/$(DEPDIR)/$(am__dirstamp) + -rm -f examples/server/$(am__dirstamp) + -rm -f src/$(DEPDIR)/$(am__dirstamp) + -rm -f src/$(am__dirstamp) + -rm -f sslSniffer/sslSnifferTest/$(DEPDIR)/$(am__dirstamp) + -rm -f sslSniffer/sslSnifferTest/$(am__dirstamp) + -rm -f tests/$(DEPDIR)/$(am__dirstamp) + -rm -f tests/$(am__dirstamp) + -rm -f testsuite/$(DEPDIR)/$(am__dirstamp) + -rm -f testsuite/$(am__dirstamp) + -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +clean: clean-am + +clean-am: clean-binPROGRAMS clean-checkPROGRAMS clean-generic \ + clean-libLTLIBRARIES clean-libtool clean-noinstLTLIBRARIES \ + clean-noinstPROGRAMS mostlyclean-am + +distclean: distclean-am + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf ctaocrypt/benchmark/$(DEPDIR) ctaocrypt/src/$(DEPDIR) ctaocrypt/test/$(DEPDIR) examples/client/$(DEPDIR) examples/echoclient/$(DEPDIR) examples/echoserver/$(DEPDIR) examples/server/$(DEPDIR) src/$(DEPDIR) sslSniffer/sslSnifferTest/$(DEPDIR) tests/$(DEPDIR) testsuite/$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-hdr distclean-libtool distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: install-certsDATA install-docDATA install-exampleDATA \ + install-includeHEADERS install-nobase_includeHEADERS + +install-dvi: install-dvi-am + +install-exec-am: install-binPROGRAMS install-libLTLIBRARIES + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -rf ctaocrypt/benchmark/$(DEPDIR) ctaocrypt/src/$(DEPDIR) ctaocrypt/test/$(DEPDIR) examples/client/$(DEPDIR) examples/echoclient/$(DEPDIR) examples/echoserver/$(DEPDIR) examples/server/$(DEPDIR) src/$(DEPDIR) sslSniffer/sslSnifferTest/$(DEPDIR) tests/$(DEPDIR) testsuite/$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-binPROGRAMS uninstall-certsDATA \ + uninstall-docDATA uninstall-exampleDATA \ + uninstall-includeHEADERS uninstall-libLTLIBRARIES \ + uninstall-nobase_includeHEADERS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am am--refresh check check-TESTS check-am \ + clean clean-binPROGRAMS clean-checkPROGRAMS clean-generic \ + clean-libLTLIBRARIES clean-libtool clean-noinstLTLIBRARIES \ + clean-noinstPROGRAMS ctags dist dist-all dist-bzip2 dist-gzip \ + dist-shar dist-tarZ dist-zip distcheck distclean \ + distclean-compile distclean-generic distclean-hdr \ + distclean-libtool distclean-tags distcleancheck distdir \ + distuninstallcheck dvi dvi-am html html-am info info-am \ + install install-am install-binPROGRAMS install-certsDATA \ + install-data install-data-am install-docDATA install-dvi \ + install-dvi-am install-exampleDATA install-exec \ + install-exec-am install-html install-html-am \ + install-includeHEADERS install-info install-info-am \ + install-libLTLIBRARIES install-man \ + install-nobase_includeHEADERS install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-binPROGRAMS \ + uninstall-certsDATA uninstall-docDATA uninstall-exampleDATA \ + uninstall-includeHEADERS uninstall-libLTLIBRARIES \ + uninstall-nobase_includeHEADERS + +test: check + +# !!!! first line of rule has to start with a hard (real) tab, not spaces +egs: + $(MAKE) examples/client/client; \ + $(MAKE) examples/echoclient/echoclient;\ + $(MAKE) examples/server/server; \ + $(MAKE) examples/echoserver/echoserver; + +ctc: + $(MAKE) ctaocrypt/test/testctaocrypt; \ + $(MAKE) ctaocrypt/benchmark/benchmark; + +merge-clean: + @find ./ | $(GREP) \.gcda | xargs rm -f + @find ./ | $(GREP) \.gcno | xargs rm -f + @find ./ | $(GREP) \.gz | xargs rm -f + @find ./ | $(GREP) \.orig | xargs rm -f + @find ./ | $(GREP) \.rej | xargs rm -f + @find ./ | $(GREP) \.rpm | xargs rm -f + @find ./ | $(GREP) \.THIS | xargs rm -f + @find ./ | $(GREP) \.OTHER | xargs rm -f + @find ./ | $(GREP) \.BASE | xargs rm -f + @find ./ | $(GREP) \~$$ | xargs rm -f +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/CFV1_BDM_P&E_Multilink_CyclonePro.hwc b/FreeRTOS-Plus/CyaSSL/NEWS similarity index 100% rename from Demo/ColdFire_MCF51CN128_CodeWarrior/CFV1_BDM_P&E_Multilink_CyclonePro.hwc rename to FreeRTOS-Plus/CyaSSL/NEWS diff --git a/FreeRTOS-Plus/CyaSSL/README b/FreeRTOS-Plus/CyaSSL/README new file mode 100644 index 000000000..20fe9e40f --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/README @@ -0,0 +1,704 @@ +*** Notes, Please read *** + +Note 1) +CyaSSL now needs all examples and tests to be run from the CyaSSL home +directory. This is because it finds certs and keys from ./certs/. Trying to +maintain the ability to run each program from its own directory, the testsuite +directory, the main directory (for make check/test), and for the various +different project layouts (with or without config) was becoming harder and +harder. Now to run testsuite just do: + +./testsuite/testsuite + +or + +make test (when using autoconf) + +On *nix or Windows the examples and testsuite will check to see if the current +directory is the source directory and if so, attempt to change to the CyaSSL +home directory. This should work in most setup cases, if not, just follow the +beginning of the note and specify the full path. + + +Note 2) +CyaSSL takes a different approach to certificate verification than OpenSSL does. +The default policy for the client is to verify the server, this means that if +you don't load CAs to verify the server you'll get a connect error, unable to +verify (-155). It you want to mimic OpenSSL behavior of having SSL_connect +succeed even if verifying the server fails and reducing security you can do +this by calling: + +SSL_CTX_set_verify(ctx, SSL_VERIFY_NONE, 0); + +before calling SSL_new(); Though it's not recommended. + +*** end Note *** + +CyaSSL Release 2.2.0 (5/18/2012) + +Release 2.2.0 CyaSSL has bug fixes and a few new features including: +- Initial CRL support (--enable-crl) +- Initial OCSP support (--enable-ocsp) +- Add static ECDH suites +- SHA-384 support +- ECC client certificate support +- Add medium session cache size (1055 sessions) +- Updated unit tests +- Protection against mutex reinitialization + + +The CyaSSL manual is available at: +http://www.yassl.com/documentation/CyaSSL-Manual.pdf. For build instructions +and comments about the new features please check the manual. + + + +***************CyaSSL Release 2.0.8 (2/24/2012) + +Release 2.0.8 CyaSSL has bug fixes and a few new features including: +- A fix for malicious certificates pointed out by Remi Gacogne (thanks) + resulting in NULL pointer use. +- Respond to renegotiation attempt with no_renegoatation alert +- Add basic path support for load_verify_locations() +- Add set Temp EC-DHE key size +- Extra checks on rsa test when porting into + + +The CyaSSL manual is available at: +http://www.yassl.com/documentation/CyaSSL-Manual.pdf. For build instructions +and comments about the new features please check the manual. + + + +************* CyaSSL Release 2.0.6 (1/27/2012) + +Release 2.0.6 CyaSSL has bug fixes and a few new features including: +- Fixes for CA basis constraint check +- CTX reference counting +- Initial unit test additions +- Lean and Mean Windows fix +- ECC benchmarking +- SSMTP build support +- Ability to group handshake messages with set_group_messages(ctx/ssl) +- CA cache addition callback +- Export Base64_Encode for general use + +The CyaSSL manual is available at: +http://www.yassl.com/documentation/CyaSSL-Manual.pdf. For build instructions +and comments about the new features please check the manual. + + + +************* CyaSSL Release 2.0.2 (12/05/2011) + +Release 2.0.2 CyaSSL has bug fixes and a few new features including: +- CTaoCrypt Runtime library detection settings when directly using the crypto + library +- Default certificate generation now uses SHAwRSA and adds SHA256wRSA generation +- All test certificates now use 2048bit and SHA-1 for better modern browser + support +- Direct AES block access and AES-CTR (counter) mode +- Microchip pic32 support + +The CyaSSL manual is available at: +http://www.yassl.com/documentation/CyaSSL-Manual.pdf. For build instructions +and comments about the new features please check the manual. + + + +************* CyaSSL Release 2.0.0rc3 (9/28/2011) + +Release 2.0.0rc3 for CyaSSL has bug fixes and a few new features including: +- updated autoconf support +- better make install and uninstall (uses system directories) +- make test / make check +- CyaSSL headers now in +- CTaocrypt headers now in +- OpenSSL compatibility headers now in +- examples and tests all run from home diretory so can use certs in ./certs + (see note 1) + +So previous applications that used the OpenSSL compatibility header + now need to include instead, no other +changes are required. + +Special Thanks to Brian Aker for his autoconf, install, and header patches. + +The CyaSSL manual is available at: +http://www.yassl.com/documentation/CyaSSL-Manual.pdf. For build instructions +and comments about the new features please check the manual. + +************CyaSSL Release 2.0.0rc2 (6/6/2011) + +Release 2.0.0rc2 for CyaSSL has bug fixes and a few new features including: +- bug fixes (Alerts, DTLS with DHE) +- FreeRTOS support +- lwIP support +- Wshadow warnings removed +- asn public header +- CTaoCrypt public headers now all have ctc_ prefix (the manual is still being + updated to relfect this change) +- and more. + +This is the 2nd and perhaps final release candidate for version 2. +Please send any comments or questions to support@yassl.com. + +The CyaSSL manual is available at: +http://www.yassl.com/documentation/CyaSSL-Manual.pdf. For build instructions +and comments about the new features please check the manual. + +***********CyaSSL Release 2.0.0rc1 (5/2/2011) + +Release 2.0.0rc1 for CyaSSL has many new features including: +- bug fixes +- SHA-256 cipher suites +- Root Certificate Verification (instead of needing all certs in the chain) +- PKCS #8 private key encryption (supports PKCS #5 v1-v2 and PKCS #12) +- Serial number retrieval for x509 +- PBKDF2 and PKCS #12 PBKDF +- UID parsing for x509 +- SHA-256 certificate signatures +- Client and server can send chains (SSL_CTX_use_certificate_chain_file) +- CA loading can now parse multiple certificates per file +- Dynamic memory runtime hooks +- Runtime hooks for logging +- EDH on server side +- More informative error codes +- More informative logging messages +- Version downgrade more robust (use SSL_v23*) +- Shared build only by default through ./configure +- Compiler visibility is now used, internal functions not polluting namespace +- Single Makefile, no recursion, for faster and simpler building +- Turn on all warnings possible build option, warning fixes +- and more. + +Because of all the new features and the multiple OS, compiler, feature-set +options that CyaSSL allows, there may be some configuration fixes needed. +Please send any comments or questions to support@yassl.com. + +The CyaSSL manual is available at: +http://www.yassl.com/documentation/CyaSSL-Manual.pdf. For build instructions +and comments about the new features please check the manual. + +****************** CyaSSL Release 1.9.0 (3/2/2011) + +Release 1.9.0 for CyaSSL adds bug fixes, improved TLSv1.2 through testing and +better hash/sig algo ids, --enable-webServer for the yaSSL embedded web server, +improper AES key setup detection, user cert verify callback improvements, and +more. + +The CyaSSL manual offering is included in the doc/ directory. For build +instructions and comments about the new features please check the manual. + +Please send any comments or questions to support@yassl.com. + +****************** CyaSSL Release 1.8.0 (12/23/2010) + +Release 1.8.0 for CyaSSL adds bug fixes, x509 v3 CA signed certificate +generation, a C standard library abstraction layer, lower memory use, increased +portability through the os_settings.h file, and the ability to use NTRU cipher +suites when used in conjunction with an NTRU license and library. + +The initial CyaSSL manual offering is included in the doc/ directory. For +build instructions and comments about the new features please check the manual. + +Please send any comments or questions to support@yassl.com. + +Happy Holidays. + + +********************* CyaSSL Release 1.6.5 (9/9/2010) + +Release 1.6.5 for CyaSSL adds bug fixes and x509 v3 self signed certificate +generation. + +For general build instructions see doc/Building_CyaSSL.pdf. + +To enable certificate generation support add this option to ./configure +./configure --enable-certgen + +An example is included in ctaocrypt/test/test.c and documentation is provided +in doc/CyaSSL_Extensions_Reference.pdf item 11. + +********************** CyaSSL Release 1.6.0 (8/27/2010) + +Release 1.6.0 for CyaSSL adds bug fixes, RIPEMD-160, SHA-512, and RSA key +generation. + +For general build instructions see doc/Building_CyaSSL.pdf. + +To add RIPEMD-160 support add this option to ./configure +./configure --enable-ripemd + +To add SHA-512 support add this option to ./configure +./configure --enable-sha512 + +To add RSA key generation support add this option to ./configure +./configure --enable-keygen + +Please see ctaocrypt/test/test.c for examples and usage. + +For Windows, RIPEMD-160 and SHA-512 are enabled by default but key generation is +off by default. To turn key generation on add the define CYASSL_KEY_GEN to +CyaSSL. + + +************* CyaSSL Release 1.5.6 (7/28/2010) + +Release 1.5.6 for CyaSSL adds bug fixes, compatibility for our JSSE provider, +and a fix for GCC builds on some systems. + +For general build instructions see doc/Building_CyaSSL.pdf. + +To add AES-NI support add this option to ./configure +./configure --enable-aesni + +You'll need GCC 4.4.3 or later to make use of the assembly. + +************** CyaSSL Release 1.5.4 (7/7/2010) + +Release 1.5.4 for CyaSSL adds bug fixes, support for AES-NI, SHA1 speed +improvements from loop unrolling, and support for the Mongoose Web Server. + +For general build instructions see doc/Building_CyaSSL.pdf. + +To add AES-NI support add this option to ./configure +./configure --enable-aesni + +You'll need GCC 4.4.3 or later to make use of the assembly. + +*************** CyaSSL Release 1.5.0 (5/11/2010) + +Release 1.5.0 for CyaSSL adds bug fixes, GoAhead WebServer support, sniffer +support, and initial swig interface support. + +For general build instructions see doc/Building_CyaSSL.pdf. + +To add support for GoAhead WebServer either --enable-opensslExtra or if you +don't want all the features of opensslExtra you can just define GOAHEAD_WS +instead. GOAHEAD_WS can be added to ./configure with CFLAGS=-DGOAHEAD_WS or +you can define it yourself. + +To look at the sniffer support please see the sniffertest app in +sslSniffer/sslSnifferTest. Build with --enable-sniffer on *nix or use the +vcproj files on windows. You'll need to have pcap installed on *nix and +WinPcap on windows. + +A swig interface file is now located in the swig directory for using Python, +Java, Perl, and others with CyaSSL. This is initial support and experimental, +please send questions or comments to support@yassl.com. + +When doing load testing with CyaSSL, on the echoserver example say, the client +machine may run out of tcp ephemeral ports, they will end up in the TIME_WAIT +queue, and can't be reused by default. There are generally two ways to fix +this. 1) Reduce the length sockets remain on the TIME_WAIT queue or 2) Allow +items on the TIME_WAIT queue to be reused. + + +To reduce the TIME_WAIT length in OS X to 3 seconds (3000 milliseconds) + +sudo sysctl -w net.inet.tcp.msl=3000 + +In Linux + +sudo sysctl -w net.ipv4.tcp_tw_reuse=1 + +allows reuse of sockets in TIME_WAIT + +sudo sysctl -w net.ipv4.tcp_tw_recycle=1 + +works but seems to remove sockets from TIME_WAIT entirely? + +sudo sysctl -w net.ipv4.tcp_fin_timeout=1 + +doen't control TIME_WAIT, it controls FIN_WAIT(2) contrary to some posts + + +******************** CyaSSL Release 1.4.0 (2/18/2010) + +Release 1.3.0 for CyaSSL adds bug fixes, better multi TLS/SSL version support +through SSLv23_server_method(), and improved documentation in the doc/ folder. + +For general build instructions doc/Building_CyaSSL.pdf. + +******************** CyaSSL Release 1.3.0 (1/21/2010) + +Release 1.3.0 for CyaSSL adds bug fixes, a potential security problem fix, +better porting support, removal of assert()s, and a complete THREADX port. + +For general build instructions see rc1 below. + +******************** CyaSSL Release 1.2.0 (11/2/2009) + +Release 1.2.0 for CyaSSL adds bug fixes and session negotiation if first use is +read or write. + +For general build instructions see rc1 below. + +******************** CyaSSL Release 1.1.0 (9/2/2009) + +Release 1.1.0 for CyaSSL adds bug fixes, a check against malicious session +cache use, support for lighttpd, and TLS 1.2. + +To get TLS 1.2 support please use the client and server functions: + +SSL_METHOD *TLSv1_2_server_method(void); +SSL_METHOD *TLSv1_2_client_method(void); + +CyaSSL was tested against lighttpd 1.4.23. To build CyaSSL for use with +lighttpd use the following commands from the CyaSSL install dir : + +./configure --disable-shared --enable-opensslExtra --enable-fastmath --without-zlib + +make +make openssl-links + +Then to build lighttpd with CyaSSL use the following commands from the +lighttpd install dir: + +./configure --with-openssl --with-openssl-includes=/include --with-openssl-libs=/lib LDFLAGS=-lm + +make + +On some systems you may get a linker error about a duplicate symbol for +MD5_Init or other MD5 calls. This seems to be caused by the lighttpd src file +md5.c, which defines MD5_Init(), and is included in liblightcomp_la-md5.o. +When liblightcomp is linked with the SSL_LIBs the linker may complain about +the duplicate symbol. This can be fixed by editing the lighttpd src file md5.c +and adding this line to the beginning of the file: + +#if 0 + +and this line to the end of the file + +#endif + +Then from the lighttpd src dir do a: + +make clean +make + + +If you get link errors about undefined symbols more than likely the actual +OpenSSL libraries are found by the linker before the CyaSSL openssl-links that +point to the CyaSSL library, causing the linker confusion. This can be fixed +by editing the Makefile in the lighttpd src directory and changing the line: + +SSL_LIB = -lssl -lcrypto + +to + +SSL_LIB = -lcyassl + +Then from the lighttpd src dir do a: + +make clean +make + +This should remove any confusion the linker may be having with missing symbols. + +For any questions or concerns please contact support@yassl.com . + +For general build instructions see rc1 below. + +******************CyaSSL Release 1.0.6 (8/03/2009) + +Release 1.0.6 for CyaSSL adds bug fixes, an improved session cache, and faster +math with a huge code option. + +The session cache now defaults to a client mode, also good for embedded servers. +For servers not under heavy load (less than 200 new sessions per minute), define +BIG_SESSION_CACHE. If the server will be under heavy load, define +HUGE_SESSION_CACHE. + +There is now a fasthugemath option for configure. This enables fastmath plus +even faster math by greatly increasing the code size of the math library. Use +the benchmark utility to compare public key operations. + + +For general build instructions see rc1 below. + +******************CyaSSL Release 1.0.3 (5/10/2009) + +Release 1.0.3 for CyaSSL adds bug fixes and add increased support for OpenSSL +compatibility when building other applications. + +Release 1.0.3 includes an alpha release of DTLS for both client and servers. +This is only for testing purposes at this time. Rebroadcast and reordering +aren't fully implemented at this time but will be for the next release. + +For general build instructions see rc1 below. + +******************CyaSSL Release 1.0.2 (4/3/2009) + +Release 1.0.2 for CyaSSL adds bug fixes for a couple I/O issues. Some systems +will send a SIGPIPE on socket recv() at any time and this should be handled by +the application by turning off SIGPIPE through setsockopt() or returning from +the handler. + +Release 1.0.2 includes an alpha release of DTLS for both client and servers. +This is only for testing purposes at this time. Rebroadcast and reordering +aren't fully implemented at this time but will be for the next release. + +For general build instructions see rc1 below. + +*****************CyaSSL Release Candidiate 3 rc3-1.0.0 (2/25/2009) + + +Release Candidate 3 for CyaSSL 1.0.0 adds bug fixes and adds a project file for +iPhone development with Xcode. cyassl-iphone.xcodeproj is located in the root +directory. This release also includes a fix for supporting other +implementations that bundle multiple messages at the record layer, this was +lost when cyassl i/o was re-implemented but is now fixed. + +For general build instructions see rc1 below. + +*****************CyaSSL Release Candidiate 2 rc2-1.0.0 (1/21/2009) + + +Release Candidate 2 for CyaSSL 1.0.0 adds bug fixes and adds two new stream +ciphers along with their respective cipher suites. CyaSSL adds support for +HC-128 and RABBIT stream ciphers. The new suites are: + +TLS_RSA_WITH_HC_128_CBC_SHA +TLS_RSA_WITH_RABBIT_CBC_SHA + +And the corresponding cipher names are + +HC128-SHA +RABBIT-SHA + +CyaSSL also adds support for building with devkitPro for PPC by changing the +library proper to use libogc. The examples haven't been changed yet but if +there's interest they can be. Here's an example ./configure to build CyaSSL +for devkitPro: + +./configure --disable-shared CC=/pathTo/devkitpro/devkitPPC/bin/powerpc-gekko-gcc --host=ppc --without-zlib --enable-singleThreaded RANLIB=/pathTo/devkitpro/devkitPPC/bin/powerpc-gekko-ranlib CFLAGS="-DDEVKITPRO -DGEKKO" + +For linking purposes you'll need + +LDFLAGS="-g -mrvl -mcpu=750 -meabi -mhard-float -Wl,-Map,$(notdir $@).map" + +For general build instructions see rc1 below. + + +********************CyaSSL Release Candidiate 1 rc1-1.0.0 (12/17/2008) + + +Release Candidate 1 for CyaSSL 1.0.0 contains major internal changes. Several +areas have optimization improvements, less dynamic memory use, and the I/O +strategy has been refactored to allow alternate I/O handling or Library use. +Many thanks to Thierry Fournier for providing these ideas and most of the work. + +Because of these changes, this release is only a candidate since some problems +are probably inevitable on some platform with some I/O use. Please report any +problems and we'll try to resolve them as soon as possible. You can contact us +at support@yassl.com or todd@yassl.com. + +Using TomsFastMath by passing --enable-fastmath to ./configure now uses assembly +on some platforms. This is new so please report any problems as every compiler, +mode, OS combination hasn't been tested. On ia32 all of the registers need to +be available so be sure to pass these options to CFLAGS: + +CFLAGS="-O3 -fomit-frame-pointer" + +OS X will also need -mdynamic-no-pic added to CFLAGS + +Also if you're building in shared mode for ia32 you'll need to pass options to +LDFLAGS as well on OS X: + +LDFLAGS=-Wl,-read_only_relocs,warning + +This gives warnings for some symbols but seems to work. + + +--To build on Linux, Solaris, *BSD, Mac OS X, or Cygwin: + + ./configure + make + + from the ./testsuite/ directory run ./testsuite + +to make a debug build: + + ./configure --enable-debug --disable-shared + make + + + +--To build on Win32 + +Choose (Re)Build All from the project workspace + +Run the testsuite program + + + + + +*************************CyaSSL version 0.9.9 (7/25/2008) + +This release of CyaSSL adds bug fixes, Pre-Shared Keys, over-rideable memory +handling, and optionally TomsFastMath. Thanks to Moisés Guimarães for the +work on TomsFastMath. + +To optionally use TomsFastMath pass --enable-fastmath to ./configure +Or define USE_FAST_MATH in each project from CyaSSL for MSVC. + +Please use the benchmark routine before and after to see the performance +difference, on some platforms the gains will be little but RSA encryption +always seems to be faster. On x86-64 machines with GCC the normal math library +may outperform the fast one when using CFLAGS=-m64 because TomsFastMath can't +yet use -m64 because of GCCs inability to do 128bit division. + + **** UPDATE GCC 4.2.1 can now do 128bit division *** + +See notes below (0.2.0) for complete build instructions. + + +****************CyaSSL version 0.9.8 (5/7/2008) + +This release of CyaSSL adds bug fixes, client side Diffie-Hellman, and better +socket handling. + +See notes below (0.2.0) for complete build instructions. + + +****************CyaSSL version 0.9.6 (1/31/2008) + +This release of CyaSSL adds bug fixes, increased session management, and a fix +for gnutls. + +See notes below (0.2.0) for complete build instructions. + + +****************CyaSSL version 0.9.0 (10/15/2007) + +This release of CyaSSL adds bug fixes, MSVC 2005 support, GCC 4.2 support, +IPV6 support and test, and new test certificates. + +See notes below (0.2.0) for complete build instructions. + + +****************CyaSSL version 0.8.0 (1/10/2007) + +This release of CyaSSL adds increased socket support, for non-blocking writes, +connects, and interrupted system calls. + +See notes below (0.2.0) for complete build instructions. + + +****************CyaSSL version 0.6.3 (10/30/2006) + +This release of CyaSSL adds debug logging to stderr to aid in the debugging of +CyaSSL on systems that may not provide the best support. + +If CyaSSL is built with debugging support then you need to call +CyaSSL_Debugging_ON() to turn logging on. + +On Unix use ./configure --enable-debug + +On Windows define DEBUG_CYASSL when building CyaSSL + + +To turn logging back off call CyaSSL_Debugging_OFF() + +See notes below (0.2.0) for complete build instructions. + + +*****************CyaSSL version 0.6.2 (10/29/2006) + +This release of CyaSSL adds TLS 1.1. + +Note that CyaSSL has certificate verification on by default, unlike OpenSSL. +To emulate OpenSSL behavior, you must call SSL_CTX_set_verify() with +SSL_VERIFY_NONE. In order to have full security you should never do this, +provide CyaSSL with the proper certificates to eliminate impostors and call +CyaSSL_check_domain_name() to prevent man in the middle attacks. + +See notes below (0.2.0) for build instructions. + +*****************CyaSSL version 0.6.0 (10/25/2006) + +This release of CyaSSL adds more SSL functions, better autoconf, nonblocking +I/O for accept, connect, and read. There is now an --enable-small configure +option that turns off TLS, AES, DES3, HMAC, and ERROR_STRINGS, see configure.in +for the defines. Note that TLS requires HMAC and AES requires TLS. + +See notes below (0.2.0) for build instructions. + + +*****************CyaSSL version 0.5.5 (09/27/2006) + +This mini release of CyaSSL adds better input processing through buffered input +and big message support. Added SSL_pending() and some sanity checks on user +settings. + +See notes below (0.2.0) for build instructions. + + +*****************CyaSSL version 0.5.0 (03/27/2006) + +This release of CyaSSL adds AES support and minor bug fixes. + +See notes below (0.2.0) for build instructions. + + +*****************CyaSSL version 0.4.0 (03/15/2006) + +This release of CyaSSL adds TLSv1 client/server support and libtool. + +See notes below for build instructions. + + +*****************CyaSSL version 0.3.0 (02/26/2006) + +This release of CyaSSL adds SSLv3 server support and session resumption. + +See notes below for build instructions. + + +*****************CyaSSL version 0.2.0 (02/19/2006) + + +This is the first release of CyaSSL and its crypt brother, CTaoCrypt. CyaSSL +is written in ANSI C with the idea of a small code size, footprint, and memory +usage in mind. CTaoCrypt can be as small as 32K, and the current client +version of CyaSSL can be as small as 12K. + + +The first release of CTaoCrypt supports MD5, SHA-1, 3DES, ARC4, Big Integer +Support, RSA, ASN parsing, and basic x509 (en/de)coding. + +The first release of CyaSSL supports normal client RSA mode SSLv3 connections +with support for SHA-1 and MD5 digests. Ciphers include 3DES and RC4. + + +--To build on Linux, Solaris, *BSD, Mac OS X, or Cygwin: + + ./configure + make + + from the ./testsuite/ directory run ./testsuite + +to make a debug build: + + ./configure --enable-debug --disable-shared + make + + + +--To build on Win32 + +Choose (Re)Build All from the project workspace + +Run the testsuite program + + + +*** The next release of CyaSSL will support a server and more OpenSSL +compatibility functions. + + +Please send questions or comments to todd@yassl.com + diff --git a/FreeRTOS-Plus/CyaSSL/aclocal.m4 b/FreeRTOS-Plus/CyaSSL/aclocal.m4 new file mode 100644 index 000000000..ee7bb048f --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/aclocal.m4 @@ -0,0 +1,944 @@ +# generated automatically by aclocal 1.10 -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +m4_if(m4_PACKAGE_VERSION, [2.61],, +[m4_fatal([this file was generated for autoconf 2.61. +You have another version of autoconf. If you want to use that, +you should regenerate the build system entirely.], [63])]) + +# Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.10' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.10], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. +# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +[AM_AUTOMAKE_VERSION([1.10])dnl +_AM_AUTOCONF_VERSION(m4_PACKAGE_VERSION)]) + +# Figure out how to run the assembler. -*- Autoconf -*- + +# Copyright (C) 2001, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 5 + +# AM_PROG_AS +# ---------- +AC_DEFUN([AM_PROG_AS], +[# By default we simply use the C compiler to build assembly code. +AC_REQUIRE([AC_PROG_CC]) +test "${CCAS+set}" = set || CCAS=$CC +test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS +AC_ARG_VAR([CCAS], [assembler compiler command (defaults to CC)]) +AC_ARG_VAR([CCASFLAGS], [assembler compiler flags (defaults to CFLAGS)]) +_AM_IF_OPTION([no-dependencies],, [_AM_DEPENDENCIES([CCAS])])dnl +]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to +# `$srcdir', `$srcdir/..', or `$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is `.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[dnl Rely on autoconf to set up CDPATH properly. +AC_PREREQ([2.50])dnl +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 8 + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ(2.52)dnl + ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 9 + +# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "GCJ", or "OBJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +ifelse([$1], CC, [depcc="$CC" am_compiler_list=], + [$1], CXX, [depcc="$CXX" am_compiler_list=], + [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], UPC, [depcc="$UPC" am_compiler_list=], + [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + case $depmode in + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + none) break ;; + esac + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. + if depmode=$depmode \ + source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE(dependency-tracking, +[ --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +#serial 3 + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[for mf in $CONFIG_FILES; do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed 10q "$mf" | grep '^#.*generated by automake' > /dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done +done +])# _AM_OUTPUT_DEPENDENCY_COMMANDS + + +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking +# is enabled. FIXME. This creates each `.P' file that we will +# need in order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 12 + +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.60])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) + AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) +AM_MISSING_PROG(AUTOCONF, autoconf) +AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) +AM_MISSING_PROG(AUTOHEADER, autoheader) +AM_MISSING_PROG(MAKEINFO, makeinfo) +AM_PROG_INSTALL_SH +AM_PROG_INSTALL_STRIP +AC_REQUIRE([AM_PROG_MKDIR_P])dnl +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES(CC)], + [define([AC_PROG_CC], + defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES(CXX)], + [define([AC_PROG_CXX], + defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES(OBJC)], + [define([AC_PROG_OBJC], + defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl +]) +]) + + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $1 | $1:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} +AC_SUBST(install_sh)]) + +# Copyright (C) 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 3 + +# AM_MAKE_INCLUDE() +# ----------------- +# Check to see how make treats includes. +AC_DEFUN([AM_MAKE_INCLUDE], +[am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo done +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# We grep out `Entering directory' and `Leaving directory' +# messages which can occur if `w' ends up in MAKEFLAGS. +# In particular we don't look at `^make:' because GNU make might +# be invoked under some other name (usually "gmake"), in which +# case it prints its new name instead of `make'. +if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then + am__include=include + am__quote= + _am_result=GNU +fi +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then + am__include=.include + am__quote="\"" + _am_result=BSD + fi +fi +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) +rm -f confinc confmf +]) + +# Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 5 + +# AM_PROG_CC_C_O +# -------------- +# Like AC_PROG_CC_C_O, but changed for automake. +AC_DEFUN([AM_PROG_CC_C_O], +[AC_REQUIRE([AC_PROG_CC_C_O])dnl +AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([compile])dnl +# FIXME: we rely on the cache variable name because +# there is no other way. +set dummy $CC +ac_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']` +if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" != yes"; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +dnl Make sure AC_PROG_CC is never called again, or it will override our +dnl setting of CC. +m4_define([AC_PROG_CC], + [m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])]) +]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 5 + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it supports --run. +# If it does, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + AC_MSG_WARN([`missing' script is too old or missing]) +fi +]) + +# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_MKDIR_P +# --------------- +# Check for `mkdir -p'. +AC_DEFUN([AM_PROG_MKDIR_P], +[AC_PREREQ([2.60])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, +dnl while keeping a definition of mkdir_p for backward compatibility. +dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. +dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of +dnl Makefile.ins that do not define MKDIR_P, so we do our own +dnl adjustment using top_builddir (which is defined more often than +dnl MKDIR_P). +AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl +case $mkdir_p in + [[\\/$]]* | ?:[[\\/]]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac +]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 3 + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# ------------------------------ +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) + +# _AM_SET_OPTIONS(OPTIONS) +# ---------------------------------- +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_RUN_LOG(COMMAND) +# ------------------- +# Run COMMAND, save the exit status in ac_status, and log it. +# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) +AC_DEFUN([AM_RUN_LOG], +[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD + ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + (exit $ac_status); }]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 4 + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftest.file +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftest.file` + fi + rm -f conftest.file + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT(yes)]) + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor `install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in `make install-strip', and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be `maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# Copyright (C) 2006 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputing VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) + +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of `v7', `ustar', or `pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. +AM_MISSING_PROG([AMTAR], [tar]) +m4_if([$1], [v7], + [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], + [m4_case([$1], [ustar],, [pax],, + [m4_fatal([Unknown tar format])]) +AC_MSG_CHECKING([how to create a $1 tar archive]) +# Loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' +_am_tools=${am_cv_prog_tar_$1-$_am_tools} +# Do not fold the above two line into one, because Tru64 sh and +# Solaris sh will not grok spaces in the rhs of `-'. +for _am_tool in $_am_tools +do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; + do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi +done +rm -rf conftest.dir + +AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) +AC_MSG_RESULT([$am_cv_prog_tar_$1])]) +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + +m4_include([m4/ax_pthread.m4]) +m4_include([m4/hexversion.m4]) +m4_include([m4/lib_socket_nsl.m4]) +m4_include([m4/libtool.m4]) +m4_include([m4/ltoptions.m4]) +m4_include([m4/ltsugar.m4]) +m4_include([m4/ltversion.m4]) +m4_include([m4/lt~obsolete.m4]) +m4_include([m4/visibility.m4]) diff --git a/FreeRTOS-Plus/CyaSSL/certs/ca-cert.pem b/FreeRTOS-Plus/CyaSSL/certs/ca-cert.pem new file mode 100644 index 000000000..4a9786a50 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/certs/ca-cert.pem @@ -0,0 +1,87 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + e9:d0:a7:5f:79:25:f4:3c + Signature Algorithm: sha1WithRSAEncryption + Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.yassl.com/emailAddress=info@yassl.com + Validity + Not Before: Oct 24 18:18:15 2011 GMT + Not After : Jul 20 18:18:15 2014 GMT + Subject: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.yassl.com/emailAddress=info@yassl.com + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + RSA Public Key: (2048 bit) + Modulus (2048 bit): + 00:bf:0c:ca:2d:14:b2:1e:84:42:5b:cd:38:1f:4a: + f2:4d:75:10:f1:b6:35:9f:df:ca:7d:03:98:d3:ac: + de:03:66:ee:2a:f1:d8:b0:7d:6e:07:54:0b:10:98: + 21:4d:80:cb:12:20:e7:cc:4f:de:45:7d:c9:72:77: + 32:ea:ca:90:bb:69:52:10:03:2f:a8:f3:95:c5:f1: + 8b:62:56:1b:ef:67:6f:a4:10:41:95:ad:0a:9b:e3: + a5:c0:b0:d2:70:76:50:30:5b:a8:e8:08:2c:7c:ed: + a7:a2:7a:8d:38:29:1c:ac:c7:ed:f2:7c:95:b0:95: + 82:7d:49:5c:38:cd:77:25:ef:bd:80:75:53:94:3c: + 3d:ca:63:5b:9f:15:b5:d3:1d:13:2f:19:d1:3c:db: + 76:3a:cc:b8:7d:c9:e5:c2:d7:da:40:6f:d8:21:dc: + 73:1b:42:2d:53:9c:fe:1a:fc:7d:ab:7a:36:3f:98: + de:84:7c:05:67:ce:6a:14:38:87:a9:f1:8c:b5:68: + cb:68:7f:71:20:2b:f5:a0:63:f5:56:2f:a3:26:d2: + b7:6f:b1:5a:17:d7:38:99:08:fe:93:58:6f:fe:c3: + 13:49:08:16:0b:a7:4d:67:00:52:31:67:23:4e:98: + ed:51:45:1d:b9:04:d9:0b:ec:d8:28:b3:4b:bd:ed: + 36:79 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Subject Key Identifier: + 27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5 + X509v3 Authority Key Identifier: + keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5 + DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.yassl.com/emailAddress=info@yassl.com + serial:E9:D0:A7:5F:79:25:F4:3C + + X509v3 Basic Constraints: + CA:TRUE + Signature Algorithm: sha1WithRSAEncryption + 5f:86:14:f4:51:8b:bc:a5:4e:30:da:5e:ac:9a:f8:6c:d9:26: + 4b:93:f9:e3:1c:89:6f:9e:ee:b3:9d:77:3e:89:20:76:a3:e6: + e8:86:15:21:db:e2:33:b2:34:d5:d0:9f:f3:c1:a4:87:92:5c: + f9:d1:ff:30:2f:8e:03:bc:b3:3c:0c:32:a3:90:5f:1a:90:1e: + af:9d:f3:9e:d7:07:02:a9:7d:27:66:63:2f:af:18:d7:ac:18: + 98:8c:83:8f:38:f3:0b:ac:36:10:75:fb:ca:76:13:50:5b:02: + 8f:73:bf:e3:a0:ee:83:52:25:54:ce:26:ce:9c:bd:2f:79:ab: + 1b:60:b8:92:f1:03:c0:fc:3b:08:d9:c0:ad:d5:72:08:25:80: + 61:2d:dc:9f:a7:83:62:07:47:e0:07:4c:4b:07:30:04:a9:87: + 1c:55:7f:07:12:d0:cb:42:5d:cb:cf:66:01:1a:17:ee:f9:0f: + 60:b7:db:6f:68:e5:4e:41:62:6e:d3:6f:60:4f:4b:27:de:cf: + 18:07:f1:13:5d:cb:3f:a9:25:44:da:52:5c:c8:04:e1:56:12: + f5:2a:90:4e:d1:e2:af:01:b5:23:a1:ec:31:da:7b:63:69:c4: + b8:f3:e7:ce:a1:3d:c0:db:6d:f3:b2:d9:46:c8:9f:c3:b8:70: + 5a:1f:7f:ca +-----BEGIN CERTIFICATE----- +MIIEnjCCA4agAwIBAgIJAOnQp195JfQ8MA0GCSqGSIb3DQEBBQUAMIGQMQswCQYD +VQQGEwJVUzEQMA4GA1UECBMHTW9udGFuYTEQMA4GA1UEBxMHQm96ZW1hbjERMA8G +A1UEChMIU2F3dG9vdGgxEzARBgNVBAsTCkNvbnN1bHRpbmcxFjAUBgNVBAMTDXd3 +dy55YXNzbC5jb20xHTAbBgkqhkiG9w0BCQEWDmluZm9AeWFzc2wuY29tMB4XDTEx +MTAyNDE4MTgxNVoXDTE0MDcyMDE4MTgxNVowgZAxCzAJBgNVBAYTAlVTMRAwDgYD +VQQIEwdNb250YW5hMRAwDgYDVQQHEwdCb3plbWFuMREwDwYDVQQKEwhTYXd0b290 +aDETMBEGA1UECxMKQ29uc3VsdGluZzEWMBQGA1UEAxMNd3d3Lnlhc3NsLmNvbTEd +MBsGCSqGSIb3DQEJARYOaW5mb0B5YXNzbC5jb20wggEiMA0GCSqGSIb3DQEBAQUA +A4IBDwAwggEKAoIBAQC/DMotFLIehEJbzTgfSvJNdRDxtjWf38p9A5jTrN4DZu4q +8diwfW4HVAsQmCFNgMsSIOfMT95FfclydzLqypC7aVIQAy+o85XF8YtiVhvvZ2+k +EEGVrQqb46XAsNJwdlAwW6joCCx87aeieo04KRysx+3yfJWwlYJ9SVw4zXcl772A +dVOUPD3KY1ufFbXTHRMvGdE823Y6zLh9yeXC19pAb9gh3HMbQi1TnP4a/H2rejY/ +mN6EfAVnzmoUOIep8Yy1aMtof3EgK/WgY/VWL6Mm0rdvsVoX1ziZCP6TWG/+wxNJ +CBYLp01nAFIxZyNOmO1RRR25BNkL7Ngos0u97TZ5AgMBAAGjgfgwgfUwHQYDVR0O +BBYEFCeOZxF0wyYdP+0zY7Ok2B0w5ejVMIHFBgNVHSMEgb0wgbqAFCeOZxF0wyYd +P+0zY7Ok2B0w5ejVoYGWpIGTMIGQMQswCQYDVQQGEwJVUzEQMA4GA1UECBMHTW9u +dGFuYTEQMA4GA1UEBxMHQm96ZW1hbjERMA8GA1UEChMIU2F3dG9vdGgxEzARBgNV +BAsTCkNvbnN1bHRpbmcxFjAUBgNVBAMTDXd3dy55YXNzbC5jb20xHTAbBgkqhkiG +9w0BCQEWDmluZm9AeWFzc2wuY29tggkA6dCnX3kl9DwwDAYDVR0TBAUwAwEB/zAN +BgkqhkiG9w0BAQUFAAOCAQEAX4YU9FGLvKVOMNperJr4bNkmS5P54xyJb57us513 +PokgdqPm6IYVIdviM7I01dCf88Gkh5Jc+dH/MC+OA7yzPAwyo5BfGpAer53zntcH +Aql9J2ZjL68Y16wYmIyDjzjzC6w2EHX7ynYTUFsCj3O/46Dug1IlVM4mzpy9L3mr +G2C4kvEDwPw7CNnArdVyCCWAYS3cn6eDYgdH4AdMSwcwBKmHHFV/BxLQy0Jdy89m +ARoX7vkPYLfbb2jlTkFibtNvYE9LJ97PGAfxE13LP6klRNpSXMgE4VYS9SqQTtHi +rwG1I6HsMdp7Y2nEuPPnzqE9wNtt87LZRsifw7hwWh9/yg== +-----END CERTIFICATE----- diff --git a/FreeRTOS-Plus/CyaSSL/certs/ca-key.der b/FreeRTOS-Plus/CyaSSL/certs/ca-key.der new file mode 100644 index 0000000000000000000000000000000000000000..14456f3e453ba04c32952d0db72fecdeb153eb3e GIT binary patch literal 1192 zcmV;Z1Xueof&`=j0RRGm0RaHN49YDOvL1v&Tg^BhO7cy05b?G(pWn)T1DMmS-UDXt zD)HE`eQpO-3lNwgO@PZ1Am_|a-bH=Ma(6Q7%8Xw{Njp7uPtM2>z2;Z~ns*NeC7Tr%h)7QZZ*EPMGac zMIE^W*$eF0D6>nw?KXJ=0|5X50)hbmJ#J258iaqHg?!;l2YlexnJV6$`8G5TcMd)X z>QChcCe-#g_umZ<94-c;^eSkaV{+p)<^++EwZXBZRIJy=`$3@Ab#J{3PQS5I=wC@D zm{v!}-s$Q*U;)1<+%dmNUz16PdVyP(OHImLI8V3XveU;Q+B_162jm;vL+t46RAJ}# z?WPMZ_1}Vj#vfrBoTP&}-ywyGZ+EYT6*35-S_>v&`)~}(oH%{FBJS&>s1^YEihv#f zgs4hE_=E#zFC$won`%rvXL$JO;FFoh2=BRNw4JjL0)c@5;dVuUS+>(j-wN*%)(`Nv%PKd&r}(u^^)WTA zw5tsL;n*Cwp*?YEX}_weM=&jFZE z+;mi`ZC+YIG5-IWwx9*wsSs57YtX8L0)c=b(*%k{>rl6RX1|9k<|t0;gW~Bm;qnnj z|DpB#pDpD&f&2jjZ&R&QC$>`VR%;d67!vbzew(y z4#ABO|7Dt;EgFiHTFAhqrG#Og)Fip@sh!Dp3&(I~J-WzL-_kST^?&&%VZK*I-M2*- zB=sZYI1Z5~?&BcX6v&iEcR+VV7@iHzc|TV%RtZUGzLZ!`_Qb2=iR0snzy(z-B*03S G1Sgsk)I)m! literal 0 HcmV?d00001 diff --git a/FreeRTOS-Plus/CyaSSL/certs/ca-key.pem b/FreeRTOS-Plus/CyaSSL/certs/ca-key.pem new file mode 100644 index 000000000..774feba05 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/certs/ca-key.pem @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEAvwzKLRSyHoRCW804H0ryTXUQ8bY1n9/KfQOY06zeA2buKvHY +sH1uB1QLEJghTYDLEiDnzE/eRX3Jcncy6sqQu2lSEAMvqPOVxfGLYlYb72dvpBBB +la0Km+OlwLDScHZQMFuo6AgsfO2nonqNOCkcrMft8nyVsJWCfUlcOM13Je+9gHVT +lDw9ymNbnxW10x0TLxnRPNt2Osy4fcnlwtfaQG/YIdxzG0ItU5z+Gvx9q3o2P5je +hHwFZ85qFDiHqfGMtWjLaH9xICv1oGP1Vi+jJtK3b7FaF9c4mQj+k1hv/sMTSQgW +C6dNZwBSMWcjTpjtUUUduQTZC+zYKLNLve02eQIDAQABAoIBAD1uTmAahH+dhXzh +Swd84NaZKt6d+TY0DncOPgjqT+UGJtT2OPffDQ8cLgai9CponGNy4zXmBJGRtcGx +pFSs18b7QaDWdW+9C06/sVLoX0kmmFZHx97p6jxgAb8o3DG/SV+TSYd6gVuWS03K +XDhPt+Gy08ch2jwShwfkG9xD7OjsVGHn9u2mCy7134J/xh9hGZykgznfIYWJb3ev +hhUyCKJaCyZh+3AMypw4fbwi7uujqBYA+YqAHgCEqEpB+IQDZy8jWy+baybDBzSU +owM7ctWfcuCtzDSrvcfV9SYwhQ8wIzlS/zzLmSFNiKWr7mK5x+C7R4fBac9z8zC+ +zjkEnOUCgYEA4XZFgFm200nfCu8S1g/wt8sqN7+n+LVN9TE1reSjlKHb8ZattQVk +hYP8G1spqr74Jj92fq0c8MvXJrQbBY5Whn4IYiHBhtZHeT63XaTGOtexdCD2UJdB +BFPtPybWb5H6aCbsKtya8efc+3PweUMbIaNZBGNSB8nX5tEbXV6W+lMCgYEA2O1O +ZGFrkQxhAbUPu0RnUx7cB8Qkfp5shCORDOQSBBZNeJjMlj0gTg9Fmrb4s5MNsqIb +KfImecjF0nh+XnPy13Bhu0DOYQX+aR6CKeYUuKHnltAjPwWTAPLhTX7tt5Zs9/Dk +0c8BmE/cdFSqbV5aQTH+/5q2oAXdqRBU+GvQqoMCgYAh0wSKROtQt3xmv4cr5ihO +6oPi6TXh8hFH/6H1/J8t5TqB/AEDb1OtVCe2Uu7lVtETq+GzD3WQCoS0ocCMDNae +RrorPrUx7WO7pNUNj3LN0R4mNeu+G3L9mzm0h7cT9eqDRZOYuo/kSsy0TKh/CLpB +SahJKD1ePcHONwDL+SzdUQKBgQChV58+udavg22DP4/70NyozgMJI7GhG2PKxElW +NSvRLmVglQVVmRE1/dXfRMeliHJfsoJRqHFFkzbPXB9hUQwFgOivxXu6XiLjPHXD +hAVVbdY6LYSJkzPLONqqMQXNzmwt3VXTVwvwpTVqsK4xukOWygDHS+MZEkPTQvpv +6oDA0QKBgQC524kgNCdwYjTqXyViEvOdgb9I7poOwY0Q/2WanS0aipRayMClpYRh +ntQkue+pncl3C8dwZj26yFTf0jPh9X/5J2G+V0Xdt0UXJPUj5DgOkSfu4yDYFMiU +R3dAd0UYng3OeT9XMVYJSWe+lFhP9sSr4onj44rABVUsJMBKlwQnmg== +-----END RSA PRIVATE KEY----- diff --git a/FreeRTOS-Plus/CyaSSL/certs/client-cert.der b/FreeRTOS-Plus/CyaSSL/certs/client-cert.der new file mode 100644 index 0000000000000000000000000000000000000000..a656ff91f3e20281d2ce8fa5154bb4dcfb1291c8 GIT binary patch literal 1180 zcmXqLVwqvk#N4oenTe5!iIbt-t90MQv>Ubtylk9WZ60mkc^Mg5Ss4r(`wY1aIN6v( zS=fY`LW2$YfeL^e4q-O`qSW;KJVQYPevkmWFh@XsQAti>UWy@~0S`!sOPIAXF*w-A zP{cq8#OD^~4k*e`FG|eK&CE+T6f+P3i82fGmY0|7RVEe}=jbKp=NifyNW-1L$tcE` znU|LD0GBq96X!KFG&C?WF|;r;G&PL^a!m}(jSQgN!RO#6MkVAxWn^VwZerwTFlb`r zVrpV!WH`)xQTw0e5+hgZ;1ey{S~VrJ_O8+jVt2o`%xn|8QQw7KnbpS*yUe@N=AC3D#ek45Sjcn zz1pg(;vr*L*u-VRPQ90G9On4Ezu0!)JW!fvq4n2~i@i*rJUln;zI5Gwzv&kQUaa6S zXk4$r?JRP%Bz=ofQ+{vTp$>+VrFDuT-^B0pz*VTEHFjL^0A1qh#22+O}n1aE>Rc4TcAGi zxZ3sB)B^^Mhe7hnERDMj8h12cRkN^h%96&3gDw>`A>}Yo=8zR;VKrc8Wc-huG=TXH zm^2s}WNMrmHRmawzi{JVNdB31BAgcgGiJ=18eAq({mh{3jRtS&@_P@?_FWBC&T`lG z>-|&9w)h7B+PG^hCmD=?m#bgi%DlN+vBZ$uYrU@2=E;3$KF8Zmus`!SRB~cZxE7d9>?p{#_Hf@*Ic3oTUnBRBLyPa|T?+Kkv=sdRNHi{Dy4kmvY;0|O zy>q8B7j5d6ta&Mtx3Hr)BO|* z50VzSf0^v8<((79rT_E!Gq2>f4QsR(zTOg@e%9#8HbL)MMQOZ?yvq9jDeYm)_(YS{Q&^Gkff0S literal 0 HcmV?d00001 diff --git a/FreeRTOS-Plus/CyaSSL/certs/client-cert.pem b/FreeRTOS-Plus/CyaSSL/certs/client-cert.pem new file mode 100644 index 000000000..278b43fe6 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/certs/client-cert.pem @@ -0,0 +1,87 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 87:4a:75:be:91:66:d8:3d + Signature Algorithm: sha1WithRSAEncryption + Issuer: C=US, ST=Oregon, L=Portland, O=yaSSL, OU=Programming, CN=www.yassl.com/emailAddress=info@yassl.com + Validity + Not Before: Oct 24 18:21:55 2011 GMT + Not After : Jul 20 18:21:55 2014 GMT + Subject: C=US, ST=Oregon, L=Portland, O=yaSSL, OU=Programming, CN=www.yassl.com/emailAddress=info@yassl.com + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + RSA Public Key: (2048 bit) + Modulus (2048 bit): + 00:c3:03:d1:2b:fe:39:a4:32:45:3b:53:c8:84:2b: + 2a:7c:74:9a:bd:aa:2a:52:07:47:d6:a6:36:b2:07: + 32:8e:d0:ba:69:7b:c6:c3:44:9e:d4:81:48:fd:2d: + 68:a2:8b:67:bb:a1:75:c8:36:2c:4a:d2:1b:f7:8b: + ba:cf:0d:f9:ef:ec:f1:81:1e:7b:9b:03:47:9a:bf: + 65:cc:7f:65:24:69:a6:e8:14:89:5b:e4:34:f7:c5: + b0:14:93:f5:67:7b:3a:7a:78:e1:01:56:56:91:a6: + 13:42:8d:d2:3c:40:9c:4c:ef:d1:86:df:37:51:1b: + 0c:a1:3b:f5:f1:a3:4a:35:e4:e1:ce:96:df:1b:7e: + bf:4e:97:d0:10:e8:a8:08:30:81:af:20:0b:43:14: + c5:74:67:b4:32:82:6f:8d:86:c2:88:40:99:36:83: + ba:1e:40:72:22:17:d7:52:65:24:73:b0:ce:ef:19: + cd:ae:ff:78:6c:7b:c0:12:03:d4:4e:72:0d:50:6d: + 3b:a3:3b:a3:99:5e:9d:c8:d9:0c:85:b3:d9:8a:d9: + 54:26:db:6d:fa:ac:bb:ff:25:4c:c4:d1:79:f4:71: + d3:86:40:18:13:b0:63:b5:72:4e:30:c4:97:84:86: + 2d:56:2f:d7:15:f7:7f:c0:ae:f5:fc:5b:e5:fb:a1: + ba:d3 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Subject Key Identifier: + 33:D8:45:66:D7:68:87:18:7E:54:0D:70:27:91:C7:26:D7:85:65:C0 + X509v3 Authority Key Identifier: + keyid:33:D8:45:66:D7:68:87:18:7E:54:0D:70:27:91:C7:26:D7:85:65:C0 + DirName:/C=US/ST=Oregon/L=Portland/O=yaSSL/OU=Programming/CN=www.yassl.com/emailAddress=info@yassl.com + serial:87:4A:75:BE:91:66:D8:3D + + X509v3 Basic Constraints: + CA:TRUE + Signature Algorithm: sha1WithRSAEncryption + 1c:7c:42:81:29:9e:21:cf:d0:d8:c1:54:6f:cc:ae:14:09:38: + ff:68:98:9a:95:53:76:18:7b:e6:30:76:ec:28:0d:75:a7:de: + e0:cd:8e:d5:55:23:6a:47:2b:4e:8d:fc:7d:06:a3:d8:0f:ad: + 5e:d6:04:c9:00:33:fb:77:27:d3:b5:03:b3:7b:21:74:31:0b: + 4a:af:2d:1a:b3:93:8e:cc:f3:5f:3d:90:3f:cc:e3:55:19:91: + 7b:78:24:2e:4a:09:bb:18:4e:61:2d:9c:c6:0a:a0:34:91:88: + 70:6b:3b:48:47:bc:79:94:a2:a0:4d:32:47:54:c2:a3:dc:2e: + d2:51:4c:29:39:11:ff:e2:15:5e:58:97:36:f6:e9:06:06:86: + 0e:8d:9d:95:03:72:b2:8b:19:7c:e9:14:6e:a1:88:73:68:58: + 6d:71:5e:c2:d5:d3:13:d2:5f:de:ea:03:be:e2:00:40:e5:ce: + fd:e6:92:31:57:c3:eb:bb:66:ac:cb:2f:1a:fa:e0:62:a2:47: + f4:93:43:2a:4b:6c:5e:0a:2f:f9:e7:e6:4a:63:86:b0:ac:2a: + a1:eb:b4:5b:67:cd:32:e4:b6:11:4b:9a:72:66:0d:a2:4a:76: + 8f:fe:22:bc:83:fd:db:b7:d5:a9:ee:05:c9:b1:71:7e:1b:2b: + e1:e3:af:c0 +-----BEGIN CERTIFICATE----- +MIIEmDCCA4CgAwIBAgIJAIdKdb6RZtg9MA0GCSqGSIb3DQEBBQUAMIGOMQswCQYD +VQQGEwJVUzEPMA0GA1UECBMGT3JlZ29uMREwDwYDVQQHEwhQb3J0bGFuZDEOMAwG +A1UEChMFeWFTU0wxFDASBgNVBAsTC1Byb2dyYW1taW5nMRYwFAYDVQQDEw13d3cu +eWFzc2wuY29tMR0wGwYJKoZIhvcNAQkBFg5pbmZvQHlhc3NsLmNvbTAeFw0xMTEw +MjQxODIxNTVaFw0xNDA3MjAxODIxNTVaMIGOMQswCQYDVQQGEwJVUzEPMA0GA1UE +CBMGT3JlZ29uMREwDwYDVQQHEwhQb3J0bGFuZDEOMAwGA1UEChMFeWFTU0wxFDAS +BgNVBAsTC1Byb2dyYW1taW5nMRYwFAYDVQQDEw13d3cueWFzc2wuY29tMR0wGwYJ +KoZIhvcNAQkBFg5pbmZvQHlhc3NsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEP +ADCCAQoCggEBAMMD0Sv+OaQyRTtTyIQrKnx0mr2qKlIHR9amNrIHMo7Quml7xsNE +ntSBSP0taKKLZ7uhdcg2LErSG/eLus8N+e/s8YEee5sDR5q/Zcx/ZSRppugUiVvk +NPfFsBST9Wd7Onp44QFWVpGmE0KN0jxAnEzv0YbfN1EbDKE79fGjSjXk4c6W3xt+ +v06X0BDoqAgwga8gC0MUxXRntDKCb42GwohAmTaDuh5AciIX11JlJHOwzu8Zza7/ +eGx7wBID1E5yDVBtO6M7o5lencjZDIWz2YrZVCbbbfqsu/8lTMTRefRx04ZAGBOw +Y7VyTjDEl4SGLVYv1xX3f8Cu9fxb5fuhutMCAwEAAaOB9jCB8zAdBgNVHQ4EFgQU +M9hFZtdohxh+VA1wJ5HHJteFZcAwgcMGA1UdIwSBuzCBuIAUM9hFZtdohxh+VA1w +J5HHJteFZcChgZSkgZEwgY4xCzAJBgNVBAYTAlVTMQ8wDQYDVQQIEwZPcmVnb24x +ETAPBgNVBAcTCFBvcnRsYW5kMQ4wDAYDVQQKEwV5YVNTTDEUMBIGA1UECxMLUHJv +Z3JhbW1pbmcxFjAUBgNVBAMTDXd3dy55YXNzbC5jb20xHTAbBgkqhkiG9w0BCQEW +DmluZm9AeWFzc2wuY29tggkAh0p1vpFm2D0wDAYDVR0TBAUwAwEB/zANBgkqhkiG +9w0BAQUFAAOCAQEAHHxCgSmeIc/Q2MFUb8yuFAk4/2iYmpVTdhh75jB27CgNdafe +4M2O1VUjakcrTo38fQaj2A+tXtYEyQAz+3cn07UDs3shdDELSq8tGrOTjszzXz2Q +P8zjVRmRe3gkLkoJuxhOYS2cxgqgNJGIcGs7SEe8eZSioE0yR1TCo9wu0lFMKTkR +/+IVXliXNvbpBgaGDo2dlQNysosZfOkUbqGIc2hYbXFewtXTE9Jf3uoDvuIAQOXO +/eaSMVfD67tmrMsvGvrgYqJH9JNDKktsXgov+efmSmOGsKwqoeu0W2fNMuS2EUua +cmYNokp2j/4ivIP927fVqe4FybFxfhsr4eOvwA== +-----END CERTIFICATE----- diff --git a/FreeRTOS-Plus/CyaSSL/certs/client-ecc-cert.pem b/FreeRTOS-Plus/CyaSSL/certs/client-ecc-cert.pem new file mode 100644 index 000000000..4d0448fc4 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/certs/client-ecc-cert.pem @@ -0,0 +1,54 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + bf:cc:cb:7a:0a:07:42:82 + Signature Algorithm: ecdsa-with-SHA1 + Issuer: C=US, ST=Oregon, L=Salem, O=Client ECC, OU=Fast, CN=www.yassl.com/emailAddress=info@yassl.com + Validity + Not Before: May 1 23:51:33 2012 GMT + Not After : Jan 26 23:51:33 2015 GMT + Subject: C=US, ST=Oregon, L=Salem, O=Client ECC, OU=Fast, CN=www.yassl.com/emailAddress=info@yassl.com + Subject Public Key Info: + Public Key Algorithm: id-ecPublicKey + EC Public Key: + pub: + 04:55:bf:f4:0f:44:50:9a:3d:ce:9b:b7:f0:c5:4d: + f5:70:7b:d4:ec:24:8e:19:80:ec:5a:4c:a2:24:03: + 62:2c:9b:da:ef:a2:35:12:43:84:76:16:c6:56:95: + 06:cc:01:a9:bd:f6:75:1a:42:f7:bd:a9:b2:36:22: + 5f:c7:5d:7f:b4 + ASN1 OID: prime256v1 + X509v3 extensions: + X509v3 Subject Key Identifier: + EB:D4:4B:59:6B:95:61:3F:51:57:B6:04:4D:89:41:88:44:5C:AB:F2 + X509v3 Authority Key Identifier: + keyid:EB:D4:4B:59:6B:95:61:3F:51:57:B6:04:4D:89:41:88:44:5C:AB:F2 + DirName:/C=US/ST=Oregon/L=Salem/O=Client ECC/OU=Fast/CN=www.yassl.com/emailAddress=info@yassl.com + serial:BF:CC:CB:7A:0A:07:42:82 + + X509v3 Basic Constraints: + CA:TRUE + Signature Algorithm: ecdsa-with-SHA1 + 30:44:02:20:26:08:44:95:35:2e:fa:9d:20:01:a6:79:60:ed: + 35:a7:0a:dd:7a:0e:75:c5:80:d2:0b:9f:6a:90:d6:31:76:75: + 02:20:2d:87:a2:bb:d5:e2:42:61:35:19:59:40:1d:fd:71:4f: + 28:65:96:99:e6:85:1b:09:ad:d4:58:71:56:63:0b:c7 +-----BEGIN CERTIFICATE----- +MIIC+jCCAqKgAwIBAgIJAL/My3oKB0KCMAkGByqGSM49BAEwgYkxCzAJBgNVBAYT +AlVTMQ8wDQYDVQQIEwZPcmVnb24xDjAMBgNVBAcTBVNhbGVtMRMwEQYDVQQKEwpD +bGllbnQgRUNDMQ0wCwYDVQQLEwRGYXN0MRYwFAYDVQQDEw13d3cueWFzc2wuY29t +MR0wGwYJKoZIhvcNAQkBFg5pbmZvQHlhc3NsLmNvbTAeFw0xMjA1MDEyMzUxMzNa +Fw0xNTAxMjYyMzUxMzNaMIGJMQswCQYDVQQGEwJVUzEPMA0GA1UECBMGT3JlZ29u +MQ4wDAYDVQQHEwVTYWxlbTETMBEGA1UEChMKQ2xpZW50IEVDQzENMAsGA1UECxME +RmFzdDEWMBQGA1UEAxMNd3d3Lnlhc3NsLmNvbTEdMBsGCSqGSIb3DQEJARYOaW5m +b0B5YXNzbC5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARVv/QPRFCaPc6b +t/DFTfVwe9TsJI4ZgOxaTKIkA2Ism9rvojUSQ4R2FsZWlQbMAam99nUaQve9qbI2 +Il/HXX+0o4HxMIHuMB0GA1UdDgQWBBTr1EtZa5VhP1FXtgRNiUGIRFyr8jCBvgYD +VR0jBIG2MIGzgBTr1EtZa5VhP1FXtgRNiUGIRFyr8qGBj6SBjDCBiTELMAkGA1UE +BhMCVVMxDzANBgNVBAgTBk9yZWdvbjEOMAwGA1UEBxMFU2FsZW0xEzARBgNVBAoT +CkNsaWVudCBFQ0MxDTALBgNVBAsTBEZhc3QxFjAUBgNVBAMTDXd3dy55YXNzbC5j +b20xHTAbBgkqhkiG9w0BCQEWDmluZm9AeWFzc2wuY29tggkAv8zLegoHQoIwDAYD +VR0TBAUwAwEB/zAJBgcqhkjOPQQBA0cAMEQCICYIRJU1LvqdIAGmeWDtNacK3XoO +dcWA0gufapDWMXZ1AiAth6K71eJCYTUZWUAd/XFPKGWWmeaFGwmt1FhxVmMLxw== +-----END CERTIFICATE----- diff --git a/FreeRTOS-Plus/CyaSSL/certs/client-key.der b/FreeRTOS-Plus/CyaSSL/certs/client-key.der new file mode 100644 index 0000000000000000000000000000000000000000..94dc253a2bd214f1c2c9a99c5d7c649e5da5ded9 GIT binary patch literal 1192 zcmV;Z1Xueof&`=j0RRGm0RaHR1JNt~Iixa0J5$JnD=K_+n!TzjQU^!YrZ%z%GLF!? zX?w=QM4r@vNc}BnqKjv{p>@bMEK1TF_lvsE4f*fv@qr$Dn*&Fhzh%sSWh7~)=oE=t zIH zQ{ItG9c}7ad-8Xx*~Zz5tJvWdb z-nWk2K-Hq|;2xp$zL(pEW0n-nmX;qbG(B&l8|4j%w5{vn!ETW!-TtCWIhLpIp) zLTDrqMbuE_7dc4KHH(yO5#Eo=SptE90O};C`DruhaokdUh#@F1N#4407U|4KdWa2_ zSA;rXjg**Jr2>J0 z0M$4f!;i(23`YxZHIl`!jYi0l7?1UU3it1!{(!l)D!R%TuwA7G(36eWoCF-yVveRJ zfdT){iYj9?H9)FufZmBCYFAC3Zmp9}R*(yAopXx}t|vX-PVlP5Yqng$pj6Bem*@U z62lmK^C|OR4t8u=b>u;WX`M3j%_6I?HM&Z&JmuL~wqj3R-sPSO%2To|_nxzB3R`() z>~4`xk|6f{{1)xgb`0X|f3j&4Yj_S?Mr5>Jwmw{U*2|#F+}3bH2kF z0)c@5x|*!YeY|8%B0LWA)=~9`*qOi)AYBhB{afO$*&Nv+R&D%* z&|mEk6&x5L=fpir*U+A7mCqu{1ACt1U;+Fu0)c=L&`Zx7XStscbw`F}t}(*KFsxYy zP}vW)a0d7A)5v0csM>D!AwSc9U+RjhKiMi?^HI{mFgN2Zqje1)O(8VZS8!a3zjEwK zZfMob7<4mEj5lu%QSBoCp)TSq413FxB+{!B0e|*6&KjB_|x{(w0*ST#?

NKo6^CG#lCV}r{|I8)Sq()guZ%{Rkgw9F; z=@NcgG1oKvArp4Y7BJfk{KaCYHMsA$u&lr~_SwlsNcljJ04p1+Y~vck3j>}T!baps zP9k$}!(Y^z)-VT1){Ky=)b{b?NYhwLrn${2zi1x_OJjyFTx-_024(lA+yG~5yThqL SgZsz&$l@M;uK+)j0s#Vkbb);U literal 0 HcmV?d00001 diff --git a/FreeRTOS-Plus/CyaSSL/certs/dh2048.pem b/FreeRTOS-Plus/CyaSSL/certs/dh2048.pem new file mode 100644 index 000000000..1e2b848dc --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/certs/dh2048.pem @@ -0,0 +1,29 @@ +Diffie-Hellman-Parameters: (2048 bit) + prime: + 00:b0:a1:08:06:9c:08:13:ba:59:06:3c:bc:30:d5: + f5:00:c1:4f:44:a7:d6:ef:4a:c6:25:27:1c:e8:d2: + 96:53:0a:5c:91:dd:a2:c2:94:84:bf:7d:b2:44:9f: + 9b:d2:c1:8a:c5:be:72:5c:a7:e7:91:e6:d4:9f:73: + 07:85:5b:66:48:c7:70:fa:b4:ee:02:c9:3d:9a:4a: + da:3d:c1:46:3e:19:69:d1:17:46:07:a3:4d:9f:2b: + 96:17:39:6d:30:8d:2a:f3:94:d3:75:cf:a0:75:e6: + f2:92:1f:1a:70:05:aa:04:83:57:30:fb:da:76:93: + 38:50:e8:27:fd:63:ee:3c:e5:b7:c8:09:ae:6f:50: + 35:8e:84:ce:4a:00:e9:12:7e:5a:31:d7:33:fc:21: + 13:76:cc:16:30:db:0c:fc:c5:62:a7:35:b8:ef:b7: + b0:ac:c0:36:f6:d9:c9:46:48:f9:40:90:00:2b:1b: + aa:6c:e3:1a:c3:0b:03:9e:1b:c2:46:e4:48:4e:22: + 73:6f:c3:5f:d4:9a:d6:30:07:48:d6:8c:90:ab:d4: + f6:f1:e3:48:d3:58:4b:a6:b9:cd:29:bf:68:1f:08: + 4b:63:86:2f:5c:6b:d6:b6:06:65:f7:a6:dc:00:67: + 6b:bb:c3:a9:41:83:fb:c7:fa:c8:e2:1e:7e:af:00: + 3f:93 + generator: 2 (0x2) +-----BEGIN DH PARAMETERS----- +MIIBCAKCAQEAsKEIBpwIE7pZBjy8MNX1AMFPRKfW70rGJScc6NKWUwpckd2iwpSE +v32yRJ+b0sGKxb5yXKfnkebUn3MHhVtmSMdw+rTuAsk9mkraPcFGPhlp0RdGB6NN +nyuWFzltMI0q85TTdc+gdebykh8acAWqBINXMPvadpM4UOgn/WPuPOW3yAmub1A1 +joTOSgDpEn5aMdcz/CETdswWMNsM/MVipzW477ewrMA29tnJRkj5QJAAKxuqbOMa +wwsDnhvCRuRITiJzb8Nf1JrWMAdI1oyQq9T28eNI01hLprnNKb9oHwhLY4YvXGvW +tgZl96bcAGdru8OpQYP7x/rI4h5+rwA/kwIBAg== +-----END DH PARAMETERS----- diff --git a/FreeRTOS-Plus/CyaSSL/certs/dsa2048.der b/FreeRTOS-Plus/CyaSSL/certs/dsa2048.der new file mode 100644 index 0000000000000000000000000000000000000000..0bcb0b44d95d1ce20ee8b9e5feb2718bc9050334 GIT binary patch literal 835 zcmV-J1HAk&f&)JS0RRGm0RaHaj>(|ankO9EQs2kG<_4rbie^dBSu;^-#GGDag~#!$ z)!AaK{h{C+SO1pp44=qEhwEIC&_+TDP--K~iEmZuY7wcZGOIHUQMGwdw5y^e5sl>} zzS!}dP7-gdL{xyOw1H?&L=Lz)^S*-!bfU(3*J^zVh*yJ1+|OQb?r046{{sY&s`m$& z_-9&!BW6cn!$WQZk*p|Y%ka|$$O)IVt^r!=JKK zVF4+smdhYuLLItwOJl(T6#(a@In-)5UX=zp2X_kVpabi8f|~+@0RaG-)J$Zc>(ONG>2zTDS)UuhxX{9=*=4(hB)@o3`Q=<;K?v1)hvI( z2*1o)f{xVGNvfjy=E0rt*_N>X3|ljf2Hl+~sp)`0JJ@=ZA&*w^qO>cC9CZJFk=!4V z6PT~Z2GUHBqP^M{x@E8}Xooy*C5@2BybY;C1IfP6g>TyjdyM$8!buQmV^%lCFw*;R zn&^TDEBWF``PpYf&l<#OS`wpNR}oZ1T=q#Gc6>xDVO5}caw<|+Z&U(ERY%rJ0{s#^C}5g+^i+EsYN@YI&5Kt zzi8Czo5d+eU=aDt)L(`Zq zgV+>j==jx7tl&Gpr&JbRNn|Eeq-$w>x{8C@E@cX$C-0e=2-mfrpaJiG7r%pRF5SR6 zI3sAZc5CIz_k8ZaQsUjMSvo=nMX<-gcLlNxGC)SE+Ie>bao>6Z6#$s-xluPhbrTZ? NkCfBq=>W@OZJIn>m1zI~ literal 0 HcmV?d00001 diff --git a/FreeRTOS-Plus/CyaSSL/certs/ecc-client-key.pem b/FreeRTOS-Plus/CyaSSL/certs/ecc-client-key.pem new file mode 100644 index 000000000..cf9812d80 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/certs/ecc-client-key.pem @@ -0,0 +1,9 @@ +ASN1 OID: prime256v1 +-----BEGIN EC PARAMETERS----- +BggqhkjOPQMBBw== +-----END EC PARAMETERS----- +-----BEGIN EC PRIVATE KEY----- +MHcCAQEEIPjPkmu9HijxqKuhI08ydBiIUK1+x+yS+I+XTa9WiWXHoAoGCCqGSM49 +AwEHoUQDQgAEVb/0D0RQmj3Om7fwxU31cHvU7CSOGYDsWkyiJANiLJva76I1EkOE +dhbGVpUGzAGpvfZ1GkL3vamyNiJfx11/tA== +-----END EC PRIVATE KEY----- diff --git a/FreeRTOS-Plus/CyaSSL/certs/ecc-key.der b/FreeRTOS-Plus/CyaSSL/certs/ecc-key.der new file mode 100644 index 0000000000000000000000000000000000000000..a88d141e08cceb829f2bc756ffcabd7d8e8c0b79 GIT binary patch literal 121 zcmV-<0EYiCcLD(c1RzDWX##VcY=xmXTXN{=$E?HyjZ-xQ`fMoNG>ze?35=i$1_&yK zNX|V20SBQ(13~}x++j1?=lD7UioXq5Cw=Bu@M7n%VF{n#dH7E z&`H>z6M}|P+1?Vmtdn2Tn$2d{^J-gt2k*8Xte5OTYYq|yte~0LSuUiUkhosO8zicV zaCBVhca99~pYLLK5i7(?V7_vpEJ_?zKfK0-IET8tAIkCoP`(>wAZ?Tit?NjR62;PS zd>w4sF`n1! z&MKSghn%ZMjH-w+5s%C)8nDhW+97#uaY{5dr1^qr zgi=7{71}lr>P{GArfc7F#vj38mbyZUZa3KN%uZCxls83hp@3sM8+lO(SGf4c|L$zy zp2Yl&P_1nGeisJ8`^k-BV|mx%KW)jIjOcZ|EmNZ)JYKleHvqxO!Ko;}QV6?uMjjl> zlO{x`AeL3Hd-Y(us)$hY2d44s(8i=JMKcm9bmQvbuU4hx5cGcB1g!@aUM)oPXG3Me ztfL(Bs1V^h=s17t%WE7O-hzR@2wgwGwy~(CoPltsPBMoT9C!}!82;-^H!JDk_xe%B zSh?5+1MR>A7*&gy{;~GZJ^Ew7I2p$P?@gItw7SmY&e>}%c9j47cNj|kW$+4-TstC^ zh0q`vSuUkB1FRcgcrpem4c0 zAaiT4V@o42+&5+viM-(Wpj|CjW#Govn`S3s?8CT>*sit7zYhL{a%j~@4i5OPomQ+* zt%#ta_WU@_mRnwawwSx~itPHxw~%$94tHz)Sw&h5|CNo-{+sq0jtij-?#6lDoneJs z8Ei+)2>+#G+vF`R-4timN@OZ#NmQKUg&5~CLgLUYAfR*)A0UaktAN-z*+yx*@63y# zbEop;I9=9tpNI}t&DexlDRcFqdD?m(zjK4YZJ&!Y6~Jw2Y9QuO&qZ#`1;jeQo~pqH zFRPg_;clHpdjF};aJUv44j}r$0)c@5|1c54JZrSpo@>FA(MZmKExxb!y0X{9#8Yk+ z0;*xT>IIv5XA92R`gt0#il^MkUBGJB(i{k60GBUCS%Wtx&L${H&XD#CtXD!0)c@5 z>PV;Eb3s-i7573#O{w8#TfHTH_o!tPt}Qqb&6E5vqbx+b&(I-{`@#9G9qyLTmq}n# zfTg1N?zz=>MBV)vD)E8z**xrX&??wGCx>|whUZrdS+IT<7V;efA7YDlT4ZM0)c@5#kL@fH1pl?N?n3wTu9_~I{W&n9OPqn zF|5)hMI&tk_2kk>g(e8)s-Vs;9c}!s()mJu>TOwivyn?4R}pRYvqa zkMayKeq7y%Njq7&hrGtcB#IDYAs=QMKJ-}8Yz;uNz#U^k4#ZXtz|6wdW)8%wwKMin z0)c=Te&(gN(K%{JRjeeIn-VB(dt3!2T5<(`LiK|hcq~n>v^JKhy5OuPovCUmgSl_J~C96*EXSytDnPOGkPXVIhaY}b#L4vnmM|4$&zeC3fq-{EwiJ!U69|6E#Ol<#4Wyp4Zr&Pt z_=$+`Haro$gXl19fqX~vP0H$40b*4yONptyZvpmn0;=PLW(Jisq2kJA{-Z5Jmz8X9 z)wDSF`IRvG_?#sxwiHp!F0)(K+#2jH30prp(6~+~AKWVLtf^UD2V)U~3)FOgwtZqn FzgDSPO>O`H literal 0 HcmV?d00001 diff --git a/FreeRTOS-Plus/CyaSSL/certs/server-cert.pem b/FreeRTOS-Plus/CyaSSL/certs/server-cert.pem new file mode 100644 index 000000000..8381265ee --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/certs/server-cert.pem @@ -0,0 +1,158 @@ +Certificate: + Data: + Version: 1 (0x0) + Serial Number: 2 (0x2) + Signature Algorithm: sha1WithRSAEncryption + Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.yassl.com/emailAddress=info@yassl.com + Validity + Not Before: Oct 24 18:27:13 2011 GMT + Not After : Jul 20 18:27:13 2014 GMT + Subject: C=US, ST=Montana, L=Bozeman, O=yaSSL, OU=Support, CN=www.yassl.com/emailAddress=info@yassl.com + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + RSA Public Key: (2048 bit) + Modulus (2048 bit): + 00:c0:95:08:e1:57:41:f2:71:6d:b7:d2:45:41:27: + 01:65:c6:45:ae:f2:bc:24:30:b8:95:ce:2f:4e:d6: + f6:1c:88:bc:7c:9f:fb:a8:67:7f:fe:5c:9c:51:75: + f7:8a:ca:07:e7:35:2f:8f:e1:bd:7b:c0:2f:7c:ab: + 64:a8:17:fc:ca:5d:7b:ba:e0:21:e5:72:2e:6f:2e: + 86:d8:95:73:da:ac:1b:53:b9:5f:3f:d7:19:0d:25: + 4f:e1:63:63:51:8b:0b:64:3f:ad:43:b8:a5:1c:5c: + 34:b3:ae:00:a0:63:c5:f6:7f:0b:59:68:78:73:a6: + 8c:18:a9:02:6d:af:c3:19:01:2e:b8:10:e3:c6:cc: + 40:b4:69:a3:46:33:69:87:6e:c4:bb:17:a6:f3:e8: + dd:ad:73:bc:7b:2f:21:b5:fd:66:51:0c:bd:54:b3: + e1:6d:5f:1c:bc:23:73:d1:09:03:89:14:d2:10:b9: + 64:c3:2a:d0:a1:96:4a:bc:e1:d4:1a:5b:c7:a0:c0: + c1:63:78:0f:44:37:30:32:96:80:32:23:95:a1:77: + ba:13:d2:97:73:e2:5d:25:c9:6a:0d:c3:39:60:a4: + b4:b0:69:42:42:09:e9:d8:08:bc:33:20:b3:58:22: + a7:aa:eb:c4:e1:e6:61:83:c5:d2:96:df:d9:d0:4f: + ad:d7 + Exponent: 65537 (0x10001) + Signature Algorithm: sha1WithRSAEncryption + 71:4e:d3:62:df:cc:4c:f7:cd:b7:6e:52:0b:6c:6e:e0:bd:c2: + 2d:07:d7:c0:b0:6e:43:1e:35:bc:30:01:50:f0:ff:99:23:6c: + 18:1a:41:b6:11:d6:d4:19:61:fd:e4:77:97:1c:39:e1:57:ab: + c5:15:63:77:11:36:5e:74:e2:24:0b:1f:41:78:ad:b7:81:e7: + b4:40:66:80:f0:4b:91:a0:6d:a8:6e:3d:53:d9:8b:ce:2a:e1: + 0b:45:65:87:a1:96:ae:ee:3e:88:d5:12:1f:78:17:ae:2c:c5: + 73:44:d8:dc:f4:af:d8:cc:ae:4c:e1:0c:be:55:a4:99:f7:6e: + 96:c0:c8:45:87:bf:dc:51:57:ff:9e:73:37:6a:18:9c:c3:f9: + 22:7a:f4:b0:52:bd:fc:21:30:f8:c5:ff:1e:87:7d:ad:a2:5a: + 35:f5:22:a8:b4:0a:76:38:e6:76:b0:98:af:1b:ec:8a:0a:43: + 74:d2:85:34:37:84:07:e1:f6:23:b2:29:de:a6:b6:b7:4c:57: + 7e:96:06:cb:a9:16:25:29:3a:03:2d:55:7d:a6:8c:a4:f7:9e: + 81:c9:95:b6:7c:c1:4a:ce:94:66:0c:ca:88:eb:d2:09:f5:5b: + 19:58:82:df:27:fd:67:95:78:b7:02:06:d5:a7:61:bd:ef:3a: + fc:b2:61:cd +-----BEGIN CERTIFICATE----- +MIIDkDCCAngCAQIwDQYJKoZIhvcNAQEFBQAwgZAxCzAJBgNVBAYTAlVTMRAwDgYD +VQQIEwdNb250YW5hMRAwDgYDVQQHEwdCb3plbWFuMREwDwYDVQQKEwhTYXd0b290 +aDETMBEGA1UECxMKQ29uc3VsdGluZzEWMBQGA1UEAxMNd3d3Lnlhc3NsLmNvbTEd +MBsGCSqGSIb3DQEJARYOaW5mb0B5YXNzbC5jb20wHhcNMTExMDI0MTgyNzEzWhcN +MTQwNzIwMTgyNzEzWjCBijELMAkGA1UEBhMCVVMxEDAOBgNVBAgTB01vbnRhbmEx +EDAOBgNVBAcTB0JvemVtYW4xDjAMBgNVBAoTBXlhU1NMMRAwDgYDVQQLEwdTdXBw +b3J0MRYwFAYDVQQDEw13d3cueWFzc2wuY29tMR0wGwYJKoZIhvcNAQkBFg5pbmZv +QHlhc3NsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMCVCOFX +QfJxbbfSRUEnAWXGRa7yvCQwuJXOL07W9hyIvHyf+6hnf/5cnFF194rKB+c1L4/h +vXvAL3yrZKgX/Mpde7rgIeVyLm8uhtiVc9qsG1O5Xz/XGQ0lT+FjY1GLC2Q/rUO4 +pRxcNLOuAKBjxfZ/C1loeHOmjBipAm2vwxkBLrgQ48bMQLRpo0YzaYduxLsXpvPo +3a1zvHsvIbX9ZlEMvVSz4W1fHLwjc9EJA4kU0hC5ZMMq0KGWSrzh1Bpbx6DAwWN4 +D0Q3MDKWgDIjlaF3uhPSl3PiXSXJag3DOWCktLBpQkIJ6dgIvDMgs1gip6rrxOHm +YYPF0pbf2dBPrdcCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAcU7TYt/MTPfNt25S +C2xu4L3CLQfXwLBuQx41vDABUPD/mSNsGBpBthHW1Blh/eR3lxw54VerxRVjdxE2 +XnTiJAsfQXitt4HntEBmgPBLkaBtqG49U9mLzirhC0Vlh6GWru4+iNUSH3gXrizF +c0TY3PSv2MyuTOEMvlWkmfdulsDIRYe/3FFX/55zN2oYnMP5Inr0sFK9/CEw+MX/ +Hod9raJaNfUiqLQKdjjmdrCYrxvsigpDdNKFNDeEB+H2I7Ip3qa2t0xXfpYGy6kW +JSk6Ay1VfaaMpPeegcmVtnzBSs6UZgzKiOvSCfVbGViC3yf9Z5V4twIG1adhve86 +/LJhzQ== +-----END CERTIFICATE----- +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + e9:d0:a7:5f:79:25:f4:3c + Signature Algorithm: sha1WithRSAEncryption + Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.yassl.com/emailAddress=info@yassl.com + Validity + Not Before: Oct 24 18:18:15 2011 GMT + Not After : Jul 20 18:18:15 2014 GMT + Subject: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.yassl.com/emailAddress=info@yassl.com + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + RSA Public Key: (2048 bit) + Modulus (2048 bit): + 00:bf:0c:ca:2d:14:b2:1e:84:42:5b:cd:38:1f:4a: + f2:4d:75:10:f1:b6:35:9f:df:ca:7d:03:98:d3:ac: + de:03:66:ee:2a:f1:d8:b0:7d:6e:07:54:0b:10:98: + 21:4d:80:cb:12:20:e7:cc:4f:de:45:7d:c9:72:77: + 32:ea:ca:90:bb:69:52:10:03:2f:a8:f3:95:c5:f1: + 8b:62:56:1b:ef:67:6f:a4:10:41:95:ad:0a:9b:e3: + a5:c0:b0:d2:70:76:50:30:5b:a8:e8:08:2c:7c:ed: + a7:a2:7a:8d:38:29:1c:ac:c7:ed:f2:7c:95:b0:95: + 82:7d:49:5c:38:cd:77:25:ef:bd:80:75:53:94:3c: + 3d:ca:63:5b:9f:15:b5:d3:1d:13:2f:19:d1:3c:db: + 76:3a:cc:b8:7d:c9:e5:c2:d7:da:40:6f:d8:21:dc: + 73:1b:42:2d:53:9c:fe:1a:fc:7d:ab:7a:36:3f:98: + de:84:7c:05:67:ce:6a:14:38:87:a9:f1:8c:b5:68: + cb:68:7f:71:20:2b:f5:a0:63:f5:56:2f:a3:26:d2: + b7:6f:b1:5a:17:d7:38:99:08:fe:93:58:6f:fe:c3: + 13:49:08:16:0b:a7:4d:67:00:52:31:67:23:4e:98: + ed:51:45:1d:b9:04:d9:0b:ec:d8:28:b3:4b:bd:ed: + 36:79 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Subject Key Identifier: + 27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5 + X509v3 Authority Key Identifier: + keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5 + DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.yassl.com/emailAddress=info@yassl.com + serial:E9:D0:A7:5F:79:25:F4:3C + + X509v3 Basic Constraints: + CA:TRUE + Signature Algorithm: sha1WithRSAEncryption + 5f:86:14:f4:51:8b:bc:a5:4e:30:da:5e:ac:9a:f8:6c:d9:26: + 4b:93:f9:e3:1c:89:6f:9e:ee:b3:9d:77:3e:89:20:76:a3:e6: + e8:86:15:21:db:e2:33:b2:34:d5:d0:9f:f3:c1:a4:87:92:5c: + f9:d1:ff:30:2f:8e:03:bc:b3:3c:0c:32:a3:90:5f:1a:90:1e: + af:9d:f3:9e:d7:07:02:a9:7d:27:66:63:2f:af:18:d7:ac:18: + 98:8c:83:8f:38:f3:0b:ac:36:10:75:fb:ca:76:13:50:5b:02: + 8f:73:bf:e3:a0:ee:83:52:25:54:ce:26:ce:9c:bd:2f:79:ab: + 1b:60:b8:92:f1:03:c0:fc:3b:08:d9:c0:ad:d5:72:08:25:80: + 61:2d:dc:9f:a7:83:62:07:47:e0:07:4c:4b:07:30:04:a9:87: + 1c:55:7f:07:12:d0:cb:42:5d:cb:cf:66:01:1a:17:ee:f9:0f: + 60:b7:db:6f:68:e5:4e:41:62:6e:d3:6f:60:4f:4b:27:de:cf: + 18:07:f1:13:5d:cb:3f:a9:25:44:da:52:5c:c8:04:e1:56:12: + f5:2a:90:4e:d1:e2:af:01:b5:23:a1:ec:31:da:7b:63:69:c4: + b8:f3:e7:ce:a1:3d:c0:db:6d:f3:b2:d9:46:c8:9f:c3:b8:70: + 5a:1f:7f:ca +-----BEGIN CERTIFICATE----- +MIIEnjCCA4agAwIBAgIJAOnQp195JfQ8MA0GCSqGSIb3DQEBBQUAMIGQMQswCQYD +VQQGEwJVUzEQMA4GA1UECBMHTW9udGFuYTEQMA4GA1UEBxMHQm96ZW1hbjERMA8G +A1UEChMIU2F3dG9vdGgxEzARBgNVBAsTCkNvbnN1bHRpbmcxFjAUBgNVBAMTDXd3 +dy55YXNzbC5jb20xHTAbBgkqhkiG9w0BCQEWDmluZm9AeWFzc2wuY29tMB4XDTEx +MTAyNDE4MTgxNVoXDTE0MDcyMDE4MTgxNVowgZAxCzAJBgNVBAYTAlVTMRAwDgYD +VQQIEwdNb250YW5hMRAwDgYDVQQHEwdCb3plbWFuMREwDwYDVQQKEwhTYXd0b290 +aDETMBEGA1UECxMKQ29uc3VsdGluZzEWMBQGA1UEAxMNd3d3Lnlhc3NsLmNvbTEd +MBsGCSqGSIb3DQEJARYOaW5mb0B5YXNzbC5jb20wggEiMA0GCSqGSIb3DQEBAQUA +A4IBDwAwggEKAoIBAQC/DMotFLIehEJbzTgfSvJNdRDxtjWf38p9A5jTrN4DZu4q +8diwfW4HVAsQmCFNgMsSIOfMT95FfclydzLqypC7aVIQAy+o85XF8YtiVhvvZ2+k +EEGVrQqb46XAsNJwdlAwW6joCCx87aeieo04KRysx+3yfJWwlYJ9SVw4zXcl772A +dVOUPD3KY1ufFbXTHRMvGdE823Y6zLh9yeXC19pAb9gh3HMbQi1TnP4a/H2rejY/ +mN6EfAVnzmoUOIep8Yy1aMtof3EgK/WgY/VWL6Mm0rdvsVoX1ziZCP6TWG/+wxNJ +CBYLp01nAFIxZyNOmO1RRR25BNkL7Ngos0u97TZ5AgMBAAGjgfgwgfUwHQYDVR0O +BBYEFCeOZxF0wyYdP+0zY7Ok2B0w5ejVMIHFBgNVHSMEgb0wgbqAFCeOZxF0wyYd +P+0zY7Ok2B0w5ejVoYGWpIGTMIGQMQswCQYDVQQGEwJVUzEQMA4GA1UECBMHTW9u +dGFuYTEQMA4GA1UEBxMHQm96ZW1hbjERMA8GA1UEChMIU2F3dG9vdGgxEzARBgNV +BAsTCkNvbnN1bHRpbmcxFjAUBgNVBAMTDXd3dy55YXNzbC5jb20xHTAbBgkqhkiG +9w0BCQEWDmluZm9AeWFzc2wuY29tggkA6dCnX3kl9DwwDAYDVR0TBAUwAwEB/zAN +BgkqhkiG9w0BAQUFAAOCAQEAX4YU9FGLvKVOMNperJr4bNkmS5P54xyJb57us513 +PokgdqPm6IYVIdviM7I01dCf88Gkh5Jc+dH/MC+OA7yzPAwyo5BfGpAer53zntcH +Aql9J2ZjL68Y16wYmIyDjzjzC6w2EHX7ynYTUFsCj3O/46Dug1IlVM4mzpy9L3mr +G2C4kvEDwPw7CNnArdVyCCWAYS3cn6eDYgdH4AdMSwcwBKmHHFV/BxLQy0Jdy89m +ARoX7vkPYLfbb2jlTkFibtNvYE9LJ97PGAfxE13LP6klRNpSXMgE4VYS9SqQTtHi +rwG1I6HsMdp7Y2nEuPPnzqE9wNtt87LZRsifw7hwWh9/yg== +-----END CERTIFICATE----- diff --git a/FreeRTOS-Plus/CyaSSL/certs/server-ecc.pem b/FreeRTOS-Plus/CyaSSL/certs/server-ecc.pem new file mode 100644 index 000000000..a12207f9c --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/certs/server-ecc.pem @@ -0,0 +1,55 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + f4:cc:72:08:11:35:69:b3 + Signature Algorithm: ecdsa-with-SHA1 + Issuer: C=US, ST=Washington, L=Seattle, O=Eliptic, OU=ECC, CN=www.yassl.com/emailAddress=info@yassl.com + Validity + Not Before: Jan 25 20:09:20 2011 GMT + Not After : Oct 21 20:09:20 2013 GMT + Subject: C=US, ST=Washington, L=Seattle, O=Eliptic, OU=ECC, CN=www.yassl.com/emailAddress=info@yassl.com + Subject Public Key Info: + Public Key Algorithm: id-ecPublicKey + EC Public Key: + pub: + 04:bb:33:ac:4c:27:50:4a:c6:4a:a5:04:c3:3c:de: + 9f:36:db:72:2d:ce:94:ea:2b:fa:cb:20:09:39:2c: + 16:e8:61:02:e9:af:4d:d3:02:93:9a:31:5b:97:92: + 21:7f:f0:cf:18:da:91:11:02:34:86:e8:20:58:33: + 0b:80:34:89:d8 + ASN1 OID: prime256v1 + X509v3 extensions: + X509v3 Subject Key Identifier: + 5D:5D:26:EF:AC:7E:36:F9:9B:76:15:2B:4A:25:02:23:EF:B2:89:30 + X509v3 Authority Key Identifier: + keyid:5D:5D:26:EF:AC:7E:36:F9:9B:76:15:2B:4A:25:02:23:EF:B2:89:30 + DirName:/C=US/ST=Washington/L=Seattle/O=Eliptic/OU=ECC/CN=www.yassl.com/emailAddress=info@yassl.com + serial:F4:CC:72:08:11:35:69:B3 + + X509v3 Basic Constraints: + CA:TRUE + Signature Algorithm: ecdsa-with-SHA1 + 30:44:02:20:08:9b:66:9f:39:ef:49:2b:99:92:31:65:a1:87: + 10:91:63:fe:69:e0:5f:b0:49:66:0a:71:41:fd:08:c0:8e:4c: + 02:20:02:2a:60:37:e4:94:6b:3e:39:a8:6c:4f:07:75:2b:28: + b3:f5:9d:c2:26:c7:64:1b:a9:7f:6e:e9:2a:a3:5e:4e +-----BEGIN CERTIFICATE----- +MIIDADCCAqigAwIBAgIJAPTMcggRNWmzMAkGByqGSM49BAEwgYsxCzAJBgNVBAYT +AlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdTZWF0dGxlMRAwDgYD +VQQKEwdFbGlwdGljMQwwCgYDVQQLEwNFQ0MxFjAUBgNVBAMTDXd3dy55YXNzbC5j +b20xHTAbBgkqhkiG9w0BCQEWDmluZm9AeWFzc2wuY29tMB4XDTExMDEyNTIwMDky +MFoXDTEzMTAyMTIwMDkyMFowgYsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +aW5ndG9uMRAwDgYDVQQHEwdTZWF0dGxlMRAwDgYDVQQKEwdFbGlwdGljMQwwCgYD +VQQLEwNFQ0MxFjAUBgNVBAMTDXd3dy55YXNzbC5jb20xHTAbBgkqhkiG9w0BCQEW +DmluZm9AeWFzc2wuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuzOsTCdQ +SsZKpQTDPN6fNttyLc6U6iv6yyAJOSwW6GEC6a9N0wKTmjFbl5Ihf/DPGNqREQI0 +huggWDMLgDSJ2KOB8zCB8DAdBgNVHQ4EFgQUXV0m76x+NvmbdhUrSiUCI++yiTAw +gcAGA1UdIwSBuDCBtYAUXV0m76x+NvmbdhUrSiUCI++yiTChgZGkgY4wgYsxCzAJ +BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdTZWF0dGxl +MRAwDgYDVQQKEwdFbGlwdGljMQwwCgYDVQQLEwNFQ0MxFjAUBgNVBAMTDXd3dy55 +YXNzbC5jb20xHTAbBgkqhkiG9w0BCQEWDmluZm9AeWFzc2wuY29tggkA9MxyCBE1 +abMwDAYDVR0TBAUwAwEB/zAJBgcqhkjOPQQBA0cAMEQCIAibZp8570krmZIxZaGH +EJFj/mngX7BJZgpxQf0IwI5MAiACKmA35JRrPjmobE8HdSsos/WdwibHZBupf27p +KqNeTg== +-----END CERTIFICATE----- diff --git a/FreeRTOS-Plus/CyaSSL/certs/server-key.pem b/FreeRTOS-Plus/CyaSSL/certs/server-key.pem new file mode 100644 index 000000000..d1627f4d4 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/certs/server-key.pem @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpQIBAAKCAQEAwJUI4VdB8nFtt9JFQScBZcZFrvK8JDC4lc4vTtb2HIi8fJ/7 +qGd//lycUXX3isoH5zUvj+G9e8AvfKtkqBf8yl17uuAh5XIuby6G2JVz2qwbU7lf +P9cZDSVP4WNjUYsLZD+tQ7ilHFw0s64AoGPF9n8LWWh4c6aMGKkCba/DGQEuuBDj +xsxAtGmjRjNph27Euxem8+jdrXO8ey8htf1mUQy9VLPhbV8cvCNz0QkDiRTSELlk +wyrQoZZKvOHUGlvHoMDBY3gPRDcwMpaAMiOVoXe6E9KXc+JdJclqDcM5YKS0sGlC +Qgnp2Ai8MyCzWCKnquvE4eZhg8XSlt/Z0E+t1wIDAQABAoIBAQCa0DQPUmIFUAHv +n+1kbsLE2hryhNeSEEiSxOlq64t1bMZ5OPLJckqGZFSVd8vDmp231B2kAMieTuTd +x7pnFsF0vKnWlI8rMBr77d8hBSPZSjm9mGtlmrjcxH3upkMVLj2+HSJgKnMw1T7Y +oqyGQy7E9WReP4l1DxHYUSVOn9iqo85gs+KK2X4b8GTKmlsFC1uqy+XjP24yIgXz +0PrvdFKB4l90073/MYNFdfpjepcu1rYZxpIm5CgGUFAOeC6peA0Ul7QS2DFAq6EB +QcIw+AdfFuRhd9Jg8p+N6PS662PeKpeB70xs5lU0USsoNPRTHMRYCj+7r7X3SoVD +LTzxWFiBAoGBAPIsVHY5I2PJEDK3k62vvhl1loFk5rW4iUJB0W3QHBv4G6xpyzY8 +ZH3c9Bm4w2CxV0hfUk9ZOlV/MsAZQ1A/rs5vF/MOn0DKTq0VO8l56cBZOHNwnAp8 +yTpIMqfYSXUKhcLC/RVz2pkJKmmanwpxv7AEpox6Wm9IWlQ7xrFTF9/nAoGBAMuT +3ncVXbdcXHzYkKmYLdZpDmOzo9ymzItqpKISjI57SCyySzfcBhh96v52odSh6T8N +zRtfr1+elltbD6F8r7ObkNtXczrtsCNErkFPHwdCEyNMy/r0FKTV9542fFufqDzB +hV900jkt/9CE3/uzIHoumxeu5roLrl9TpFLtG8SRAoGBAOyY2rvV/vlSSn0CVUlv +VW5SL4SjK7OGYrNU0mNS2uOIdqDvixWl0xgUcndex6MEH54ZYrUbG57D8rUy+UzB +qusMJn3UX0pRXKRFBnBEp1bA1CIUdp7YY1CJkNPiv4GVkjFBhzkaQwsYpVMfORpf +H0O8h2rfbtMiAP4imHBOGhkpAoGBAIpBVihRnl/Ungs7mKNU8mxW1KrpaTOFJAza +1AwtxL9PAmk4fNTm3Ezt1xYRwz4A58MmwFEC3rt1nG9WnHrzju/PisUr0toGakTJ +c/5umYf4W77xfOZltU9s8MnF/xbKixsX4lg9ojerAby/QM5TjI7t7+5ZneBj5nxe +9Y5L8TvBAoGATUX5QIzFW/QqGoq08hysa+kMVja3TnKW1eWK0uL/8fEYEz2GCbjY +dqfJHHFSlDBD4PF4dP1hG0wJzOZoKnGtHN9DvFbbpaS+NXCkXs9P/ABVmTo9I89n +WvUi+LUp0EQR6zUuRr79jhiyX6i/GTKh9dwD5nyaHwx8qbAOITc78bA= +-----END RSA PRIVATE KEY----- diff --git a/FreeRTOS-Plus/CyaSSL/certs/server-keyEnc.pem b/FreeRTOS-Plus/CyaSSL/certs/server-keyEnc.pem new file mode 100644 index 000000000..e5ab57d4c --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/certs/server-keyEnc.pem @@ -0,0 +1,30 @@ +-----BEGIN RSA PRIVATE KEY----- +Proc-Type: 4,ENCRYPTED +DEK-Info: DES-CBC,136C7D8A69656668 + +jvNTyPaztxPIoAzbdmZnD0Zw2+60tMxNc0GMHNmeOyG25aHP/dT+TWiKFpFVkkkY +uoCIhYUyw7gmpw+CnRJwWd+ans4nrvAjwy5oWJvarvsyUpjqvnPoIlAqd+d4TDKN +eESzcI76+gHdisAtCrQD+fGqgTZhli5TgDbnpasL/QnY2qDlutvakkVw7gPXe156 +2Phy8WN+efr65J6wt3K/dj7Datl9u4JeHQK81gYyWBVX+EagEjPGDzkFQCj9Z0q7 +8K3iB5GW1JAqJS0IfZPB40AnSTF/n1TL1SN3qfU3l7hTGNrx9o7580bgDEoAR7pI +F8eZlS15KHtZmh11AnU1KTKZ6kmgnNqeMTGMN6N0ct2wMKW1dV87eTDlF0oiR2ol +XwtFgKmrIjfpmzkdWjbJmWnGMjD56KdiFZga/ZyKMsPrVoYLgfJEpn36iQspfygx +HCGNTf0PjIsjEWU0WyQiF86t+c45W3wNFsv/AxVyfMl+su02yrd6u2ecuQDir3Cs +b2k8IKtQgVe/NIpEWLKuiHG5oedIPPQyDYK5uq+gHxCGeOoKnWlsWFEHZRiza4X5 +tbgTrJB8Sw0ENWrvVGGmQZN4pSImlsMwzQ2qik5CQ00N1b3+56/obn0z75I3bUSb +tC5g8DRjl6oclAenNgh/MYMT287y5W2dD4npxHcekX4O3J2CDXNfg4vV2j5GRxtg +LVJdYE2p7bpYePCDHrYng8b9ubBprx0CrEnkIvvtUjzNPf6VDL0+MBKl+XgR2/nz +iRqTuZnlGGOyM+KYDwXpgwfs/HfvFGksxTAlO/40GkGh+WGPaIoNyCK0SgQKhyb4 +JIkR0vd2/yLg3lWMJrGwh7A0Gm07Z/781oURP3uWd+PaCOgGcd5ipcAjcEyuxNly +AthipWqmQWUcbf6Z2N9j3OA22Hv2Uzk8HSfi9VOZtL9svdEEZ0NnOekJgnc6stQp +bXiknlK/T5WdrWxSyCfgUq68Vf6DFfIRAVuFdJ3WHT2wVXHrDfft6D+Ne/XCxPoE +8zGmkyusaph33UHQ1oNyUbLbwcDCDSmOo8gYoedD3IwxtMA3wJRugomqosItwV8X +vkgmcy8eSE/+gZUxJEN2gnLcfKFhCkC80J6oFhmoDD6vuUnPHcFdKZgVPw2rzPk5 +Vb1kX+gpORplYmKpq1vz/ujscL4T0TmYLz02hkIS4edpW55ncTTv7JWefpRiTB1J +RB3td3me4htqR+YIDWJ+emrOmqsCG2WvpAS+MTw2mj1jYk9LL/ZYobTjSCEWmuwT +yVK6m303irR7HQDauxhslRFgoK21w63viOyj5NKIU1gQtaAANGDxcgORC1XLjjgt +oNutSQA+7P42vfHSHK4cnTBXl6V32H/GyVpdHQOZqSrqIjgLmUZodSmRPROxosZF +a46B1O7m/rJFxkiKW4vod+/WqjoE0Hhfrb8rRrkRjzGeCqqSSnQ3vrunVkvF8hlA +b6FOv4ZBJL4piC1GKH+rscqke9NEiDqXN8C3iYz86jbck/Ha21yUS8T3X7N52sg+ +B3AmOGnLK6BebYeto9vZxQjacChJZSixSxLV+l9/nVQ0+mW42azHdzk0ru59TGAj +-----END RSA PRIVATE KEY----- diff --git a/FreeRTOS-Plus/CyaSSL/certs/server-keyPkcs8.pem b/FreeRTOS-Plus/CyaSSL/certs/server-keyPkcs8.pem new file mode 100644 index 000000000..a24c5a26a --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/certs/server-keyPkcs8.pem @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDAlQjhV0HycW23 +0kVBJwFlxkWu8rwkMLiVzi9O1vYciLx8n/uoZ3/+XJxRdfeKygfnNS+P4b17wC98 +q2SoF/zKXXu64CHlci5vLobYlXParBtTuV8/1xkNJU/hY2NRiwtkP61DuKUcXDSz +rgCgY8X2fwtZaHhzpowYqQJtr8MZAS64EOPGzEC0aaNGM2mHbsS7F6bz6N2tc7x7 +LyG1/WZRDL1Us+FtXxy8I3PRCQOJFNIQuWTDKtChlkq84dQaW8egwMFjeA9ENzAy +loAyI5Whd7oT0pdz4l0lyWoNwzlgpLSwaUJCCenYCLwzILNYIqeq68Th5mGDxdKW +39nQT63XAgMBAAECggEBAJrQNA9SYgVQAe+f7WRuwsTaGvKE15IQSJLE6Wrri3Vs +xnk48slySoZkVJV3y8OanbfUHaQAyJ5O5N3HumcWwXS8qdaUjyswGvvt3yEFI9lK +Ob2Ya2WauNzEfe6mQxUuPb4dImAqczDVPtiirIZDLsT1ZF4/iXUPEdhRJU6f2Kqj +zmCz4orZfhvwZMqaWwULW6rL5eM/bjIiBfPQ+u90UoHiX3TTvf8xg0V1+mN6ly7W +thnGkibkKAZQUA54Lql4DRSXtBLYMUCroQFBwjD4B18W5GF30mDyn43o9LrrY94q +l4HvTGzmVTRRKyg09FMcxFgKP7uvtfdKhUMtPPFYWIECgYEA8ixUdjkjY8kQMreT +ra++GXWWgWTmtbiJQkHRbdAcG/gbrGnLNjxkfdz0GbjDYLFXSF9ST1k6VX8ywBlD +UD+uzm8X8w6fQMpOrRU7yXnpwFk4c3CcCnzJOkgyp9hJdQqFwsL9FXPamQkqaZqf +CnG/sASmjHpab0haVDvGsVMX3+cCgYEAy5PedxVdt1xcfNiQqZgt1mkOY7Oj3KbM +i2qkohKMjntILLJLN9wGGH3q/nah1KHpPw3NG1+vX56WW1sPoXyvs5uQ21dzOu2w +I0SuQU8fB0ITI0zL+vQUpNX3njZ8W5+oPMGFX3TSOS3/0ITf+7Mgei6bF67muguu +X1OkUu0bxJECgYEA7Jjau9X++VJKfQJVSW9VblIvhKMrs4Zis1TSY1La44h2oO+L +FaXTGBRyd17HowQfnhlitRsbnsPytTL5TMGq6wwmfdRfSlFcpEUGcESnVsDUIhR2 +nthjUImQ0+K/gZWSMUGHORpDCxilUx85Gl8fQ7yHat9u0yIA/iKYcE4aGSkCgYEA +ikFWKFGeX9SeCzuYo1TybFbUqulpM4UkDNrUDC3Ev08CaTh81ObcTO3XFhHDPgDn +wybAUQLeu3Wcb1acevOO78+KxSvS2gZqRMlz/m6Zh/hbvvF85mW1T2zwycX/FsqL +GxfiWD2iN6sBvL9AzlOMju3v7lmd4GPmfF71jkvxO8ECgYBNRflAjMVb9CoairTy +HKxr6QxWNrdOcpbV5YrS4v/x8RgTPYYJuNh2p8kccVKUMEPg8Xh0/WEbTAnM5mgq +ca0c30O8VtulpL41cKRez0/8AFWZOj0jz2da9SL4tSnQRBHrNS5Gvv2OGLJfqL8Z +MqH13APmfJofDHypsA4hNzvxsA== +-----END PRIVATE KEY----- diff --git a/FreeRTOS-Plus/CyaSSL/certs/server-keyPkcs8Enc.pem b/FreeRTOS-Plus/CyaSSL/certs/server-keyPkcs8Enc.pem new file mode 100644 index 000000000..4be31a326 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/certs/server-keyPkcs8Enc.pem @@ -0,0 +1,29 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIIE6TAbBgkqhkiG9w0BBQMwDgQIr3AyvPqfFRQCAggABIIEyPUs6wCboqtKmExH +zfez3vfHn2cp6s3X563Bz73hYn/8vXtI/q0oDNOpgav60/N7rMy50fno3LmW0/6E ++UN4MwofmBS3lp1ZVY3KmzDy6lz5vcFo4GCCj+X6dacsyBQ4lFOge5BihQ3R9cKt +dSrd1EFKwGGu3qTDG7ajTZukmYjxuRqpyHqPO5OJO7yXxHOB7B7sSKIyJRCkkucd +oBC86kQdWraweSYj+Klza6VjKzmNzDBx9Fyhrj9XGXJ3rJLhjgNpelwX+PIMU31i +/yklI4jm0aMSoAvXgdBXZuOsnsI27GXxy//i7AOgLLWi+Bu4dJSSl5PMtespf83u +5jSysJymXiNcN6vEautGyjCujdMs5c/FEMbgubAMXymCI9DsAN+5dNMDY8Zrfqdl +hFKfctcu8BxFa+0tavJ28fOEBuEyJLsQ9OvvS7dn4AV502JRKWObfsw7fi+mMzMu +oxhYo99MRqic6a9uDmYB3SPeU31eOHiEi0n51D7Gtcn++F+IaDFwSHMirThzakGn +go3nj0yq62euzVcEuhIfTTAe3F2tqzpzznVFbs1XgrGVREJ6gp5vRgMUUGYIqQir +p5oW0HVRI4iuoSjdN4/wNAxIP9zakwYx+vWx1VXhDVEJfgNmxDRvEbF+OOz+iJCf +7A2e8L+kZ/5oC3HO8h7GdHNTUjRRdh8FUM8lGo+HbMYDznMy/bJlIP2bx9hIIha7 +U70i09glS2Z7Ei+VecJbvFzdro0vdYyGO2ef8bWwCc5JMucxDcRklWdUxK6amKJN +VpXL3TW0VYCfr1rLmZXUfBGk/KXM20/BoM04WLjeR3oiV/2b7SYK7GnJ7kBmAHHx +gnrwMDO3JvH89CwlHRizVSQl59ViqEMGLmbHThcMqkEOkFphB2xox7/IOVyp6cFn +mY0ZCrbhdX+L6t5jiyq/4us5bzF7FOBYsJr6n1Rm9b8eeOL693y/6uM3CvTJcTOb +5RqWiHgTgmefeOeUQ0/dVgvEOIWz2yqBQmHKiB4+0CGGIRwUOXBrTKSLilumsjQe +qGhJ6yw25VIpdXsMD1WVviczgRTNYjdldIJoHQdvpCEAhQ1RR3rkuIPniTumJFmY +CnjfNqjtkaZWIN1nOCmcu50tswksWEEFEfkcP1xyzhr3EVCYAoFncLTp5vHBtdmg +6KBdar40/OFGAcbDGDX1g3XEEi6jHmy0Lyz7M3DwESgaMgwzscsQLr+wMITk1IUN +yfiXHl1CQjGxhDj8KoAhdDjjPENkSlCSd1vEO+lg1/IFb1dtnL2DJp6BQt9/VLHo +Fp3pdZ7r95H20+pEhCZp0HXLNo1o8xjJQ5RWUCs1Zc1cauDOAh8lAjps6MBxTa3a +LOgTW9lgiAQ+S1g2jK4BmqbLvZUF+Z6xupc8uE3E3HhJolmDRYojMNFNmmvODa8M +CneWmj3T1KvqEToAIq46mStlTfQufSMpaJ73Wds4gmIiGwn5hIuUN6f3kybbt4f2 +4DLZXMcjYweLi9tJtFC+JaO0rS5gtX/k/ys1QSblSU5qfRu1XfwNAcZO1ReKgGYN +ymI78cSACGIcEvAwin8CdRu3W99NbMqHW9AcCETFlTsC3wNlQxyYSem75sjPaWVF +sxLy7YxEJ8tDEJZbSQ== +-----END ENCRYPTED PRIVATE KEY----- diff --git a/FreeRTOS-Plus/CyaSSL/certs/server-keyPkcs8Enc12.pem b/FreeRTOS-Plus/CyaSSL/certs/server-keyPkcs8Enc12.pem new file mode 100644 index 000000000..a1e438875 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/certs/server-keyPkcs8Enc12.pem @@ -0,0 +1,29 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIIE5TAcBgoqhkiG9w0BDAEBMA4ECFytdly5R2o9AgIIAASCBMOa6fgAUIR5GokK +Z81YZMxC3sNqAwjLEkOwmez2za2fq+2mw6T8tB5W75lFpWyXD1MDPa1PpLzyw27c +d2C8nipCzp37yYLmXr+aS519CBJR80ily/WLcdv+ScsA6pjOEW2p+VDY55jFp2pr +n94/K2nFQpMxAdjxnqQCF5ewMLqzy3o3s6U3V9zIxy/xlLYi//UWFI8fqtOikqs4 +apWLNqJONRZq95OITKO/Nhz7GyEfjrewJmv4zVToEnSagSwbR4IVFn5Lok8rSpI9 +qwey9wsB1CguVwR0O2NjDVKUGXinfhdr+zMQlCoz+xY/Q1TkH4gEY5wpln4cBvtm +PL/BnD4wEWHh8vS61wfOQ7wPgY+cdCe75stTrKzc6amVJB+40Qi3Vt4TEPGwcP16 +/qGl0zpYuAgilPtuEBw3GX3LiigpHmSt43D3DiYNGzv+Aran2Ei9iGSGeI2zHz8r +WFZEnptAwlqeyL7+MZjAOXlu6QG1yix8HvZLmtBHrE2MhuR4KbS3fAUCNQpn8OKu +zxYzs1ti5F2V4c9yK63gSz3H1ObRNsM2OkpUbSVGqLUN6a8HsI6yYh4we6q0gxKD +VGdzEz4S1BFEBfXWVSPnRNMR4YD8kiQEPutUZFLiWWZ7WliH5yNfHZUia8dovxFa +MWmAbSjMKRGvV+LvAGQHYBVfJSQO6VvBfBDtu0H4rLr8urmcPY+hbw1XxGfKSQp1 +iIdvVwjefl8wM9LSRsvqY5l4mu+XDPanQlFbzKBOSyLQts97ys3AR+jkK8Bmv14l +xmCF8bJzzz5a2wAqbPhWIbk4J4VfcJEXNMzd19w4SxGv9fUXNiZZElUdNE+wtRsQ +YvACYn9sZ6JUwg9hNTLXuXZY47LuQrrdTDHupoVA9zLvUYMKgO+pjwS8uy1dLQao +0aztHLZEXuVJvpiRoMtYZl37ZNoLHQJeZUNyNATshAoD1+uSc7aywl8yqdTzXRR2 +g0rkExXEVJ5OPyzbFdOQSC5HoOC7dInIBmkrSFEJMKDkMzwYI+uSoIbn+8i+Gjzy +Vh3/lftts/BIvr4NAh1ZAq/215jZSdAGo+1VZeuBeybwh3RBdBl8PhDBviTvbxSk +P+F1T+UcbAz9bgjQJgNvDb9XHNI8rfEhfDPX/Pr4VvxBZNndmRJVQDKi23YD/7yF +WAwXy418M7DPqp7NYmUHFe7JRm9bHk41EeknLZaZGW5qHwQKA10RoJCgjoOIFTsd +kD3Qq/0mEuOiuJn5UPE19xtUpvFWamDf3s3zSHM7VJ+gGNrS/WbQ+KmTimj0Wucd +2vWiNCGbhWwmp3LLKQlB5xDwXJy099SZUUkgcxGmfcT7FOpd3QSLYnwtPz8uLW0N +76zbiUTYCQ/ASLrwcKFGCKKBz62DlRreK23E/RjqkKKCVFzzg8AzQTa02ml+wQyG ++5EOwEF2yIrhV0p4hY/GDAIe3cdchiy1EQf6xH/IxPF/QsKNp0CfHVPgdFwLzjM2 +oFD3analGblxp9CMiDbiKTOdFPL8XcguufqpWra2jtUbe07HQaeU2NcM2TeB2KsU +PhgBwgdNxW69K55iHReaZtuLw0GhD+KBrm7gSteVniiYLzLKzxmMycGGtoNwpbGi +MMJBE+BYZylG +-----END ENCRYPTED PRIVATE KEY----- diff --git a/FreeRTOS-Plus/CyaSSL/certs/server-keyPkcs8Enc2.pem b/FreeRTOS-Plus/CyaSSL/certs/server-keyPkcs8Enc2.pem new file mode 100644 index 000000000..297f2a020 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/certs/server-keyPkcs8Enc2.pem @@ -0,0 +1,30 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIxaI9IblN3acCAggA +MBQGCCqGSIb3DQMHBAi7kwdRvCrqMgSCBMjkSOSVfmu42O0q2GzFrJVr3cam9ZKe +InQsxqtgADdBxMgJJVnr360tUNPQyyvfCH//Duhz+aJIC0MQZkWR3ZSy5pfHX+vr +C3wd741VOlI44uEdzRktlPc11saMDyKS04/K9aaYIDqspOiobt9WZLQildXl1n8j +N+7Laj7A/vxJ5GUJ4hdPwQOIeuJXTDDzn+Ld12XXGH+Iw1M5Cx3tBw1TNizSnmXQ +vf/MsfsWsZbHBppCXZbF27jJA+6Bg7dGT0OZM0pI+ZQvyHr+qjog0hollY9KjwTG +h+hsM7umWFJdeRMrmkTrX/R9HY/c5I4ExNSp1AtMmFeeU8h2VTJtYcoykUU1q2pF +KHfjPghwmYromQGR4nPA9sqa9s+VMq9OaqoJDoBwNobdFr7sEtMLT08vTa0+rMX7 +bmjAF44/dVBYpBxXjTQ0pXVeb24Q00Sn6NOI4fTsBnkR+WTtuwz/L0qaGnJlh10y +sQ3+95cUtZc3SZS67yYUx5auswqT3V4JCmhJcHNi+/jHyrj9D8nVWibQ2TBmgUf+ +0NzvdKb7sraEx7PSgFWDMLoQrd2+cqsJArpY9TbLSLhBDrOVc8v/lXYuK6QI0gMd +HIwAZARUZMoI3WS6icTLYyLdQPMsFzI6U0arkbrdhjNNd3kVqeFEJ+oF0rkuAcJJ +K8eUcsby1AIBS/9tuW1gSYubmuXsZX8xbYbJnHUqGOTAVa7jo8eVUTiyUfPXa+0N +s1tTpZXtOOlqncZ08mPHppshdKF2cpuh0JNjiR6fHvXytGWFGMsKtxdwKs/14UCg +qoTW0EQU4ONfBxR2PtX8PlNV4bOt704HP8Vc0H9JV2uWpJaLRzY2bBiPgKcrO9Eh +83zFrPu/0obBQTxnP3mMihxvCndflHQqeJ0V1YYw9n4+XbgBqULXDQs7OetRohnY +gYyc//NdC2I8mbdabFYvUTWSH6oMA6lqkwTjTTwtn5E8BJkRi1sIq4jNFUekpm2T +5AwP7xWn//PM+B12CPoIgYtYT6Yhbf8arXuGU28y1Ahhi/hKcpR9HRPQeyaR62vi +skjjycfn38wcj0WrIVnOceGgPa3EBrkkTaPUHvMQ5G/xzMZ82o3CnmwdnH+lp3eg +TLcLm8Yp9InkMJNVOrGLxFvmTljl3h9x2JVuE0wtuWt91QVmfCZo0k3Cx46ad7xB +eK20veTy+PySy2U3W1twGfsXXXRwaQiXXRrgPciK0LcGXZneShZuebk04U31sq4F +rYaMAzIDDmvwbjh+UpNcl1VdBDGGePxzzOD3HHYPbm240HVMPuS85P2kFjak3PdJ +GqsRUS1SRp1e451aFGjzggPLXFjAfDMaxrgjSWapRzu78i+xvcvf69979oX0KO9Y +KMSC14RnmnT1+UdKxX+p9r1AwfH/vJxM34AOSva1uLiSJckRGYGOzuaYsTT9ZAx/ +q3CNALF4qFUMWmJnvQDYmCUnw6lJl3CazbtV5RI2ILQX6ZHR6YAHT5hYY43k+AnZ +mFW6BGKoX/f4iVqYtjQWiGWAJAf6C9+548O2t9MiVcgQf4Nvj6lFLM00pzFn7jW4 +DsDFUBmmrSF8wfR7SRpOc/ViVZBRleYPLsMu0tmD29fowqqBY0MEkxqSahFAGTgk +sao= +-----END ENCRYPTED PRIVATE KEY----- diff --git a/FreeRTOS-Plus/CyaSSL/certs/taoCert.txt b/FreeRTOS-Plus/CyaSSL/certs/taoCert.txt new file mode 100644 index 000000000..7dddffa6a --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/certs/taoCert.txt @@ -0,0 +1,157 @@ + +***** Create a self signed cert ************ + +1) openssl genrsa 512 > client-key.pem + +2) openssl req -new -x509 -nodes -md5 -days 1000 -key client-key.pem > client-cert.pem + +3) note sha1 would be -sha1 + +-- adding metadata to beginning + +3) openssl x509 -in client-cert.pem -text > tmp.pem + +4) mv tmp.pem client-cert.pem + + +***** Create a CA, signing authority ********** + +same as self signed, use ca prefix instead of client + + +***** Create a cert signed by CA ************** + +1) openssl req -newkey rsa:512 -md5 -days 1000 -nodes -keyout server-key.pem > server-req.pem + +* note if using exisitng key do: -new -key keyName + +2) copy ca-key.pem ca-cert.srl (why ????) + +3) openssl x509 -req -in server-req.pem -days 1000 -md5 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 > server-cert.pem + + + +***** To create a dsa cert ******************** + +1) openssl dsaparam 512 > dsa512.param # creates group params + +2) openssl gendsa dsa512.param > dsa512.pem # creates private key + +3) openssl req -new -x509 -nodes -days 1000 -key dsa512.pem > dsa-cert.pem + + + + +***** To convert from PEM to DER ************** + +a) openssl x509 -in cert.pem -inform PEM -out cert.der -outform DER + +to convert rsa private PEM to DER : + +b) openssl rsa -in key.pem -outform DER -out key.der + + +**** To encrypt rsa key already in pem ********** + +a) openssl rsa server-keyEnc.pem + +note location of des, pass = yassl123 + + +*** To make a public key from a private key ****** + + +openssl rsa -in 1024rsa.priv -pubout -out 1024rsa.pub + + +**** To convert to pkcs8 ******* + +openssl pkcs8 -nocrypt -topk8 -in server-key.pem -out server-keyPkcs8.pem + + +**** To convert to pkcs8 encrypted ******* + +openssl pkcs8 -topk8 -in server-key.pem -out server-keyPkcs8Enc.pem + +passwd: yassl123 + +to use PKCS#5 v2 instead of v1.5 which is default add + +-v2 des3 # file Pkcs8Enc2 + +to use PKCS#12 instead use -v1 witch a 12 algo like + +-v1 PBE-SHA1-RC4-128 # file Pkcs8Enc12 , see man pkcs8 for more info + + +**** To convert from pkcs8 to traditional **** + +openssl pkcs8 -nocrypt -in server-keyPkcs8.pem -out server-key.pem + + +*** DH paramters *** + +openssl dhparam 2048 > dh2048.param + +to add metadata + +openssl dhparam -in dh2048.param -text > dh2048.pem + +**** ECC ****** + +1) make a key + + to see types available do + openssl ecparam -list_curves + + make a new key + openssl ecparam -genkey -text -name secp256r1 -out ecc-key.pem + + +*** CRL *** + +1) create a crl + +a) openssl ca -gencrl -out crl.pem -keyfile ./ca-key.pem -cert ./ca-cert.pem + +Error No ./CA root/index.txt so: + +b) touch ./CA root/index.txt + +a) again + +Error No ./CA root/crlnumber so: + +c) touch ./CA root/crlnumber + +a) again + +Error unable to load CRL number + +d) add '01' to crlnumber file + +a) again + +2) view crl file + +openssl crl -in crl.pem -text + +3) revoke + +openssl ca -revoke server-cert.pem -keyfile ./ca-key.pem -cert ./ca-cert.pem + +Then regenerate crl with a) + +4) verify + +openssl verify -CAfile ./ca-cert.pem ./server-cert.pem + +OK + +Make file with both ca and crl + +cat ca-cert.pem crl.pem > ca-crl.pem + +openssl verify -CAfile ./ca-crl.pem -crl_check ./ca-cert.pem + +revoked diff --git a/FreeRTOS-Plus/CyaSSL/config.in b/FreeRTOS-Plus/CyaSSL/config.in new file mode 100644 index 000000000..0b87d4f83 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/config.in @@ -0,0 +1,166 @@ +/* config.in. Generated from configure.ac by autoheader. */ + +/* Define to 1 if you have the `alarm' function. */ +#undef HAVE_ALARM + +/* Define to 1 if you have the header file. */ +#undef HAVE_ARPA_INET_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_DLFCN_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_ERRNO_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_FCNTL_H + +/* Define to 1 if you have the `gethostbyname' function. */ +#undef HAVE_GETHOSTBYNAME + +/* Define to 1 if you have the `gettimeofday' function. */ +#undef HAVE_GETTIMEOFDAY + +/* Define to 1 if you have the `inet_ntoa' function. */ +#undef HAVE_INET_NTOA + +/* Define to 1 if you have the header file. */ +#undef HAVE_INTTYPES_H + +/* Define to 1 if you have the `network' library (-lnetwork). */ +#undef HAVE_LIBNETWORK + +/* Define to 1 if you have the header file. */ +#undef HAVE_LIMITS_H + +/* Define to 1 if your system has a GNU libc compatible `malloc' function, and + to 0 otherwise. */ +#undef HAVE_MALLOC + +/* Define to 1 if you have the header file. */ +#undef HAVE_MEMORY_H + +/* Define to 1 if you have the `memset' function. */ +#undef HAVE_MEMSET + +/* Define to 1 if you have the header file. */ +#undef HAVE_NETDB_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_NETINET_IN_H + +/* Define if you have POSIX threads libraries and header files. */ +#undef HAVE_PTHREAD + +/* Have PTHREAD_PRIO_INHERIT. */ +#undef HAVE_PTHREAD_PRIO_INHERIT + +/* Define to 1 if your system has a GNU libc compatible `realloc' function, + and to 0 otherwise. */ +#undef HAVE_REALLOC + +/* Define to 1 if you have the `socket' function. */ +#undef HAVE_SOCKET + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDDEF_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_IOCTL_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_SOCKET_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TIME_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define to 1 or 0, depending whether the compiler supports simple visibility + declarations. */ +#undef HAVE_VISIBILITY + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#undef LT_OBJDIR + +/* Define to 1 if your C compiler doesn't accept -c and -o together. */ +#undef NO_MINUS_C_MINUS_O + +/* Name of package */ +#undef PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Define to necessary symbol if this constant uses a non-standard name on + your system. */ +#undef PTHREAD_CREATE_JOINABLE + +/* The size of `long', as computed by sizeof. */ +#undef SIZEOF_LONG + +/* The size of `long long', as computed by sizeof. */ +#undef SIZEOF_LONG_LONG + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Define to 1 if you can safely include both and . */ +#undef TIME_WITH_SYS_TIME + +/* Version number of package */ +#undef VERSION + +/* Define to 1 if your processor stores words with the most significant byte + first (like Motorola and SPARC, unlike Intel and VAX). */ +#undef WORDS_BIGENDIAN + +/* Define for Solaris 2.5.1 so the uint8_t typedef from , + , or is not used. If the typedef was allowed, the + #define below would cause a syntax error. */ +#undef _UINT8_T + +/* Define to rpl_malloc if the replacement function should be used. */ +#undef malloc + +/* Define to rpl_realloc if the replacement function should be used. */ +#undef realloc + +/* Define to `unsigned int' if does not define. */ +#undef size_t + +/* Define to the type of an unsigned integer type of width exactly 8 bits if + such a type exists and the standard includes do not define it. */ +#undef uint8_t diff --git a/FreeRTOS-Plus/CyaSSL/config/compile b/FreeRTOS-Plus/CyaSSL/config/compile new file mode 100644 index 000000000..1b1d23216 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/config/compile @@ -0,0 +1,142 @@ +#! /bin/sh +# Wrapper for compilers which do not understand `-c -o'. + +scriptversion=2005-05-14.22 + +# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. +# Written by Tom Tromey . +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +case $1 in + '') + echo "$0: No command. Try \`$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: compile [--help] [--version] PROGRAM [ARGS] + +Wrapper for compilers which do not understand `-c -o'. +Remove `-o dest.o' from ARGS, run PROGRAM with the remaining +arguments, and rename the output as expected. + +If you are trying to build a whole package this is not the +right script to run: please start by reading the file `INSTALL'. + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "compile $scriptversion" + exit $? + ;; +esac + +ofile= +cfile= +eat= + +for arg +do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as `compile cc -o foo foo.c'. + # So we strip `-o arg' only if arg is an object. + eat=1 + case $2 in + *.o | *.obj) + ofile=$2 + ;; + *) + set x "$@" -o "$2" + shift + ;; + esac + ;; + *.c) + cfile=$1 + set x "$@" "$1" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift +done + +if test -z "$ofile" || test -z "$cfile"; then + # If no `-o' option was seen then we might have been invoked from a + # pattern rule where we don't need one. That is ok -- this is a + # normal compilation that the losing compiler can handle. If no + # `.c' file was seen then we are probably linking. That is also + # ok. + exec "$@" +fi + +# Name of file we expect compiler to create. +cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'` + +# Create the lock directory. +# Note: use `[/.-]' here to ensure that we don't use the same name +# that we are using for the .o file. Also, base the name on the expected +# object file name, since that is what matters with a parallel build. +lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d +while true; do + if mkdir "$lockdir" >/dev/null 2>&1; then + break + fi + sleep 1 +done +# FIXME: race condition here if user kills between mkdir and trap. +trap "rmdir '$lockdir'; exit 1" 1 2 15 + +# Run the compile. +"$@" +ret=$? + +if test -f "$cofile"; then + mv "$cofile" "$ofile" +elif test -f "${cofile}bj"; then + mv "${cofile}bj" "$ofile" +fi + +rmdir "$lockdir" +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff --git a/FreeRTOS-Plus/CyaSSL/config/config.guess b/FreeRTOS-Plus/CyaSSL/config/config.guess new file mode 100644 index 000000000..396482d6c --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/config/config.guess @@ -0,0 +1,1500 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, +# Inc. + +timestamp='2006-07-02' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + + +# Originally written by Per Bothner . +# Please send patches to . Submit a context +# diff and a properly formatted ChangeLog entry. +# +# This script attempts to guess a canonical system name similar to +# config.sub. If it succeeds, it prints the system name on stdout, and +# exits with 0. Otherwise, it exits with 1. +# +# The plan is that this can be called by configure scripts if you +# don't specify an explicit build system type. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 +Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > $dummy.c ; + for c in cc gcc c89 c99 ; do + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ; set_cc_for_build= ;' + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + case "${UNAME_MACHINE_ARCH}" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently, or will in the future. + case "${UNAME_MACHINE_ARCH}" in + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep __ELF__ >/dev/null + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit ;; + *:SolidBSD:*:*) + echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE="alpha" ;; + "EV4.5 (21064)") + UNAME_MACHINE="alpha" ;; + "LCA4 (21066/21068)") + UNAME_MACHINE="alpha" ;; + "EV5 (21164)") + UNAME_MACHINE="alphaev5" ;; + "EV5.6 (21164A)") + UNAME_MACHINE="alphaev56" ;; + "EV5.6 (21164PC)") + UNAME_MACHINE="alphapca56" ;; + "EV5.7 (21164PC)") + UNAME_MACHINE="alphapca57" ;; + "EV6 (21264)") + UNAME_MACHINE="alphaev6" ;; + "EV6.7 (21264A)") + UNAME_MACHINE="alphaev67" ;; + "EV6.8CB (21264C)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8AL (21264B)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8CX (21264D)") + UNAME_MACHINE="alphaev68" ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE="alphaev69" ;; + "EV7 (21364)") + UNAME_MACHINE="alphaev7" ;; + "EV7.9 (21364A)") + UNAME_MACHINE="alphaev79" ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + exit ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix + exit ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit ;; + arm:riscos:*:*|arm:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + i86pc:SunOS:5.*:*) + echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && + dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`$dummy $dummyarg` && + { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos${UNAME_RELEASE} + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] + then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else + echo i586-dg-dgux${UNAME_RELEASE} + fi + exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit ;; + *:AIX:*:[45]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if [ ${HP_ARCH} = "hppa2.0w" ] + then + eval $set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + grep __LP64__ >/dev/null + then + HP_ARCH="hppa2.0w" + else + HP_ARCH="hppa64" + fi + fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit ;; + 3050*:HI-UX:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 + exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:FreeBSD:*:*) + case ${UNAME_MACHINE} in + pc98) + echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; + i*:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; + x86:Interix*:[3456]*) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + EM64T:Interix*:[3456]*) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? + echo i586-pc-interix + exit ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin + exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + *:GNU:*:*) + # the GNU system + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu + exit ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; + arm*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + cris:Linux:*:*) + echo cris-axis-linux-gnu + exit ;; + crisv32:Linux:*:*) + echo crisv32-axis-linux-gnu + exit ;; + frv:Linux:*:*) + echo frv-unknown-linux-gnu + exit ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + mips:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef mips + #undef mipsel + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=mipsel + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=mips + #else + CPU= + #endif + #endif +EOF + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^CPU/{ + s: ::g + p + }'`" + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + ;; + mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef mips64 + #undef mips64el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=mips64el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=mips64 + #else + CPU= + #endif + #endif +EOF + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^CPU/{ + s: ::g + p + }'`" + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + ;; + or32:Linux:*:*) + echo or32-unknown-linux-gnu + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-gnu + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-gnu + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-gnu ;; + PA8*) echo hppa2.0-unknown-linux-gnu ;; + *) echo hppa-unknown-linux-gnu ;; + esac + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux + exit ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-gnu + exit ;; + x86_64:Linux:*:*) + echo x86_64-unknown-linux-gnu + exit ;; + i*86:Linux:*:*) + # The BFD linker knows what the default object file format is, so + # first see if it will tell us. cd to the root directory to prevent + # problems with other programs or directories called `ld' in the path. + # Set LC_ALL=C to ensure ld outputs messages in English. + ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ + | sed -ne '/supported targets:/!d + s/[ ][ ]*/ /g + s/.*supported targets: *// + s/ .*// + p'` + case "$ld_supported_targets" in + elf32-i386) + TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" + ;; + a.out-i386-linux) + echo "${UNAME_MACHINE}-pc-linux-gnuaout" + exit ;; + coff-i386) + echo "${UNAME_MACHINE}-pc-linux-gnucoff" + exit ;; + "") + # Either a pre-BFD a.out linker (linux-gnuoldld) or + # one that does not give us useful --help. + echo "${UNAME_MACHINE}-pc-linux-gnuoldld" + exit ;; + esac + # Determine whether the default compiler is a.out or elf + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + #ifdef __ELF__ + # ifdef __GLIBC__ + # if __GLIBC__ >= 2 + LIBC=gnu + # else + LIBC=gnulibc1 + # endif + # else + LIBC=gnulibc1 + # endif + #else + #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) + LIBC=gnu + #else + LIBC=gnuaout + #endif + #endif + #ifdef __dietlibc__ + LIBC=dietlibc + #endif +EOF + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^LIBC/{ + s: ::g + p + }'`" + test x"${LIBC}" != x && { + echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + exit + } + test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } + ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit ;; + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + exit ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i386. + echo i386-pc-msdosdjgpp + exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi + exit ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo ${UNAME_MACHINE}-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo ${UNAME_MACHINE}-stratus-vos + exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + case $UNAME_PROCESSOR in + unknown) UNAME_PROCESSOR=powerpc ;; + esac + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = "x86"; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + exit ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; + NSE-?:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = "386"; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo ${UNAME_MACHINE}-unknown-plan9 + exit ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + exit ;; + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; +esac + +#echo '(No uname command or uname output not recognized.)' 1>&2 +#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 + +eval $set_cc_for_build +cat >$dummy.c < +# include +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (__arm) && defined (__acorn) && defined (__unix) + printf ("arm-acorn-riscix\n"); exit (0); +#endif + +#if defined (hp300) && !defined (hpux) + printf ("m68k-hp-bsd\n"); exit (0); +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); + +#endif + +#if defined (vax) +# if !defined (ultrix) +# include +# if defined (BSD) +# if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +# else +# if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# endif +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# else + printf ("vax-dec-ultrix\n"); exit (0); +# endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. + +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } + +# Convex versions that predate uname can use getsysinfo(1) + +if [ -x /usr/convex/getsysinfo ] +then + case `getsysinfo -f cpu_type` in + c1*) + echo c1-convex-bsd + exit ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + c34*) + echo c34-convex-bsd + exit ;; + c38*) + echo c38-convex-bsd + exit ;; + c4*) + echo c4-convex-bsd + exit ;; + esac +fi + +cat >&2 < in order to provide the needed +information to handle your system. + +config.guess timestamp = $timestamp + +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF + +exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/FreeRTOS-Plus/CyaSSL/config/config.sub b/FreeRTOS-Plus/CyaSSL/config/config.sub new file mode 100644 index 000000000..fab0aa355 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/config/config.sub @@ -0,0 +1,1616 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, +# Inc. + +timestamp='2006-09-20' + +# This file is (in principle) common to ALL GNU software. +# The presence of a machine in this file suggests that SOME GNU software +# can handle that machine. It does not imply ALL GNU software can. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + + +# Please send patches to . Submit a context +# diff and a properly formatted ChangeLog entry. +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS + $0 [OPTION] ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 +Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ + uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis | -knuth | -cray) + os= + basic_machine=$1 + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ + | bfin \ + | c4x | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | fr30 | frv \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | mcore \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64vr | mips64vrel \ + | mips64orion | mips64orionel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | mt \ + | msp430 \ + | nios | nios2 \ + | ns16k | ns32k \ + | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ + | pyramid \ + | score \ + | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu | strongarm \ + | tahoe | thumb | tic4x | tic80 | tron \ + | v850 | v850e \ + | we32k \ + | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ + | z8k) + basic_machine=$basic_machine-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12) + # Motorola 68HC11/12. + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + ms1) + basic_machine=mt-unknown + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ + | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ + | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nios-* | nios2-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ + | pyramid-* \ + | romp-* | rs6000-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ + | tahoe-* | thumb-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tron-* \ + | v850-* | v850e-* | vax-* \ + | we32k-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ + | xstormy16-* | xtensa-* \ + | ymp-* \ + | z8k-*) + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + abacus) + basic_machine=abacus-unknown + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16c) + basic_machine=cr16c-unknown + os=-elf + ;; + crds | unos) + basic_machine=m68k-crds + ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; +# I'm not sure what "Sysv32" means. Should this be sysv3.2? + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + mingw32) + basic_machine=i386-pc + os=-mingw32 + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + openrisc | openrisc-*) + basic_machine=or32-unknown + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc) basic_machine=powerpc-unknown + ;; + ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little | ppc64-le | powerpc64-little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rdos) + basic_machine=i386-pc + os=-rdos + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparclite-wrs | simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tic54x | c54x*) + basic_machine=tic54x-unknown + os=-coff + ;; + tic55x | c55x*) + basic_machine=tic55x-unknown + os=-coff + ;; + tic6x | c6x*) + basic_machine=tic6x-unknown + os=-coff + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + xbox) + basic_machine=i686-pc + os=-mingw32 + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + romp) + basic_machine=romp-ibm + ;; + mmix) + basic_machine=mmix-knuth + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -openbsd* | -solidbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -os400*) + os=-os400 + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -syllable*) + os=-syllable + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -nova*) + os=-rtmk-nova + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -tpf*) + os=-tpf + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -aros*) + os=-aros + ;; + -kaos*) + os=-kaos + ;; + -zvmoe) + os=-zvmoe + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + c4x-* | tic4x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + # This also exists in the configure program, but was not the + # default. + # os=-sunos4 + ;; + m68*-cisco) + os=-aout + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-haiku) + os=-haiku + ;; + *-ibm) + os=-aix + ;; + *-knuth) + os=-mmixware + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -os400*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -tpf*) + vendor=ibm + ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/FreeRTOS-Plus/CyaSSL/config/depcomp b/FreeRTOS-Plus/CyaSSL/config/depcomp new file mode 100644 index 000000000..ca5ea4e1e --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/config/depcomp @@ -0,0 +1,584 @@ +#! /bin/sh +# depcomp - compile a program generating dependencies as side-effects + +scriptversion=2006-10-15.18 + +# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006 Free Software +# Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Originally written by Alexandre Oliva . + +case $1 in + '') + echo "$0: No command. Try \`$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: depcomp [--help] [--version] PROGRAM [ARGS] + +Run PROGRAMS ARGS to compile a file, generating dependencies +as side-effects. + +Environment variables: + depmode Dependency tracking mode. + source Source file read by `PROGRAMS ARGS'. + object Object file output by `PROGRAMS ARGS'. + DEPDIR directory where to store dependencies. + depfile Dependency file to output. + tmpdepfile Temporary file to use when outputing dependencies. + libtool Whether libtool is used (yes/no). + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "depcomp $scriptversion" + exit $? + ;; +esac + +if test -z "$depmode" || test -z "$source" || test -z "$object"; then + echo "depcomp: Variables source, object and depmode must be set" 1>&2 + exit 1 +fi + +# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. +depfile=${depfile-`echo "$object" | + sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} +tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} + +rm -f "$tmpdepfile" + +# Some modes work just like other modes, but use different flags. We +# parameterize here, but still list the modes in the big case below, +# to make depend.m4 easier to write. Note that we *cannot* use a case +# here, because this file can only contain one case statement. +if test "$depmode" = hp; then + # HP compiler uses -M and no extra arg. + gccflag=-M + depmode=gcc +fi + +if test "$depmode" = dashXmstdout; then + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout +fi + +case "$depmode" in +gcc3) +## gcc 3 implements dependency tracking that does exactly what +## we want. Yay! Note: for some reason libtool 1.4 doesn't like +## it if -MD -MP comes after the -MF stuff. Hmm. +## Unfortunately, FreeBSD c89 acceptance of flags depends upon +## the command line argument order; so add the flags where they +## appear in depend2.am. Note that the slowdown incurred here +## affects only configure: in makefiles, %FASTDEP% shortcuts this. + for arg + do + case $arg in + -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; + *) set fnord "$@" "$arg" ;; + esac + shift # fnord + shift # $arg + done + "$@" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + mv "$tmpdepfile" "$depfile" + ;; + +gcc) +## There are various ways to get dependency output from gcc. Here's +## why we pick this rather obscure method: +## - Don't want to use -MD because we'd like the dependencies to end +## up in a subdir. Having to rename by hand is ugly. +## (We might end up doing this anyway to support other compilers.) +## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like +## -MM, not -M (despite what the docs say). +## - Using -M directly means running the compiler twice (even worse +## than renaming). + if test -z "$gccflag"; then + gccflag=-MD, + fi + "$@" -Wp,"$gccflag$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz +## The second -e expression handles DOS-style file names with drive letters. + sed -e 's/^[^:]*: / /' \ + -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" +## This next piece of magic avoids the `deleted header file' problem. +## The problem is that when a header file which appears in a .P file +## is deleted, the dependency causes make to die (because there is +## typically no way to rebuild the header). We avoid this by adding +## dummy dependencies for each header file. Too bad gcc doesn't do +## this for us directly. + tr ' ' ' +' < "$tmpdepfile" | +## Some versions of gcc put a space before the `:'. On the theory +## that the space means something, we add a space to the output as +## well. +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +sgi) + if test "$libtool" = yes; then + "$@" "-Wp,-MDupdate,$tmpdepfile" + else + "$@" -MDupdate "$tmpdepfile" + fi + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + + if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files + echo "$object : \\" > "$depfile" + + # Clip off the initial element (the dependent). Don't try to be + # clever and replace this with sed code, as IRIX sed won't handle + # lines with more than a fixed number of characters (4096 in + # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; + # the IRIX cc adds comments like `#:fec' to the end of the + # dependency line. + tr ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ + tr ' +' ' ' >> $depfile + echo >> $depfile + + # The second pass generates a dummy entry for each header file. + tr ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> $depfile + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +aix) + # The C for AIX Compiler uses -M and outputs the dependencies + # in a .u file. In older versions, this file always lives in the + # current directory. Also, the AIX compiler puts `$object:' at the + # start of each line; $object doesn't have directory information. + # Version 6 uses the directory in both cases. + stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` + tmpdepfile="$stripped.u" + if test "$libtool" = yes; then + "$@" -Wc,-M + else + "$@" -M + fi + stat=$? + + if test -f "$tmpdepfile"; then : + else + stripped=`echo "$stripped" | sed 's,^.*/,,'` + tmpdepfile="$stripped.u" + fi + + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + + if test -f "$tmpdepfile"; then + outname="$stripped.o" + # Each line is of the form `foo.o: dependent.h'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" + sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +icc) + # Intel's C compiler understands `-MD -MF file'. However on + # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c + # ICC 7.0 will fill foo.d with something like + # foo.o: sub/foo.c + # foo.o: sub/foo.h + # which is wrong. We want: + # sub/foo.o: sub/foo.c + # sub/foo.o: sub/foo.h + # sub/foo.c: + # sub/foo.h: + # ICC 7.1 will output + # foo.o: sub/foo.c sub/foo.h + # and will wrap long lines using \ : + # foo.o: sub/foo.c ... \ + # sub/foo.h ... \ + # ... + + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each line is of the form `foo.o: dependent.h', + # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | + sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp2) + # The "hp" stanza above does not work with aCC (C++) and HP's ia64 + # compilers, which have integrated preprocessors. The correct option + # to use with these is +Maked; it writes dependencies to a file named + # 'foo.d', which lands next to the object file, wherever that + # happens to be. + # Much of this is similar to the tru64 case; see comments there. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir.libs/$base.d + "$@" -Wc,+Maked + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + "$@" +Maked + fi + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" + # Add `dependent.h:' lines. + sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile" + else + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" "$tmpdepfile2" + ;; + +tru64) + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in `foo.d' instead, so we check for that too. + # Subdirectories are respected. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + + if test "$libtool" = yes; then + # With Tru64 cc, shared objects can also be used to make a + # static library. This mechanism is used in libtool 1.4 series to + # handle both shared and static libraries in a single compilation. + # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. + # + # With libtool 1.5 this exception was removed, and libtool now + # generates 2 separate objects for the 2 libraries. These two + # compilations output dependencies in $dir.libs/$base.o.d and + # in $dir$base.o.d. We have to check for both files, because + # one of the two compilations can be disabled. We should prefer + # $dir$base.o.d over $dir.libs/$base.o.d because the latter is + # automatically cleaned when .libs/ is deleted, while ignoring + # the former would cause a distcleancheck panic. + tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 + tmpdepfile2=$dir$base.o.d # libtool 1.5 + tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 + tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 + "$@" -Wc,-MD + else + tmpdepfile1=$dir$base.o.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + tmpdepfile4=$dir$base.d + "$@" -MD + fi + + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + # That's a tab and a space in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + else + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +#nosideeffect) + # This comment above is used by automake to tell side-effect + # dependency tracking mechanisms from slower ones. + +dashmstdout) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test $1 != '--mode=compile'; do + shift + done + shift + fi + + # Remove `-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + test -z "$dashmflag" && dashmflag=-M + # Require at least two characters before searching for `:' + # in the target name. This is to cope with DOS-style filenames: + # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. + "$@" $dashmflag | + sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + tr ' ' ' +' < "$tmpdepfile" | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +dashXmstdout) + # This case only exists to satisfy depend.m4. It is never actually + # run, as this mode is specially recognized in the preamble. + exit 1 + ;; + +makedepend) + "$@" || exit $? + # Remove any Libtool call + if test "$libtool" = yes; then + while test $1 != '--mode=compile'; do + shift + done + shift + fi + # X makedepend + shift + cleared=no + for arg in "$@"; do + case $cleared in + no) + set ""; shift + cleared=yes ;; + esac + case "$arg" in + -D*|-I*) + set fnord "$@" "$arg"; shift ;; + # Strip any option that makedepend may not understand. Remove + # the object too, otherwise makedepend will parse it as a source file. + -*|$object) + ;; + *) + set fnord "$@" "$arg"; shift ;; + esac + done + obj_suffix="`echo $object | sed 's/^.*\././'`" + touch "$tmpdepfile" + ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + sed '1,2d' "$tmpdepfile" | tr ' ' ' +' | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" "$tmpdepfile".bak + ;; + +cpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test $1 != '--mode=compile'; do + shift + done + shift + fi + + # Remove `-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + "$@" -E | + sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | + sed '$ s: \\$::' > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + cat < "$tmpdepfile" >> "$depfile" + sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvisualcpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o, + # because we must use -o when running libtool. + "$@" || exit $? + IFS=" " + for arg + do + case "$arg" in + "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") + set fnord "$@" + shift + shift + ;; + *) + set fnord "$@" "$arg" + shift + shift + ;; + esac + done + "$@" -E | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" + echo " " >> "$depfile" + . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +none) + exec "$@" + ;; + +*) + echo "Unknown depmode $depmode" 1>&2 + exit 1 + ;; +esac + +exit 0 + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff --git a/FreeRTOS-Plus/CyaSSL/config/install-sh b/FreeRTOS-Plus/CyaSSL/config/install-sh new file mode 100644 index 000000000..4fbbae7b7 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/config/install-sh @@ -0,0 +1,507 @@ +#!/bin/sh +# install - install a program, script, or datafile + +scriptversion=2006-10-14.15 + +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. +# +# Copyright (C) 1994 X Consortium +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# `make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. + +nl=' +' +IFS=" "" $nl" + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit="${DOITPROG-}" +if test -z "$doit"; then + doit_exec=exec +else + doit_exec=$doit +fi + +# Put in absolute file names if you don't have them in your path; +# or use environment vars. + +mvprog="${MVPROG-mv}" +cpprog="${CPPROG-cp}" +chmodprog="${CHMODPROG-chmod}" +chownprog="${CHOWNPROG-chown}" +chgrpprog="${CHGRPPROG-chgrp}" +stripprog="${STRIPPROG-strip}" +rmprog="${RMPROG-rm}" +mkdirprog="${MKDIRPROG-mkdir}" + +posix_glob= +posix_mkdir= + +# Desired mode of installed file. +mode=0755 + +chmodcmd=$chmodprog +chowncmd= +chgrpcmd= +stripcmd= +rmcmd="$rmprog -f" +mvcmd="$mvprog" +src= +dst= +dir_arg= +dstarg= +no_target_directory= + +usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE + or: $0 [OPTION]... SRCFILES... DIRECTORY + or: $0 [OPTION]... -t DIRECTORY SRCFILES... + or: $0 [OPTION]... -d DIRECTORIES... + +In the 1st form, copy SRCFILE to DSTFILE. +In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. +In the 4th, create DIRECTORIES. + +Options: +-c (ignored) +-d create directories instead of installing files. +-g GROUP $chgrpprog installed files to GROUP. +-m MODE $chmodprog installed files to MODE. +-o USER $chownprog installed files to USER. +-s $stripprog installed files. +-t DIRECTORY install into DIRECTORY. +-T report an error if DSTFILE is a directory. +--help display this help and exit. +--version display version info and exit. + +Environment variables override the default commands: + CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG +" + +while test $# -ne 0; do + case $1 in + -c) shift + continue;; + + -d) dir_arg=true + shift + continue;; + + -g) chgrpcmd="$chgrpprog $2" + shift + shift + continue;; + + --help) echo "$usage"; exit $?;; + + -m) mode=$2 + shift + shift + case $mode in + *' '* | *' '* | *' +'* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + continue;; + + -o) chowncmd="$chownprog $2" + shift + shift + continue;; + + -s) stripcmd=$stripprog + shift + continue;; + + -t) dstarg=$2 + shift + shift + continue;; + + -T) no_target_directory=true + shift + continue;; + + --version) echo "$0 $scriptversion"; exit $?;; + + --) shift + break;; + + -*) echo "$0: invalid option: $1" >&2 + exit 1;; + + *) break;; + esac +done + +if test $# -ne 0 && test -z "$dir_arg$dstarg"; then + # When -d is used, all remaining arguments are directories to create. + # When -t is used, the destination is already specified. + # Otherwise, the last argument is the destination. Remove it from $@. + for arg + do + if test -n "$dstarg"; then + # $@ is not empty: it contains at least $arg. + set fnord "$@" "$dstarg" + shift # fnord + fi + shift # arg + dstarg=$arg + done +fi + +if test $# -eq 0; then + if test -z "$dir_arg"; then + echo "$0: no input file specified." >&2 + exit 1 + fi + # It's OK to call `install-sh -d' without argument. + # This can happen when creating conditional directories. + exit 0 +fi + +if test -z "$dir_arg"; then + trap '(exit $?); exit' 1 2 13 15 + + # Set umask so as not to create temps with too-generous modes. + # However, 'strip' requires both read and write access to temps. + case $mode in + # Optimize common cases. + *644) cp_umask=133;; + *755) cp_umask=22;; + + *[0-7]) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw='% 200' + fi + cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; + *) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw=,u+rw + fi + cp_umask=$mode$u_plus_rw;; + esac +fi + +for src +do + # Protect names starting with `-'. + case $src in + -*) src=./$src ;; + esac + + if test -n "$dir_arg"; then + dst=$src + dstdir=$dst + test -d "$dstdir" + dstdir_status=$? + else + + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command + # might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. + if test ! -f "$src" && test ! -d "$src"; then + echo "$0: $src does not exist." >&2 + exit 1 + fi + + if test -z "$dstarg"; then + echo "$0: no destination specified." >&2 + exit 1 + fi + + dst=$dstarg + # Protect names starting with `-'. + case $dst in + -*) dst=./$dst ;; + esac + + # If destination is a directory, append the input filename; won't work + # if double slashes aren't ignored. + if test -d "$dst"; then + if test -n "$no_target_directory"; then + echo "$0: $dstarg: Is a directory" >&2 + exit 1 + fi + dstdir=$dst + dst=$dstdir/`basename "$src"` + dstdir_status=0 + else + # Prefer dirname, but fall back on a substitute if dirname fails. + dstdir=` + (dirname "$dst") 2>/dev/null || + expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$dst" : 'X\(//\)[^/]' \| \ + X"$dst" : 'X\(//\)$' \| \ + X"$dst" : 'X\(/\)' \| . 2>/dev/null || + echo X"$dst" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q' + ` + + test -d "$dstdir" + dstdir_status=$? + fi + fi + + obsolete_mkdir_used=false + + if test $dstdir_status != 0; then + case $posix_mkdir in + '') + # Create intermediate dirs using mode 755 as modified by the umask. + # This is like FreeBSD 'install' as of 1997-10-28. + umask=`umask` + case $stripcmd.$umask in + # Optimize common cases. + *[2367][2367]) mkdir_umask=$umask;; + .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; + + *[0-7]) + mkdir_umask=`expr $umask + 22 \ + - $umask % 100 % 40 + $umask % 20 \ + - $umask % 10 % 4 + $umask % 2 + `;; + *) mkdir_umask=$umask,go-w;; + esac + + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + case $umask in + *[123567][0-7][0-7]) + # POSIX mkdir -p sets u+wx bits regardless of umask, which + # is incompatible with FreeBSD 'install' when (umask & 300) != 0. + ;; + *) + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + + if (umask $mkdir_umask && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writeable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + ls_ld_tmpdir=`ls -ld "$tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/d" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null + fi + trap '' 0;; + esac;; + esac + + if + $posix_mkdir && ( + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + ) + then : + else + + # The umask is ridiculous, or mkdir does not conform to POSIX, + # or it failed possibly due to a race condition. Create the + # directory the slow way, step by step, checking for races as we go. + + case $dstdir in + /*) prefix=/ ;; + -*) prefix=./ ;; + *) prefix= ;; + esac + + case $posix_glob in + '') + if (set -f) 2>/dev/null; then + posix_glob=true + else + posix_glob=false + fi ;; + esac + + oIFS=$IFS + IFS=/ + $posix_glob && set -f + set fnord $dstdir + shift + $posix_glob && set +f + IFS=$oIFS + + prefixes= + + for d + do + test -z "$d" && continue + + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask=$mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ + done + + if test -n "$prefixes"; then + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true + fi + fi + fi + + if test -n "$dir_arg"; then + { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && + { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || + test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 + else + + # Make a couple of temp file names in the proper directory. + dsttmp=$dstdir/_inst.$$_ + rmtmp=$dstdir/_rm.$$_ + + # Trap to clean up those temp files at exit. + trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 + + # Copy the file name to the temp name. + (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && + + # and set any options; do chmod last to preserve setuid bits. + # + # If any of these fail, we abort the whole thing. If we want to + # ignore errors from any of these, just make sure not to ignore + # errors from the above "$doit $cpprog $src $dsttmp" command. + # + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ + && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ + && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ + && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && + + # Now rename the file to the real destination. + { $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null \ + || { + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not + # support -f. + + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + if test -f "$dst"; then + $doit $rmcmd -f "$dst" 2>/dev/null \ + || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null \ + && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }; }\ + || { + echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + else + : + fi + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" + } + } || exit 1 + + trap '' 0 + fi +done + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff --git a/FreeRTOS-Plus/CyaSSL/config/ltmain.sh b/FreeRTOS-Plus/CyaSSL/config/ltmain.sh new file mode 100644 index 000000000..c856b8d4b --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/config/ltmain.sh @@ -0,0 +1,8745 @@ +# Generated from ltmain.m4sh. + +# libtool (GNU libtool) 2.2.10 +# Written by Gordon Matzigkeit , 1996 + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, +# 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, +# or obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +# Usage: $progname [OPTION]... [MODE-ARG]... +# +# Provide generalized library-building support services. +# +# --config show all configuration variables +# --debug enable verbose shell tracing +# -n, --dry-run display commands without modifying any files +# --features display basic configuration information and exit +# --mode=MODE use operation mode MODE +# --preserve-dup-deps don't remove duplicate dependency libraries +# --quiet, --silent don't print informational messages +# --no-quiet, --no-silent +# print informational messages (default) +# --tag=TAG use configuration variables from tag TAG +# -v, --verbose print more informational messages than default +# --no-verbose don't print the extra informational messages +# --version print version information +# -h, --help, --help-all print short, long, or detailed help message +# +# MODE must be one of the following: +# +# clean remove files from the build directory +# compile compile a source file into a libtool object +# execute automatically set library path, then run a program +# finish complete the installation of libtool libraries +# install install libraries or executables +# link create a library or an executable +# uninstall remove libraries from an installed directory +# +# MODE-ARGS vary depending on the MODE. When passed as first option, +# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. +# Try `$progname --help --mode=MODE' for a more detailed description of MODE. +# +# When reporting a bug, please describe a test case to reproduce it and +# include the following information: +# +# host-triplet: $host +# shell: $SHELL +# compiler: $LTCC +# compiler flags: $LTCFLAGS +# linker: $LD (gnu? $with_gnu_ld) +# $progname: (GNU libtool) 2.2.10 +# automake: $automake_version +# autoconf: $autoconf_version +# +# Report bugs to . + +PROGRAM=libtool +PACKAGE=libtool +VERSION=2.2.10 +TIMESTAMP="" +package_revision=1.3175 + +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' +} + +# NLS nuisances: We save the old values to restore during execute mode. +lt_user_locale= +lt_safe_locale= +for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES +do + eval "if test \"\${$lt_var+set}\" = set; then + save_$lt_var=\$$lt_var + $lt_var=C + export $lt_var + lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" + lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" + fi" +done +LC_ALL=C +LANGUAGE=C +export LANGUAGE LC_ALL + +$lt_unset CDPATH + + +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath="$0" + + + +: ${CP="cp -f"} +test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} +: ${EGREP="/usr/bin/grep -E"} +: ${FGREP="/usr/bin/grep -F"} +: ${GREP="/usr/bin/grep"} +: ${LN_S="ln -s"} +: ${MAKE="make"} +: ${MKDIR="mkdir"} +: ${MV="mv -f"} +: ${RM="rm -f"} +: ${SED="/usr/bin/sed"} +: ${SHELL="${CONFIG_SHELL-/bin/sh}"} +: ${Xsed="$SED -e 1s/^X//"} + +# Global variables: +EXIT_SUCCESS=0 +EXIT_FAILURE=1 +EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. +EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. + +exit_status=$EXIT_SUCCESS + +# Make sure IFS has a sensible default +lt_nl=' +' +IFS=" $lt_nl" + +dirname="s,/[^/]*$,," +basename="s,^.*/,," + +# func_dirname_and_basename file append nondir_replacement +# perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# Implementation must be kept synchronized with func_dirname +# and func_basename. For efficiency, we do not delegate to +# those functions but instead duplicate the functionality here. +func_dirname_and_basename () +{ + # Extract subdirectory from the argument. + func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi + func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` +} + +# Generated shell functions inserted here. + +# These SED scripts presuppose an absolute path with a trailing slash. +pathcar='s,^/\([^/]*\).*$,\1,' +pathcdr='s,^/[^/]*,,' +removedotparts=':dotsl + s@/\./@/@g + t dotsl + s,/\.$,/,' +collapseslashes='s@/\{1,\}@/@g' +finalslash='s,/*$,/,' + +# func_normal_abspath PATH +# Remove doubled-up and trailing slashes, "." path components, +# and cancel out any ".." path components in PATH after making +# it an absolute path. +# value returned in "$func_normal_abspath_result" +func_normal_abspath () +{ + # Start from root dir and reassemble the path. + func_normal_abspath_result= + func_normal_abspath_tpath=$1 + func_normal_abspath_altnamespace= + case $func_normal_abspath_tpath in + "") + # Empty path, that just means $cwd. + func_stripname '' '/' "`pwd`" + func_normal_abspath_result=$func_stripname_result + return + ;; + # The next three entries are used to spot a run of precisely + # two leading slashes without using negated character classes; + # we take advantage of case's first-match behaviour. + ///*) + # Unusual form of absolute path, do nothing. + ;; + //*) + # Not necessarily an ordinary path; POSIX reserves leading '//' + # and for example Cygwin uses it to access remote file shares + # over CIFS/SMB, so we conserve a leading double slash if found. + func_normal_abspath_altnamespace=/ + ;; + /*) + # Absolute path, do nothing. + ;; + *) + # Relative path, prepend $cwd. + func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath + ;; + esac + # Cancel out all the simple stuff to save iterations. We also want + # the path to end with a slash for ease of parsing, so make sure + # there is one (and only one) here. + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` + while :; do + # Processed it all yet? + if test "$func_normal_abspath_tpath" = / ; then + # If we ascended to the root using ".." the result may be empty now. + if test -z "$func_normal_abspath_result" ; then + func_normal_abspath_result=/ + fi + break + fi + func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$pathcar"` + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$pathcdr"` + # Figure out what to do with it + case $func_normal_abspath_tcomponent in + "") + # Trailing empty path component, ignore it. + ;; + ..) + # Parent dir; strip last assembled component from result. + func_dirname "$func_normal_abspath_result" + func_normal_abspath_result=$func_dirname_result + ;; + *) + # Actual path component, append it. + func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent + ;; + esac + done + # Restore leading double-slash if one was found on entry. + func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result +} + +# func_relative_path SRCDIR DSTDIR +# generates a relative path from SRCDIR to DSTDIR, with a trailing +# slash if non-empty, suitable for immediately appending a filename +# without needing to append a separator. +# value returned in "$func_relative_path_result" +func_relative_path () +{ + func_relative_path_result= + func_normal_abspath "$1" + func_relative_path_tlibdir=$func_normal_abspath_result + func_normal_abspath "$2" + func_relative_path_tbindir=$func_normal_abspath_result + + # Ascend the tree starting from libdir + while :; do + # check if we have found a prefix of bindir + case $func_relative_path_tbindir in + $func_relative_path_tlibdir) + # found an exact match + func_relative_path_tcancelled= + break + ;; + $func_relative_path_tlibdir*) + # found a matching prefix + func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" + func_relative_path_tcancelled=$func_stripname_result + if test -z "$func_relative_path_result"; then + func_relative_path_result=. + fi + break + ;; + *) + func_dirname $func_relative_path_tlibdir + func_relative_path_tlibdir=${func_dirname_result} + if test "x$func_relative_path_tlibdir" = x ; then + # Have to descend all the way to the root! + func_relative_path_result=../$func_relative_path_result + func_relative_path_tcancelled=$func_relative_path_tbindir + break + fi + func_relative_path_result=../$func_relative_path_result + ;; + esac + done + + # Now calculate path; take care to avoid doubling-up slashes. + func_stripname '' '/' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + func_stripname '/' '/' "$func_relative_path_tcancelled" + if test "x$func_stripname_result" != x ; then + func_relative_path_result=${func_relative_path_result}/${func_stripname_result} + fi + + # Normalisation. If bindir is libdir, return empty string, + # else relative path ending with a slash; either way, target + # file name can be directly appended. + if test ! -z "$func_relative_path_result"; then + func_stripname './' '' "$func_relative_path_result/" + func_relative_path_result=$func_stripname_result + fi +} + +# The name of this program: +func_dirname_and_basename "$progpath" +progname=$func_basename_result + +# Make sure we have an absolute path for reexecution: +case $progpath in + [\\/]*|[A-Za-z]:\\*) ;; + *[\\/]*) + progdir=$func_dirname_result + progdir=`cd "$progdir" && pwd` + progpath="$progdir/$progname" + ;; + *) + save_IFS="$IFS" + IFS=: + for progdir in $PATH; do + IFS="$save_IFS" + test -x "$progdir/$progname" && break + done + IFS="$save_IFS" + test -n "$progdir" || progdir=`pwd` + progpath="$progdir/$progname" + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed="${SED}"' -e 1s/^X//' +sed_quote_subst='s/\([`"$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Re-`\' parameter expansions in output of double_quote_subst that were +# `\'-ed in input to the same. If an odd number of `\' preceded a '$' +# in input to double_quote_subst, that '$' was protected from expansion. +# Since each input `\' is now two `\'s, look for any number of runs of +# four `\'s followed by two `\'s and then a '$'. `\' that '$'. +bs='\\' +bs2='\\\\' +bs4='\\\\\\\\' +dollar='\$' +sed_double_backslash="\ + s/$bs4/&\\ +/g + s/^$bs2$dollar/$bs&/ + s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g + s/\n//g" + +# Standard options: +opt_dry_run=false +opt_help=false +opt_quiet=false +opt_verbose=false +opt_warning=: + +# func_echo arg... +# Echo program name prefixed message, along with the current mode +# name if it has been set yet. +func_echo () +{ + $ECHO "$progname${mode+: }$mode: $*" +} + +# func_verbose arg... +# Echo program name prefixed message in verbose mode only. +func_verbose () +{ + $opt_verbose && func_echo ${1+"$@"} + + # A bug in bash halts the script if the last line of a function + # fails when set -e is in force, so we need another command to + # work around that: + : +} + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + +# func_error arg... +# Echo program name prefixed message to standard error. +func_error () +{ + $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 +} + +# func_warning arg... +# Echo program name prefixed warning message to standard error. +func_warning () +{ + $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 + + # bash bug again: + : +} + +# func_fatal_error arg... +# Echo program name prefixed message to standard error, and exit. +func_fatal_error () +{ + func_error ${1+"$@"} + exit $EXIT_FAILURE +} + +# func_fatal_help arg... +# Echo program name prefixed message to standard error, followed by +# a help hint, and exit. +func_fatal_help () +{ + func_error ${1+"$@"} + func_fatal_error "$help" +} +help="Try \`$progname --help' for more information." ## default + + +# func_grep expression filename +# Check whether EXPRESSION matches any line of FILENAME, without output. +func_grep () +{ + $GREP "$1" "$2" >/dev/null 2>&1 +} + + +# func_mkdir_p directory-path +# Make sure the entire path to DIRECTORY-PATH is available. +func_mkdir_p () +{ + my_directory_path="$1" + my_dir_list= + + if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then + + # Protect directory names starting with `-' + case $my_directory_path in + -*) my_directory_path="./$my_directory_path" ;; + esac + + # While some portion of DIR does not yet exist... + while test ! -d "$my_directory_path"; do + # ...make a list in topmost first order. Use a colon delimited + # list incase some portion of path contains whitespace. + my_dir_list="$my_directory_path:$my_dir_list" + + # If the last portion added has no slash in it, the list is done + case $my_directory_path in */*) ;; *) break ;; esac + + # ...otherwise throw away the child directory and loop + my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` + done + my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` + + save_mkdir_p_IFS="$IFS"; IFS=':' + for my_dir in $my_dir_list; do + IFS="$save_mkdir_p_IFS" + # mkdir can fail with a `File exist' error if two processes + # try to create one of the directories concurrently. Don't + # stop in that case! + $MKDIR "$my_dir" 2>/dev/null || : + done + IFS="$save_mkdir_p_IFS" + + # Bail out if we (or some other process) failed to create a directory. + test -d "$my_directory_path" || \ + func_fatal_error "Failed to create \`$1'" + fi +} + + +# func_mktempdir [string] +# Make a temporary directory that won't clash with other running +# libtool processes, and avoids race conditions if possible. If +# given, STRING is the basename for that directory. +func_mktempdir () +{ + my_template="${TMPDIR-/tmp}/${1-$progname}" + + if test "$opt_dry_run" = ":"; then + # Return a directory name, but don't create it in dry-run mode + my_tmpdir="${my_template}-$$" + else + + # If mktemp works, use that first and foremost + my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` + + if test ! -d "$my_tmpdir"; then + # Failing that, at least try and use $RANDOM to avoid a race + my_tmpdir="${my_template}-${RANDOM-0}$$" + + save_mktempdir_umask=`umask` + umask 0077 + $MKDIR "$my_tmpdir" + umask $save_mktempdir_umask + fi + + # If we're not in dry-run mode, bomb out on failure + test -d "$my_tmpdir" || \ + func_fatal_error "cannot create temporary directory \`$my_tmpdir'" + fi + + $ECHO "$my_tmpdir" +} + + +# func_quote_for_eval arg +# Aesthetically quote ARG to be evaled later. +# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT +# is double-quoted, suitable for a subsequent eval, whereas +# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters +# which are still active within double quotes backslashified. +func_quote_for_eval () +{ + case $1 in + *[\\\`\"\$]*) + func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; + *) + func_quote_for_eval_unquoted_result="$1" ;; + esac + + case $func_quote_for_eval_unquoted_result in + # Double-quote args containing shell metacharacters to delay + # word splitting, command substitution and and variable + # expansion for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" + ;; + *) + func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" + esac +} + + +# func_quote_for_expand arg +# Aesthetically quote ARG to be evaled later; same as above, +# but do not quote variable references. +func_quote_for_expand () +{ + case $1 in + *[\\\`\"]*) + my_arg=`$ECHO "$1" | $SED \ + -e "$double_quote_subst" -e "$sed_double_backslash"` ;; + *) + my_arg="$1" ;; + esac + + case $my_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting and command substitution for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + my_arg="\"$my_arg\"" + ;; + esac + + func_quote_for_expand_result="$my_arg" +} + + +# func_show_eval cmd [fail_exp] +# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. +func_show_eval () +{ + my_cmd="$1" + my_fail_exp="${2-:}" + + ${opt_silent-false} || { + func_quote_for_expand "$my_cmd" + eval "func_echo $func_quote_for_expand_result" + } + + if ${opt_dry_run-false}; then :; else + eval "$my_cmd" + my_status=$? + if test "$my_status" -eq 0; then :; else + eval "(exit $my_status); $my_fail_exp" + fi + fi +} + + +# func_show_eval_locale cmd [fail_exp] +# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. Use the saved locale for evaluation. +func_show_eval_locale () +{ + my_cmd="$1" + my_fail_exp="${2-:}" + + ${opt_silent-false} || { + func_quote_for_expand "$my_cmd" + eval "func_echo $func_quote_for_expand_result" + } + + if ${opt_dry_run-false}; then :; else + eval "$lt_user_locale + $my_cmd" + my_status=$? + eval "$lt_safe_locale" + if test "$my_status" -eq 0; then :; else + eval "(exit $my_status); $my_fail_exp" + fi + fi +} + + +# func_version +# Echo version message to standard output and exit. +func_version () +{ + $SED -n '/(C)/!b go + :more + /\./!{ + N + s/\n# / / + b more + } + :go + /^# '$PROGRAM' (GNU /,/# warranty; / { + s/^# // + s/^# *$// + s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ + p + }' < "$progpath" + exit $? +} + +# func_usage +# Echo short help message to standard output and exit. +func_usage () +{ + $SED -n '/^# Usage:/,/^# *.*--help/ { + s/^# // + s/^# *$// + s/\$progname/'$progname'/ + p + }' < "$progpath" + echo + $ECHO "run \`$progname --help | more' for full usage" + exit $? +} + +# func_help [NOEXIT] +# Echo long help message to standard output and exit, +# unless 'noexit' is passed as argument. +func_help () +{ + $SED -n '/^# Usage:/,/# Report bugs to/ { + s/^# // + s/^# *$// + s*\$progname*'$progname'* + s*\$host*'"$host"'* + s*\$SHELL*'"$SHELL"'* + s*\$LTCC*'"$LTCC"'* + s*\$LTCFLAGS*'"$LTCFLAGS"'* + s*\$LD*'"$LD"'* + s/\$with_gnu_ld/'"$with_gnu_ld"'/ + s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ + s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ + p + }' < "$progpath" + ret=$? + if test -z "$1"; then + exit $ret + fi +} + +# func_missing_arg argname +# Echo program name prefixed message to standard error and set global +# exit_cmd. +func_missing_arg () +{ + func_error "missing argument for $1." + exit_cmd=exit +} + +exit_cmd=: + + + + + + +magic="%%%MAGIC variable%%%" +magic_exe="%%%MAGIC EXE variable%%%" + +# Global variables. +# $mode is unset +nonopt= +execute_dlfiles= +preserve_args= +lo2o="s/\\.lo\$/.${objext}/" +o2lo="s/\\.${objext}\$/.lo/" +extracted_archives= +extracted_serial=0 + +opt_dry_run=false +opt_duplicate_deps=false +opt_silent=false +opt_debug=: + +# If this variable is set in any of the actions, the command in it +# will be execed at the end. This prevents here-documents from being +# left over by shells. +exec_cmd= + +# func_fatal_configuration arg... +# Echo program name prefixed message to standard error, followed by +# a configuration failure hint, and exit. +func_fatal_configuration () +{ + func_error ${1+"$@"} + func_error "See the $PACKAGE documentation for more information." + func_fatal_error "Fatal configuration error." +} + + +# func_config +# Display the configuration for all the tags in this script. +func_config () +{ + re_begincf='^# ### BEGIN LIBTOOL' + re_endcf='^# ### END LIBTOOL' + + # Default configuration. + $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" + + # Now print the configurations for the tags. + for tagname in $taglist; do + $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" + done + + exit $? +} + +# func_features +# Display the features supported by this script. +func_features () +{ + echo "host: $host" + if test "$build_libtool_libs" = yes; then + echo "enable shared libraries" + else + echo "disable shared libraries" + fi + if test "$build_old_libs" = yes; then + echo "enable static libraries" + else + echo "disable static libraries" + fi + + exit $? +} + +# func_enable_tag tagname +# Verify that TAGNAME is valid, and either flag an error and exit, or +# enable the TAGNAME tag. We also add TAGNAME to the global $taglist +# variable here. +func_enable_tag () +{ + # Global variable: + tagname="$1" + + re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" + re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" + sed_extractcf="/$re_begincf/,/$re_endcf/p" + + # Validate tagname. + case $tagname in + *[!-_A-Za-z0-9,/]*) + func_fatal_error "invalid tag name: $tagname" + ;; + esac + + # Don't test for the "default" C tag, as we know it's + # there but not specially marked. + case $tagname in + CC) ;; + *) + if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then + taglist="$taglist $tagname" + + # Evaluate the configuration. Be careful to quote the path + # and the sed script, to avoid splitting on whitespace, but + # also don't use non-portable quotes within backquotes within + # quotes we have to do it in 2 steps: + extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` + eval "$extractedcf" + else + func_error "ignoring unknown tag $tagname" + fi + ;; + esac +} + +# Parse options once, thoroughly. This comes as soon as possible in +# the script to make things like `libtool --version' happen quickly. +{ + + # Shorthand for --mode=foo, only valid as the first argument + case $1 in + clean|clea|cle|cl) + shift; set dummy --mode clean ${1+"$@"}; shift + ;; + compile|compil|compi|comp|com|co|c) + shift; set dummy --mode compile ${1+"$@"}; shift + ;; + execute|execut|execu|exec|exe|ex|e) + shift; set dummy --mode execute ${1+"$@"}; shift + ;; + finish|finis|fini|fin|fi|f) + shift; set dummy --mode finish ${1+"$@"}; shift + ;; + install|instal|insta|inst|ins|in|i) + shift; set dummy --mode install ${1+"$@"}; shift + ;; + link|lin|li|l) + shift; set dummy --mode link ${1+"$@"}; shift + ;; + uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) + shift; set dummy --mode uninstall ${1+"$@"}; shift + ;; + esac + + # Parse non-mode specific arguments: + while test "$#" -gt 0; do + opt="$1" + shift + + case $opt in + --config) func_config ;; + + --debug) preserve_args="$preserve_args $opt" + func_echo "enabling shell trace mode" + opt_debug='set -x' + $opt_debug + ;; + + -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break + execute_dlfiles="$execute_dlfiles $1" + shift + ;; + + --dry-run | -n) opt_dry_run=: ;; + --features) func_features ;; + --finish) mode="finish" ;; + + --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break + case $1 in + # Valid mode arguments: + clean) ;; + compile) ;; + execute) ;; + finish) ;; + install) ;; + link) ;; + relink) ;; + uninstall) ;; + + # Catch anything else as an error + *) func_error "invalid argument for $opt" + exit_cmd=exit + break + ;; + esac + + mode="$1" + shift + ;; + + --preserve-dup-deps) + opt_duplicate_deps=: ;; + + --quiet|--silent) preserve_args="$preserve_args $opt" + opt_silent=: + opt_verbose=false + ;; + + --no-quiet|--no-silent) + preserve_args="$preserve_args $opt" + opt_silent=false + ;; + + --verbose| -v) preserve_args="$preserve_args $opt" + opt_silent=false + opt_verbose=: + ;; + + --no-verbose) preserve_args="$preserve_args $opt" + opt_verbose=false + ;; + + --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break + preserve_args="$preserve_args $opt $1" + func_enable_tag "$1" # tagname is set here + shift + ;; + + # Separate optargs to long options: + -dlopen=*|--mode=*|--tag=*) + func_opt_split "$opt" + set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} + shift + ;; + + -\?|-h) func_usage ;; + --help) opt_help=: ;; + --help-all) opt_help=': help-all' ;; + --version) func_version ;; + + -*) func_fatal_help "unrecognized option \`$opt'" ;; + + *) nonopt="$opt" + break + ;; + esac + done + + + case $host in + *cygwin* | *mingw* | *pw32* | *cegcc*) + # don't eliminate duplications in $postdeps and $predeps + opt_duplicate_compiler_generated_deps=: + ;; + *) + opt_duplicate_compiler_generated_deps=$opt_duplicate_deps + ;; + esac + + # Having warned about all mis-specified options, bail out if + # anything was wrong. + $exit_cmd $EXIT_FAILURE +} + +# func_check_version_match +# Ensure that we are using m4 macros, and libtool script from the same +# release of libtool. +func_check_version_match () +{ + if test "$package_revision" != "$macro_revision"; then + if test "$VERSION" != "$macro_version"; then + if test -z "$macro_version"; then + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from an older release. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + fi + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, +$progname: but the definition of this LT_INIT comes from revision $macro_revision. +$progname: You should recreate aclocal.m4 with macros from revision $package_revision +$progname: of $PACKAGE $VERSION and run autoconf again. +_LT_EOF + fi + + exit $EXIT_MISMATCH + fi +} + + +## ----------- ## +## Main. ## +## ----------- ## + +$opt_help || { + # Sanity checks first: + func_check_version_match + + if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then + func_fatal_configuration "not configured to build any kind of library" + fi + + test -z "$mode" && func_fatal_error "error: you must specify a MODE." + + + # Darwin sucks + eval std_shrext=\"$shrext_cmds\" + + + # Only execute mode is allowed to have -dlopen flags. + if test -n "$execute_dlfiles" && test "$mode" != execute; then + func_error "unrecognized option \`-dlopen'" + $ECHO "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Change the help message to a mode-specific one. + generic_help="$help" + help="Try \`$progname --help --mode=$mode' for more information." +} + + +# func_lalib_p file +# True iff FILE is a libtool `.la' library or `.lo' object file. +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_lalib_p () +{ + test -f "$1" && + $SED -e 4q "$1" 2>/dev/null \ + | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 +} + +# func_lalib_unsafe_p file +# True iff FILE is a libtool `.la' library or `.lo' object file. +# This function implements the same check as func_lalib_p without +# resorting to external programs. To this end, it redirects stdin and +# closes it afterwards, without saving the original file descriptor. +# As a safety measure, use it only where a negative result would be +# fatal anyway. Works if `file' does not exist. +func_lalib_unsafe_p () +{ + lalib_p=no + if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then + for lalib_p_l in 1 2 3 4 + do + read lalib_p_line + case "$lalib_p_line" in + \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; + esac + done + exec 0<&5 5<&- + fi + test "$lalib_p" = yes +} + +# func_ltwrapper_script_p file +# True iff FILE is a libtool wrapper script +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_script_p () +{ + func_lalib_p "$1" +} + +# func_ltwrapper_executable_p file +# True iff FILE is a libtool wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_executable_p () +{ + func_ltwrapper_exec_suffix= + case $1 in + *.exe) ;; + *) func_ltwrapper_exec_suffix=.exe ;; + esac + $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 +} + +# func_ltwrapper_scriptname file +# Assumes file is an ltwrapper_executable +# uses $file to determine the appropriate filename for a +# temporary ltwrapper_script. +func_ltwrapper_scriptname () +{ + func_ltwrapper_scriptname_result="" + if func_ltwrapper_executable_p "$1"; then + func_dirname_and_basename "$1" "" "." + func_stripname '' '.exe' "$func_basename_result" + func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" + fi +} + +# func_ltwrapper_p file +# True iff FILE is a libtool wrapper script or wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_p () +{ + func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" +} + + +# func_execute_cmds commands fail_cmd +# Execute tilde-delimited COMMANDS. +# If FAIL_CMD is given, eval that upon failure. +# FAIL_CMD may read-access the current command in variable CMD! +func_execute_cmds () +{ + $opt_debug + save_ifs=$IFS; IFS='~' + for cmd in $1; do + IFS=$save_ifs + eval cmd=\"$cmd\" + func_show_eval "$cmd" "${2-:}" + done + IFS=$save_ifs +} + + +# func_source file +# Source FILE, adding directory component if necessary. +# Note that it is not necessary on cygwin/mingw to append a dot to +# FILE even if both FILE and FILE.exe exist: automatic-append-.exe +# behavior happens only for exec(3), not for open(2)! Also, sourcing +# `FILE.' does not work on cygwin managed mounts. +func_source () +{ + $opt_debug + case $1 in + */* | *\\*) . "$1" ;; + *) . "./$1" ;; + esac +} + + +# func_infer_tag arg +# Infer tagged configuration to use if any are available and +# if one wasn't chosen via the "--tag" command line option. +# Only attempt this if the compiler in the base compile +# command doesn't match the default compiler. +# arg is usually of the form 'gcc ...' +func_infer_tag () +{ + $opt_debug + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do + func_quote_for_eval "$arg" + CC_quoted="$CC_quoted $func_quote_for_eval_result" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case $@ in + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when configure was run. + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; + # Blanks at the start of $base_compile will cause this to fail + # if we don't check for them as well. + *) + for z in $available_tags; do + if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then + # Evaluate the configuration. + eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" + CC_quoted= + for arg in $CC; do + # Double-quote args containing other shell metacharacters. + func_quote_for_eval "$arg" + CC_quoted="$CC_quoted $func_quote_for_eval_result" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case "$@ " in + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) + # The compiler in the base compile command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. + tagname=$z + break + ;; + esac + fi + done + # If $tagname still isn't set, then no tagged configuration + # was found and let the user know that the "--tag" command + # line option must be used. + if test -z "$tagname"; then + func_echo "unable to infer tagged configuration" + func_fatal_error "specify a tag with \`--tag'" +# else +# func_verbose "using $tagname tagged configuration" + fi + ;; + esac + fi +} + + + +# func_write_libtool_object output_name pic_name nonpic_name +# Create a libtool object file (analogous to a ".la" file), +# but don't create it if we're doing a dry run. +func_write_libtool_object () +{ + write_libobj=${1} + if test "$build_libtool_libs" = yes; then + write_lobj=\'${2}\' + else + write_lobj=none + fi + + if test "$build_old_libs" = yes; then + write_oldobj=\'${3}\' + else + write_oldobj=none + fi + + $opt_dry_run || { + cat >${write_libobj}T <?"'"'"' &()|`$[]' \ + && func_warning "libobj name \`$libobj' may not contain shell special characters." + func_dirname_and_basename "$obj" "/" "" + objname="$func_basename_result" + xdir="$func_dirname_result" + lobj=${xdir}$objdir/$objname + + test -z "$base_compile" && \ + func_fatal_help "you must specify a compilation command" + + # Delete any leftover library objects. + if test "$build_old_libs" = yes; then + removelist="$obj $lobj $libobj ${libobj}T" + else + removelist="$lobj $libobj ${libobj}T" + fi + + # On Cygwin there's no "real" PIC flag so we must build both object types + case $host_os in + cygwin* | mingw* | pw32* | os2* | cegcc*) + pic_mode=default + ;; + esac + if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then + # non-PIC code in shared libraries is not supported + pic_mode=default + fi + + # Calculate the filename of the output object if compiler does + # not support -o with -c + if test "$compiler_c_o" = no; then + output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} + lockfile="$output_obj.lock" + else + output_obj= + need_locks=no + lockfile= + fi + + # Lock this critical section if it is needed + # We use this script file to make the link, it avoids creating a new file + if test "$need_locks" = yes; then + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + elif test "$need_locks" = warn; then + if test -f "$lockfile"; then + $ECHO "\ +*** ERROR, $lockfile exists and contains: +`cat $lockfile 2>/dev/null` + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + removelist="$removelist $output_obj" + $ECHO "$srcfile" > "$lockfile" + fi + + $opt_dry_run || $RM $removelist + removelist="$removelist $lockfile" + trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 + + if test -n "$fix_srcfile_path"; then + eval srcfile=\"$fix_srcfile_path\" + fi + func_quote_for_eval "$srcfile" + qsrcfile=$func_quote_for_eval_result + + # Only build a PIC object if we are building libtool libraries. + if test "$build_libtool_libs" = yes; then + # Without this assignment, base_compile gets emptied. + fbsd_hideous_sh_bug=$base_compile + + if test "$pic_mode" != no; then + command="$base_compile $qsrcfile $pic_flag" + else + # Don't build PIC code + command="$base_compile $qsrcfile" + fi + + func_mkdir_p "$xdir$objdir" + + if test -z "$output_obj"; then + # Place PIC objects in $objdir + command="$command -o $lobj" + fi + + func_show_eval_locale "$command" \ + 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' + + if test "$need_locks" = warn && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed, then go on to compile the next one + if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then + func_show_eval '$MV "$output_obj" "$lobj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + + # Allow error messages only from the first compilation. + if test "$suppress_opt" = yes; then + suppress_output=' >/dev/null 2>&1' + fi + fi + + # Only build a position-dependent object if we build old libraries. + if test "$build_old_libs" = yes; then + if test "$pic_mode" != yes; then + # Don't build PIC code + command="$base_compile $qsrcfile$pie_flag" + else + command="$base_compile $qsrcfile $pic_flag" + fi + if test "$compiler_c_o" = yes; then + command="$command -o $obj" + fi + + # Suppress compiler output if we already did a PIC compilation. + command="$command$suppress_output" + func_show_eval_locale "$command" \ + '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' + + if test "$need_locks" = warn && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed + if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then + func_show_eval '$MV "$output_obj" "$obj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + fi + + $opt_dry_run || { + func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" + + # Unlock the critical section if it was locked + if test "$need_locks" != no; then + removelist=$lockfile + $RM "$lockfile" + fi + } + + exit $EXIT_SUCCESS +} + +$opt_help || { + test "$mode" = compile && func_mode_compile ${1+"$@"} +} + +func_mode_help () +{ + # We need to display help for each of the modes. + case $mode in + "") + # Generic help is extracted from the usage comments + # at the start of this file. + func_help + ;; + + clean) + $ECHO \ +"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... + +Remove files from the build directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +to RM. + +If FILE is a libtool library, object or program, all the files associated +with it are deleted. Otherwise, only FILE itself is deleted using RM." + ;; + + compile) + $ECHO \ +"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE + +Compile a source file into a libtool library object. + +This mode accepts the following additional options: + + -o OUTPUT-FILE set the output file name to OUTPUT-FILE + -no-suppress do not suppress compiler output for multiple passes + -prefer-pic try to build PIC objects only + -prefer-non-pic try to build non-PIC objects only + -shared do not build a \`.o' file suitable for static linking + -static only build a \`.o' file suitable for static linking + -Wc,FLAG pass FLAG directly to the compiler + +COMPILE-COMMAND is a command to be used in creating a \`standard' object file +from the given SOURCEFILE. + +The output file name is determined by removing the directory component from +SOURCEFILE, then substituting the C source code suffix \`.c' with the +library object suffix, \`.lo'." + ;; + + execute) + $ECHO \ +"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... + +Automatically set library path, then run a program. + +This mode accepts the following additional options: + + -dlopen FILE add the directory containing FILE to the library path + +This mode sets the library path environment variable according to \`-dlopen' +flags. + +If any of the ARGS are libtool executable wrappers, then they are translated +into their corresponding uninstalled binary, and any of their required library +directories are added to the library path. + +Then, COMMAND is executed, with ARGS as arguments." + ;; + + finish) + $ECHO \ +"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... + +Complete the installation of libtool libraries. + +Each LIBDIR is a directory that contains libtool libraries. + +The commands that this mode executes may require superuser privileges. Use +the \`--dry-run' option if you just want to see what would be executed." + ;; + + install) + $ECHO \ +"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... + +Install executables or libraries. + +INSTALL-COMMAND is the installation command. The first component should be +either the \`install' or \`cp' program. + +The following components of INSTALL-COMMAND are treated specially: + + -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation + +The rest of the components are interpreted as arguments to that command (only +BSD-compatible install options are recognized)." + ;; + + link) + $ECHO \ +"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... + +Link object files or libraries together to form another library, or to +create an executable program. + +LINK-COMMAND is a command using the C compiler that you would use to create +a program from several object files. + +The following components of LINK-COMMAND are treated specially: + + -all-static do not do any dynamic linking at all + -avoid-version do not add a version suffix if possible + -bindir BINDIR specify path to binaries directory (for systems where + libraries must be found in the PATH setting at runtime) + -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime + -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols + -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) + -export-symbols SYMFILE + try to export only the symbols listed in SYMFILE + -export-symbols-regex REGEX + try to export only the symbols matching REGEX + -LLIBDIR search LIBDIR for required installed libraries + -lNAME OUTPUT-FILE requires the installed library libNAME + -module build a library that can dlopened + -no-fast-install disable the fast-install mode + -no-install link a not-installable executable + -no-undefined declare that a library does not refer to external symbols + -o OUTPUT-FILE create OUTPUT-FILE from the specified objects + -objectlist FILE Use a list of object files found in FILE to specify objects + -precious-files-regex REGEX + don't remove output files matching REGEX + -release RELEASE specify package release information + -rpath LIBDIR the created library will eventually be installed in LIBDIR + -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries + -shared only do dynamic linking of libtool libraries + -shrext SUFFIX override the standard shared library file extension + -static do not do any dynamic linking of uninstalled libtool libraries + -static-libtool-libs + do not do any dynamic linking of libtool libraries + -version-info CURRENT[:REVISION[:AGE]] + specify library version info [each variable defaults to 0] + -weak LIBNAME declare that the target provides the LIBNAME interface + -Wc,FLAG + -Xcompiler FLAG pass linker-specific FLAG directly to the compiler + -Wl,FLAG + -Xlinker FLAG pass linker-specific FLAG directly to the linker + -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) + +All other options (arguments beginning with \`-') are ignored. + +Every other argument is treated as a filename. Files ending in \`.la' are +treated as uninstalled libtool libraries, other files are standard or library +object files. + +If the OUTPUT-FILE ends in \`.la', then a libtool library is created, +only library objects (\`.lo' files) may be specified, and \`-rpath' is +required, except when creating a convenience library. + +If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created +using \`ar' and \`ranlib', or on Windows using \`lib'. + +If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file +is created, otherwise an executable program is created." + ;; + + uninstall) + $ECHO \ +"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... + +Remove libraries from an installation directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +to RM. + +If FILE is a libtool library, all the files associated with it are deleted. +Otherwise, only FILE itself is deleted using RM." + ;; + + *) + func_fatal_help "invalid operation mode \`$mode'" + ;; + esac + + echo + $ECHO "Try \`$progname --help' for more information about other modes." +} + +# Now that we've collected a possible --mode arg, show help if necessary +if $opt_help; then + if test "$opt_help" = :; then + func_mode_help + else + { + func_help noexit + for mode in compile link execute install finish uninstall clean; do + func_mode_help + done + } | sed -n '1p; 2,$s/^Usage:/ or: /p' + { + func_help noexit + for mode in compile link execute install finish uninstall clean; do + echo + func_mode_help + done + } | + sed '1d + /^When reporting/,/^Report/{ + H + d + } + $x + /information about other modes/d + /more detailed .*MODE/d + s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' + fi + exit $? +fi + + +# func_mode_execute arg... +func_mode_execute () +{ + $opt_debug + # The first argument is the command name. + cmd="$nonopt" + test -z "$cmd" && \ + func_fatal_help "you must specify a COMMAND" + + # Handle -dlopen flags immediately. + for file in $execute_dlfiles; do + test -f "$file" \ + || func_fatal_help "\`$file' is not a file" + + dir= + case $file in + *.la) + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "\`$lib' is not a valid libtool archive" + + # Read the libtool library. + dlname= + library_names= + func_source "$file" + + # Skip this library if it cannot be dlopened. + if test -z "$dlname"; then + # Warn if it was a shared library. + test -n "$library_names" && \ + func_warning "\`$file' was not linked with \`-export-dynamic'" + continue + fi + + func_dirname "$file" "" "." + dir="$func_dirname_result" + + if test -f "$dir/$objdir/$dlname"; then + dir="$dir/$objdir" + else + if test ! -f "$dir/$dlname"; then + func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" + fi + fi + ;; + + *.lo) + # Just add the directory containing the .lo file. + func_dirname "$file" "" "." + dir="$func_dirname_result" + ;; + + *) + func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" + continue + ;; + esac + + # Get the absolute pathname. + absdir=`cd "$dir" && pwd` + test -n "$absdir" && dir="$absdir" + + # Now add the directory to shlibpath_var. + if eval "test -z \"\$$shlibpath_var\""; then + eval "$shlibpath_var=\"\$dir\"" + else + eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" + fi + done + + # This variable tells wrapper scripts just to set shlibpath_var + # rather than running their programs. + libtool_execute_magic="$magic" + + # Check if any of the arguments is a wrapper script. + args= + for file + do + case $file in + -* | *.la | *.lo ) ;; + *) + # Do a test to see if this is really a libtool program. + if func_ltwrapper_script_p "$file"; then + func_source "$file" + # Transform arg to wrapped name. + file="$progdir/$program" + elif func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + func_source "$func_ltwrapper_scriptname_result" + # Transform arg to wrapped name. + file="$progdir/$program" + fi + ;; + esac + # Quote arguments (to preserve shell metacharacters). + func_quote_for_eval "$file" + args="$args $func_quote_for_eval_result" + done + + if test "X$opt_dry_run" = Xfalse; then + if test -n "$shlibpath_var"; then + # Export the shlibpath_var. + eval "export $shlibpath_var" + fi + + # Restore saved environment variables + for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES + do + eval "if test \"\${save_$lt_var+set}\" = set; then + $lt_var=\$save_$lt_var; export $lt_var + else + $lt_unset $lt_var + fi" + done + + # Now prepare to actually exec the command. + exec_cmd="\$cmd$args" + else + # Display what would be done. + if test -n "$shlibpath_var"; then + eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" + echo "export $shlibpath_var" + fi + $ECHO "$cmd$args" + exit $EXIT_SUCCESS + fi +} + +test "$mode" = execute && func_mode_execute ${1+"$@"} + + +# func_mode_finish arg... +func_mode_finish () +{ + $opt_debug + libdirs="$nonopt" + admincmds= + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + for dir + do + libdirs="$libdirs $dir" + done + + for libdir in $libdirs; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + func_execute_cmds "$finish_cmds" 'admincmds="$admincmds +'"$cmd"'"' + fi + if test -n "$finish_eval"; then + # Do the single finish_eval. + eval cmds=\"$finish_eval\" + $opt_dry_run || eval "$cmds" || admincmds="$admincmds + $cmds" + fi + done + fi + + # Exit here if they wanted silent mode. + $opt_silent && exit $EXIT_SUCCESS + + echo "----------------------------------------------------------------------" + echo "Libraries have been installed in:" + for libdir in $libdirs; do + $ECHO " $libdir" + done + echo + echo "If you ever happen to want to link against installed libraries" + echo "in a given directory, LIBDIR, you must either use libtool, and" + echo "specify the full pathname of the library, or use the \`-LLIBDIR'" + echo "flag during linking and do at least one of the following:" + if test -n "$shlibpath_var"; then + echo " - add LIBDIR to the \`$shlibpath_var' environment variable" + echo " during execution" + fi + if test -n "$runpath_var"; then + echo " - add LIBDIR to the \`$runpath_var' environment variable" + echo " during linking" + fi + if test -n "$hardcode_libdir_flag_spec"; then + libdir=LIBDIR + eval flag=\"$hardcode_libdir_flag_spec\" + + $ECHO " - use the \`$flag' linker flag" + fi + if test -n "$admincmds"; then + $ECHO " - have your system administrator run these commands:$admincmds" + fi + if test -f /etc/ld.so.conf; then + echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" + fi + echo + + echo "See any operating system documentation about shared libraries for" + case $host in + solaris2.[6789]|solaris2.1[0-9]) + echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" + echo "pages." + ;; + *) + echo "more information, such as the ld(1) and ld.so(8) manual pages." + ;; + esac + echo "----------------------------------------------------------------------" + exit $EXIT_SUCCESS +} + +test "$mode" = finish && func_mode_finish ${1+"$@"} + + +# func_mode_install arg... +func_mode_install () +{ + $opt_debug + # There may be an optional sh(1) argument at the beginning of + # install_prog (especially on Windows NT). + if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || + # Allow the use of GNU shtool's install command. + case $nonopt in *shtool*) :;; *) false;; esac; then + # Aesthetically quote it. + func_quote_for_eval "$nonopt" + install_prog="$func_quote_for_eval_result " + arg=$1 + shift + else + install_prog= + arg=$nonopt + fi + + # The real first argument should be the name of the installation program. + # Aesthetically quote it. + func_quote_for_eval "$arg" + install_prog="$install_prog$func_quote_for_eval_result" + install_shared_prog=$install_prog + case " $install_prog " in + *[\\\ /]cp\ *) install_cp=: ;; + *) install_cp=false ;; + esac + + # We need to accept at least all the BSD install flags. + dest= + files= + opts= + prev= + install_type= + isdir=no + stripme= + no_mode=: + for arg + do + arg2= + if test -n "$dest"; then + files="$files $dest" + dest=$arg + continue + fi + + case $arg in + -d) isdir=yes ;; + -f) + if $install_cp; then :; else + prev=$arg + fi + ;; + -g | -m | -o) + prev=$arg + ;; + -s) + stripme=" -s" + continue + ;; + -*) + ;; + *) + # If the previous option needed an argument, then skip it. + if test -n "$prev"; then + if test "x$prev" = x-m && test -n "$install_override_mode"; then + arg2=$install_override_mode + no_mode=false + fi + prev= + else + dest=$arg + continue + fi + ;; + esac + + # Aesthetically quote the argument. + func_quote_for_eval "$arg" + install_prog="$install_prog $func_quote_for_eval_result" + if test -n "$arg2"; then + func_quote_for_eval "$arg2" + fi + install_shared_prog="$install_shared_prog $func_quote_for_eval_result" + done + + test -z "$install_prog" && \ + func_fatal_help "you must specify an install program" + + test -n "$prev" && \ + func_fatal_help "the \`$prev' option requires an argument" + + if test -n "$install_override_mode" && $no_mode; then + if $install_cp; then :; else + func_quote_for_eval "$install_override_mode" + install_shared_prog="$install_shared_prog -m $func_quote_for_eval_result" + fi + fi + + if test -z "$files"; then + if test -z "$dest"; then + func_fatal_help "no file or destination specified" + else + func_fatal_help "you must specify a destination" + fi + fi + + # Strip any trailing slash from the destination. + func_stripname '' '/' "$dest" + dest=$func_stripname_result + + # Check to see that the destination is a directory. + test -d "$dest" && isdir=yes + if test "$isdir" = yes; then + destdir="$dest" + destname= + else + func_dirname_and_basename "$dest" "" "." + destdir="$func_dirname_result" + destname="$func_basename_result" + + # Not a directory, so check to see that there is only one file specified. + set dummy $files; shift + test "$#" -gt 1 && \ + func_fatal_help "\`$dest' is not a directory" + fi + case $destdir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + for file in $files; do + case $file in + *.lo) ;; + *) + func_fatal_help "\`$destdir' must be an absolute directory name" + ;; + esac + done + ;; + esac + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic="$magic" + + staticlibs= + future_libdirs= + current_libdirs= + for file in $files; do + + # Do each installation. + case $file in + *.$libext) + # Do the static libraries later. + staticlibs="$staticlibs $file" + ;; + + *.la) + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "\`$file' is not a valid libtool archive" + + library_names= + old_library= + relink_command= + func_source "$file" + + # Add the libdir to current_libdirs if it is the destination. + if test "X$destdir" = "X$libdir"; then + case "$current_libdirs " in + *" $libdir "*) ;; + *) current_libdirs="$current_libdirs $libdir" ;; + esac + else + # Note the libdir as a future libdir. + case "$future_libdirs " in + *" $libdir "*) ;; + *) future_libdirs="$future_libdirs $libdir" ;; + esac + fi + + func_dirname "$file" "/" "" + dir="$func_dirname_result" + dir="$dir$objdir" + + if test -n "$relink_command"; then + # Determine the prefix the user has applied to our future dir. + inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` + + # Don't allow the user to place us outside of our expected + # location b/c this prevents finding dependent libraries that + # are installed to the same prefix. + # At present, this check doesn't affect windows .dll's that + # are installed into $libdir/../bin (currently, that works fine) + # but it's something to keep an eye on. + test "$inst_prefix_dir" = "$destdir" && \ + func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` + else + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` + fi + + func_warning "relinking \`$file'" + func_show_eval "$relink_command" \ + 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' + fi + + # See the names of the shared library. + set dummy $library_names; shift + if test -n "$1"; then + realname="$1" + shift + + srcname="$realname" + test -n "$relink_command" && srcname="$realname"T + + # Install the shared library and build the symlinks. + func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ + 'exit $?' + tstripme="$stripme" + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + case $realname in + *.dll.a) + tstripme="" + ;; + esac + ;; + esac + if test -n "$tstripme" && test -n "$striplib"; then + func_show_eval "$striplib $destdir/$realname" 'exit $?' + fi + + if test "$#" -gt 0; then + # Delete the old symlinks, and create new ones. + # Try `ln -sf' first, because the `ln' binary might depend on + # the symlink we replace! Solaris /bin/ln does not understand -f, + # so we also need to try rm && ln -s. + for linkname + do + test "$linkname" != "$realname" \ + && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" + done + fi + + # Do each command in the postinstall commands. + lib="$destdir/$realname" + func_execute_cmds "$postinstall_cmds" 'exit $?' + fi + + # Install the pseudo-library for information purposes. + func_basename "$file" + name="$func_basename_result" + instname="$dir/$name"i + func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' + + # Maybe install the static library, too. + test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" + ;; + + *.lo) + # Install (i.e. copy) a libtool object. + + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile="$destdir/$destname" + else + func_basename "$file" + destfile="$func_basename_result" + destfile="$destdir/$destfile" + fi + + # Deduce the name of the destination old-style object file. + case $destfile in + *.lo) + func_lo2o "$destfile" + staticdest=$func_lo2o_result + ;; + *.$objext) + staticdest="$destfile" + destfile= + ;; + *) + func_fatal_help "cannot copy a libtool object to \`$destfile'" + ;; + esac + + # Install the libtool object if requested. + test -n "$destfile" && \ + func_show_eval "$install_prog $file $destfile" 'exit $?' + + # Install the old object if enabled. + if test "$build_old_libs" = yes; then + # Deduce the name of the old-style object file. + func_lo2o "$file" + staticobj=$func_lo2o_result + func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' + fi + exit $EXIT_SUCCESS + ;; + + *) + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile="$destdir/$destname" + else + func_basename "$file" + destfile="$func_basename_result" + destfile="$destdir/$destfile" + fi + + # If the file is missing, and there is a .exe on the end, strip it + # because it is most likely a libtool script we actually want to + # install + stripped_ext="" + case $file in + *.exe) + if test ! -f "$file"; then + func_stripname '' '.exe' "$file" + file=$func_stripname_result + stripped_ext=".exe" + fi + ;; + esac + + # Do a test to see if this is really a libtool program. + case $host in + *cygwin* | *mingw*) + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + wrapper=$func_ltwrapper_scriptname_result + else + func_stripname '' '.exe' "$file" + wrapper=$func_stripname_result + fi + ;; + *) + wrapper=$file + ;; + esac + if func_ltwrapper_script_p "$wrapper"; then + notinst_deplibs= + relink_command= + + func_source "$wrapper" + + # Check the variables that should have been set. + test -z "$generated_by_libtool_version" && \ + func_fatal_error "invalid libtool wrapper script \`$wrapper'" + + finalize=yes + for lib in $notinst_deplibs; do + # Check to see that each library is installed. + libdir= + if test -f "$lib"; then + func_source "$lib" + fi + libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test + if test -n "$libdir" && test ! -f "$libfile"; then + func_warning "\`$lib' has not been installed in \`$libdir'" + finalize=no + fi + done + + relink_command= + func_source "$wrapper" + + outputname= + if test "$fast_install" = no && test -n "$relink_command"; then + $opt_dry_run || { + if test "$finalize" = yes; then + tmpdir=`func_mktempdir` + func_basename "$file$stripped_ext" + file="$func_basename_result" + outputname="$tmpdir/$file" + # Replace the output file specification. + relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` + + $opt_silent || { + func_quote_for_expand "$relink_command" + eval "func_echo $func_quote_for_expand_result" + } + if eval "$relink_command"; then : + else + func_error "error: relink \`$file' with the above command before installing it" + $opt_dry_run || ${RM}r "$tmpdir" + continue + fi + file="$outputname" + else + func_warning "cannot relink \`$file'" + fi + } + else + # Install the binary that we compiled earlier. + file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` + fi + fi + + # remove .exe since cygwin /usr/bin/install will append another + # one anyway + case $install_prog,$host in + */usr/bin/install*,*cygwin*) + case $file:$destfile in + *.exe:*.exe) + # this is ok + ;; + *.exe:*) + destfile=$destfile.exe + ;; + *:*.exe) + func_stripname '' '.exe' "$destfile" + destfile=$func_stripname_result + ;; + esac + ;; + esac + func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' + $opt_dry_run || if test -n "$outputname"; then + ${RM}r "$tmpdir" + fi + ;; + esac + done + + for file in $staticlibs; do + func_basename "$file" + name="$func_basename_result" + + # Set up the ranlib parameters. + oldlib="$destdir/$name" + + func_show_eval "$install_prog \$file \$oldlib" 'exit $?' + + if test -n "$stripme" && test -n "$old_striplib"; then + func_show_eval "$old_striplib $oldlib" 'exit $?' + fi + + # Do each command in the postinstall commands. + func_execute_cmds "$old_postinstall_cmds" 'exit $?' + done + + test -n "$future_libdirs" && \ + func_warning "remember to run \`$progname --finish$future_libdirs'" + + if test -n "$current_libdirs"; then + # Maybe just do a dry run. + $opt_dry_run && current_libdirs=" -n$current_libdirs" + exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' + else + exit $EXIT_SUCCESS + fi +} + +test "$mode" = install && func_mode_install ${1+"$@"} + + +# func_generate_dlsyms outputname originator pic_p +# Extract symbols from dlprefiles and create ${outputname}S.o with +# a dlpreopen symbol table. +func_generate_dlsyms () +{ + $opt_debug + my_outputname="$1" + my_originator="$2" + my_pic_p="${3-no}" + my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` + my_dlsyms= + + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + if test -n "$NM" && test -n "$global_symbol_pipe"; then + my_dlsyms="${my_outputname}S.c" + else + func_error "not configured to extract global symbols from dlpreopened files" + fi + fi + + if test -n "$my_dlsyms"; then + case $my_dlsyms in + "") ;; + *.c) + # Discover the nlist of each of the dlfiles. + nlist="$output_objdir/${my_outputname}.nm" + + func_show_eval "$RM $nlist ${nlist}S ${nlist}T" + + # Parse the name list into a source file. + func_verbose "creating $output_objdir/$my_dlsyms" + + $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ +/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ +/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ + +#ifdef __cplusplus +extern \"C\" { +#endif + +#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) +#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" +#endif + +/* External symbol declarations for the compiler. */\ +" + + if test "$dlself" = yes; then + func_verbose "generating symbol list for \`$output'" + + $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" + + # Add our own program objects to the symbol list. + progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` + for progfile in $progfiles; do + func_verbose "extracting global C symbols from \`$progfile'" + $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" + done + + if test -n "$exclude_expsyms"; then + $opt_dry_run || { + eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + if test -n "$export_symbols_regex"; then + $opt_dry_run || { + eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + export_symbols="$output_objdir/$outputname.exp" + $opt_dry_run || { + $RM $export_symbols + eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' + ;; + esac + } + else + $opt_dry_run || { + eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' + eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + ;; + esac + } + fi + fi + + for dlprefile in $dlprefiles; do + func_verbose "extracting global C symbols from \`$dlprefile'" + func_basename "$dlprefile" + name="$func_basename_result" + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + done + + $opt_dry_run || { + # Make sure we have at least an empty file. + test -f "$nlist" || : > "$nlist" + + if test -n "$exclude_expsyms"; then + $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T + $MV "$nlist"T "$nlist" + fi + + # Try sorting and uniquifying the output. + if $GREP -v "^: " < "$nlist" | + if sort -k 3 /dev/null 2>&1; then + sort -k 3 + else + sort +2 + fi | + uniq > "$nlist"S; then + : + else + $GREP -v "^: " < "$nlist" > "$nlist"S + fi + + if test -f "$nlist"S; then + eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' + else + echo '/* NONE */' >> "$output_objdir/$my_dlsyms" + fi + + echo >> "$output_objdir/$my_dlsyms" "\ + +/* The mapping between symbol names and symbols. */ +typedef struct { + const char *name; + void *address; +} lt_dlsymlist; +" + case $host in + *cygwin* | *mingw* | *cegcc* ) + echo >> "$output_objdir/$my_dlsyms" "\ +/* DATA imports from DLLs on WIN32 con't be const, because + runtime relocations are performed -- see ld's documentation + on pseudo-relocs. */" + lt_dlsym_const= ;; + *osf5*) + echo >> "$output_objdir/$my_dlsyms" "\ +/* This system does not cope well with relocations in const data */" + lt_dlsym_const= ;; + *) + lt_dlsym_const=const ;; + esac + + echo >> "$output_objdir/$my_dlsyms" "\ +extern $lt_dlsym_const lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[]; +$lt_dlsym_const lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[] = +{\ + { \"$my_originator\", (void *) 0 }," + + case $need_lib_prefix in + no) + eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + *) + eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + esac + echo >> "$output_objdir/$my_dlsyms" "\ + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt_${my_prefix}_LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif\ +" + } # !$opt_dry_run + + pic_flag_for_symtable= + case "$compile_command " in + *" -static "*) ;; + *) + case $host in + # compiling the symbol table file with pic_flag works around + # a FreeBSD bug that causes programs to crash when -lm is + # linked before any other PIC object. But we must not use + # pic_flag when linking with -static. The problem exists in + # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. + *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; + *-*-hpux*) + pic_flag_for_symtable=" $pic_flag" ;; + *) + if test "X$my_pic_p" != Xno; then + pic_flag_for_symtable=" $pic_flag" + fi + ;; + esac + ;; + esac + symtab_cflags= + for arg in $LTCFLAGS; do + case $arg in + -pie | -fpie | -fPIE) ;; + *) symtab_cflags="$symtab_cflags $arg" ;; + esac + done + + # Now compile the dynamic symbol file. + func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' + + # Clean up the generated files. + func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' + + # Transform the symbol file into the correct name. + symfileobj="$output_objdir/${my_outputname}S.$objext" + case $host in + *cygwin* | *mingw* | *cegcc* ) + if test -f "$output_objdir/$my_outputname.def"; then + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + else + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + fi + ;; + *) + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + ;; + esac + ;; + *) + func_fatal_error "unknown suffix for \`$my_dlsyms'" + ;; + esac + else + # We keep going just in case the user didn't refer to + # lt_preloaded_symbols. The linker will fail if global_symbol_pipe + # really was required. + + # Nullify the symbol file. + compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` + fi +} + +# func_win32_libid arg +# return the library type of file 'arg' +# +# Need a lot of goo to handle *both* DLLs and import libs +# Has to be a shell function in order to 'eat' the argument +# that is supplied when $file_magic_command is called. +# Despite the name, also deal with 64 bit binaries. +func_win32_libid () +{ + $opt_debug + win32_libid_type="unknown" + win32_fileres=`file -L $1 2>/dev/null` + case $win32_fileres in + *ar\ archive\ import\ library*) # definitely import + win32_libid_type="x86 archive import" + ;; + *ar\ archive*) # could be an import, or static + # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | + $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then + win32_nmres=`eval $NM -f posix -A $1 | + $SED -n -e ' + 1,100{ + / I /{ + s,.*,import, + p + q + } + }'` + case $win32_nmres in + import*) win32_libid_type="x86 archive import";; + *) win32_libid_type="x86 archive static";; + esac + fi + ;; + *DLL*) + win32_libid_type="x86 DLL" + ;; + *executable*) # but shell scripts are "executable" too... + case $win32_fileres in + *MS\ Windows\ PE\ Intel*) + win32_libid_type="x86 DLL" + ;; + esac + ;; + esac + $ECHO "$win32_libid_type" +} + + + +# func_extract_an_archive dir oldlib +func_extract_an_archive () +{ + $opt_debug + f_ex_an_ar_dir="$1"; shift + f_ex_an_ar_oldlib="$1" + if test "$lock_old_archive_extraction" = yes; then + lockfile=$f_ex_an_ar_oldlib.lock + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + fi + func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ + 'stat=$?; rm -f "$lockfile"; exit $stat' + if test "$lock_old_archive_extraction" = yes; then + $opt_dry_run || rm -f "$lockfile" + fi + if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then + : + else + func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" + fi +} + + +# func_extract_archives gentop oldlib ... +func_extract_archives () +{ + $opt_debug + my_gentop="$1"; shift + my_oldlibs=${1+"$@"} + my_oldobjs="" + my_xlib="" + my_xabs="" + my_xdir="" + + for my_xlib in $my_oldlibs; do + # Extract the objects. + case $my_xlib in + [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; + *) my_xabs=`pwd`"/$my_xlib" ;; + esac + func_basename "$my_xlib" + my_xlib="$func_basename_result" + my_xlib_u=$my_xlib + while :; do + case " $extracted_archives " in + *" $my_xlib_u "*) + func_arith $extracted_serial + 1 + extracted_serial=$func_arith_result + my_xlib_u=lt$extracted_serial-$my_xlib ;; + *) break ;; + esac + done + extracted_archives="$extracted_archives $my_xlib_u" + my_xdir="$my_gentop/$my_xlib_u" + + func_mkdir_p "$my_xdir" + + case $host in + *-darwin*) + func_verbose "Extracting $my_xabs" + # Do not bother doing anything if just a dry run + $opt_dry_run || { + darwin_orig_dir=`pwd` + cd $my_xdir || exit $? + darwin_archive=$my_xabs + darwin_curdir=`pwd` + darwin_base_archive=`basename "$darwin_archive"` + darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` + if test -n "$darwin_arches"; then + darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` + darwin_arch= + func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" + for darwin_arch in $darwin_arches ; do + func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" + $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" + cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" + func_extract_an_archive "`pwd`" "${darwin_base_archive}" + cd "$darwin_curdir" + $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" + done # $darwin_arches + ## Okay now we've a bunch of thin objects, gotta fatten them up :) + darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do + darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` + $LIPO -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + $RM -rf unfat-$$ + cd "$darwin_orig_dir" + else + cd $darwin_orig_dir + func_extract_an_archive "$my_xdir" "$my_xabs" + fi # $darwin_arches + } # !$opt_dry_run + ;; + *) + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` + done + + func_extract_archives_result="$my_oldobjs" +} + + +# func_emit_wrapper [arg=no] +# +# Emit a libtool wrapper script on stdout. +# Don't directly open a file because we may want to +# incorporate the script contents within a cygwin/mingw +# wrapper executable. Must ONLY be called from within +# func_mode_link because it depends on a number of variables +# set therein. +# +# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR +# variable will take. If 'yes', then the emitted script +# will assume that the directory in which it is stored is +# the $objdir directory. This is a cygwin/mingw-specific +# behavior. +func_emit_wrapper () +{ + func_emit_wrapper_arg1=${1-no} + + $ECHO "\ +#! $SHELL + +# $output - temporary wrapper script for $objdir/$outputname +# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION +# +# The $output program cannot be directly executed until all the libtool +# libraries that it depends on are installed. +# +# This wrapper script should never be moved out of the build directory. +# If it is, it will not operate correctly. + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='$sed_quote_subst' + +# Be Bourne compatible +if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +relink_command=\"$relink_command\" + +# This environment variable determines our operation mode. +if test \"\$libtool_install_magic\" = \"$magic\"; then + # install mode needs the following variables: + generated_by_libtool_version='$macro_version' + notinst_deplibs='$notinst_deplibs' +else + # When we are sourced in execute mode, \$file and \$ECHO are already set. + if test \"\$libtool_execute_magic\" != \"$magic\"; then + file=\"\$0\"" + + qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` + $ECHO "\ + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + ECHO=\"$qECHO\" + fi + +# Very basic option parsing. These options are (a) specific to +# the libtool wrapper, (b) are identical between the wrapper +# /script/ and the wrapper /executable/ which is used only on +# windows platforms, and (c) all begin with the string "--lt-" +# (application programs are unlikely to have options which match +# this pattern). +# +# There are only two supported options: --lt-debug and +# --lt-dump-script. There is, deliberately, no --lt-help. +# +# The first argument to this parsing function should be the +# script's $0 value, followed by "$@". +lt_option_debug= +func_parse_lt_options () +{ + lt_script_arg0=\$0 + shift + for lt_opt + do + case \"\$lt_opt\" in + --lt-debug) lt_option_debug=1 ;; + --lt-dump-script) + lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` + test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. + lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` + cat \"\$lt_dump_D/\$lt_dump_F\" + exit 0 + ;; + --lt-*) + \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 + exit 1 + ;; + esac + done + + # Print the debug banner immediately: + if test -n \"\$lt_option_debug\"; then + echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 + fi +} + +# Used when --lt-debug. Prints its arguments to stdout +# (redirection is the responsibility of the caller) +func_lt_dump_args () +{ + lt_dump_args_N=1; + for lt_arg + do + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" + lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` + done +} + +# Core function for launching the target application +func_exec_program_core () +{ +" + case $host in + # Backslashes separate directories on plain windows + *-*-mingw | *-*-os2* | *-cegcc*) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} +" + ;; + + *) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir/\$program\" \${1+\"\$@\"} +" + ;; + esac + $ECHO "\ + \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 + exit 1 +} + +# A function to encapsulate launching the target application +# Strips options in the --lt-* namespace from \$@ and +# launches target application with the remaining arguments. +func_exec_program () +{ + for lt_wr_arg + do + case \$lt_wr_arg in + --lt-*) ;; + *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; + esac + shift + done + func_exec_program_core \${1+\"\$@\"} +} + + # Parse options + func_parse_lt_options \"\$0\" \${1+\"\$@\"} + + # Find the directory that this script lives in. + thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` + test \"x\$thisdir\" = \"x\$file\" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. + file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` + while test -n \"\$file\"; do + destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test \"x\$destdir\" != \"x\$file\"; then + case \"\$destdir\" in + [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; + *) thisdir=\"\$thisdir/\$destdir\" ;; + esac + fi + + file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` + file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` + done + + # Usually 'no', except on cygwin/mingw when embedded into + # the cwrapper. + WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 + if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then + # special case for '.' + if test \"\$thisdir\" = \".\"; then + thisdir=\`pwd\` + fi + # remove .libs from thisdir + case \"\$thisdir\" in + *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; + $objdir ) thisdir=. ;; + esac + fi + + # Try to get the absolute directory name. + absdir=\`cd \"\$thisdir\" && pwd\` + test -n \"\$absdir\" && thisdir=\"\$absdir\" +" + + if test "$fast_install" = yes; then + $ECHO "\ + program=lt-'$outputname'$exeext + progdir=\"\$thisdir/$objdir\" + + if test ! -f \"\$progdir/\$program\" || + { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ + test \"X\$file\" != \"X\$progdir/\$program\"; }; then + + file=\"\$\$-\$program\" + + if test ! -d \"\$progdir\"; then + $MKDIR \"\$progdir\" + else + $RM \"\$progdir/\$file\" + fi" + + $ECHO "\ + + # relink executable if necessary + if test -n \"\$relink_command\"; then + if relink_command_output=\`eval \$relink_command 2>&1\`; then : + else + $ECHO \"\$relink_command_output\" >&2 + $RM \"\$progdir/\$file\" + exit 1 + fi + fi + + $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || + { $RM \"\$progdir/\$program\"; + $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } + $RM \"\$progdir/\$file\" + fi" + else + $ECHO "\ + program='$outputname' + progdir=\"\$thisdir/$objdir\" +" + fi + + $ECHO "\ + + if test -f \"\$progdir/\$program\"; then" + + # Export our shlibpath_var if we have one. + if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + $ECHO "\ + # Add our own library path to $shlibpath_var + $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" + + # Some systems cannot cope with colon-terminated $shlibpath_var + # The second colon is a workaround for a bug in BeOS R4 sed + $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` + + export $shlibpath_var +" + fi + + # fixup the dll searchpath if we need to. + if test -n "$dllsearchpath"; then + $ECHO "\ + # Add the dll search path components to the executable PATH + PATH=$dllsearchpath:\$PATH +" + fi + + $ECHO "\ + if test \"\$libtool_execute_magic\" != \"$magic\"; then + # Run the actual program with our arguments. + func_exec_program \${1+\"\$@\"} + fi + else + # The program doesn't exist. + \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 + \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 + \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 + exit 1 + fi +fi\ +" +} + + +# func_to_host_path arg +# +# Convert paths to host format when used with build tools. +# Intended for use with "native" mingw (where libtool itself +# is running under the msys shell), or in the following cross- +# build environments: +# $build $host +# mingw (msys) mingw [e.g. native] +# cygwin mingw +# *nix + wine mingw +# where wine is equipped with the `winepath' executable. +# In the native mingw case, the (msys) shell automatically +# converts paths for any non-msys applications it launches, +# but that facility isn't available from inside the cwrapper. +# Similar accommodations are necessary for $host mingw and +# $build cygwin. Calling this function does no harm for other +# $host/$build combinations not listed above. +# +# ARG is the path (on $build) that should be converted to +# the proper representation for $host. The result is stored +# in $func_to_host_path_result. +func_to_host_path () +{ + func_to_host_path_result="$1" + if test -n "$1"; then + case $host in + *mingw* ) + lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + case $build in + *mingw* ) # actually, msys + # awkward: cmd appends spaces to result + func_to_host_path_result=`( cmd //c echo "$1" ) 2>/dev/null | + $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` + ;; + *cygwin* ) + func_to_host_path_result=`cygpath -w "$1" | + $SED -e "$lt_sed_naive_backslashify"` + ;; + * ) + # Unfortunately, winepath does not exit with a non-zero + # error code, so we are forced to check the contents of + # stdout. On the other hand, if the command is not + # found, the shell will set an exit code of 127 and print + # *an error message* to stdout. So we must check for both + # error code of zero AND non-empty stdout, which explains + # the odd construction: + func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` + if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then + func_to_host_path_result=`$ECHO "$func_to_host_path_tmp1" | + $SED -e "$lt_sed_naive_backslashify"` + else + # Allow warning below. + func_to_host_path_result= + fi + ;; + esac + if test -z "$func_to_host_path_result" ; then + func_error "Could not determine host path corresponding to" + func_error " \`$1'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback: + func_to_host_path_result="$1" + fi + ;; + esac + fi +} +# end: func_to_host_path + +# func_to_host_pathlist arg +# +# Convert pathlists to host format when used with build tools. +# See func_to_host_path(), above. This function supports the +# following $build/$host combinations (but does no harm for +# combinations not listed here): +# $build $host +# mingw (msys) mingw [e.g. native] +# cygwin mingw +# *nix + wine mingw +# +# Path separators are also converted from $build format to +# $host format. If ARG begins or ends with a path separator +# character, it is preserved (but converted to $host format) +# on output. +# +# ARG is a pathlist (on $build) that should be converted to +# the proper representation on $host. The result is stored +# in $func_to_host_pathlist_result. +func_to_host_pathlist () +{ + func_to_host_pathlist_result="$1" + if test -n "$1"; then + case $host in + *mingw* ) + lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + # Remove leading and trailing path separator characters from + # ARG. msys behavior is inconsistent here, cygpath turns them + # into '.;' and ';.', and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_pathlist_tmp1=$func_stripname_result + case $build in + *mingw* ) # Actually, msys. + # Awkward: cmd appends spaces to result. + func_to_host_pathlist_result=` + ( cmd //c echo "$func_to_host_pathlist_tmp1" ) 2>/dev/null | + $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` + ;; + *cygwin* ) + func_to_host_pathlist_result=`cygpath -w -p "$func_to_host_pathlist_tmp1" | + $SED -e "$lt_sed_naive_backslashify"` + ;; + * ) + # unfortunately, winepath doesn't convert pathlists + func_to_host_pathlist_result="" + func_to_host_pathlist_oldIFS=$IFS + IFS=: + for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do + IFS=$func_to_host_pathlist_oldIFS + if test -n "$func_to_host_pathlist_f" ; then + func_to_host_path "$func_to_host_pathlist_f" + if test -n "$func_to_host_path_result" ; then + if test -z "$func_to_host_pathlist_result" ; then + func_to_host_pathlist_result="$func_to_host_path_result" + else + func_append func_to_host_pathlist_result ";$func_to_host_path_result" + fi + fi + fi + done + IFS=$func_to_host_pathlist_oldIFS + ;; + esac + if test -z "$func_to_host_pathlist_result"; then + func_error "Could not determine the host path(s) corresponding to" + func_error " \`$1'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback. This may break if $1 contains DOS-style drive + # specifications. The fix is not to complicate the expression + # below, but for the user to provide a working wine installation + # with winepath so that path translation in the cross-to-mingw + # case works properly. + lt_replace_pathsep_nix_to_dos="s|:|;|g" + func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ + $SED -e "$lt_replace_pathsep_nix_to_dos"` + fi + # Now, add the leading and trailing path separators back + case "$1" in + :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" + ;; + esac + case "$1" in + *: ) func_append func_to_host_pathlist_result ";" + ;; + esac + ;; + esac + fi +} +# end: func_to_host_pathlist + +# func_emit_cwrapperexe_src +# emit the source code for a wrapper executable on stdout +# Must ONLY be called from within func_mode_link because +# it depends on a number of variable set therein. +func_emit_cwrapperexe_src () +{ + cat < +#include +#ifdef _MSC_VER +# include +# include +# include +#else +# include +# include +# ifdef __CYGWIN__ +# include +# endif +#endif +#include +#include +#include +#include +#include +#include +#include +#include + +/* declarations of non-ANSI functions */ +#if defined(__MINGW32__) +# ifdef __STRICT_ANSI__ +int _putenv (const char *); +# endif +#elif defined(__CYGWIN__) +# ifdef __STRICT_ANSI__ +char *realpath (const char *, char *); +int putenv (char *); +int setenv (const char *, const char *, int); +# endif +/* #elif defined (other platforms) ... */ +#endif + +/* portability defines, excluding path handling macros */ +#if defined(_MSC_VER) +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +# define S_IXUSR _S_IEXEC +# ifndef _INTPTR_T_DEFINED +# define _INTPTR_T_DEFINED +# define intptr_t int +# endif +#elif defined(__MINGW32__) +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +#elif defined(__CYGWIN__) +# define HAVE_SETENV +# define FOPEN_WB "wb" +/* #elif defined (other platforms) ... */ +#endif + +#if defined(PATH_MAX) +# define LT_PATHMAX PATH_MAX +#elif defined(MAXPATHLEN) +# define LT_PATHMAX MAXPATHLEN +#else +# define LT_PATHMAX 1024 +#endif + +#ifndef S_IXOTH +# define S_IXOTH 0 +#endif +#ifndef S_IXGRP +# define S_IXGRP 0 +#endif + +/* path handling portability macros */ +#ifndef DIR_SEPARATOR +# define DIR_SEPARATOR '/' +# define PATH_SEPARATOR ':' +#endif + +#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ + defined (__OS2__) +# define HAVE_DOS_BASED_FILE_SYSTEM +# define FOPEN_WB "wb" +# ifndef DIR_SEPARATOR_2 +# define DIR_SEPARATOR_2 '\\' +# endif +# ifndef PATH_SEPARATOR_2 +# define PATH_SEPARATOR_2 ';' +# endif +#endif + +#ifndef DIR_SEPARATOR_2 +# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) +#else /* DIR_SEPARATOR_2 */ +# define IS_DIR_SEPARATOR(ch) \ + (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) +#endif /* DIR_SEPARATOR_2 */ + +#ifndef PATH_SEPARATOR_2 +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) +#else /* PATH_SEPARATOR_2 */ +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) +#endif /* PATH_SEPARATOR_2 */ + +#ifndef FOPEN_WB +# define FOPEN_WB "w" +#endif +#ifndef _O_BINARY +# define _O_BINARY 0 +#endif + +#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) +#define XFREE(stale) do { \ + if (stale) { free ((void *) stale); stale = 0; } \ +} while (0) + +#if defined(LT_DEBUGWRAPPER) +static int lt_debug = 1; +#else +static int lt_debug = 0; +#endif + +const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ + +void *xmalloc (size_t num); +char *xstrdup (const char *string); +const char *base_name (const char *name); +char *find_executable (const char *wrapper); +char *chase_symlinks (const char *pathspec); +int make_executable (const char *path); +int check_executable (const char *path); +char *strendzap (char *str, const char *pat); +void lt_debugprintf (const char *file, int line, const char *fmt, ...); +void lt_fatal (const char *file, int line, const char *message, ...); +static const char *nonnull (const char *s); +static const char *nonempty (const char *s); +void lt_setenv (const char *name, const char *value); +char *lt_extend_str (const char *orig_value, const char *add, int to_end); +void lt_update_exe_path (const char *name, const char *value); +void lt_update_lib_path (const char *name, const char *value); +char **prepare_spawn (char **argv); +void lt_dump_script (FILE *f); +EOF + + cat <= 0) + && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) + return 1; + else + return 0; +} + +int +make_executable (const char *path) +{ + int rval = 0; + struct stat st; + + lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", + nonempty (path)); + if ((!path) || (!*path)) + return 0; + + if (stat (path, &st) >= 0) + { + rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); + } + return rval; +} + +/* Searches for the full path of the wrapper. Returns + newly allocated full path name if found, NULL otherwise + Does not chase symlinks, even on platforms that support them. +*/ +char * +find_executable (const char *wrapper) +{ + int has_slash = 0; + const char *p; + const char *p_next; + /* static buffer for getcwd */ + char tmp[LT_PATHMAX + 1]; + int tmp_len; + char *concat_name; + + lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", + nonempty (wrapper)); + + if ((wrapper == NULL) || (*wrapper == '\0')) + return NULL; + + /* Absolute path? */ +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + else + { +#endif + if (IS_DIR_SEPARATOR (wrapper[0])) + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + } +#endif + + for (p = wrapper; *p; p++) + if (*p == '/') + { + has_slash = 1; + break; + } + if (!has_slash) + { + /* no slashes; search PATH */ + const char *path = getenv ("PATH"); + if (path != NULL) + { + for (p = path; *p; p = p_next) + { + const char *q; + size_t p_len; + for (q = p; *q; q++) + if (IS_PATH_SEPARATOR (*q)) + break; + p_len = q - p; + p_next = (*q == '\0' ? q : q + 1); + if (p_len == 0) + { + /* empty path: current directory */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = + XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + } + else + { + concat_name = + XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, p, p_len); + concat_name[p_len] = '/'; + strcpy (concat_name + p_len + 1, wrapper); + } + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + } + /* not found in PATH; assume curdir */ + } + /* Relative path | not found in path: prepend cwd */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + return NULL; +} + +char * +chase_symlinks (const char *pathspec) +{ +#ifndef S_ISLNK + return xstrdup (pathspec); +#else + char buf[LT_PATHMAX]; + struct stat s; + char *tmp_pathspec = xstrdup (pathspec); + char *p; + int has_symlinks = 0; + while (strlen (tmp_pathspec) && !has_symlinks) + { + lt_debugprintf (__FILE__, __LINE__, + "checking path component for symlinks: %s\n", + tmp_pathspec); + if (lstat (tmp_pathspec, &s) == 0) + { + if (S_ISLNK (s.st_mode) != 0) + { + has_symlinks = 1; + break; + } + + /* search backwards for last DIR_SEPARATOR */ + p = tmp_pathspec + strlen (tmp_pathspec) - 1; + while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + p--; + if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + { + /* no more DIR_SEPARATORS left */ + break; + } + *p = '\0'; + } + else + { + lt_fatal (__FILE__, __LINE__, + "error accessing file \"%s\": %s", + tmp_pathspec, nonnull (strerror (errno))); + } + } + XFREE (tmp_pathspec); + + if (!has_symlinks) + { + return xstrdup (pathspec); + } + + tmp_pathspec = realpath (pathspec, buf); + if (tmp_pathspec == 0) + { + lt_fatal (__FILE__, __LINE__, + "could not follow symlinks for %s", pathspec); + } + return xstrdup (tmp_pathspec); +#endif +} + +char * +strendzap (char *str, const char *pat) +{ + size_t len, patlen; + + assert (str != NULL); + assert (pat != NULL); + + len = strlen (str); + patlen = strlen (pat); + + if (patlen <= len) + { + str += len - patlen; + if (strcmp (str, pat) == 0) + *str = '\0'; + } + return str; +} + +void +lt_debugprintf (const char *file, int line, const char *fmt, ...) +{ + va_list args; + if (lt_debug) + { + (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); + va_start (args, fmt); + (void) vfprintf (stderr, fmt, args); + va_end (args); + } +} + +static void +lt_error_core (int exit_status, const char *file, + int line, const char *mode, + const char *message, va_list ap) +{ + fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); + vfprintf (stderr, message, ap); + fprintf (stderr, ".\n"); + + if (exit_status >= 0) + exit (exit_status); +} + +void +lt_fatal (const char *file, int line, const char *message, ...) +{ + va_list ap; + va_start (ap, message); + lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); + va_end (ap); +} + +static const char * +nonnull (const char *s) +{ + return s ? s : "(null)"; +} + +static const char * +nonempty (const char *s) +{ + return (s && !*s) ? "(empty)" : nonnull (s); +} + +void +lt_setenv (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_setenv) setting '%s' to '%s'\n", + nonnull (name), nonnull (value)); + { +#ifdef HAVE_SETENV + /* always make a copy, for consistency with !HAVE_SETENV */ + char *str = xstrdup (value); + setenv (name, str, 1); +#else + int len = strlen (name) + 1 + strlen (value) + 1; + char *str = XMALLOC (char, len); + sprintf (str, "%s=%s", name, value); + if (putenv (str) != EXIT_SUCCESS) + { + XFREE (str); + } +#endif + } +} + +char * +lt_extend_str (const char *orig_value, const char *add, int to_end) +{ + char *new_value; + if (orig_value && *orig_value) + { + int orig_value_len = strlen (orig_value); + int add_len = strlen (add); + new_value = XMALLOC (char, add_len + orig_value_len + 1); + if (to_end) + { + strcpy (new_value, orig_value); + strcpy (new_value + orig_value_len, add); + } + else + { + strcpy (new_value, add); + strcpy (new_value + add_len, orig_value); + } + } + else + { + new_value = xstrdup (add); + } + return new_value; +} + +void +lt_update_exe_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + /* some systems can't cope with a ':'-terminated path #' */ + int len = strlen (new_value); + while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) + { + new_value[len-1] = '\0'; + } + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +void +lt_update_lib_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +EOF + case $host_os in + mingw*) + cat <<"EOF" + +/* Prepares an argument vector before calling spawn(). + Note that spawn() does not by itself call the command interpreter + (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : + ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + GetVersionEx(&v); + v.dwPlatformId == VER_PLATFORM_WIN32_NT; + }) ? "cmd.exe" : "command.com"). + Instead it simply concatenates the arguments, separated by ' ', and calls + CreateProcess(). We must quote the arguments since Win32 CreateProcess() + interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a + special way: + - Space and tab are interpreted as delimiters. They are not treated as + delimiters if they are surrounded by double quotes: "...". + - Unescaped double quotes are removed from the input. Their only effect is + that within double quotes, space and tab are treated like normal + characters. + - Backslashes not followed by double quotes are not special. + - But 2*n+1 backslashes followed by a double quote become + n backslashes followed by a double quote (n >= 0): + \" -> " + \\\" -> \" + \\\\\" -> \\" + */ +#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +char ** +prepare_spawn (char **argv) +{ + size_t argc; + char **new_argv; + size_t i; + + /* Count number of arguments. */ + for (argc = 0; argv[argc] != NULL; argc++) + ; + + /* Allocate new argument vector. */ + new_argv = XMALLOC (char *, argc + 1); + + /* Put quoted arguments into the new argument vector. */ + for (i = 0; i < argc; i++) + { + const char *string = argv[i]; + + if (string[0] == '\0') + new_argv[i] = xstrdup ("\"\""); + else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) + { + int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); + size_t length; + unsigned int backslashes; + const char *s; + char *quoted_string; + char *p; + + length = 0; + backslashes = 0; + if (quote_around) + length++; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + length += backslashes + 1; + length++; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + length += backslashes + 1; + + quoted_string = XMALLOC (char, length + 1); + + p = quoted_string; + backslashes = 0; + if (quote_around) + *p++ = '"'; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + { + unsigned int j; + for (j = backslashes + 1; j > 0; j--) + *p++ = '\\'; + } + *p++ = c; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + { + unsigned int j; + for (j = backslashes; j > 0; j--) + *p++ = '\\'; + *p++ = '"'; + } + *p = '\0'; + + new_argv[i] = quoted_string; + } + else + new_argv[i] = (char *) string; + } + new_argv[argc] = NULL; + + return new_argv; +} +EOF + ;; + esac + + cat <<"EOF" +void lt_dump_script (FILE* f) +{ +EOF + func_emit_wrapper yes | + $SED -e 's/\([\\"]\)/\\\1/g' \ + -e 's/^/ fputs ("/' -e 's/$/\\n", f);/' + + cat <<"EOF" +} +EOF +} +# end: func_emit_cwrapperexe_src + +# func_win32_import_lib_p ARG +# True if ARG is an import lib, as indicated by $file_magic_cmd +func_win32_import_lib_p () +{ + $opt_debug + case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in + *import*) : ;; + *) false ;; + esac +} + +# func_mode_link arg... +func_mode_link () +{ + $opt_debug + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + # It is impossible to link a dll without this setting, and + # we shouldn't force the makefile maintainer to figure out + # which system we are compiling for in order to pass an extra + # flag for every libtool invocation. + # allow_undefined=no + + # FIXME: Unfortunately, there are problems with the above when trying + # to make a dll which has undefined symbols, in which case not + # even a static library is built. For now, we need to specify + # -no-undefined on the libtool link line when we can be certain + # that all symbols are satisfied, otherwise we get a static library. + allow_undefined=yes + ;; + *) + allow_undefined=yes + ;; + esac + libtool_args=$nonopt + base_compile="$nonopt $@" + compile_command=$nonopt + finalize_command=$nonopt + + compile_rpath= + finalize_rpath= + compile_shlibpath= + finalize_shlibpath= + convenience= + old_convenience= + deplibs= + old_deplibs= + compiler_flags= + linker_flags= + dllsearchpath= + lib_search_path=`pwd` + inst_prefix_dir= + new_inherited_linker_flags= + + avoid_version=no + bindir= + dlfiles= + dlprefiles= + dlself=no + export_dynamic=no + export_symbols= + export_symbols_regex= + generated= + libobjs= + ltlibs= + module=no + no_install=no + objs= + non_pic_objects= + precious_files_regex= + prefer_static_libs=no + preload=no + prev= + prevarg= + release= + rpath= + xrpath= + perm_rpath= + temp_rpath= + thread_safe=no + vinfo= + vinfo_number=no + weak_libs= + single_module="${wl}-single_module" + func_infer_tag $base_compile + + # We need to know -static, to get the right output filenames. + for arg + do + case $arg in + -shared) + test "$build_libtool_libs" != yes && \ + func_fatal_configuration "can not build a shared library" + build_old_libs=no + break + ;; + -all-static | -static | -static-libtool-libs) + case $arg in + -all-static) + if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then + func_warning "complete static linking is impossible in this configuration" + fi + if test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + -static) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=built + ;; + -static-libtool-libs) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + esac + build_libtool_libs=no + build_old_libs=yes + break + ;; + esac + done + + # See if our shared archives depend on static archives. + test -n "$old_archive_from_new_cmds" && build_old_libs=yes + + # Go through the arguments, transforming them on the way. + while test "$#" -gt 0; do + arg="$1" + shift + func_quote_for_eval "$arg" + qarg=$func_quote_for_eval_unquoted_result + func_append libtool_args " $func_quote_for_eval_result" + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + output) + func_append compile_command " @OUTPUT@" + func_append finalize_command " @OUTPUT@" + ;; + esac + + case $prev in + bindir) + bindir="$arg" + prev= + continue + ;; + dlfiles|dlprefiles) + if test "$preload" = no; then + # Add the symbol object into the linking commands. + func_append compile_command " @SYMFILE@" + func_append finalize_command " @SYMFILE@" + preload=yes + fi + case $arg in + *.la | *.lo) ;; # We handle these cases below. + force) + if test "$dlself" = no; then + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + self) + if test "$prev" = dlprefiles; then + dlself=yes + elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then + dlself=yes + else + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + *) + if test "$prev" = dlfiles; then + dlfiles="$dlfiles $arg" + else + dlprefiles="$dlprefiles $arg" + fi + prev= + continue + ;; + esac + ;; + expsyms) + export_symbols="$arg" + test -f "$arg" \ + || func_fatal_error "symbol file \`$arg' does not exist" + prev= + continue + ;; + expsyms_regex) + export_symbols_regex="$arg" + prev= + continue + ;; + framework) + case $host in + *-*-darwin*) + case "$deplibs " in + *" $qarg.ltframework "*) ;; + *) deplibs="$deplibs $qarg.ltframework" # this is fixed later + ;; + esac + ;; + esac + prev= + continue + ;; + inst_prefix) + inst_prefix_dir="$arg" + prev= + continue + ;; + objectlist) + if test -f "$arg"; then + save_arg=$arg + moreargs= + for fil in `cat "$save_arg"` + do +# moreargs="$moreargs $fil" + arg=$fil + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test "$pic_object" = none && + test "$non_pic_object" = none; then + func_fatal_error "cannot find name of object for \`$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + dlfiles="$dlfiles $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. + dlprefiles="$dlprefiles $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object="$pic_object" + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "\`$arg' is not a valid libtool object" + fi + fi + done + else + func_fatal_error "link input file \`$arg' does not exist" + fi + arg=$save_arg + prev= + continue + ;; + precious_regex) + precious_files_regex="$arg" + prev= + continue + ;; + release) + release="-$arg" + prev= + continue + ;; + rpath | xrpath) + # We need an absolute path. + case $arg in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + if test "$prev" = rpath; then + case "$rpath " in + *" $arg "*) ;; + *) rpath="$rpath $arg" ;; + esac + else + case "$xrpath " in + *" $arg "*) ;; + *) xrpath="$xrpath $arg" ;; + esac + fi + prev= + continue + ;; + shrext) + shrext_cmds="$arg" + prev= + continue + ;; + weak) + weak_libs="$weak_libs $arg" + prev= + continue + ;; + xcclinker) + linker_flags="$linker_flags $qarg" + compiler_flags="$compiler_flags $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xcompiler) + compiler_flags="$compiler_flags $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xlinker) + linker_flags="$linker_flags $qarg" + compiler_flags="$compiler_flags $wl$qarg" + prev= + func_append compile_command " $wl$qarg" + func_append finalize_command " $wl$qarg" + continue + ;; + *) + eval "$prev=\"\$arg\"" + prev= + continue + ;; + esac + fi # test -n "$prev" + + prevarg="$arg" + + case $arg in + -all-static) + if test -n "$link_static_flag"; then + # See comment for -static flag below, for more details. + func_append compile_command " $link_static_flag" + func_append finalize_command " $link_static_flag" + fi + continue + ;; + + -allow-undefined) + # FIXME: remove this flag sometime in the future. + func_fatal_error "\`-allow-undefined' must not be used because it is the default" + ;; + + -avoid-version) + avoid_version=yes + continue + ;; + + -bindir) + prev=bindir + continue + ;; + + -dlopen) + prev=dlfiles + continue + ;; + + -dlpreopen) + prev=dlprefiles + continue + ;; + + -export-dynamic) + export_dynamic=yes + continue + ;; + + -export-symbols | -export-symbols-regex) + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + func_fatal_error "more than one -exported-symbols argument is not allowed" + fi + if test "X$arg" = "X-export-symbols"; then + prev=expsyms + else + prev=expsyms_regex + fi + continue + ;; + + -framework) + prev=framework + continue + ;; + + -inst-prefix-dir) + prev=inst_prefix + continue + ;; + + # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* + # so, if we see these flags be careful not to treat them like -L + -L[A-Z][A-Z]*:*) + case $with_gcc/$host in + no/*-*-irix* | /*-*-irix*) + func_append compile_command " $arg" + func_append finalize_command " $arg" + ;; + esac + continue + ;; + + -L*) + func_stripname '-L' '' "$arg" + dir=$func_stripname_result + if test -z "$dir"; then + if test "$#" -gt 0; then + func_fatal_error "require no space between \`-L' and \`$1'" + else + func_fatal_error "need path for \`-L' option" + fi + fi + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + absdir=`cd "$dir" && pwd` + test -z "$absdir" && \ + func_fatal_error "cannot determine absolute directory name of \`$dir'" + dir="$absdir" + ;; + esac + case "$deplibs " in + *" -L$dir "*) ;; + *) + deplibs="$deplibs -L$dir" + lib_search_path="$lib_search_path $dir" + ;; + esac + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$dir:"*) ;; + ::) dllsearchpath=$dir;; + *) dllsearchpath="$dllsearchpath:$dir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) dllsearchpath="$dllsearchpath:$testbindir";; + esac + ;; + esac + continue + ;; + + -l*) + if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) + # These systems don't actually have a C or math library (as such) + continue + ;; + *-*-os2*) + # These systems don't actually have a C library (as such) + test "X$arg" = "X-lc" && continue + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + test "X$arg" = "X-lc" && continue + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C and math libraries are in the System framework + deplibs="$deplibs System.ltframework" + continue + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + test "X$arg" = "X-lc" && continue + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + test "X$arg" = "X-lc" && continue + ;; + esac + elif test "X$arg" = "X-lc_r"; then + case $host in + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc_r directly, use -pthread flag. + continue + ;; + esac + fi + deplibs="$deplibs $arg" + continue + ;; + + -module) + module=yes + continue + ;; + + # Tru64 UNIX uses -model [arg] to determine the layout of C++ + # classes, name mangling, and exception handling. + # Darwin uses the -arch flag to determine output architecture. + -model|-arch|-isysroot) + compiler_flags="$compiler_flags $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + prev=xcompiler + continue + ;; + + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) + compiler_flags="$compiler_flags $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case "$new_inherited_linker_flags " in + *" $arg "*) ;; + * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; + esac + continue + ;; + + -multi_module) + single_module="${wl}-multi_module" + continue + ;; + + -no-fast-install) + fast_install=no + continue + ;; + + -no-install) + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) + # The PATH hackery in wrapper scripts is required on Windows + # and Darwin in order for the loader to find any dlls it needs. + func_warning "\`-no-install' is ignored for $host" + func_warning "assuming \`-no-fast-install' instead" + fast_install=no + ;; + *) no_install=yes ;; + esac + continue + ;; + + -no-undefined) + allow_undefined=no + continue + ;; + + -objectlist) + prev=objectlist + continue + ;; + + -o) prev=output ;; + + -precious-files-regex) + prev=precious_regex + continue + ;; + + -release) + prev=release + continue + ;; + + -rpath) + prev=rpath + continue + ;; + + -R) + prev=xrpath + continue + ;; + + -R*) + func_stripname '-R' '' "$arg" + dir=$func_stripname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + case "$xrpath " in + *" $dir "*) ;; + *) xrpath="$xrpath $dir" ;; + esac + continue + ;; + + -shared) + # The effects of -shared are defined in a previous loop. + continue + ;; + + -shrext) + prev=shrext + continue + ;; + + -static | -static-libtool-libs) + # The effects of -static are defined in a previous loop. + # We used to do the same as -all-static on platforms that + # didn't have a PIC flag, but the assumption that the effects + # would be equivalent was wrong. It would break on at least + # Digital Unix and AIX. + continue + ;; + + -thread-safe) + thread_safe=yes + continue + ;; + + -version-info) + prev=vinfo + continue + ;; + + -version-number) + prev=vinfo + vinfo_number=yes + continue + ;; + + -weak) + prev=weak + continue + ;; + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs="$IFS"; IFS=',' + for flag in $args; do + IFS="$save_ifs" + func_quote_for_eval "$flag" + arg="$arg $func_quote_for_eval_result" + compiler_flags="$compiler_flags $func_quote_for_eval_result" + done + IFS="$save_ifs" + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Wl,*) + func_stripname '-Wl,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs="$IFS"; IFS=',' + for flag in $args; do + IFS="$save_ifs" + func_quote_for_eval "$flag" + arg="$arg $wl$func_quote_for_eval_result" + compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" + linker_flags="$linker_flags $func_quote_for_eval_result" + done + IFS="$save_ifs" + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Xcompiler) + prev=xcompiler + continue + ;; + + -Xlinker) + prev=xlinker + continue + ;; + + -XCClinker) + prev=xcclinker + continue + ;; + + # -msg_* for osf cc + -msg_*) + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + ;; + + # Flags to be passed through unchanged, with rationale: + # -64, -mips[0-9] enable 64-bit mode for the SGI compiler + # -r[0-9][0-9]* specify processor for the SGI compiler + # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler + # +DA*, +DD* enable 64-bit mode for the HP compiler + # -q* compiler args for the IBM compiler + # -m*, -t[45]*, -txscale* architecture-specific flags for GCC + # -F/path path to uninstalled frameworks, gcc on darwin + # -p, -pg, --coverage, -fprofile-* profiling flags for GCC + # @file GCC response files + # -tp=* Portland pgcc target processor selection + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ + -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*) + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + func_append compile_command " $arg" + func_append finalize_command " $arg" + compiler_flags="$compiler_flags $arg" + continue + ;; + + # Some other compiler flag. + -* | +*) + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + ;; + + *.$objext) + # A standard object. + objs="$objs $arg" + ;; + + *.lo) + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test "$pic_object" = none && + test "$non_pic_object" = none; then + func_fatal_error "cannot find name of object for \`$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + dlfiles="$dlfiles $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. + dlprefiles="$dlprefiles $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object="$pic_object" + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "\`$arg' is not a valid libtool object" + fi + fi + ;; + + *.$libext) + # An archive. + deplibs="$deplibs $arg" + old_deplibs="$old_deplibs $arg" + continue + ;; + + *.la) + # A libtool-controlled library. + + if test "$prev" = dlfiles; then + # This library was specified with -dlopen. + dlfiles="$dlfiles $arg" + prev= + elif test "$prev" = dlprefiles; then + # The library was specified with -dlpreopen. + dlprefiles="$dlprefiles $arg" + prev= + else + deplibs="$deplibs $arg" + fi + continue + ;; + + # Some other compiler argument. + *) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + ;; + esac # arg + + # Now actually substitute the argument into the commands. + if test -n "$arg"; then + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + done # argument parsing loop + + test -n "$prev" && \ + func_fatal_help "the \`$prevarg' option requires an argument" + + if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then + eval arg=\"$export_dynamic_flag_spec\" + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + + oldlibs= + # calculate the name of the file, without its directory + func_basename "$output" + outputname="$func_basename_result" + libobjs_save="$libobjs" + + if test -n "$shlibpath_var"; then + # get the directories listed in $shlibpath_var + eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` + else + shlib_search_path= + fi + eval sys_lib_search_path=\"$sys_lib_search_path_spec\" + eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + + func_dirname "$output" "/" "" + output_objdir="$func_dirname_result$objdir" + # Create the object directory. + func_mkdir_p "$output_objdir" + + # Determine the type of output + case $output in + "") + func_fatal_help "you must specify an output file" + ;; + *.$libext) linkmode=oldlib ;; + *.lo | *.$objext) linkmode=obj ;; + *.la) linkmode=lib ;; + *) linkmode=prog ;; # Anything else should be a program. + esac + + specialdeplibs= + + libs= + # Find all interdependent deplibs by searching for libraries + # that are linked more than once (e.g. -la -lb -la) + for deplib in $deplibs; do + if $opt_duplicate_deps ; then + case "$libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + libs="$libs $deplib" + done + + if test "$linkmode" = lib; then + libs="$predeps $libs $compiler_lib_search_path $postdeps" + + # Compute libraries that are listed more than once in $predeps + # $postdeps and mark them as special (i.e., whose duplicates are + # not to be eliminated). + pre_post_deps= + if $opt_duplicate_compiler_generated_deps; then + for pre_post_dep in $predeps $postdeps; do + case "$pre_post_deps " in + *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; + esac + pre_post_deps="$pre_post_deps $pre_post_dep" + done + fi + pre_post_deps= + fi + + deplibs= + newdependency_libs= + newlib_search_path= + need_relink=no # whether we're linking any uninstalled libtool libraries + notinst_deplibs= # not-installed libtool libraries + notinst_path= # paths that contain not-installed libtool libraries + + case $linkmode in + lib) + passes="conv dlpreopen link" + for file in $dlfiles $dlprefiles; do + case $file in + *.la) ;; + *) + func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" + ;; + esac + done + ;; + prog) + compile_deplibs= + finalize_deplibs= + alldeplibs=no + newdlfiles= + newdlprefiles= + passes="conv scan dlopen dlpreopen link" + ;; + *) passes="conv" + ;; + esac + + for pass in $passes; do + # The preopen pass in lib mode reverses $deplibs; put it back here + # so that -L comes before libs that need it for instance... + if test "$linkmode,$pass" = "lib,link"; then + ## FIXME: Find the place where the list is rebuilt in the wrong + ## order, and fix it there properly + tmp_deplibs= + for deplib in $deplibs; do + tmp_deplibs="$deplib $tmp_deplibs" + done + deplibs="$tmp_deplibs" + fi + + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan"; then + libs="$deplibs" + deplibs= + fi + if test "$linkmode" = prog; then + case $pass in + dlopen) libs="$dlfiles" ;; + dlpreopen) libs="$dlprefiles" ;; + link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; + esac + fi + if test "$linkmode,$pass" = "lib,dlpreopen"; then + # Collect and forward deplibs of preopened libtool libs + for lib in $dlprefiles; do + # Ignore non-libtool-libs + dependency_libs= + case $lib in + *.la) func_source "$lib" ;; + esac + + # Collect preopened libtool deplibs, except any this library + # has declared as weak libs + for deplib in $dependency_libs; do + func_basename "$deplib" + deplib_base=$func_basename_result + case " $weak_libs " in + *" $deplib_base "*) ;; + *) deplibs="$deplibs $deplib" ;; + esac + done + done + libs="$dlprefiles" + fi + if test "$pass" = dlopen; then + # Collect dlpreopened libraries + save_deplibs="$deplibs" + deplibs= + fi + + for deplib in $libs; do + lib= + found=no + case $deplib in + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + compiler_flags="$compiler_flags $deplib" + if test "$linkmode" = lib ; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; + esac + fi + fi + continue + ;; + -l*) + if test "$linkmode" != lib && test "$linkmode" != prog; then + func_warning "\`-l' is ignored for archives/objects" + continue + fi + func_stripname '-l' '' "$deplib" + name=$func_stripname_result + if test "$linkmode" = lib; then + searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" + else + searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" + fi + for searchdir in $searchdirs; do + for search_ext in .la $std_shrext .so .a; do + # Search the libtool library + lib="$searchdir/lib${name}${search_ext}" + if test -f "$lib"; then + if test "$search_ext" = ".la"; then + found=yes + else + found=no + fi + break 2 + fi + done + done + if test "$found" != yes; then + # deplib doesn't seem to be a libtool library + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + fi + continue + else # deplib is a libtool library + # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, + # We need to do some special things here, and not later. + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $deplib "*) + if func_lalib_p "$lib"; then + library_names= + old_library= + func_source "$lib" + for l in $old_library $library_names; do + ll="$l" + done + if test "X$ll" = "X$old_library" ; then # only static version available + found=no + func_dirname "$lib" "" "." + ladir="$func_dirname_result" + lib=$ladir/$old_library + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + fi + ;; + *) ;; + esac + fi + fi + ;; # -l + *.ltframework) + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + if test "$linkmode" = lib ; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; + esac + fi + fi + continue + ;; + -L*) + case $linkmode in + lib) + deplibs="$deplib $deplibs" + test "$pass" = conv && continue + newdependency_libs="$deplib $newdependency_libs" + func_stripname '-L' '' "$deplib" + newlib_search_path="$newlib_search_path $func_stripname_result" + ;; + prog) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + continue + fi + if test "$pass" = scan; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + func_stripname '-L' '' "$deplib" + newlib_search_path="$newlib_search_path $func_stripname_result" + ;; + *) + func_warning "\`-L' is ignored for archives/objects" + ;; + esac # linkmode + continue + ;; # -L + -R*) + if test "$pass" = link; then + func_stripname '-R' '' "$deplib" + dir=$func_stripname_result + # Make sure the xrpath contains only unique directories. + case "$xrpath " in + *" $dir "*) ;; + *) xrpath="$xrpath $dir" ;; + esac + fi + deplibs="$deplib $deplibs" + continue + ;; + *.la) lib="$deplib" ;; + *.$libext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + continue + fi + case $linkmode in + lib) + # Linking convenience modules into shared libraries is allowed, + # but linking other static libraries is non-portable. + case " $dlpreconveniencelibs " in + *" $deplib "*) ;; + *) + valid_a_lib=no + case $deplibs_check_method in + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + valid_a_lib=yes + fi + ;; + pass_all) + valid_a_lib=yes + ;; + esac + if test "$valid_a_lib" != yes; then + echo + $ECHO "*** Warning: Trying to link with static lib archive $deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because the file extensions .$libext of this argument makes me believe" + echo "*** that it is just a static archive that I should not use here." + else + echo + $ECHO "*** Warning: Linking the shared library $output against the" + $ECHO "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" + fi + ;; + esac + continue + ;; + prog) + if test "$pass" != link; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + continue + ;; + esac # linkmode + ;; # *.$libext + *.lo | *.$objext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + elif test "$linkmode" = prog; then + if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then + # If there is no dlopen support or we're linking statically, + # we need to preload. + newdlprefiles="$newdlprefiles $deplib" + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + newdlfiles="$newdlfiles $deplib" + fi + fi + continue + ;; + %DEPLIBS%) + alldeplibs=yes + continue + ;; + esac # case $deplib + + if test "$found" = yes || test -f "$lib"; then : + else + func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" + fi + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$lib" \ + || func_fatal_error "\`$lib' is not a valid libtool archive" + + func_dirname "$lib" "" "." + ladir="$func_dirname_result" + + dlname= + dlopen= + dlpreopen= + libdir= + library_names= + old_library= + inherited_linker_flags= + # If the library was installed with an old release of libtool, + # it will not redefine variables installed, or shouldnotlink + installed=yes + shouldnotlink=no + avoidtemprpath= + + + # Read the .la file + func_source "$lib" + + # Convert "-framework foo" to "foo.ltframework" + if test -n "$inherited_linker_flags"; then + tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do + case " $new_inherited_linker_flags " in + *" $tmp_inherited_linker_flag "*) ;; + *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; + esac + done + fi + dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan" || + { test "$linkmode" != prog && test "$linkmode" != lib; }; then + test -n "$dlopen" && dlfiles="$dlfiles $dlopen" + test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" + fi + + if test "$pass" = conv; then + # Only check for convenience libraries + deplibs="$lib $deplibs" + if test -z "$libdir"; then + if test -z "$old_library"; then + func_fatal_error "cannot find name of link library for \`$lib'" + fi + # It is a libtool convenience library, so add in its objects. + convenience="$convenience $ladir/$objdir/$old_library" + old_convenience="$old_convenience $ladir/$objdir/$old_library" + elif test "$linkmode" != prog && test "$linkmode" != lib; then + func_fatal_error "\`$lib' is not a convenience library" + fi + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if $opt_duplicate_deps ; then + case "$tmp_libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + tmp_libs="$tmp_libs $deplib" + done + continue + fi # $pass = conv + + + # Get the name of the library we link against. + linklib= + for l in $old_library $library_names; do + linklib="$l" + done + if test -z "$linklib"; then + func_fatal_error "cannot find name of link library for \`$lib'" + fi + + # This library was specified with -dlopen. + if test "$pass" = dlopen; then + if test -z "$libdir"; then + func_fatal_error "cannot -dlopen a convenience library: \`$lib'" + fi + if test -z "$dlname" || + test "$dlopen_support" != yes || + test "$build_libtool_libs" = no; then + # If there is no dlname, no dlopen support or we're linking + # statically, we need to preload. We also need to preload any + # dependent libraries so libltdl's deplib preloader doesn't + # bomb out in the load deplibs phase. + dlprefiles="$dlprefiles $lib $dependency_libs" + else + newdlfiles="$newdlfiles $lib" + fi + continue + fi # $pass = dlopen + + # We need an absolute path. + case $ladir in + [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; + *) + abs_ladir=`cd "$ladir" && pwd` + if test -z "$abs_ladir"; then + func_warning "cannot determine absolute directory name of \`$ladir'" + func_warning "passing it literally to the linker, although it might fail" + abs_ladir="$ladir" + fi + ;; + esac + func_basename "$lib" + laname="$func_basename_result" + + # Find the relevant object directory and library name. + if test "X$installed" = Xyes; then + if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then + func_warning "library \`$lib' was moved." + dir="$ladir" + absdir="$abs_ladir" + libdir="$abs_ladir" + else + dir="$libdir" + absdir="$libdir" + fi + test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes + else + if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then + dir="$ladir" + absdir="$abs_ladir" + # Remove this search path later + notinst_path="$notinst_path $abs_ladir" + else + dir="$ladir/$objdir" + absdir="$abs_ladir/$objdir" + # Remove this search path later + notinst_path="$notinst_path $abs_ladir" + fi + fi # $installed = yes + func_stripname 'lib' '.la' "$laname" + name=$func_stripname_result + + # This library was specified with -dlpreopen. + if test "$pass" = dlpreopen; then + if test -z "$libdir" && test "$linkmode" = prog; then + func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" + fi + # Prefer using a static library (so that no silly _DYNAMIC symbols + # are required to link). + if test -n "$old_library"; then + newdlprefiles="$newdlprefiles $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" + # Otherwise, use the dlname, so that lt_dlopen finds it. + elif test -n "$dlname"; then + newdlprefiles="$newdlprefiles $dir/$dlname" + else + newdlprefiles="$newdlprefiles $dir/$linklib" + fi + fi # $pass = dlpreopen + + if test -z "$libdir"; then + # Link the convenience library + if test "$linkmode" = lib; then + deplibs="$dir/$old_library $deplibs" + elif test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$dir/$old_library $compile_deplibs" + finalize_deplibs="$dir/$old_library $finalize_deplibs" + else + deplibs="$lib $deplibs" # used for prog,scan pass + fi + continue + fi + + + if test "$linkmode" = prog && test "$pass" != link; then + newlib_search_path="$newlib_search_path $ladir" + deplibs="$lib $deplibs" + + linkalldeplibs=no + if test "$link_all_deplibs" != no || test -z "$library_names" || + test "$build_libtool_libs" = no; then + linkalldeplibs=yes + fi + + tmp_libs= + for deplib in $dependency_libs; do + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + newlib_search_path="$newlib_search_path $func_stripname_result" + ;; + esac + # Need to link against all dependency_libs? + if test "$linkalldeplibs" = yes; then + deplibs="$deplib $deplibs" + else + # Need to hardcode shared library paths + # or/and link against static libraries + newdependency_libs="$deplib $newdependency_libs" + fi + if $opt_duplicate_deps ; then + case "$tmp_libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + tmp_libs="$tmp_libs $deplib" + done # for deplib + continue + fi # $linkmode = prog... + + if test "$linkmode,$pass" = "prog,link"; then + if test -n "$library_names" && + { { test "$prefer_static_libs" = no || + test "$prefer_static_libs,$installed" = "built,yes"; } || + test -z "$old_library"; }; then + # We need to hardcode the library path + if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then + # Make sure the rpath contains only unique directories. + case "$temp_rpath:" in + *"$absdir:"*) ;; + *) temp_rpath="$temp_rpath$absdir:" ;; + esac + fi + + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) compile_rpath="$compile_rpath $absdir" + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" + esac + ;; + esac + fi # $linkmode,$pass = prog,link... + + if test "$alldeplibs" = yes && + { test "$deplibs_check_method" = pass_all || + { test "$build_libtool_libs" = yes && + test -n "$library_names"; }; }; then + # We only need to search for static libraries + continue + fi + fi + + link_static=no # Whether the deplib will be linked statically + use_static_libs=$prefer_static_libs + if test "$use_static_libs" = built && test "$installed" = yes; then + use_static_libs=no + fi + if test -n "$library_names" && + { test "$use_static_libs" = no || test -z "$old_library"; }; then + case $host in + *cygwin* | *mingw* | *cegcc*) + # No point in relinking DLLs because paths are not encoded + notinst_deplibs="$notinst_deplibs $lib" + need_relink=no + ;; + *) + if test "$installed" = no; then + notinst_deplibs="$notinst_deplibs $lib" + need_relink=yes + fi + ;; + esac + # This is a shared library + + # Warn about portability, can't link against -module's on some + # systems (darwin). Don't bleat about dlopened modules though! + dlopenmodule="" + for dlpremoduletest in $dlprefiles; do + if test "X$dlpremoduletest" = "X$lib"; then + dlopenmodule="$dlpremoduletest" + break + fi + done + if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then + echo + if test "$linkmode" = prog; then + $ECHO "*** Warning: Linking the executable $output against the loadable module" + else + $ECHO "*** Warning: Linking the shared library $output against the loadable module" + fi + $ECHO "*** $linklib is not portable!" + fi + if test "$linkmode" = lib && + test "$hardcode_into_libs" = yes; then + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) compile_rpath="$compile_rpath $absdir" + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" + esac + ;; + esac + fi + + if test -n "$old_archive_from_expsyms_cmds"; then + # figure out the soname + set dummy $library_names + shift + realname="$1" + shift + libname=`eval "\\$ECHO \"$libname_spec\""` + # use dlname if we got it. it's perfectly good, no? + if test -n "$dlname"; then + soname="$dlname" + elif test -n "$soname_spec"; then + # bleh windows + case $host in + *cygwin* | mingw* | *cegcc*) + func_arith $current - $age + major=$func_arith_result + versuffix="-$major" + ;; + esac + eval soname=\"$soname_spec\" + else + soname="$realname" + fi + + # Make a new name for the extract_expsyms_cmds to use + soroot="$soname" + func_basename "$soroot" + soname="$func_basename_result" + func_stripname 'lib' '.dll' "$soname" + newlib=libimp-$func_stripname_result.a + + # If the library has no export list, then create one now + if test -f "$output_objdir/$soname-def"; then : + else + func_verbose "extracting exported symbol list from \`$soname'" + func_execute_cmds "$extract_expsyms_cmds" 'exit $?' + fi + + # Create $newlib + if test -f "$output_objdir/$newlib"; then :; else + func_verbose "generating import library for \`$soname'" + func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' + fi + # make sure the library variables are pointing to the new library + dir=$output_objdir + linklib=$newlib + fi # test -n "$old_archive_from_expsyms_cmds" + + if test "$linkmode" = prog || test "$mode" != relink; then + add_shlibpath= + add_dir= + add= + lib_linked=yes + case $hardcode_action in + immediate | unsupported) + if test "$hardcode_direct" = no; then + add="$dir/$linklib" + case $host in + *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; + *-*-sysv4*uw2*) add_dir="-L$dir" ;; + *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ + *-*-unixware7*) add_dir="-L$dir" ;; + *-*-darwin* ) + # if the lib is a (non-dlopened) module then we can not + # link against it, someone is ignoring the earlier warnings + if /usr/bin/file -L $add 2> /dev/null | + $GREP ": [^:]* bundle" >/dev/null ; then + if test "X$dlopenmodule" != "X$lib"; then + $ECHO "*** Warning: lib $linklib is a module, not a shared library" + if test -z "$old_library" ; then + echo + echo "*** And there doesn't seem to be a static archive available" + echo "*** The link will probably fail, sorry" + else + add="$dir/$old_library" + fi + elif test -n "$old_library"; then + add="$dir/$old_library" + fi + fi + esac + elif test "$hardcode_minus_L" = no; then + case $host in + *-*-sunos*) add_shlibpath="$dir" ;; + esac + add_dir="-L$dir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = no; then + add_shlibpath="$dir" + add="-l$name" + else + lib_linked=no + fi + ;; + relink) + if test "$hardcode_direct" = yes && + test "$hardcode_direct_absolute" = no; then + add="$dir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$dir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + add_dir="$add_dir -L$inst_prefix_dir$libdir" + ;; + esac + fi + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + add_shlibpath="$dir" + add="-l$name" + else + lib_linked=no + fi + ;; + *) lib_linked=no ;; + esac + + if test "$lib_linked" != yes; then + func_fatal_configuration "unsupported hardcode properties" + fi + + if test -n "$add_shlibpath"; then + case :$compile_shlibpath: in + *":$add_shlibpath:"*) ;; + *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; + esac + fi + if test "$linkmode" = prog; then + test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" + test -n "$add" && compile_deplibs="$add $compile_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + if test "$hardcode_direct" != yes && + test "$hardcode_minus_L" != yes && + test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; + esac + fi + fi + fi + + if test "$linkmode" = prog || test "$mode" = relink; then + add_shlibpath= + add_dir= + add= + # Finalize command for both is simple: just hardcode it. + if test "$hardcode_direct" = yes && + test "$hardcode_direct_absolute" = no; then + add="$libdir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$libdir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; + esac + add="-l$name" + elif test "$hardcode_automatic" = yes; then + if test -n "$inst_prefix_dir" && + test -f "$inst_prefix_dir$libdir/$linklib" ; then + add="$inst_prefix_dir$libdir/$linklib" + else + add="$libdir/$linklib" + fi + else + # We cannot seem to hardcode it, guess we'll fake it. + add_dir="-L$libdir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + add_dir="$add_dir -L$inst_prefix_dir$libdir" + ;; + esac + fi + add="-l$name" + fi + + if test "$linkmode" = prog; then + test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" + test -n "$add" && finalize_deplibs="$add $finalize_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + fi + fi + elif test "$linkmode" = prog; then + # Here we assume that one of hardcode_direct or hardcode_minus_L + # is not unsupported. This is valid on all known static and + # shared platforms. + if test "$hardcode_direct" != unsupported; then + test -n "$old_library" && linklib="$old_library" + compile_deplibs="$dir/$linklib $compile_deplibs" + finalize_deplibs="$dir/$linklib $finalize_deplibs" + else + compile_deplibs="-l$name -L$dir $compile_deplibs" + finalize_deplibs="-l$name -L$dir $finalize_deplibs" + fi + elif test "$build_libtool_libs" = yes; then + # Not a shared library + if test "$deplibs_check_method" != pass_all; then + # We're trying link a shared library against a static one + # but the system doesn't support it. + + # Just print a warning and add the library to dependency_libs so + # that the program can be linked against the static library. + echo + $ECHO "*** Warning: This system can not link to static lib archive $lib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have." + if test "$module" = yes; then + echo "*** But as you try to build a module library, libtool will still create " + echo "*** a static module, that should work as long as the dlopening application" + echo "*** is linked with the -dlopen flag to resolve symbols at runtime." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** \`nm' from GNU binutils and a full rebuild may help." + fi + if test "$build_old_libs" = no; then + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + else + deplibs="$dir/$old_library $deplibs" + link_static=yes + fi + fi # link shared/static library? + + if test "$linkmode" = lib; then + if test -n "$dependency_libs" && + { test "$hardcode_into_libs" != yes || + test "$build_old_libs" = yes || + test "$link_static" = yes; }; then + # Extract -R from dependency_libs + temp_deplibs= + for libdir in $dependency_libs; do + case $libdir in + -R*) func_stripname '-R' '' "$libdir" + temp_xrpath=$func_stripname_result + case " $xrpath " in + *" $temp_xrpath "*) ;; + *) xrpath="$xrpath $temp_xrpath";; + esac;; + *) temp_deplibs="$temp_deplibs $libdir";; + esac + done + dependency_libs="$temp_deplibs" + fi + + newlib_search_path="$newlib_search_path $absdir" + # Link against this library + test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" + # ... and its dependency_libs + tmp_libs= + for deplib in $dependency_libs; do + newdependency_libs="$deplib $newdependency_libs" + if $opt_duplicate_deps ; then + case "$tmp_libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + tmp_libs="$tmp_libs $deplib" + done + + if test "$link_all_deplibs" != no; then + # Add the search paths of all dependency libraries + for deplib in $dependency_libs; do + path= + case $deplib in + -L*) path="$deplib" ;; + *.la) + func_dirname "$deplib" "" "." + dir="$func_dirname_result" + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + func_warning "cannot determine absolute directory name of \`$dir'" + absdir="$dir" + fi + ;; + esac + if $GREP "^installed=no" $deplib > /dev/null; then + case $host in + *-*-darwin*) + depdepl= + eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` + if test -n "$deplibrary_names" ; then + for tmp in $deplibrary_names ; do + depdepl=$tmp + done + if test -f "$absdir/$objdir/$depdepl" ; then + depdepl="$absdir/$objdir/$depdepl" + darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + if test -z "$darwin_install_name"; then + darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + fi + compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" + linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" + path= + fi + fi + ;; + *) + path="-L$absdir/$objdir" + ;; + esac + else + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + test -z "$libdir" && \ + func_fatal_error "\`$deplib' is not a valid libtool archive" + test "$absdir" != "$libdir" && \ + func_warning "\`$deplib' seems to be moved" + + path="-L$absdir" + fi + ;; + esac + case " $deplibs " in + *" $path "*) ;; + *) deplibs="$path $deplibs" ;; + esac + done + fi # link_all_deplibs != no + fi # linkmode = lib + done # for deplib in $libs + if test "$pass" = link; then + if test "$linkmode" = "prog"; then + compile_deplibs="$new_inherited_linker_flags $compile_deplibs" + finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" + else + compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + fi + fi + dependency_libs="$newdependency_libs" + if test "$pass" = dlpreopen; then + # Link the dlpreopened libraries before other libraries + for deplib in $save_deplibs; do + deplibs="$deplib $deplibs" + done + fi + if test "$pass" != dlopen; then + if test "$pass" != conv; then + # Make sure lib_search_path contains only unique directories. + lib_search_path= + for dir in $newlib_search_path; do + case "$lib_search_path " in + *" $dir "*) ;; + *) lib_search_path="$lib_search_path $dir" ;; + esac + done + newlib_search_path= + fi + + if test "$linkmode,$pass" != "prog,link"; then + vars="deplibs" + else + vars="compile_deplibs finalize_deplibs" + fi + for var in $vars dependency_libs; do + # Add libraries to $var in reverse order + eval tmp_libs=\"\$$var\" + new_libs= + for deplib in $tmp_libs; do + # FIXME: Pedantically, this is the right thing to do, so + # that some nasty dependency loop isn't accidentally + # broken: + #new_libs="$deplib $new_libs" + # Pragmatically, this seems to cause very few problems in + # practice: + case $deplib in + -L*) new_libs="$deplib $new_libs" ;; + -R*) ;; + *) + # And here is the reason: when a library appears more + # than once as an explicit dependence of a library, or + # is implicitly linked in more than once by the + # compiler, it is considered special, and multiple + # occurrences thereof are not removed. Compare this + # with having the same library being listed as a + # dependency of multiple other libraries: in this case, + # we know (pedantically, we assume) the library does not + # need to be listed more than once, so we keep only the + # last copy. This is not always right, but it is rare + # enough that we require users that really mean to play + # such unportable linking tricks to link the library + # using -Wl,-lname, so that libtool does not consider it + # for duplicate removal. + case " $specialdeplibs " in + *" $deplib "*) new_libs="$deplib $new_libs" ;; + *) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$deplib $new_libs" ;; + esac + ;; + esac + ;; + esac + done + tmp_libs= + for deplib in $new_libs; do + case $deplib in + -L*) + case " $tmp_libs " in + *" $deplib "*) ;; + *) tmp_libs="$tmp_libs $deplib" ;; + esac + ;; + *) tmp_libs="$tmp_libs $deplib" ;; + esac + done + eval $var=\"$tmp_libs\" + done # for var + fi + # Last step: remove runtime libs from dependency_libs + # (they stay in deplibs) + tmp_libs= + for i in $dependency_libs ; do + case " $predeps $postdeps $compiler_lib_search_path " in + *" $i "*) + i="" + ;; + esac + if test -n "$i" ; then + tmp_libs="$tmp_libs $i" + fi + done + dependency_libs=$tmp_libs + done # for pass + if test "$linkmode" = prog; then + dlfiles="$newdlfiles" + fi + if test "$linkmode" = prog || test "$linkmode" = lib; then + dlprefiles="$newdlprefiles" + fi + + case $linkmode in + oldlib) + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + func_warning "\`-dlopen' is ignored for archives" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "\`-l' and \`-L' are ignored for archives" ;; + esac + + test -n "$rpath" && \ + func_warning "\`-rpath' is ignored for archives" + + test -n "$xrpath" && \ + func_warning "\`-R' is ignored for archives" + + test -n "$vinfo" && \ + func_warning "\`-version-info/-version-number' is ignored for archives" + + test -n "$release" && \ + func_warning "\`-release' is ignored for archives" + + test -n "$export_symbols$export_symbols_regex" && \ + func_warning "\`-export-symbols' is ignored for archives" + + # Now set the variables for building old libraries. + build_libtool_libs=no + oldlibs="$output" + objs="$objs$old_deplibs" + ;; + + lib) + # Make sure we only generate libraries of the form `libNAME.la'. + case $outputname in + lib*) + func_stripname 'lib' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + ;; + *) + test "$module" = no && \ + func_fatal_help "libtool library \`$output' must begin with \`lib'" + + if test "$need_lib_prefix" != no; then + # Add the "lib" prefix for modules if required + func_stripname '' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + else + func_stripname '' '.la' "$outputname" + libname=$func_stripname_result + fi + ;; + esac + + if test -n "$objs"; then + if test "$deplibs_check_method" != pass_all; then + func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" + else + echo + $ECHO "*** Warning: Linking the shared library $output against the non-libtool" + $ECHO "*** objects $objs is not portable!" + libobjs="$libobjs $objs" + fi + fi + + test "$dlself" != no && \ + func_warning "\`-dlopen self' is ignored for libtool libraries" + + set dummy $rpath + shift + test "$#" -gt 1 && \ + func_warning "ignoring multiple \`-rpath's for a libtool library" + + install_libdir="$1" + + oldlibs= + if test -z "$rpath"; then + if test "$build_libtool_libs" = yes; then + # Building a libtool convenience library. + # Some compilers have problems with a `.al' extension so + # convenience libraries should have the same extension an + # archive normally would. + oldlibs="$output_objdir/$libname.$libext $oldlibs" + build_libtool_libs=convenience + build_old_libs=yes + fi + + test -n "$vinfo" && \ + func_warning "\`-version-info/-version-number' is ignored for convenience libraries" + + test -n "$release" && \ + func_warning "\`-release' is ignored for convenience libraries" + else + + # Parse the version information argument. + save_ifs="$IFS"; IFS=':' + set dummy $vinfo 0 0 0 + shift + IFS="$save_ifs" + + test -n "$7" && \ + func_fatal_help "too many parameters to \`-version-info'" + + # convert absolute version numbers to libtool ages + # this retains compatibility with .la files and attempts + # to make the code below a bit more comprehensible + + case $vinfo_number in + yes) + number_major="$1" + number_minor="$2" + number_revision="$3" + # + # There are really only two kinds -- those that + # use the current revision as the major version + # and those that subtract age and use age as + # a minor version. But, then there is irix + # which has an extra 1 added just for fun + # + case $version_type in + darwin|linux|osf|windows|none) + func_arith $number_major + $number_minor + current=$func_arith_result + age="$number_minor" + revision="$number_revision" + ;; + freebsd-aout|freebsd-elf|qnx|sunos) + current="$number_major" + revision="$number_minor" + age="0" + ;; + irix|nonstopux) + func_arith $number_major + $number_minor + current=$func_arith_result + age="$number_minor" + revision="$number_minor" + lt_irix_increment=no + ;; + esac + ;; + no) + current="$1" + revision="$2" + age="$3" + ;; + esac + + # Check that each of the things are valid numbers. + case $current in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "CURRENT \`$current' must be a nonnegative integer" + func_fatal_error "\`$vinfo' is not valid version information" + ;; + esac + + case $revision in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "REVISION \`$revision' must be a nonnegative integer" + func_fatal_error "\`$vinfo' is not valid version information" + ;; + esac + + case $age in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "AGE \`$age' must be a nonnegative integer" + func_fatal_error "\`$vinfo' is not valid version information" + ;; + esac + + if test "$age" -gt "$current"; then + func_error "AGE \`$age' is greater than the current interface number \`$current'" + func_fatal_error "\`$vinfo' is not valid version information" + fi + + # Calculate the version variables. + major= + versuffix= + verstring= + case $version_type in + none) ;; + + darwin) + # Like Linux, but with the current version available in + # verstring for coding it into the library header + func_arith $current - $age + major=.$func_arith_result + versuffix="$major.$age.$revision" + # Darwin ld doesn't like 0 for these options... + func_arith $current + 1 + minor_current=$func_arith_result + xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + ;; + + freebsd-aout) + major=".$current" + versuffix=".$current.$revision"; + ;; + + freebsd-elf) + major=".$current" + versuffix=".$current" + ;; + + irix | nonstopux) + if test "X$lt_irix_increment" = "Xno"; then + func_arith $current - $age + else + func_arith $current - $age + 1 + fi + major=$func_arith_result + + case $version_type in + nonstopux) verstring_prefix=nonstopux ;; + *) verstring_prefix=sgi ;; + esac + verstring="$verstring_prefix$major.$revision" + + # Add in all the interfaces that we are compatible with. + loop=$revision + while test "$loop" -ne 0; do + func_arith $revision - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring="$verstring_prefix$major.$iface:$verstring" + done + + # Before this point, $major must not contain `.'. + major=.$major + versuffix="$major.$revision" + ;; + + linux) + func_arith $current - $age + major=.$func_arith_result + versuffix="$major.$age.$revision" + ;; + + osf) + func_arith $current - $age + major=.$func_arith_result + versuffix=".$current.$age.$revision" + verstring="$current.$age.$revision" + + # Add in all the interfaces that we are compatible with. + loop=$age + while test "$loop" -ne 0; do + func_arith $current - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring="$verstring:${iface}.0" + done + + # Make executables depend on our current version. + verstring="$verstring:${current}.0" + ;; + + qnx) + major=".$current" + versuffix=".$current" + ;; + + sunos) + major=".$current" + versuffix=".$current.$revision" + ;; + + windows) + # Use '-' rather than '.', since we only want one + # extension on DOS 8.3 filesystems. + func_arith $current - $age + major=$func_arith_result + versuffix="-$major" + ;; + + *) + func_fatal_configuration "unknown library version type \`$version_type'" + ;; + esac + + # Clear the version info if we defaulted, and they specified a release. + if test -z "$vinfo" && test -n "$release"; then + major= + case $version_type in + darwin) + # we can't check for "0.0" in archive_cmds due to quoting + # problems, so we reset it completely + verstring= + ;; + *) + verstring="0.0" + ;; + esac + if test "$need_version" = no; then + versuffix= + else + versuffix=".0.0" + fi + fi + + # Remove version info from name if versioning should be avoided + if test "$avoid_version" = yes && test "$need_version" = no; then + major= + versuffix= + verstring="" + fi + + # Check to see if the archive will have undefined symbols. + if test "$allow_undefined" = yes; then + if test "$allow_undefined_flag" = unsupported; then + func_warning "undefined symbols not allowed in $host shared libraries" + build_libtool_libs=no + build_old_libs=yes + fi + else + # Don't allow undefined symbols. + allow_undefined_flag="$no_undefined_flag" + fi + + fi + + func_generate_dlsyms "$libname" "$libname" "yes" + libobjs="$libobjs $symfileobj" + test "X$libobjs" = "X " && libobjs= + + if test "$mode" != relink; then + # Remove our outputs, but don't remove object files since they + # may have been created when compiling PIC objects. + removelist= + tempremovelist=`$ECHO "$output_objdir/*"` + for p in $tempremovelist; do + case $p in + *.$objext | *.gcno) + ;; + $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) + if test "X$precious_files_regex" != "X"; then + if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 + then + continue + fi + fi + removelist="$removelist $p" + ;; + *) ;; + esac + done + test -n "$removelist" && \ + func_show_eval "${RM}r \$removelist" + fi + + # Now set the variables for building old libraries. + if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then + oldlibs="$oldlibs $output_objdir/$libname.$libext" + + # Transform .lo files to .o files. + oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` + fi + + # Eliminate all temporary directories. + #for path in $notinst_path; do + # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` + # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` + # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` + #done + + if test -n "$xrpath"; then + # If the user specified any rpath flags, then add them. + temp_xrpath= + for libdir in $xrpath; do + temp_xrpath="$temp_xrpath -R$libdir" + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" ;; + esac + done + if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then + dependency_libs="$temp_xrpath $dependency_libs" + fi + fi + + # Make sure dlfiles contains only unique files that won't be dlpreopened + old_dlfiles="$dlfiles" + dlfiles= + for lib in $old_dlfiles; do + case " $dlprefiles $dlfiles " in + *" $lib "*) ;; + *) dlfiles="$dlfiles $lib" ;; + esac + done + + # Make sure dlprefiles contains only unique files + old_dlprefiles="$dlprefiles" + dlprefiles= + for lib in $old_dlprefiles; do + case "$dlprefiles " in + *" $lib "*) ;; + *) dlprefiles="$dlprefiles $lib" ;; + esac + done + + if test "$build_libtool_libs" = yes; then + if test -n "$rpath"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) + # these systems don't actually have a c library (as such)! + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C library is in the System framework + deplibs="$deplibs System.ltframework" + ;; + *-*-netbsd*) + # Don't link with libc until the a.out ld.so is fixed. + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + ;; + *) + # Add libc to deplibs on all other systems if necessary. + if test "$build_libtool_need_lc" = "yes"; then + deplibs="$deplibs -lc" + fi + ;; + esac + fi + + # Transform deplibs into only deplibs that can be linked in shared. + name_save=$name + libname_save=$libname + release_save=$release + versuffix_save=$versuffix + major_save=$major + # I'm not sure if I'm treating the release correctly. I think + # release should show up in the -l (ie -lgmp5) so we don't want to + # add it in twice. Is that correct? + release="" + versuffix="" + major="" + newdeplibs= + droppeddeps=no + case $deplibs_check_method in + pass_all) + # Don't check for shared/static. Everything works. + # This might be a little naive. We might want to check + # whether the library exists or not. But this is on + # osf3 & osf4 and I'm not really sure... Just + # implementing what was already the behavior. + newdeplibs=$deplibs + ;; + test_compile) + # This code stresses the "libraries are programs" paradigm to its + # limits. Maybe even breaks it. We compile a program, linking it + # against the deplibs as a proxy for the library. Then we can check + # whether they linked in statically or dynamically with ldd. + $opt_dry_run || $RM conftest.c + cat > conftest.c </dev/null` + for potent_lib in $potential_libs; do + # Follow soft links. + if ls -lLd "$potent_lib" 2>/dev/null | + $GREP " -> " >/dev/null; then + continue + fi + # The statement above tries to avoid entering an + # endless loop below, in case of cyclic links. + # We might still enter an endless loop, since a link + # loop can be closed while we follow links, + # but so what? + potlib="$potent_lib" + while test -h "$potlib" 2>/dev/null; do + potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` + case $potliblink in + [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; + *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; + esac + done + if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | + $SED -e 10q | + $EGREP "$file_magic_regex" > /dev/null; then + newdeplibs="$newdeplibs $a_deplib" + a_deplib="" + break 2 + fi + done + done + fi + if test -n "$a_deplib" ; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + $ECHO "*** with $libname but no candidates were found. (...for file magic test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a file magic. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + newdeplibs="$newdeplibs $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + for a_deplib in $deplibs; do + case $a_deplib in + -l*) + func_stripname -l '' "$a_deplib" + name=$func_stripname_result + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $a_deplib "*) + newdeplibs="$newdeplibs $a_deplib" + a_deplib="" + ;; + esac + fi + if test -n "$a_deplib" ; then + libname=`eval "\\$ECHO \"$libname_spec\""` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + potlib="$potent_lib" # see symlink-check above in file_magic test + if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ + $EGREP "$match_pattern_regex" > /dev/null; then + newdeplibs="$newdeplibs $a_deplib" + a_deplib="" + break 2 + fi + done + done + fi + if test -n "$a_deplib" ; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a regex pattern. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + newdeplibs="$newdeplibs $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + none | unknown | *) + newdeplibs="" + tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + for i in $predeps $postdeps ; do + # can't use Xsed below, because $i might contain '/' + tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` + done + fi + case $tmp_deplibs in + *[!\ \ ]*) + echo + if test "X$deplibs_check_method" = "Xnone"; then + echo "*** Warning: inter-library dependencies are not supported in this platform." + else + echo "*** Warning: inter-library dependencies are not known to be supported." + fi + echo "*** All declared inter-library dependencies are being dropped." + droppeddeps=yes + ;; + esac + ;; + esac + versuffix=$versuffix_save + major=$major_save + release=$release_save + libname=$libname_save + name=$name_save + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library with the System framework + newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + if test "$droppeddeps" = yes; then + if test "$module" = yes; then + echo + echo "*** Warning: libtool could not satisfy all declared inter-library" + $ECHO "*** dependencies of module $libname. Therefore, libtool will create" + echo "*** a static module, that should work as long as the dlopening" + echo "*** application is linked with the -dlopen flag." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** \`nm' from GNU binutils and a full rebuild may help." + fi + if test "$build_old_libs" = no; then + oldlibs="$output_objdir/$libname.$libext" + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + else + echo "*** The inter-library dependencies that have been dropped here will be" + echo "*** automatically added whenever a program is linked with this library" + echo "*** or is declared to -dlopen it." + + if test "$allow_undefined" = no; then + echo + echo "*** Since this library must not contain undefined symbols," + echo "*** because either the platform does not support them or" + echo "*** it was explicitly requested with -no-undefined," + echo "*** libtool will only create a static version of it." + if test "$build_old_libs" = no; then + oldlibs="$output_objdir/$libname.$libext" + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + fi + fi + # Done checking deplibs! + deplibs=$newdeplibs + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + case $host in + *-*-darwin*) + newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $deplibs " in + *" -L$path/$objdir "*) + new_libs="$new_libs -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$new_libs $deplib" ;; + esac + ;; + *) new_libs="$new_libs $deplib" ;; + esac + done + deplibs="$new_libs" + + # All the library-specific variables (install_libdir is set above). + library_names= + old_library= + dlname= + + # Test again, we may have decided not to build it any more + if test "$build_libtool_libs" = yes; then + if test "$hardcode_into_libs" = yes; then + # Hardcode the library paths + hardcode_libdirs= + dep_rpath= + rpath="$finalize_rpath" + test "$mode" != relink && rpath="$compile_rpath$rpath" + for libdir in $rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + dep_rpath="$dep_rpath $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) perm_rpath="$perm_rpath $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + if test -n "$hardcode_libdir_flag_spec_ld"; then + eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" + else + eval dep_rpath=\"$hardcode_libdir_flag_spec\" + fi + fi + if test -n "$runpath_var" && test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + rpath="$rpath$dir:" + done + eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" + fi + test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" + fi + + shlibpath="$finalize_shlibpath" + test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" + if test -n "$shlibpath"; then + eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" + fi + + # Get the real and link names of the library. + eval shared_ext=\"$shrext_cmds\" + eval library_names=\"$library_names_spec\" + set dummy $library_names + shift + realname="$1" + shift + + if test -n "$soname_spec"; then + eval soname=\"$soname_spec\" + else + soname="$realname" + fi + if test -z "$dlname"; then + dlname=$soname + fi + + lib="$output_objdir/$realname" + linknames= + for link + do + linknames="$linknames $link" + done + + # Use standard objects if they are pic + test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` + test "X$libobjs" = "X " && libobjs= + + delfiles= + if test -n "$export_symbols" && test -n "$include_expsyms"; then + $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" + export_symbols="$output_objdir/$libname.uexp" + delfiles="$delfiles $export_symbols" + fi + + orig_export_symbols= + case $host_os in + cygwin* | mingw* | cegcc*) + if test -n "$export_symbols" && test -z "$export_symbols_regex"; then + # exporting using user supplied symfile + if test "x`$SED 1q $export_symbols`" != xEXPORTS; then + # and it's NOT already a .def file. Must figure out + # which of the given symbols are data symbols and tag + # them as such. So, trigger use of export_symbols_cmds. + # export_symbols gets reassigned inside the "prepare + # the list of exported symbols" if statement, so the + # include_expsyms logic still works. + orig_export_symbols="$export_symbols" + export_symbols= + always_export_symbols=yes + fi + fi + ;; + esac + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then + func_verbose "generating symbol list for \`$libname.la'" + export_symbols="$output_objdir/$libname.exp" + $opt_dry_run || $RM $export_symbols + cmds=$export_symbols_cmds + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + func_len " $cmd" + len=$func_len_result + if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + func_show_eval "$cmd" 'exit $?' + skipped_export=false + else + # The command line is too long to execute in one step. + func_verbose "using reloadable object file for export list..." + skipped_export=: + # Break out early, otherwise skipped_export may be + # set to false by a later but shorter cmd. + break + fi + done + IFS="$save_ifs" + if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + fi + + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols="$export_symbols" + test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + + tmp_deplibs= + for test_deplib in $deplibs; do + case " $convenience " in + *" $test_deplib "*) ;; + *) + tmp_deplibs="$tmp_deplibs $test_deplib" + ;; + esac + done + deplibs="$tmp_deplibs" + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec" && + test "$compiler_needs_object" = yes && + test -z "$libobjs"; then + # extract the archives, so we have objects to list. + # TODO: could optimize this to just extract one archive. + whole_archive_flag_spec= + fi + if test -n "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + else + gentop="$output_objdir/${outputname}x" + generated="$generated $gentop" + + func_extract_archives $gentop $convenience + libobjs="$libobjs $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + fi + + if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then + eval flag=\"$thread_safe_flag_spec\" + linker_flags="$linker_flags $flag" + fi + + # Make a backup of the uninstalled library when relinking + if test "$mode" = relink; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? + fi + + # Do each of the archive commands. + if test "$module" = yes && test -n "$module_cmds" ; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + eval test_cmds=\"$module_expsym_cmds\" + cmds=$module_expsym_cmds + else + eval test_cmds=\"$module_cmds\" + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + eval test_cmds=\"$archive_expsym_cmds\" + cmds=$archive_expsym_cmds + else + eval test_cmds=\"$archive_cmds\" + cmds=$archive_cmds + fi + fi + + if test "X$skipped_export" != "X:" && + func_len " $test_cmds" && + len=$func_len_result && + test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + : + else + # The command line is too long to link in one step, link piecewise + # or, if using GNU ld and skipped_export is not :, use a linker + # script. + + # Save the value of $output and $libobjs because we want to + # use them later. If we have whole_archive_flag_spec, we + # want to use save_libobjs as it was before + # whole_archive_flag_spec was expanded, because we can't + # assume the linker understands whole_archive_flag_spec. + # This may have to be revisited, in case too many + # convenience libraries get linked in and end up exceeding + # the spec. + if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + fi + save_output=$output + func_basename "$output" + output_la=$func_basename_result + + # Clear the reloadable object creation command queue and + # initialize k to one. + test_cmds= + concat_cmds= + objlist= + last_robj= + k=1 + + if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then + output=${output_objdir}/${output_la}.lnkscript + func_verbose "creating GNU ld script: $output" + echo 'INPUT (' > $output + for obj in $save_libobjs + do + $ECHO "$obj" >> $output + done + echo ')' >> $output + delfiles="$delfiles $output" + elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then + output=${output_objdir}/${output_la}.lnk + func_verbose "creating linker input file list: $output" + : > $output + set x $save_libobjs + shift + firstobj= + if test "$compiler_needs_object" = yes; then + firstobj="$1 " + shift + fi + for obj + do + $ECHO "$obj" >> $output + done + delfiles="$delfiles $output" + output=$firstobj\"$file_list_spec$output\" + else + if test -n "$save_libobjs"; then + func_verbose "creating reloadable object files..." + output=$output_objdir/$output_la-${k}.$objext + eval test_cmds=\"$reload_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + + # Loop over the list of objects to be linked. + for obj in $save_libobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + if test "X$objlist" = X || + test "$len" -lt "$max_cmd_len"; then + func_append objlist " $obj" + else + # The command $test_cmds is almost too long, add a + # command to the queue. + if test "$k" -eq 1 ; then + # The first file doesn't have a previous command to add. + reload_objs=$objlist + eval concat_cmds=\"$reload_cmds\" + else + # All subsequent reloadable object files will link in + # the last one created. + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" + fi + last_robj=$output_objdir/$output_la-${k}.$objext + func_arith $k + 1 + k=$func_arith_result + output=$output_objdir/$output_la-${k}.$objext + objlist=" $obj" + func_len " $last_robj" + func_arith $len0 + $func_len_result + len=$func_arith_result + fi + done + # Handle the remaining objects by creating one last + # reloadable object file. All subsequent reloadable object + # files will link in the last one created. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\${concat_cmds}$reload_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" + fi + delfiles="$delfiles $output" + + else + output= + fi + + if ${skipped_export-false}; then + func_verbose "generating symbol list for \`$libname.la'" + export_symbols="$output_objdir/$libname.exp" + $opt_dry_run || $RM $export_symbols + libobjs=$output + # Append the command to create the export file. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + fi + + test -n "$save_libobjs" && + func_verbose "creating a temporary reloadable object file: $output" + + # Loop through the commands generated above and execute them. + save_ifs="$IFS"; IFS='~' + for cmd in $concat_cmds; do + IFS="$save_ifs" + $opt_silent || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test "$mode" = relink; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS="$save_ifs" + + if test -n "$export_symbols_regex" && ${skipped_export-false}; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + + if ${skipped_export-false}; then + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols="$export_symbols" + test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + fi + + libobjs=$output + # Restore the value of output. + output=$save_output + + if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + fi + # Expand the library linking commands again to reset the + # value of $libobjs for piecewise linking. + + # Do each of the archive commands. + if test "$module" = yes && test -n "$module_cmds" ; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + cmds=$module_expsym_cmds + else + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + cmds=$archive_expsym_cmds + else + cmds=$archive_cmds + fi + fi + fi + + if test -n "$delfiles"; then + # Append the command to remove temporary files to $cmds. + eval cmds=\"\$cmds~\$RM $delfiles\" + fi + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop="$output_objdir/${outputname}x" + generated="$generated $gentop" + + func_extract_archives $gentop $dlprefiles + libobjs="$libobjs $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $opt_silent || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test "$mode" = relink; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS="$save_ifs" + + # Restore the uninstalled library and exit + if test "$mode" = relink; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? + + if test -n "$convenience"; then + if test -z "$whole_archive_flag_spec"; then + func_show_eval '${RM}r "$gentop"' + fi + fi + + exit $EXIT_SUCCESS + fi + + # Create links to the real library. + for linkname in $linknames; do + if test "$realname" != "$linkname"; then + func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' + fi + done + + # If -module or -export-dynamic was specified, set the dlname. + if test "$module" = yes || test "$export_dynamic" = yes; then + # On all known operating systems, these are identical. + dlname="$soname" + fi + fi + ;; + + obj) + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + func_warning "\`-dlopen' is ignored for objects" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "\`-l' and \`-L' are ignored for objects" ;; + esac + + test -n "$rpath" && \ + func_warning "\`-rpath' is ignored for objects" + + test -n "$xrpath" && \ + func_warning "\`-R' is ignored for objects" + + test -n "$vinfo" && \ + func_warning "\`-version-info' is ignored for objects" + + test -n "$release" && \ + func_warning "\`-release' is ignored for objects" + + case $output in + *.lo) + test -n "$objs$old_deplibs" && \ + func_fatal_error "cannot build library object \`$output' from non-libtool objects" + + libobj=$output + func_lo2o "$libobj" + obj=$func_lo2o_result + ;; + *) + libobj= + obj="$output" + ;; + esac + + # Delete the old objects. + $opt_dry_run || $RM $obj $libobj + + # Objects from convenience libraries. This assumes + # single-version convenience libraries. Whenever we create + # different ones for PIC/non-PIC, this we'll have to duplicate + # the extraction. + reload_conv_objs= + gentop= + # reload_cmds runs $LD directly, so let us get rid of + # -Wl from whole_archive_flag_spec and hope we can get by with + # turning comma into space.. + wl= + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" + reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` + else + gentop="$output_objdir/${obj}x" + generated="$generated $gentop" + + func_extract_archives $gentop $convenience + reload_conv_objs="$reload_objs $func_extract_archives_result" + fi + fi + + # Create the old-style object. + reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test + + output="$obj" + func_execute_cmds "$reload_cmds" 'exit $?' + + # Exit if we aren't doing a library object file. + if test -z "$libobj"; then + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + fi + + if test "$build_libtool_libs" != yes; then + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + # Create an invalid libtool object if no PIC, so that we don't + # accidentally link it into a program. + # $show "echo timestamp > $libobj" + # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? + exit $EXIT_SUCCESS + fi + + if test -n "$pic_flag" || test "$pic_mode" != default; then + # Only do commands if we really have different PIC objects. + reload_objs="$libobjs $reload_conv_objs" + output="$libobj" + func_execute_cmds "$reload_cmds" 'exit $?' + fi + + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + ;; + + prog) + case $host in + *cygwin*) func_stripname '' '.exe' "$output" + output=$func_stripname_result.exe;; + esac + test -n "$vinfo" && \ + func_warning "\`-version-info' is ignored for programs" + + test -n "$release" && \ + func_warning "\`-release' is ignored for programs" + + test "$preload" = yes \ + && test "$dlopen_support" = unknown \ + && test "$dlopen_self" = unknown \ + && test "$dlopen_self_static" = unknown && \ + func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + case $host in + *-*-darwin*) + # Don't allow lazy linking, it breaks C++ global constructors + # But is supposedly fixed on 10.4 or later (yay!). + if test "$tagname" = CXX ; then + case ${MACOSX_DEPLOYMENT_TARGET-10.0} in + 10.[0123]) + compile_command="$compile_command ${wl}-bind_at_load" + finalize_command="$finalize_command ${wl}-bind_at_load" + ;; + esac + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $compile_deplibs " in + *" -L$path/$objdir "*) + new_libs="$new_libs -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $compile_deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$new_libs $deplib" ;; + esac + ;; + *) new_libs="$new_libs $deplib" ;; + esac + done + compile_deplibs="$new_libs" + + + compile_command="$compile_command $compile_deplibs" + finalize_command="$finalize_command $finalize_deplibs" + + if test -n "$rpath$xrpath"; then + # If the user specified any rpath flags, then add them. + for libdir in $rpath $xrpath; do + # This is the magic to use -rpath. + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" ;; + esac + done + fi + + # Now hardcode the library paths + rpath= + hardcode_libdirs= + for libdir in $compile_rpath $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + rpath="$rpath $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) perm_rpath="$perm_rpath $libdir" ;; + esac + fi + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$libdir:"*) ;; + ::) dllsearchpath=$libdir;; + *) dllsearchpath="$dllsearchpath:$libdir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) dllsearchpath="$dllsearchpath:$testbindir";; + esac + ;; + esac + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + compile_rpath="$rpath" + + rpath= + hardcode_libdirs= + for libdir in $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + rpath="$rpath $flag" + fi + elif test -n "$runpath_var"; then + case "$finalize_perm_rpath " in + *" $libdir "*) ;; + *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + finalize_rpath="$rpath" + + if test -n "$libobjs" && test "$build_old_libs" = yes; then + # Transform all the library objects into standard objects. + compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + fi + + func_generate_dlsyms "$outputname" "@PROGRAM@" "no" + + # template prelinking step + if test -n "$prelink_cmds"; then + func_execute_cmds "$prelink_cmds" 'exit $?' + fi + + wrappers_required=yes + case $host in + *cegcc* | *mingw32ce*) + # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. + wrappers_required=no + ;; + *cygwin* | *mingw* ) + if test "$build_libtool_libs" != yes; then + wrappers_required=no + fi + ;; + *) + if test "$need_relink" = no || test "$build_libtool_libs" != yes; then + wrappers_required=no + fi + ;; + esac + if test "$wrappers_required" = no; then + # Replace the output file specification. + compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + link_command="$compile_command$compile_rpath" + + # We have no uninstalled library dependencies, so finalize right now. + exit_status=0 + func_show_eval "$link_command" 'exit_status=$?' + + # Delete the generated files. + if test -f "$output_objdir/${outputname}S.${objext}"; then + func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' + fi + + exit $exit_status + fi + + if test -n "$compile_shlibpath$finalize_shlibpath"; then + compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" + fi + if test -n "$finalize_shlibpath"; then + finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" + fi + + compile_var= + finalize_var= + if test -n "$runpath_var"; then + if test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + rpath="$rpath$dir:" + done + compile_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + if test -n "$finalize_perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $finalize_perm_rpath; do + rpath="$rpath$dir:" + done + finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + fi + + if test "$no_install" = yes; then + # We don't need to create a wrapper script. + link_command="$compile_var$compile_command$compile_rpath" + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + # Delete the old output file. + $opt_dry_run || $RM $output + # Link the executable and exit + func_show_eval "$link_command" 'exit $?' + exit $EXIT_SUCCESS + fi + + if test "$hardcode_action" = relink; then + # Fast installation is not supported + link_command="$compile_var$compile_command$compile_rpath" + relink_command="$finalize_var$finalize_command$finalize_rpath" + + func_warning "this platform does not like uninstalled shared libraries" + func_warning "\`$output' will be relinked during installation" + else + if test "$fast_install" != no; then + link_command="$finalize_var$compile_command$finalize_rpath" + if test "$fast_install" = yes; then + relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` + else + # fast_install is set to needless + relink_command= + fi + else + link_command="$compile_var$compile_command$compile_rpath" + relink_command="$finalize_var$finalize_command$finalize_rpath" + fi + fi + + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + + # Delete the old output files. + $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname + + func_show_eval "$link_command" 'exit $?' + + # Now create the wrapper script. + func_verbose "creating $output" + + # Quote the relink command for shipping. + if test -n "$relink_command"; then + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + relink_command="(cd `pwd`; $relink_command)" + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + fi + + # Only actually do things if not in dry run mode. + $opt_dry_run || { + # win32 will think the script is a binary if it has + # a .exe suffix, so we strip it off here. + case $output in + *.exe) func_stripname '' '.exe' "$output" + output=$func_stripname_result ;; + esac + # test for cygwin because mv fails w/o .exe extensions + case $host in + *cygwin*) + exeext=.exe + func_stripname '' '.exe' "$outputname" + outputname=$func_stripname_result ;; + *) exeext= ;; + esac + case $host in + *cygwin* | *mingw* ) + func_dirname_and_basename "$output" "" "." + output_name=$func_basename_result + output_path=$func_dirname_result + cwrappersource="$output_path/$objdir/lt-$output_name.c" + cwrapper="$output_path/$output_name.exe" + $RM $cwrappersource $cwrapper + trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 + + func_emit_cwrapperexe_src > $cwrappersource + + # The wrapper executable is built using the $host compiler, + # because it contains $host paths and files. If cross- + # compiling, it, like the target executable, must be + # executed on the $host or under an emulation environment. + $opt_dry_run || { + $LTCC $LTCFLAGS -o $cwrapper $cwrappersource + $STRIP $cwrapper + } + + # Now, create the wrapper script for func_source use: + func_ltwrapper_scriptname $cwrapper + $RM $func_ltwrapper_scriptname_result + trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 + $opt_dry_run || { + # note: this script will not be executed, so do not chmod. + if test "x$build" = "x$host" ; then + $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result + else + func_emit_wrapper no > $func_ltwrapper_scriptname_result + fi + } + ;; + * ) + $RM $output + trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 + + func_emit_wrapper no > $output + chmod +x $output + ;; + esac + } + exit $EXIT_SUCCESS + ;; + esac + + # See if we need to build an old-fashioned archive. + for oldlib in $oldlibs; do + + if test "$build_libtool_libs" = convenience; then + oldobjs="$libobjs_save $symfileobj" + addlibs="$convenience" + build_libtool_libs=no + else + if test "$build_libtool_libs" = module; then + oldobjs="$libobjs_save" + build_libtool_libs=no + else + oldobjs="$old_deplibs $non_pic_objects" + if test "$preload" = yes && test -f "$symfileobj"; then + oldobjs="$oldobjs $symfileobj" + fi + fi + addlibs="$old_convenience" + fi + + if test -n "$addlibs"; then + gentop="$output_objdir/${outputname}x" + generated="$generated $gentop" + + func_extract_archives $gentop $addlibs + oldobjs="$oldobjs $func_extract_archives_result" + fi + + # Do each command in the archive commands. + if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then + cmds=$old_archive_from_new_cmds + else + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop="$output_objdir/${outputname}x" + generated="$generated $gentop" + + func_extract_archives $gentop $dlprefiles + oldobjs="$oldobjs $func_extract_archives_result" + fi + + # POSIX demands no paths to be encoded in archives. We have + # to avoid creating archives with duplicate basenames if we + # might have to extract them afterwards, e.g., when creating a + # static archive out of a convenience library, or when linking + # the entirety of a libtool archive into another (currently + # not supported by libtool). + if (for obj in $oldobjs + do + func_basename "$obj" + $ECHO "$func_basename_result" + done | sort | sort -uc >/dev/null 2>&1); then + : + else + echo "copying selected object files to avoid basename conflicts..." + gentop="$output_objdir/${outputname}x" + generated="$generated $gentop" + func_mkdir_p "$gentop" + save_oldobjs=$oldobjs + oldobjs= + counter=1 + for obj in $save_oldobjs + do + func_basename "$obj" + objbase="$func_basename_result" + case " $oldobjs " in + " ") oldobjs=$obj ;; + *[\ /]"$objbase "*) + while :; do + # Make sure we don't pick an alternate name that also + # overlaps. + newobj=lt$counter-$objbase + func_arith $counter + 1 + counter=$func_arith_result + case " $oldobjs " in + *[\ /]"$newobj "*) ;; + *) if test ! -f "$gentop/$newobj"; then break; fi ;; + esac + done + func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" + oldobjs="$oldobjs $gentop/$newobj" + ;; + *) oldobjs="$oldobjs $obj" ;; + esac + done + fi + eval cmds=\"$old_archive_cmds\" + + func_len " $cmds" + len=$func_len_result + if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + cmds=$old_archive_cmds + else + # the command line is too long to link in one step, link in parts + func_verbose "using piecewise archive linking..." + save_RANLIB=$RANLIB + RANLIB=: + objlist= + concat_cmds= + save_oldobjs=$oldobjs + oldobjs= + # Is there a better way of finding the last object in the list? + for obj in $save_oldobjs + do + last_oldobj=$obj + done + eval test_cmds=\"$old_archive_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + for obj in $save_oldobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + func_append objlist " $obj" + if test "$len" -lt "$max_cmd_len"; then + : + else + # the above command should be used before it gets too long + oldobjs=$objlist + if test "$obj" = "$last_oldobj" ; then + RANLIB=$save_RANLIB + fi + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" + objlist= + len=$len0 + fi + done + RANLIB=$save_RANLIB + oldobjs=$objlist + if test "X$oldobjs" = "X" ; then + eval cmds=\"\$concat_cmds\" + else + eval cmds=\"\$concat_cmds~\$old_archive_cmds\" + fi + fi + fi + func_execute_cmds "$cmds" 'exit $?' + done + + test -n "$generated" && \ + func_show_eval "${RM}r$generated" + + # Now create the libtool archive. + case $output in + *.la) + old_library= + test "$build_old_libs" = yes && old_library="$libname.$libext" + func_verbose "creating $output" + + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + # Quote the link command for shipping. + relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + if test "$hardcode_automatic" = yes ; then + relink_command= + fi + + # Only create the output if not a dry run. + $opt_dry_run || { + for installed in no yes; do + if test "$installed" = yes; then + if test -z "$install_libdir"; then + break + fi + output="$output_objdir/$outputname"i + # Replace all uninstalled libtool libraries with the installed ones + newdependency_libs= + for deplib in $dependency_libs; do + case $deplib in + *.la) + func_basename "$deplib" + name="$func_basename_result" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + test -z "$libdir" && \ + func_fatal_error "\`$deplib' is not a valid libtool archive" + newdependency_libs="$newdependency_libs $libdir/$name" + ;; + *) newdependency_libs="$newdependency_libs $deplib" ;; + esac + done + dependency_libs="$newdependency_libs" + newdlfiles= + + for lib in $dlfiles; do + case $lib in + *.la) + func_basename "$lib" + name="$func_basename_result" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "\`$lib' is not a valid libtool archive" + newdlfiles="$newdlfiles $libdir/$name" + ;; + *) newdlfiles="$newdlfiles $lib" ;; + esac + done + dlfiles="$newdlfiles" + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + *.la) + # Only pass preopened files to the pseudo-archive (for + # eventual linking with the app. that links it) if we + # didn't already link the preopened objects directly into + # the library: + func_basename "$lib" + name="$func_basename_result" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "\`$lib' is not a valid libtool archive" + newdlprefiles="$newdlprefiles $libdir/$name" + ;; + esac + done + dlprefiles="$newdlprefiles" + else + newdlfiles= + for lib in $dlfiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac + newdlfiles="$newdlfiles $abs" + done + dlfiles="$newdlfiles" + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac + newdlprefiles="$newdlprefiles $abs" + done + dlprefiles="$newdlprefiles" + fi + $RM $output + # place dlname in correct position for cygwin + # In fact, it would be nice if we could use this code for all target + # systems that can't hard-code library paths into their executables + # and that have no shared library path variable independent of PATH, + # but it turns out we can't easily determine that from inspecting + # libtool variables, so we have to hard-code the OSs to which it + # applies here; at the moment, that means platforms that use the PE + # object format with DLL files. See the long comment at the top of + # tests/bindir.at for full details. + tdlname=$dlname + case $host,$output,$installed,$module,$dlname in + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) + # If a -bindir argument was supplied, place the dll there. + if test "x$bindir" != x ; + then + func_relative_path "$install_libdir" "$bindir" + tdlname=$func_relative_path_result$dlname + else + # Otherwise fall back on heuristic. + tdlname=../bin/$dlname + fi + ;; + esac + $ECHO > $output "\ +# $outputname - a libtool library file +# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='$tdlname' + +# Names of this library. +library_names='$library_names' + +# The name of the static archive. +old_library='$old_library' + +# Linker flags that can not go in dependency_libs. +inherited_linker_flags='$new_inherited_linker_flags' + +# Libraries that this one depends upon. +dependency_libs='$dependency_libs' + +# Names of additional weak libraries provided by this library +weak_library_names='$weak_libs' + +# Version information for $libname. +current=$current +age=$age +revision=$revision + +# Is this an already installed library? +installed=$installed + +# Should we warn about portability when linking against -modules? +shouldnotlink=$module + +# Files to dlopen/dlpreopen +dlopen='$dlfiles' +dlpreopen='$dlprefiles' + +# Directory that this library needs to be installed in: +libdir='$install_libdir'" + if test "$installed" = no && test "$need_relink" = yes; then + $ECHO >> $output "\ +relink_command=\"$relink_command\"" + fi + done + } + + # Do a symbolic link so that the libtool archive can be found in + # LD_LIBRARY_PATH before the program is installed. + func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' + ;; + esac + exit $EXIT_SUCCESS +} + +{ test "$mode" = link || test "$mode" = relink; } && + func_mode_link ${1+"$@"} + + +# func_mode_uninstall arg... +func_mode_uninstall () +{ + $opt_debug + RM="$nonopt" + files= + rmforce= + exit_status=0 + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic="$magic" + + for arg + do + case $arg in + -f) RM="$RM $arg"; rmforce=yes ;; + -*) RM="$RM $arg" ;; + *) files="$files $arg" ;; + esac + done + + test -z "$RM" && \ + func_fatal_help "you must specify an RM program" + + rmdirs= + + origobjdir="$objdir" + for file in $files; do + func_dirname "$file" "" "." + dir="$func_dirname_result" + if test "X$dir" = X.; then + objdir="$origobjdir" + else + objdir="$dir/$origobjdir" + fi + func_basename "$file" + name="$func_basename_result" + test "$mode" = uninstall && objdir="$dir" + + # Remember objdir for removal later, being careful to avoid duplicates + if test "$mode" = clean; then + case " $rmdirs " in + *" $objdir "*) ;; + *) rmdirs="$rmdirs $objdir" ;; + esac + fi + + # Don't error if the file doesn't exist and rm -f was used. + if { test -L "$file"; } >/dev/null 2>&1 || + { test -h "$file"; } >/dev/null 2>&1 || + test -f "$file"; then + : + elif test -d "$file"; then + exit_status=1 + continue + elif test "$rmforce" = yes; then + continue + fi + + rmfiles="$file" + + case $name in + *.la) + # Possibly a libtool archive, so verify it. + if func_lalib_p "$file"; then + func_source $dir/$name + + # Delete the libtool libraries and symlinks. + for n in $library_names; do + rmfiles="$rmfiles $objdir/$n" + done + test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" + + case "$mode" in + clean) + case " $library_names " in + # " " in the beginning catches empty $dlname + *" $dlname "*) ;; + *) rmfiles="$rmfiles $objdir/$dlname" ;; + esac + test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" + ;; + uninstall) + if test -n "$library_names"; then + # Do each command in the postuninstall commands. + func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' + fi + + if test -n "$old_library"; then + # Do each command in the old_postuninstall commands. + func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' + fi + # FIXME: should reinstall the best remaining shared library. + ;; + esac + fi + ;; + + *.lo) + # Possibly a libtool object, so verify it. + if func_lalib_p "$file"; then + + # Read the .lo file + func_source $dir/$name + + # Add PIC object to the list of files to remove. + if test -n "$pic_object" && + test "$pic_object" != none; then + rmfiles="$rmfiles $dir/$pic_object" + fi + + # Add non-PIC object to the list of files to remove. + if test -n "$non_pic_object" && + test "$non_pic_object" != none; then + rmfiles="$rmfiles $dir/$non_pic_object" + fi + fi + ;; + + *) + if test "$mode" = clean ; then + noexename=$name + case $file in + *.exe) + func_stripname '' '.exe' "$file" + file=$func_stripname_result + func_stripname '' '.exe' "$name" + noexename=$func_stripname_result + # $file with .exe has already been added to rmfiles, + # add $file without .exe + rmfiles="$rmfiles $file" + ;; + esac + # Do a test to see if this is a libtool program. + if func_ltwrapper_p "$file"; then + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + relink_command= + func_source $func_ltwrapper_scriptname_result + rmfiles="$rmfiles $func_ltwrapper_scriptname_result" + else + relink_command= + func_source $dir/$noexename + fi + + # note $name still contains .exe if it was in $file originally + # as does the version of $file that was added into $rmfiles + rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" + if test "$fast_install" = yes && test -n "$relink_command"; then + rmfiles="$rmfiles $objdir/lt-$name" + fi + if test "X$noexename" != "X$name" ; then + rmfiles="$rmfiles $objdir/lt-${noexename}.c" + fi + fi + fi + ;; + esac + func_show_eval "$RM $rmfiles" 'exit_status=1' + done + objdir="$origobjdir" + + # Try to remove the ${objdir}s in the directories where we deleted files + for dir in $rmdirs; do + if test -d "$dir"; then + func_show_eval "rmdir $dir >/dev/null 2>&1" + fi + done + + exit $exit_status +} + +{ test "$mode" = uninstall || test "$mode" = clean; } && + func_mode_uninstall ${1+"$@"} + +test -z "$mode" && { + help="$generic_help" + func_fatal_help "you must specify a MODE" +} + +test -z "$exec_cmd" && \ + func_fatal_help "invalid operation mode \`$mode'" + +if test -n "$exec_cmd"; then + eval exec "$exec_cmd" + exit $EXIT_FAILURE +fi + +exit $exit_status + + +# The TAGs below are defined such that we never get into a situation +# in which we disable both kinds of libraries. Given conflicting +# choices, we go for a static library, that is the most portable, +# since we can't tell whether shared libraries were disabled because +# the user asked for that or because the platform doesn't support +# them. This is particularly important on AIX, because we don't +# support having both static and shared libraries enabled at the same +# time on that platform, so we default to a shared-only configuration. +# If a disable-shared tag is given, we'll fallback to a static-only +# configuration. But we'll never go from static-only to shared-only. + +# ### BEGIN LIBTOOL TAG CONFIG: disable-shared +build_libtool_libs=no +build_old_libs=yes +# ### END LIBTOOL TAG CONFIG: disable-shared + +# ### BEGIN LIBTOOL TAG CONFIG: disable-static +build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` +# ### END LIBTOOL TAG CONFIG: disable-static + +# Local Variables: +# mode:shell-script +# sh-indentation:2 +# End: +# vi:sw=2 + diff --git a/FreeRTOS-Plus/CyaSSL/config/missing b/FreeRTOS-Plus/CyaSSL/config/missing new file mode 100644 index 000000000..1c8ff7049 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/config/missing @@ -0,0 +1,367 @@ +#! /bin/sh +# Common stub for a few missing GNU programs while installing. + +scriptversion=2006-05-10.23 + +# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006 +# Free Software Foundation, Inc. +# Originally by Fran,cois Pinard , 1996. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +if test $# -eq 0; then + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 +fi + +run=: +sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' +sed_minuso='s/.* -o \([^ ]*\).*/\1/p' + +# In the cases where this matters, `missing' is being run in the +# srcdir already. +if test -f configure.ac; then + configure_ac=configure.ac +else + configure_ac=configure.in +fi + +msg="missing on your system" + +case $1 in +--run) + # Try to run requested program, and just exit if it succeeds. + run= + shift + "$@" && exit 0 + # Exit code 63 means version mismatch. This often happens + # when the user try to use an ancient version of a tool on + # a file that requires a minimum version. In this case we + # we should proceed has if the program had been absent, or + # if --run hadn't been passed. + if test $? = 63; then + run=: + msg="probably too old" + fi + ;; + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an +error status if there is no known handling for PROGRAM. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + --run try to run the given command, and emulate it if it fails + +Supported PROGRAM values: + aclocal touch file \`aclocal.m4' + autoconf touch file \`configure' + autoheader touch file \`config.h.in' + autom4te touch the output file, or create a stub one + automake touch all \`Makefile.in' files + bison create \`y.tab.[ch]', if possible, from existing .[ch] + flex create \`lex.yy.c', if possible, from existing .c + help2man touch the output file + lex create \`lex.yy.c', if possible, from existing .c + makeinfo touch the output file + tar try tar, gnutar, gtar, then tar without non-portable flags + yacc create \`y.tab.[ch]', if possible, from existing .[ch] + +Send bug reports to ." + exit $? + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing $scriptversion (GNU Automake)" + exit $? + ;; + + -*) + echo 1>&2 "$0: Unknown \`$1' option" + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 + ;; + +esac + +# Now exit if we have it, but it failed. Also exit now if we +# don't have it and --version was passed (most likely to detect +# the program). +case $1 in + lex|yacc) + # Not GNU programs, they don't have --version. + ;; + + tar) + if test -n "$run"; then + echo 1>&2 "ERROR: \`tar' requires --run" + exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + exit 1 + fi + ;; + + *) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + # Could not run --version or --help. This is probably someone + # running `$TOOL --version' or `$TOOL --help' to check whether + # $TOOL exists and not knowing $TOOL uses missing. + exit 1 + fi + ;; +esac + +# If it does not exist, or fails to run (possibly an outdated version), +# try to emulate it. +case $1 in + aclocal*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`acinclude.m4' or \`${configure_ac}'. You might want + to install the \`Automake' and \`Perl' packages. Grab them from + any GNU archive site." + touch aclocal.m4 + ;; + + autoconf) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`${configure_ac}'. You might want to install the + \`Autoconf' and \`GNU m4' packages. Grab them from any GNU + archive site." + touch configure + ;; + + autoheader) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`acconfig.h' or \`${configure_ac}'. You might want + to install the \`Autoconf' and \`GNU m4' packages. Grab them + from any GNU archive site." + files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` + test -z "$files" && files="config.h" + touch_files= + for f in $files; do + case $f in + *:*) touch_files="$touch_files "`echo "$f" | + sed -e 's/^[^:]*://' -e 's/:.*//'`;; + *) touch_files="$touch_files $f.in";; + esac + done + touch $touch_files + ;; + + automake*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. + You might want to install the \`Automake' and \`Perl' packages. + Grab them from any GNU archive site." + find . -type f -name Makefile.am -print | + sed 's/\.am$/.in/' | + while read f; do touch "$f"; done + ;; + + autom4te) + echo 1>&2 "\ +WARNING: \`$1' is needed, but is $msg. + You might have modified some files without having the + proper tools for further handling them. + You can get \`$1' as part of \`Autoconf' from any GNU + archive site." + + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo "#! /bin/sh" + echo "# Created by GNU Automake missing as a replacement of" + echo "# $ $@" + echo "exit 0" + chmod +x $file + exit 1 + fi + ;; + + bison|yacc) + echo 1>&2 "\ +WARNING: \`$1' $msg. You should only need it if + you modified a \`.y' file. You may need the \`Bison' package + in order for those modifications to take effect. You can get + \`Bison' from any GNU archive site." + rm -f y.tab.c y.tab.h + if test $# -ne 1; then + eval LASTARG="\${$#}" + case $LASTARG in + *.y) + SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" y.tab.c + fi + SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" y.tab.h + fi + ;; + esac + fi + if test ! -f y.tab.h; then + echo >y.tab.h + fi + if test ! -f y.tab.c; then + echo 'main() { return 0; }' >y.tab.c + fi + ;; + + lex|flex) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a \`.l' file. You may need the \`Flex' package + in order for those modifications to take effect. You can get + \`Flex' from any GNU archive site." + rm -f lex.yy.c + if test $# -ne 1; then + eval LASTARG="\${$#}" + case $LASTARG in + *.l) + SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" lex.yy.c + fi + ;; + esac + fi + if test ! -f lex.yy.c; then + echo 'main() { return 0; }' >lex.yy.c + fi + ;; + + help2man) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a dependency of a manual page. You may need the + \`Help2man' package in order for those modifications to take + effect. You can get \`Help2man' from any GNU archive site." + + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo ".ab help2man is required to generate this page" + exit 1 + fi + ;; + + makeinfo) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a \`.texi' or \`.texinfo' file, or any other file + indirectly affecting the aspect of the manual. The spurious + call might also be the consequence of using a buggy \`make' (AIX, + DU, IRIX). You might want to install the \`Texinfo' package or + the \`GNU make' package. Grab either from any GNU archive site." + # The file to touch is that specified with -o ... + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -z "$file"; then + # ... or it is the one specified with @setfilename ... + infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` + file=`sed -n ' + /^@setfilename/{ + s/.* \([^ ]*\) *$/\1/ + p + q + }' $infile` + # ... or it is derived from the source name (dir/f.texi becomes f.info) + test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info + fi + # If the file does not exist, the user really needs makeinfo; + # let's fail without touching anything. + test -f $file || exit 1 + touch $file + ;; + + tar) + shift + + # We have already tried tar in the generic part. + # Look for gnutar/gtar before invocation to avoid ugly error + # messages. + if (gnutar --version > /dev/null 2>&1); then + gnutar "$@" && exit 0 + fi + if (gtar --version > /dev/null 2>&1); then + gtar "$@" && exit 0 + fi + firstarg="$1" + if shift; then + case $firstarg in + *o*) + firstarg=`echo "$firstarg" | sed s/o//` + tar "$firstarg" "$@" && exit 0 + ;; + esac + case $firstarg in + *h*) + firstarg=`echo "$firstarg" | sed s/h//` + tar "$firstarg" "$@" && exit 0 + ;; + esac + fi + + echo 1>&2 "\ +WARNING: I can't seem to be able to run \`tar' with the given arguments. + You may want to install GNU tar or Free paxutils, or check the + command line arguments." + exit 1 + ;; + + *) + echo 1>&2 "\ +WARNING: \`$1' is needed, and is $msg. + You might have modified some files without having the + proper tools for further handling them. Check the \`README' file, + it often tells you about the needed prerequisites for installing + this package. You may also peek at any GNU archive site, in case + some other package would contain this missing \`$1' program." + exit 1 + ;; +esac + +exit 0 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff --git a/FreeRTOS-Plus/CyaSSL/configure b/FreeRTOS-Plus/CyaSSL/configure new file mode 100644 index 000000000..4987e0227 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/configure @@ -0,0 +1,25878 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.61 for cyassl 2.2.0. +# +# Report bugs to . +# +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + + + +# PATH needs CR +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Support unset when possible. +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +as_nl=' +' +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + { (exit 1); exit 1; } +fi + +# Work around bugs in pre-3.0 UWIN ksh. +for as_var in ENV MAIL MAILPATH +do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME +do + if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# Name of the executable. +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# CDPATH. +$as_unset CDPATH + + +if test "x$CONFIG_SHELL" = x; then + if (eval ":") 2>/dev/null; then + as_have_required=yes +else + as_have_required=no +fi + + if test $as_have_required = yes && (eval ": +(as_func_return () { + (exit \$1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = \"\$1\" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test \$exitcode = 0) || { (exit 1); exit 1; } + +( + as_lineno_1=\$LINENO + as_lineno_2=\$LINENO + test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && + test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } + +( + test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ + || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" )) || { (exit 1); exit 1; } +") 2> /dev/null; then + : +else + as_candidate_shells= + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + case $as_dir in + /*) + for as_base in sh bash ksh sh5; do + as_candidate_shells="$as_candidate_shells $as_dir/$as_base" + done;; + esac +done +IFS=$as_save_IFS + + + for as_shell in $as_candidate_shells $SHELL; do + # Try only shells that exist, to save several forks. + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { ("$as_shell") 2> /dev/null <<\_ASEOF +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + +: +_ASEOF +}; then + CONFIG_SHELL=$as_shell + as_have_required=yes + if { "$as_shell" 2> /dev/null <<\_ASEOF +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + +: +(as_func_return () { + (exit $1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = "$1" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test $exitcode = 0) || { (exit 1); exit 1; } + +( + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } + +( + test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test "X`printf %s $ECHO`" = "X$ECHO" \ + || test "X`print -r -- $ECHO`" = "X$ECHO" )) || { (exit 1); exit 1; } + +_ASEOF +}; then + break +fi + +fi + + done + + if test "x$CONFIG_SHELL" != x; then + for as_var in BASH_ENV ENV + do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + done + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} +fi + + + if test $as_have_required = no; then + echo This script requires a shell more modern than all the + echo shells that I found on your system. Please install a + echo modern shell, or manually run the script under such a + echo shell if you do have one. + { (exit 1); exit 1; } +fi + + +fi + +fi + + + +(eval "as_func_return () { + (exit \$1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = \"\$1\" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test \$exitcode = 0") || { + echo No shell found that supports shell functions. + echo Please tell autoconf@gnu.org about your system, + echo including any error possibly output before this + echo message +} + + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line after each line using $LINENO; the second 'sed' + # does the real work. The second script uses 'N' to pair each + # line-number line with the line containing $LINENO, and appends + # trailing '-' during substitution so that $LINENO is not a special + # case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # scripts with optimization help from Paolo Bonzini. Blame Lee + # E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in +-n*) + case `echo 'x\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + *) ECHO_C='\c';; + esac;; +*) + ECHO_N='-n';; +esac + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir +fi +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +SHELL=${CONFIG_SHELL-/bin/sh} + + +exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} + +# Identity of this package. +PACKAGE_NAME='cyassl' +PACKAGE_TARNAME='cyassl' +PACKAGE_VERSION='2.2.0' +PACKAGE_STRING='cyassl 2.2.0' +PACKAGE_BUGREPORT='http://www.yassl.com' + +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +ac_header_list= +ac_func_list= +ac_subst_vars='SHELL +PATH_SEPARATOR +PACKAGE_NAME +PACKAGE_TARNAME +PACKAGE_VERSION +PACKAGE_STRING +PACKAGE_BUGREPORT +exec_prefix +prefix +program_transform_name +bindir +sbindir +libexecdir +datarootdir +datadir +sysconfdir +sharedstatedir +localstatedir +includedir +oldincludedir +docdir +infodir +htmldir +dvidir +pdfdir +psdir +libdir +localedir +mandir +DEFS +ECHO_C +ECHO_N +ECHO_T +LIBS +build_alias +host_alias +target_alias +build +build_cpu +build_vendor +build_os +host +host_cpu +host_vendor +host_os +target +target_cpu +target_vendor +target_os +INSTALL_PROGRAM +INSTALL_SCRIPT +INSTALL_DATA +am__isrc +CYGPATH_W +PACKAGE +VERSION +ACLOCAL +AUTOCONF +AUTOMAKE +AUTOHEADER +MAKEINFO +install_sh +STRIP +INSTALL_STRIP_PROGRAM +mkdir_p +AWK +SET_MAKE +am__leading_dot +AMTAR +am__tar +am__untar +CYASSL_LIBRARY_VERSION +AS +DLLTOOL +OBJDUMP +LIBTOOL +CC +CFLAGS +LDFLAGS +CPPFLAGS +ac_ct_CC +EXEEXT +OBJEXT +DEPDIR +am__include +am__quote +AMDEP_TRUE +AMDEP_FALSE +AMDEPBACKSLASH +CCDEPMODE +am__fastdepCC_TRUE +am__fastdepCC_FALSE +SED +GREP +EGREP +FGREP +LD +DUMPBIN +ac_ct_DUMPBIN +NM +LN_S +AR +RANLIB +DSYMUTIL +NMEDIT +LIPO +OTOOL +OTOOL64 +CPP +CXX +CXXFLAGS +ac_ct_CXX +CXXDEPMODE +am__fastdepCXX_TRUE +am__fastdepCXX_FALSE +CXXCPP +CFLAG_VISIBILITY +HAVE_VISIBILITY +LIBOBJS +CCAS +CCASFLAGS +CCASDEPMODE +am__fastdepCCAS_TRUE +am__fastdepCCAS_FALSE +LIBM +BUILD_FASTMATH_TRUE +BUILD_FASTMATH_FALSE +BUILD_SNIFFER_TRUE +BUILD_SNIFFER_FALSE +BUILD_AESNI_TRUE +BUILD_AESNI_FALSE +BUILD_RIPEMD_TRUE +BUILD_RIPEMD_FALSE +BUILD_SHA512_TRUE +BUILD_SHA512_FALSE +BUILD_HC128_TRUE +BUILD_HC128_FALSE +BUILD_NOINLINE_TRUE +BUILD_NOINLINE_FALSE +BUILD_ECC_TRUE +BUILD_ECC_FALSE +BUILD_OCSP_TRUE +BUILD_OCSP_FALSE +BUILD_CRL_TRUE +BUILD_CRL_FALSE +BUILD_NTRU_TRUE +BUILD_NTRU_FALSE +ax_pthread_config +PTHREAD_CC +PTHREAD_LIBS +PTHREAD_CFLAGS +HEX_VERSION +AM_CFLAGS +AM_LDFLAGS +LTLIBOBJS' +ac_subst_files='' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CPP +CXX +CXXFLAGS +CCC +CXXCPP +CCAS +CCASFLAGS' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` + eval enable_$ac_feature=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` + eval enable_$ac_feature=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package | sed 's/[-.]/_/g'` + eval with_$ac_package=\$ac_optarg ;; + + -without-* | --without-*) + ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package | sed 's/[-.]/_/g'` + eval with_$ac_package=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) { echo "$as_me: error: unrecognized option: $ac_option +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; } + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 + { (exit 1); exit 1; }; } + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + { echo "$as_me: error: missing argument to $ac_option" >&2 + { (exit 1); exit 1; }; } +fi + +# Be sure to have absolute directory names. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir +do + eval ac_val=\$$ac_var + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; } +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used." >&2 + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + { echo "$as_me: error: Working directory cannot be determined" >&2 + { (exit 1); exit 1; }; } +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + { echo "$as_me: error: pwd does not report name of working directory" >&2 + { (exit 1); exit 1; }; } + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$0" || +$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$0" : 'X\(//\)[^/]' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +echo X"$0" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 + { (exit 1); exit 1; }; } +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 + { (exit 1); exit 1; }; } + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures cyassl 2.2.0 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/cyassl] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] + --target=TARGET configure for building compilers for TARGET [HOST] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of cyassl 2.2.0:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-shared[=PKGS] build shared libraries [default=yes] + --enable-static[=PKGS] build static libraries [default=yes] + --enable-fast-install[=PKGS] + optimize for fast installation [default=yes] + --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors + --disable-libtool-lock avoid locking (might break parallel builds) + --enable-debug Enable CyaSSL debugging support (default: disabled) + --enable-small Enable smallest build (default: disabled) + --enable-singleThreaded Enable CyaSSL single threaded (default: disabled) + --enable-dtls Enable CyaSSL DTLS (default: disabled) + --enable-opensslExtra Enable extra OpenSSL API, size+ (default: disabled) + --enable-ipv6 Enable testing of IPV6 (default: disabled) + --enable-fortress Enable SSL fortress build (default: disabled) + --enable-bump Enable SSL Bump build (default: disabled) + --enable-fastmath Enable fast math for BigInts (default: disabled) + --enable-fasthugemath Enable fast math + huge code (default: disabled) + --enable-bigcache Enable big session cache (default: disabled) + --enable-hugecache Enable huge session cache (default: disabled) + --enable-smallcache Enable small session cache (default: disabled) + --enable-sniffer Enable CyaSSL sniffer support (default: disabled) + --enable-aesni Enable CyaSSL AES-NI support (default: disabled) + --enable-ripemd Enable CyaSSL RIPEMD-160 support (default: disabled) + --enable-sha512 Enable CyaSSL SHA-160 support (default: disabled) + --enable-sessioncerts Enable session cert storing (default: disabled) + --enable-keygen Enable key generation (default: disabled) + --enable-certgen Enable cert generation (default: disabled) + --enable-hc128 Enable HC-128 (default: disabled) + --enable-psk Enable PSK (default: disabled) + --enable-webServer Enable Web Server (default: disabled) + --enable-noFilesystem Enable No Filesystem (default: disabled) + --enable-noInline Enable No inline (default: disabled) + --enable-ecc Enable ECC (default: disabled) + --enable-ocsp Enable OCSP (default: disabled) + --enable-crl Enable CRL (default: disabled) + --enable-ntru Enable NTRU (default: disabled) + --enable-testcert Enable Test Cert (default: disabled) + --enable-gcc-lots-o-warnings + Enable lots of gcc warnings (default: disabled) + --enable-gcc-hardening Enable compiler security checks (default: disabled) + --enable-linker-hardening + Enable linker security fixups (default: disabled) + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-pic try to use only PIC/non-PIC objects [default=use + both] + --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-libz=PATH PATH to libz install (default /usr/) + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CPP C preprocessor + CXX C++ compiler command + CXXFLAGS C++ compiler flags + CXXCPP C++ preprocessor + CCAS assembler compiler command (defaults to CC) + CCASFLAGS assembler compiler flags (defaults to CFLAGS) + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +cyassl configure 2.2.0 +generated by GNU Autoconf 2.61 + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by cyassl $as_me 2.2.0, which was +generated by GNU Autoconf 2.61. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + echo "PATH: $as_dir" +done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; + 2) + ac_configure_args1="$ac_configure_args1 '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + ac_configure_args="$ac_configure_args '$ac_arg'" + ;; + esac + done +done +$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } +$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + cat <<\_ASBOX +## ---------------- ## +## Cache variables. ## +## ---------------- ## +_ASBOX + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 +echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + *) $as_unset $ac_var ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + cat <<\_ASBOX +## ----------------- ## +## Output variables. ## +## ----------------- ## +_ASBOX + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + cat <<\_ASBOX +## ------------------- ## +## File substitutions. ## +## ------------------- ## +_ASBOX + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + cat <<\_ASBOX +## ----------- ## +## confdefs.h. ## +## ----------- ## +_ASBOX + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + echo "$as_me: caught signal $ac_signal" + echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer explicitly selected file to automatically selected ones. +if test -n "$CONFIG_SITE"; then + set x "$CONFIG_SITE" +elif test "x$prefix" != xNONE; then + set x "$prefix/share/config.site" "$prefix/etc/config.site" +else + set x "$ac_default_prefix/share/config.site" \ + "$ac_default_prefix/etc/config.site" +fi +shift +for ac_site_file +do + if test -r "$ac_site_file"; then + { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 +echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special + # files actually), so we avoid doing that. + if test -f "$cache_file"; then + { echo "$as_me:$LINENO: loading cache $cache_file" >&5 +echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { echo "$as_me:$LINENO: creating cache $cache_file" >&5 +echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +ac_header_list="$ac_header_list sys/time.h" +ac_header_list="$ac_header_list unistd.h" +ac_func_list="$ac_func_list alarm" +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 +echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 +echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 +echo "$as_me: former value: $ac_old_val" >&2;} + { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 +echo "$as_me: current value: $ac_new_val" >&2;} + ac_cache_corrupted=: + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 +echo "$as_me: error: changes in the environment can compromise the build" >&2;} + { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 +echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} + { (exit 1); exit 1; }; } +fi + + + + + + + + + + + + + + + + + + + + + + + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + +ac_aux_dir= +for ac_dir in config "$srcdir"/config; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in config \"$srcdir\"/config" >&5 +echo "$as_me: error: cannot find install-sh or install.sh in config \"$srcdir\"/config" >&2;} + { (exit 1); exit 1; }; } +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 +echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} + { (exit 1); exit 1; }; } + +{ echo "$as_me:$LINENO: checking build system type" >&5 +echo $ECHO_N "checking build system type... $ECHO_C" >&6; } +if test "${ac_cv_build+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 +echo "$as_me: error: cannot guess build type; you must specify one" >&2;} + { (exit 1); exit 1; }; } +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 +echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} + { (exit 1); exit 1; }; } + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_build" >&5 +echo "${ECHO_T}$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 +echo "$as_me: error: invalid value of canonical build" >&2;} + { (exit 1); exit 1; }; };; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ echo "$as_me:$LINENO: checking host system type" >&5 +echo $ECHO_N "checking host system type... $ECHO_C" >&6; } +if test "${ac_cv_host+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 +echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} + { (exit 1); exit 1; }; } +fi + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5 +echo "${ECHO_T}$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 +echo "$as_me: error: invalid value of canonical host" >&2;} + { (exit 1); exit 1; }; };; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +{ echo "$as_me:$LINENO: checking target system type" >&5 +echo $ECHO_N "checking target system type... $ECHO_C" >&6; } +if test "${ac_cv_target+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "x$target_alias" = x; then + ac_cv_target=$ac_cv_host +else + ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || + { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&5 +echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&2;} + { (exit 1); exit 1; }; } +fi + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_target" >&5 +echo "${ECHO_T}$ac_cv_target" >&6; } +case $ac_cv_target in +*-*-*) ;; +*) { { echo "$as_me:$LINENO: error: invalid value of canonical target" >&5 +echo "$as_me: error: invalid value of canonical target" >&2;} + { (exit 1); exit 1; }; };; +esac +target=$ac_cv_target +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_target +shift +target_cpu=$1 +target_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +target_os=$* +IFS=$ac_save_IFS +case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac + + +# The aliases save the names the user supplied, while $host etc. +# will get canonicalized. +test -n "$target_alias" && + test "$program_prefix$program_suffix$program_transform_name" = \ + NONENONEs,x,x, && + program_prefix=${target_alias}- + +am__api_version='1.10' + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } +if test -z "$INSTALL"; then +if test "${ac_cv_path_install+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in + ./ | .// | /cC/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + done + done + ;; +esac +done +IFS=$as_save_IFS + + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ echo "$as_me:$LINENO: result: $INSTALL" >&5 +echo "${ECHO_T}$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +{ echo "$as_me:$LINENO: checking whether build environment is sane" >&5 +echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6; } +# Just in case +sleep 1 +echo timestamp > conftest.file +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftest.file` + fi + rm -f conftest.file + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" >&5 +echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" >&2;} + { (exit 1); exit 1; }; } + fi + + test "$2" = conftest.file + ) +then + # Ok. + : +else + { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! +Check your system clock" >&5 +echo "$as_me: error: newly created file is older than distributed files! +Check your system clock" >&2;} + { (exit 1); exit 1; }; } +fi +{ echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +test "$program_prefix" != NONE && + program_transform_name="s&^&$program_prefix&;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. echo might interpret backslashes. +# By default was `s,x,x', remove it if useless. +cat <<\_ACEOF >conftest.sed +s/[\\$]/&&/g;s/;s,x,x,$// +_ACEOF +program_transform_name=`echo $program_transform_name | sed -f conftest.sed` +rm -f conftest.sed + +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` + +test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 +echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} +fi + +{ echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 +echo $ECHO_N "checking for a thread-safe mkdir -p... $ECHO_C" >&6; } +if test -z "$MKDIR_P"; then + if test "${ac_cv_path_mkdir+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue + case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir (GNU coreutils) '* | \ + 'mkdir (coreutils) '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + break 3;; + esac + done + done +done +IFS=$as_save_IFS + +fi + + if test "${ac_cv_path_mkdir+set}" = set; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + test -d ./--version && rmdir ./--version + MKDIR_P="$ac_install_sh -d" + fi +fi +{ echo "$as_me:$LINENO: result: $MKDIR_P" >&5 +echo "${ECHO_T}$MKDIR_P" >&6; } + +mkdir_p="$MKDIR_P" +case $mkdir_p in + [\\/$]* | ?:[\\/]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_AWK+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AWK="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { echo "$as_me:$LINENO: result: $AWK" >&5 +echo "${ECHO_T}$AWK" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } +set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + SET_MAKE= +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + am__isrc=' -I$(srcdir)' + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 +echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} + { (exit 1); exit 1; }; } + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE='cyassl' + VERSION='2.2.0' + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE "$PACKAGE" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define VERSION "$VERSION" +_ACEOF + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + +install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} + +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_STRIP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { echo "$as_me:$LINENO: result: $STRIP" >&5 +echo "${ECHO_T}$STRIP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 +echo "${ECHO_T}$ac_ct_STRIP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +# Always define AMTAR for backward compatibility. + +AMTAR=${AMTAR-"${am_missing_run}tar"} + + +{ echo "$as_me:$LINENO: checking how to create a ustar tar archive" >&5 +echo $ECHO_N "checking how to create a ustar tar archive... $ECHO_C" >&6; } +# Loop over all known methods to create a tar archive until one works. +_am_tools='gnutar plaintar pax cpio none' +_am_tools=${am_cv_prog_tar_ustar-$_am_tools} +# Do not fold the above two line into one, because Tru64 sh and +# Solaris sh will not grok spaces in the rhs of `-'. +for _am_tool in $_am_tools +do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; + do + { echo "$as_me:$LINENO: $_am_tar --version" >&5 + ($_am_tar --version) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && break + done + am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x ustar -w "$$tardir"' + am__tar_='pax -L -x ustar -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H ustar -L' + am__tar_='find "$tardir" -print | cpio -o -H ustar -L' + am__untar='cpio -i -H ustar -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_ustar}" && break + + # tar/untar a dummy directory, and stop if the command works + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5 + (tardir=conftest.dir && eval $am__tar_ >conftest.tar) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + rm -rf conftest.dir + if test -s conftest.tar; then + { echo "$as_me:$LINENO: $am__untar &5 + ($am__untar &5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + grep GrepMe conftest.dir/file >/dev/null 2>&1 && break + fi +done +rm -rf conftest.dir + +if test "${am_cv_prog_tar_ustar+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + am_cv_prog_tar_ustar=$_am_tool +fi + +{ echo "$as_me:$LINENO: result: $am_cv_prog_tar_ustar" >&5 +echo "${ECHO_T}$am_cv_prog_tar_ustar" >&6; } + + + + + + +{ echo "$as_me:$LINENO: checking host system type" >&5 +echo $ECHO_N "checking host system type... $ECHO_C" >&6; } +if test "${ac_cv_host+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 +echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} + { (exit 1); exit 1; }; } +fi + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5 +echo "${ECHO_T}$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 +echo "$as_me: error: invalid value of canonical host" >&2;} + { (exit 1); exit 1; }; };; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 +echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} + { (exit 1); exit 1; }; } + +{ echo "$as_me:$LINENO: checking build system type" >&5 +echo $ECHO_N "checking build system type... $ECHO_C" >&6; } +if test "${ac_cv_build+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 +echo "$as_me: error: cannot guess build type; you must specify one" >&2;} + { (exit 1); exit 1; }; } +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 +echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} + { (exit 1); exit 1; }; } + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_build" >&5 +echo "${ECHO_T}$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 +echo "$as_me: error: invalid value of canonical build" >&2;} + { (exit 1); exit 1; }; };; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + + + + + + +ac_config_headers="$ac_config_headers config.h:config.in" + + +#shared library versioning +CYASSL_LIBRARY_VERSION=3:1:0 +# | | | +# +------+ | +---+ +# | | | +# current:revision:age +# | | | +# | | +- increment if interfaces have been added +# | | set to zero if interfaces have been removed +# | or changed +# | +- increment if source code has changed +# | set to zero if current is incremented +# +- increment if interfaces have been added, removed or changed + + +# Make sure configure doesn't add to CFLAGS +CFLAGS="$CFLAGS $C_EXTRA_FLAGS" + +case `pwd` in + *\ * | *\ *) + { echo "$as_me:$LINENO: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; +esac + + + +macro_version='2.2.10' +macro_revision='1.3175' + + + + + + + + + + + + + +ltmain="$ac_aux_dir/ltmain.sh" + +# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +{ echo "$as_me:$LINENO: checking how to print strings" >&5 +echo $ECHO_N "checking how to print strings... $ECHO_C" >&6; } +# Test print first, because it will be a builtin if present. +if test "X`print -r -- -n 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "" +} + +case "$ECHO" in + printf*) { echo "$as_me:$LINENO: result: printf" >&5 +echo "${ECHO_T}printf" >&6; } ;; + print*) { echo "$as_me:$LINENO: result: print -r" >&5 +echo "${ECHO_T}print -r" >&6; } ;; + *) { echo "$as_me:$LINENO: result: cat" >&5 +echo "${ECHO_T}cat" >&6; } ;; +esac + + + + + + + + + + + + + + +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + + +am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo done +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +{ echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 +echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6; } +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# We grep out `Entering directory' and `Leaving directory' +# messages which can occur if `w' ends up in MAKEFLAGS. +# In particular we don't look at `^make:' because GNU make might +# be invoked under some other name (usually "gmake"), in which +# case it prints its new name instead of `make'. +if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then + am__include=include + am__quote= + _am_result=GNU +fi +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then + am__include=.include + am__quote="\"" + _am_result=BSD + fi +fi + + +{ echo "$as_me:$LINENO: result: $_am_result" >&5 +echo "${ECHO_T}$_am_result" >&6; } +rm -f confinc confmf + +# Check whether --enable-dependency-tracking was given. +if test "${enable_dependency_tracking+set}" = set; then + enableval=$enable_dependency_tracking; +fi + +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' +fi + if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="gcc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&5 +echo "$as_me: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } + +# Provide some information about the compiler. +echo "$as_me:$LINENO: checking for C compiler version" >&5 +ac_compiler=`set X $ac_compile; echo $2` +{ (ac_try="$ac_compiler --version >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler --version >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -v >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -v >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -V >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -V >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 +echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; } +ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` +# +# List of possible output files, starting from the most likely. +# The algorithm is not robust to junk in `.', hence go to wildcards (a.*) +# only as a last resort. b.out is created by i960 compilers. +ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' +# +# The IRIX 6 linker writes into existing files which may not be +# executable, retaining their permissions. Remove them first so a +# subsequent execution test works. +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { (ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi + +{ echo "$as_me:$LINENO: result: $ac_file" >&5 +echo "${ECHO_T}$ac_file" >&6; } +if test -z "$ac_file"; then + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { echo "$as_me:$LINENO: error: C compiler cannot create executables +See \`config.log' for more details." >&5 +echo "$as_me: error: C compiler cannot create executables +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } +fi + +ac_exeext=$ac_cv_exeext + +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ echo "$as_me:$LINENO: checking whether the C compiler works" >&5 +echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; } +# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 +# If not cross compiling, check that we can run a simple program. +if test "$cross_compiling" != yes; then + if { ac_try='./$ac_file' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { echo "$as_me:$LINENO: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } + fi + fi +fi +{ echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + +rm -f a.out a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 +echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; } +{ echo "$as_me:$LINENO: result: $cross_compiling" >&5 +echo "${ECHO_T}$cross_compiling" >&6; } + +{ echo "$as_me:$LINENO: checking for suffix of executables" >&5 +echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; } +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +rm -f conftest$ac_cv_exeext +{ echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 +echo "${ECHO_T}$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +{ echo "$as_me:$LINENO: checking for suffix of object files" >&5 +echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; } +if test "${ac_cv_objext+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 +echo "${ECHO_T}$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } +if test "${ac_cv_c_compiler_gnu+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_compiler_gnu=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_compiler_gnu=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } +GCC=`test $ac_compiler_gnu = yes && echo yes` +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 +echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } +if test "${ac_cv_prog_cc_g+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + CFLAGS="" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 +echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } +if test "${ac_cv_prog_cc_c89+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_c89=$ac_arg +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { echo "$as_me:$LINENO: result: none needed" >&5 +echo "${ECHO_T}none needed" >&6; } ;; + xno) + { echo "$as_me:$LINENO: result: unsupported" >&5 +echo "${ECHO_T}unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; +esac + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +depcc="$CC" am_compiler_list= + +{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 +echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } +if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + case $depmode in + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + none) break ;; + esac + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. + if depmode=$depmode \ + source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 +echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + +{ echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 +echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6; } +if test "${ac_cv_path_SED+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" | sed 99q >conftest.sed + $as_unset ac_script || ac_script= + # Extract the first word of "sed gsed" to use in msg output +if test -z "$SED"; then +set dummy sed gsed; ac_prog_name=$2 +if test "${ac_cv_path_SED+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_path_SED_found=false +# Loop through the user's path and test for each of PROGNAME-LIST +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue + # Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + + $ac_path_SED_found && break 3 + done +done + +done +IFS=$as_save_IFS + + +fi + +SED="$ac_cv_path_SED" +if test -z "$SED"; then + { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in \$PATH" >&5 +echo "$as_me: error: no acceptable $ac_prog_name could be found in \$PATH" >&2;} + { (exit 1); exit 1; }; } +fi + +else + ac_cv_path_SED=$SED +fi + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_path_SED" >&5 +echo "${ECHO_T}$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" + + + + + + + + + + + +{ echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 +echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; } +if test "${ac_cv_path_GREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Extract the first word of "grep ggrep" to use in msg output +if test -z "$GREP"; then +set dummy grep ggrep; ac_prog_name=$2 +if test "${ac_cv_path_GREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_path_GREP_found=false +# Loop through the user's path and test for each of PROGNAME-LIST +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue + # Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + + $ac_path_GREP_found && break 3 + done +done + +done +IFS=$as_save_IFS + + +fi + +GREP="$ac_cv_path_GREP" +if test -z "$GREP"; then + { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } +fi + +else + ac_cv_path_GREP=$GREP +fi + + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 +echo "${ECHO_T}$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ echo "$as_me:$LINENO: checking for egrep" >&5 +echo $ECHO_N "checking for egrep... $ECHO_C" >&6; } +if test "${ac_cv_path_EGREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + # Extract the first word of "egrep" to use in msg output +if test -z "$EGREP"; then +set dummy egrep; ac_prog_name=$2 +if test "${ac_cv_path_EGREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_path_EGREP_found=false +# Loop through the user's path and test for each of PROGNAME-LIST +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue + # Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + + $ac_path_EGREP_found && break 3 + done +done + +done +IFS=$as_save_IFS + + +fi + +EGREP="$ac_cv_path_EGREP" +if test -z "$EGREP"; then + { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } +fi + +else + ac_cv_path_EGREP=$EGREP +fi + + + fi +fi +{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 +echo "${ECHO_T}$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ echo "$as_me:$LINENO: checking for fgrep" >&5 +echo $ECHO_N "checking for fgrep... $ECHO_C" >&6; } +if test "${ac_cv_path_FGREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 + then ac_cv_path_FGREP="$GREP -F" + else + # Extract the first word of "fgrep" to use in msg output +if test -z "$FGREP"; then +set dummy fgrep; ac_prog_name=$2 +if test "${ac_cv_path_FGREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_path_FGREP_found=false +# Loop through the user's path and test for each of PROGNAME-LIST +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in fgrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue + # Check for GNU ac_path_FGREP and select it if it is found. + # Check for GNU $ac_path_FGREP +case `"$ac_path_FGREP" --version 2>&1` in +*GNU*) + ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; +*) + ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + echo 'FGREP' >> "conftest.nl" + "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_FGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_FGREP="$ac_path_FGREP" + ac_path_FGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + + $ac_path_FGREP_found && break 3 + done +done + +done +IFS=$as_save_IFS + + +fi + +FGREP="$ac_cv_path_FGREP" +if test -z "$FGREP"; then + { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } +fi + +else + ac_cv_path_FGREP=$FGREP +fi + + + fi +fi +{ echo "$as_me:$LINENO: result: $ac_cv_path_FGREP" >&5 +echo "${ECHO_T}$ac_cv_path_FGREP" >&6; } + FGREP="$ac_cv_path_FGREP" + + +test -z "$GREP" && GREP=grep + + + + + + + + + + + + + + + + + + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { echo "$as_me:$LINENO: checking for ld used by $CC" >&5 +echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { echo "$as_me:$LINENO: checking for GNU ld" >&5 +echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; } +else + { echo "$as_me:$LINENO: checking for non-GNU ld" >&5 +echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; } +fi +if test "${lt_cv_path_LD+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +echo "${ECHO_T}$LD" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi +test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 +echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} + { (exit 1); exit 1; }; } +{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 +echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; } +if test "${lt_cv_prog_gnu_ld+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + + +{ echo "$as_me:$LINENO: checking for BSD- or MS-compatible name lister (nm)" >&5 +echo $ECHO_N "checking for BSD- or MS-compatible name lister (nm)... $ECHO_C" >&6; } +if test "${lt_cv_path_NM+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi +fi +{ echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 +echo "${ECHO_T}$lt_cv_path_NM" >&6; } +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + if test -n "$ac_tool_prefix"; then + for ac_prog in dumpbin "link -dump" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_DUMPBIN+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$DUMPBIN"; then + ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +DUMPBIN=$ac_cv_prog_DUMPBIN +if test -n "$DUMPBIN"; then + { echo "$as_me:$LINENO: result: $DUMPBIN" >&5 +echo "${ECHO_T}$DUMPBIN" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$DUMPBIN" && break + done +fi +if test -z "$DUMPBIN"; then + ac_ct_DUMPBIN=$DUMPBIN + for ac_prog in dumpbin "link -dump" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_DUMPBIN"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN +if test -n "$ac_ct_DUMPBIN"; then + { echo "$as_me:$LINENO: result: $ac_ct_DUMPBIN" >&5 +echo "${ECHO_T}$ac_ct_DUMPBIN" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$ac_ct_DUMPBIN" && break +done + + if test "x$ac_ct_DUMPBIN" = x; then + DUMPBIN=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + DUMPBIN=$ac_ct_DUMPBIN + fi +fi + + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" + ;; + *) + DUMPBIN=: + ;; + esac + fi + + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm + + + + + + +{ echo "$as_me:$LINENO: checking the name lister ($NM) interface" >&5 +echo $ECHO_N "checking the name lister ($NM) interface... $ECHO_C" >&6; } +if test "${lt_cv_nm_interface+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: output\"" >&5) + cat conftest.out >&5 + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -r -f conftest* +fi +{ echo "$as_me:$LINENO: result: $lt_cv_nm_interface" >&5 +echo "${ECHO_T}$lt_cv_nm_interface" >&6; } + +{ echo "$as_me:$LINENO: checking whether ln -s works" >&5 +echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else + { echo "$as_me:$LINENO: result: no, using $LN_S" >&5 +echo "${ECHO_T}no, using $LN_S" >&6; } +fi + +# find the maximum length of command line arguments +{ echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 +echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6; } +if test "${lt_cv_sys_max_cmd_len+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac + +fi + +if test -n $lt_cv_sys_max_cmd_len ; then + { echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 +echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6; } +else + { echo "$as_me:$LINENO: result: none" >&5 +echo "${ECHO_T}none" >&6; } +fi +max_cmd_len=$lt_cv_sys_max_cmd_len + + + + + + +: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} + +{ echo "$as_me:$LINENO: checking whether the shell understands some XSI constructs" >&5 +echo $ECHO_N "checking whether the shell understands some XSI constructs... $ECHO_C" >&6; } +# Try some XSI features +xsi_shell=no +( _lt_dummy="a/b/c" + test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +{ echo "$as_me:$LINENO: result: $xsi_shell" >&5 +echo "${ECHO_T}$xsi_shell" >&6; } + + +{ echo "$as_me:$LINENO: checking whether the shell understands \"+=\"" >&5 +echo $ECHO_N "checking whether the shell understands \"+=\"... $ECHO_C" >&6; } +lt_shell_append=no +( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ + >/dev/null 2>&1 \ + && lt_shell_append=yes +{ echo "$as_me:$LINENO: result: $lt_shell_append" >&5 +echo "${ECHO_T}$lt_shell_append" >&6; } + + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi + + + + + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac + + + + + + + + + +{ echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 +echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6; } +if test "${lt_cv_ld_reload_flag+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_ld_reload_flag='-r' +fi +{ echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 +echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_OBJDUMP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { echo "$as_me:$LINENO: result: $OBJDUMP" >&5 +echo "${ECHO_T}$OBJDUMP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5 +echo "${ECHO_T}$ac_ct_OBJDUMP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + +{ echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5 +echo $ECHO_N "checking how to recognize dependent libraries... $ECHO_C" >&6; } +if test "${lt_cv_deplibs_check_method+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# `unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# which responds to the $file_magic_cmd with a given extended regex. +# If you have `file' or equivalent on your system and you're not sure +# whether `pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[4-9]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[45]*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. + if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[3-9]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +esac + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 +echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6; } +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_AR+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { echo "$as_me:$LINENO: result: $AR" >&5 +echo "${ECHO_T}$AR" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_AR+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_AR="ar" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 +echo "${ECHO_T}$ac_ct_AR" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + +test -z "$AR" && AR=ar +test -z "$AR_FLAGS" && AR_FLAGS=cru + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_STRIP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { echo "$as_me:$LINENO: result: $STRIP" >&5 +echo "${ECHO_T}$STRIP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 +echo "${ECHO_T}$ac_ct_STRIP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +test -z "$STRIP" && STRIP=: + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { echo "$as_me:$LINENO: result: $RANLIB" >&5 +echo "${ECHO_T}$RANLIB" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 +echo "${ECHO_T}$ac_ct_RANLIB" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +test -z "$RANLIB" && RANLIB=: + + + + + + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Check for command to grab the raw symbol name followed by C symbol from nm. +{ echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 +echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6; } +if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[ABCDGISTW]' + ;; +hpux*) + if test "$host_cpu" = ia64; then + symcode='[ABCDEGRST]' + fi + ;; +irix* | nonstopux*) + symcode='[BCDEGRST]' + ;; +osf*) + symcode='[BCDEGQRST]' + ;; +solaris*) + symcode='[BDRT]' + ;; +sco3.2v5*) + symcode='[DT]' + ;; +sysv4.2uw2*) + symcode='[DT]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[ABDT]' + ;; +sysv4) + symcode='[DFNSTU]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGIRSTW]' ;; +esac + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function + # and D for any global variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK '"\ +" {last_section=section; section=\$ 3};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ +" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ +" s[1]~/^[@?]/{print s[1], s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -r -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # Now try to grab the symbols. + nlist=conftest.nm + if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\"") >&5 + (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +const struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_save_LIBS="$LIBS" + lt_save_CFLAGS="$CFLAGS" + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS="$lt_save_LIBS" + CFLAGS="$lt_save_CFLAGS" + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done + +fi + +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + { echo "$as_me:$LINENO: result: failed" >&5 +echo "${ECHO_T}failed" >&6; } +else + { echo "$as_me:$LINENO: result: ok" >&5 +echo "${ECHO_T}ok" >&6; } +fi + + + + + + + + + + + + + + + + + + + + + + + +# Check whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then + enableval=$enable_libtool_lock; +fi + +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + { echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 +echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6; } +if test "${lt_cv_cc_needs_belf+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + lt_cv_cc_needs_belf=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + lt_cv_cc_needs_belf=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 +echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6; } + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +sparc*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) LD="${LD-ld} -m elf64_sparc" ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks="$enable_libtool_lock" + + + case $host_os in + rhapsody* | darwin*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. +set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_DSYMUTIL+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +DSYMUTIL=$ac_cv_prog_DSYMUTIL +if test -n "$DSYMUTIL"; then + { echo "$as_me:$LINENO: result: $DSYMUTIL" >&5 +echo "${ECHO_T}$DSYMUTIL" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DSYMUTIL"; then + ac_ct_DSYMUTIL=$DSYMUTIL + # Extract the first word of "dsymutil", so it can be a program name with args. +set dummy dsymutil; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_DSYMUTIL"; then + ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL +if test -n "$ac_ct_DSYMUTIL"; then + { echo "$as_me:$LINENO: result: $ac_ct_DSYMUTIL" >&5 +echo "${ECHO_T}$ac_ct_DSYMUTIL" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_DSYMUTIL" = x; then + DSYMUTIL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + DSYMUTIL=$ac_ct_DSYMUTIL + fi +else + DSYMUTIL="$ac_cv_prog_DSYMUTIL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. +set dummy ${ac_tool_prefix}nmedit; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_NMEDIT+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$NMEDIT"; then + ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +NMEDIT=$ac_cv_prog_NMEDIT +if test -n "$NMEDIT"; then + { echo "$as_me:$LINENO: result: $NMEDIT" >&5 +echo "${ECHO_T}$NMEDIT" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_NMEDIT"; then + ac_ct_NMEDIT=$NMEDIT + # Extract the first word of "nmedit", so it can be a program name with args. +set dummy nmedit; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_NMEDIT"; then + ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_NMEDIT="nmedit" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT +if test -n "$ac_ct_NMEDIT"; then + { echo "$as_me:$LINENO: result: $ac_ct_NMEDIT" >&5 +echo "${ECHO_T}$ac_ct_NMEDIT" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_NMEDIT" = x; then + NMEDIT=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + NMEDIT=$ac_ct_NMEDIT + fi +else + NMEDIT="$ac_cv_prog_NMEDIT" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. +set dummy ${ac_tool_prefix}lipo; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_LIPO+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$LIPO"; then + ac_cv_prog_LIPO="$LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_LIPO="${ac_tool_prefix}lipo" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +LIPO=$ac_cv_prog_LIPO +if test -n "$LIPO"; then + { echo "$as_me:$LINENO: result: $LIPO" >&5 +echo "${ECHO_T}$LIPO" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LIPO"; then + ac_ct_LIPO=$LIPO + # Extract the first word of "lipo", so it can be a program name with args. +set dummy lipo; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_LIPO"; then + ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_LIPO="lipo" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO +if test -n "$ac_ct_LIPO"; then + { echo "$as_me:$LINENO: result: $ac_ct_LIPO" >&5 +echo "${ECHO_T}$ac_ct_LIPO" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_LIPO" = x; then + LIPO=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + LIPO=$ac_ct_LIPO + fi +else + LIPO="$ac_cv_prog_LIPO" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_OTOOL+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$OTOOL"; then + ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OTOOL="${ac_tool_prefix}otool" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +OTOOL=$ac_cv_prog_OTOOL +if test -n "$OTOOL"; then + { echo "$as_me:$LINENO: result: $OTOOL" >&5 +echo "${ECHO_T}$OTOOL" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL"; then + ac_ct_OTOOL=$OTOOL + # Extract the first word of "otool", so it can be a program name with args. +set dummy otool; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_OTOOL"; then + ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OTOOL="otool" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL +if test -n "$ac_ct_OTOOL"; then + { echo "$as_me:$LINENO: result: $ac_ct_OTOOL" >&5 +echo "${ECHO_T}$ac_ct_OTOOL" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_OTOOL" = x; then + OTOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + OTOOL=$ac_ct_OTOOL + fi +else + OTOOL="$ac_cv_prog_OTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool64; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_OTOOL64+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$OTOOL64"; then + ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +OTOOL64=$ac_cv_prog_OTOOL64 +if test -n "$OTOOL64"; then + { echo "$as_me:$LINENO: result: $OTOOL64" >&5 +echo "${ECHO_T}$OTOOL64" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL64"; then + ac_ct_OTOOL64=$OTOOL64 + # Extract the first word of "otool64", so it can be a program name with args. +set dummy otool64; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_OTOOL64"; then + ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OTOOL64="otool64" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 +if test -n "$ac_ct_OTOOL64"; then + { echo "$as_me:$LINENO: result: $ac_ct_OTOOL64" >&5 +echo "${ECHO_T}$ac_ct_OTOOL64" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_OTOOL64" = x; then + OTOOL64=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + OTOOL64=$ac_ct_OTOOL64 + fi +else + OTOOL64="$ac_cv_prog_OTOOL64" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + { echo "$as_me:$LINENO: checking for -single_module linker flag" >&5 +echo $ECHO_N "checking for -single_module linker flag... $ECHO_C" >&6; } +if test "${lt_cv_apple_cc_single_mod+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_apple_cc_single_mod=no + if test -z "${LT_MULTI_MODULE}"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&5 + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi +fi +{ echo "$as_me:$LINENO: result: $lt_cv_apple_cc_single_mod" >&5 +echo "${ECHO_T}$lt_cv_apple_cc_single_mod" >&6; } + { echo "$as_me:$LINENO: checking for -exported_symbols_list linker flag" >&5 +echo $ECHO_N "checking for -exported_symbols_list linker flag... $ECHO_C" >&6; } +if test "${lt_cv_ld_exported_symbols_list+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + lt_cv_ld_exported_symbols_list=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + lt_cv_ld_exported_symbols_list=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_ld_exported_symbols_list" >&5 +echo "${ECHO_T}$lt_cv_ld_exported_symbols_list" >&6; } + { echo "$as_me:$LINENO: checking for -force_load linker flag" >&5 +echo $ECHO_N "checking for -force_load linker flag... $ECHO_C" >&6; } +if test "${lt_cv_ld_force_load+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 + echo "$RANLIB libconftest.a" >&5 + $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&5 + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_ld_force_load" >&5 +echo "${ECHO_T}$lt_cv_ld_force_load" >&6; } + case $host_os in + rhapsody* | darwin1.[012]) + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[91]*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + 10.[012]*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test "$lt_cv_apple_cc_single_mod" = "yes"; then + _lt_dar_single_mod='$single_module' + fi + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 +echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if test "${ac_cv_prog_CPP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi + +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi + +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ echo "$as_me:$LINENO: result: $CPP" >&5 +echo "${ECHO_T}$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi + +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi + +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + : +else + { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&5 +echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } +if test "${ac_cv_header_stdc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_header_stdc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_header_stdc=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f -r conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f -r conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then + : +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +echo "${ECHO_T}$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +cat >>confdefs.h <<\_ACEOF +#define STDC_HEADERS 1 +_ACEOF + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. + + + + + + + + + +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + eval "$as_ac_Header=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_Header=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + +for ac_header in dlfcn.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + eval "$as_ac_Header=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_Header=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + + + +# Set options +enable_win32_dll=yes + +case $host in +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_AS+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AS="${ac_tool_prefix}as" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +AS=$ac_cv_prog_AS +if test -n "$AS"; then + { echo "$as_me:$LINENO: result: $AS" >&5 +echo "${ECHO_T}$AS" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AS"; then + ac_ct_AS=$AS + # Extract the first word of "as", so it can be a program name with args. +set dummy as; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_AS+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_AS"; then + ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_AS="as" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_AS=$ac_cv_prog_ac_ct_AS +if test -n "$ac_ct_AS"; then + { echo "$as_me:$LINENO: result: $ac_ct_AS" >&5 +echo "${ECHO_T}$ac_ct_AS" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_AS" = x; then + AS="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + AS=$ac_ct_AS + fi +else + AS="$ac_cv_prog_AS" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_DLLTOOL+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { echo "$as_me:$LINENO: result: $DLLTOOL" >&5 +echo "${ECHO_T}$DLLTOOL" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { echo "$as_me:$LINENO: result: $ac_ct_DLLTOOL" >&5 +echo "${ECHO_T}$ac_ct_DLLTOOL" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_OBJDUMP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { echo "$as_me:$LINENO: result: $OBJDUMP" >&5 +echo "${ECHO_T}$OBJDUMP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5 +echo "${ECHO_T}$ac_ct_OBJDUMP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + + ;; +esac + +test -z "$AS" && AS=as + + + + + +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + + + enable_dlopen=no + + + + # Check whether --enable-shared was given. +if test "${enable_shared+set}" = set; then + enableval=$enable_shared; p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_shared=yes +fi + + + + + + + + + + # Check whether --enable-static was given. +if test "${enable_static+set}" = set; then + enableval=$enable_static; p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_static=yes +fi + + + + + + + + + + +# Check whether --with-pic was given. +if test "${with_pic+set}" = set; then + withval=$with_pic; pic_mode="$withval" +else + pic_mode=default +fi + + +test -z "$pic_mode" && pic_mode=default + + + + + + + + # Check whether --enable-fast-install was given. +if test "${enable_fast_install+set}" = set; then + enableval=$enable_fast_install; p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_fast_install=yes +fi + + + + + + + + + + + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' + + + + + + + + + + + + + + + + + + + + + + + + + + +test -z "$LN_S" && LN_S="ln -s" + + + + + + + + + + + + + + +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + +{ echo "$as_me:$LINENO: checking for objdir" >&5 +echo $ECHO_N "checking for objdir... $ECHO_C" >&6; } +if test "${lt_cv_objdir+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null +fi +{ echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 +echo "${ECHO_T}$lt_cv_objdir" >&6; } +objdir=$lt_cv_objdir + + + + + +cat >>confdefs.h <<_ACEOF +#define LT_OBJDIR "$lt_cv_objdir/" +_ACEOF + + + + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld="$lt_cv_prog_gnu_ld" + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` + + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + { echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 +echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6; } +if test "${lt_cv_path_MAGIC_CMD+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/${ac_tool_prefix}file; then + lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 +echo "${ECHO_T}$MAGIC_CMD" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + + + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + { echo "$as_me:$LINENO: checking for file" >&5 +echo $ECHO_N "checking for file... $ECHO_C" >&6; } +if test "${lt_cv_path_MAGIC_CMD+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/file; then + lt_cv_path_MAGIC_CMD="$ac_dir/file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 +echo "${ECHO_T}$MAGIC_CMD" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + else + MAGIC_CMD=: + fi +fi + + fi + ;; +esac + +# Use C for the default configuration in the libtool script + +lt_save_CC="$CC" +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +objext=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM -r conftest* + +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + +lt_prog_compiler_no_builtin_flag= + +if test "$GCC" = yes; then + case $cc_basename in + nvcc*) + lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; + *) + lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; + esac + + { echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $RM -r conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then + lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" +else + : +fi + +fi + + + + + + + lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= + +{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 +echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } + + if test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; + + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + lt_prog_compiler_wl='-Xlinker ' + lt_prog_compiler_pic='-Xcompiler -fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-qpic' + lt_prog_compiler_static='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ F* | *Sun*Fortran*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='' + ;; + *Sun\ C*) + # Sun C 5.9 + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Wl,' + ;; + esac + ;; + esac + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + + rdos*) + lt_prog_compiler_static='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no + ;; + + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi + +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; +esac +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic" >&6; } + + + + + + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + { echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler_pic_works+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic -DPIC" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works=yes + fi + fi + $RM -r conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_pic_works" >&6; } + +if test x"$lt_cv_prog_compiler_pic_works" = xyes; then + case $lt_prog_compiler_pic in + "" | " "*) ;; + *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; + esac +else + lt_prog_compiler_pic= + lt_prog_compiler_can_build_shared=no +fi + +fi + + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler_static_works+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_static_works=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works=yes + fi + else + lt_cv_prog_compiler_static_works=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_static_works" >&6; } + +if test x"$lt_cv_prog_compiler_static_works" = xyes; then + : +else + lt_prog_compiler_static= +fi + + + + + + + + { echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 +echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler_c_o+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM -r conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM -r conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6; } + + + + + + + { echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 +echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler_c_o+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM -r conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM -r conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6; } + + + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 +echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; } + hard_links=yes + $RM -r conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { echo "$as_me:$LINENO: result: $hard_links" >&5 +echo "${ECHO_T}$hard_links" >&6; } + if test "$hard_links" = no; then + { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + + + + { echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } + + runpath_var= + allow_undefined_flag= + always_export_symbols=no + archive_cmds= + archive_expsym_cmds= + compiler_needs_object=no + enable_shared_with_static_runtimes=no + export_dynamic_flag_spec= + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + hardcode_automatic=no + hardcode_direct=no + hardcode_direct_absolute=no + hardcode_libdir_flag_spec= + hardcode_libdir_flag_spec_ld= + hardcode_libdir_separator= + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + inherit_rpath=no + link_all_deplibs=unknown + module_cmds= + module_expsym_cmds= + old_archive_from_new_cmds= + old_archive_from_expsyms_cmds= + thread_safe_flag_spec= + whole_archive_flag_spec= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + esac + + ld_shlibs=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test "$with_gnu_ld" = yes; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; + *\ \(GNU\ Binutils\)\ [3-9]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test "$lt_use_gnu_ld_interface" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + export_dynamic_flag_spec='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec= + fi + supports_anon_versioning=no + case `$LD -v 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + export_dynamic_flag_spec='${wl}--export-all-symbols' + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs=no + fi + ;; + + haiku*) + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + link_all_deplibs=yes + ;; + + interix[3-9]*) + hardcode_direct=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test "$tmp_diet" = no + then + tmp_addflag= + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec= + hardcode_libdir_flag_spec_ld='-rpath $libdir' + archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + ld_shlibs=no + fi + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test "$ld_shlibs" = no; then + runpath_var= + hardcode_libdir_flag_spec= + export_dynamic_flag_spec= + whole_archive_flag_spec= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag=unsupported + always_export_symbols=yes + archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + aix[4-9]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global + # defined symbols, whereas GNU nm marks them as "W". + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds='' + hardcode_direct=yes + hardcode_direct_absolute=yes + hardcode_libdir_separator=':' + link_all_deplibs=yes + file_list_spec='${wl}-f,' + + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + export_dynamic_flag_spec='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag=' ${wl}-bernotok' + allow_undefined_flag=' ${wl}-berok' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + fi + archive_cmds_need_lc=yes + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + bsdi[45]*) + export_dynamic_flag_spec=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' + fix_srcfile_path='`cygpath -w "$srcfile"`' + enable_shared_with_static_runtimes=yes + ;; + + darwin* | rhapsody*) + + + archive_cmds_need_lc=no + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + if test "$lt_cv_ld_force_load" = "yes"; then + whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + else + whole_archive_flag_spec='' + fi + link_all_deplibs=yes + allow_undefined_flag="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=func_echo_all + archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + + else + ld_shlibs=no + fi + + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + freebsd1*) + ld_shlibs=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9*) + if test "$GCC" = yes; then + archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + export_dynamic_flag_spec='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_flag_spec_ld='+b $libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + { echo "$as_me:$LINENO: checking if $CC understands -b" >&5 +echo $ECHO_N "checking if $CC understands -b... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler__b+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler__b=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -b" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler__b=yes + fi + else + lt_cv_prog_compiler__b=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler__b" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler__b" >&6; } + +if test x"$lt_cv_prog_compiler__b" = xyes; then + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' +else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' +fi + + ;; + esac + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + hardcode_shlibpath_var=no + ;; + *) + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + cat >conftest.$ac_ext <<_ACEOF +int foo(void) {} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + inherit_rpath=yes + link_all_deplibs=yes + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no + ;; + + *nto* | *qnx*) + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + hardcode_shlibpath_var=no + hardcode_direct_absolute=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + else + case $host_os in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi + else + ld_shlibs=no + fi + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + archive_cmds_need_lc='no' + hardcode_libdir_separator=: + ;; + + solaris*) + no_undefined_flag=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' + archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='${wl}' + archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. GCC discards it without `$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test "$GCC" = yes; then + whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' + fi + ;; + esac + link_all_deplibs=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag='${wl}-z,text' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag='${wl}-z,text' + allow_undefined_flag='${wl}-z,nodefs' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-R,$libdir' + hardcode_libdir_separator=':' + link_all_deplibs=yes + export_dynamic_flag_spec='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; + esac + + if test x$host_vendor = xsni; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + export_dynamic_flag_spec='${wl}-Blargedynsym' + ;; + esac + fi + fi + +{ echo "$as_me:$LINENO: result: $ld_shlibs" >&5 +echo "${ECHO_T}$ld_shlibs" >&6; } +test "$ld_shlibs" = no && can_build_shared=no + +with_gnu_ld=$with_gnu_ld + + + + + + + + + + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 +echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } +if test "${lt_cv_archive_cmds_need_lc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + $RM -r conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5 + (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + then + lt_cv_archive_cmds_need_lc=no + else + lt_cv_archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM -r conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_archive_cmds_need_lc" >&5 +echo "${ECHO_T}$lt_cv_archive_cmds_need_lc" >&6; } + archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 +echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } + +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; + *) lt_sed_strip_eq="s,=/,/,g" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[lt_foo]++; } + if (lt_freq[lt_foo] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's,/\([A-Za-z]:\),\1,g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[4-9]*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext ${libname}${release}${versuffix}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[123]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +haiku*) + version_type=linux + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[3-9]*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + if test "${lt_cv_shlibpath_overrides_runpath+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then + lt_cv_shlibpath_overrides_runpath=yes +fi + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 +echo "${ECHO_T}$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 +echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || + test -n "$runpath_var" || + test "X$hardcode_automatic" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$hardcode_direct" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && + test "$hardcode_minus_L" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +{ echo "$as_me:$LINENO: result: $hardcode_action" >&5 +echo "${ECHO_T}$hardcode_action" >&6; } + +if test "$hardcode_action" = relink || + test "$inherit_rpath" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 +echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } +if test "${ac_cv_lib_dl_dlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_dl_dlopen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dl_dlopen=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 +echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; } +if test $ac_cv_lib_dl_dlopen = yes; then + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + *) + { echo "$as_me:$LINENO: checking for shl_load" >&5 +echo $ECHO_N "checking for shl_load... $ECHO_C" >&6; } +if test "${ac_cv_func_shl_load+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define shl_load to an innocuous variant, in case declares shl_load. + For example, HP-UX 11i declares gettimeofday. */ +#define shl_load innocuous_shl_load + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char shl_load (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef shl_load + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_shl_load || defined __stub___shl_load +choke me +#endif + +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_func_shl_load=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_shl_load=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 +echo "${ECHO_T}$ac_cv_func_shl_load" >&6; } +if test $ac_cv_func_shl_load = yes; then + lt_cv_dlopen="shl_load" +else + { echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 +echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6; } +if test "${ac_cv_lib_dld_shl_load+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_dld_shl_load=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dld_shl_load=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 +echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; } +if test $ac_cv_lib_dld_shl_load = yes; then + lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" +else + { echo "$as_me:$LINENO: checking for dlopen" >&5 +echo $ECHO_N "checking for dlopen... $ECHO_C" >&6; } +if test "${ac_cv_func_dlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define dlopen to an innocuous variant, in case declares dlopen. + For example, HP-UX 11i declares gettimeofday. */ +#define dlopen innocuous_dlopen + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char dlopen (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef dlopen + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_dlopen || defined __stub___dlopen +choke me +#endif + +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_func_dlopen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_dlopen=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 +echo "${ECHO_T}$ac_cv_func_dlopen" >&6; } +if test $ac_cv_func_dlopen = yes; then + lt_cv_dlopen="dlopen" +else + { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 +echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } +if test "${ac_cv_lib_dl_dlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_dl_dlopen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dl_dlopen=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 +echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; } +if test $ac_cv_lib_dl_dlopen = yes; then + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + { echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 +echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6; } +if test "${ac_cv_lib_svld_dlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_svld_dlopen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_svld_dlopen=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 +echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6; } +if test $ac_cv_lib_svld_dlopen = yes; then + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" +else + { echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 +echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6; } +if test "${ac_cv_lib_dld_dld_link+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (); +int +main () +{ +return dld_link (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_dld_dld_link=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dld_dld_link=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 +echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; } +if test $ac_cv_lib_dld_dld_link = yes; then + lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" +fi + + +fi + + +fi + + +fi + + +fi + + +fi + + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + { echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 +echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6; } +if test "${lt_cv_dlopen_self+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +void fnord () __attribute__((visibility("default"))); +#endif + +void fnord () { int i=42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self=no + fi +fi +rm -fr conftest* + + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 +echo "${ECHO_T}$lt_cv_dlopen_self" >&6; } + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + { echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 +echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6; } +if test "${lt_cv_dlopen_self_static+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self_static=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +void fnord () __attribute__((visibility("default"))); +#endif + +void fnord () { int i=42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self_static=no + fi +fi +rm -fr conftest* + + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 +echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6; } + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi + + + + + + + + + + + + + + + + + +striplib= +old_striplib= +{ echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 +echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6; } +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + fi + ;; + *) + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + ;; + esac +fi + + + + + + + + + + + + + # Report which library types will actually be built + { echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 +echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; } + { echo "$as_me:$LINENO: result: $can_build_shared" >&5 +echo "${ECHO_T}$can_build_shared" >&6; } + + { echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 +echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; } + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[4-9]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + { echo "$as_me:$LINENO: result: $enable_shared" >&5 +echo "${ECHO_T}$enable_shared" >&6; } + + { echo "$as_me:$LINENO: checking whether to build static libraries" >&5 +echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; } + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + { echo "$as_me:$LINENO: result: $enable_static" >&5 +echo "${ECHO_T}$enable_static" >&6; } + + + + +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC="$lt_save_CC" + + + + + + + + + + + + + + ac_config_commands="$ac_config_commands libtool" + + + + +# Only expand once: + + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +if test -z "$CXX"; then + if test -n "$CCC"; then + CXX=$CCC + else + if test -n "$ac_tool_prefix"; then + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CXX"; then + ac_cv_prog_CXX="$CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CXX=$ac_cv_prog_CXX +if test -n "$CXX"; then + { echo "$as_me:$LINENO: result: $CXX" >&5 +echo "${ECHO_T}$CXX" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$CXX" && break + done +fi +if test -z "$CXX"; then + ac_ct_CXX=$CXX + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CXX"; then + ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CXX="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CXX=$ac_cv_prog_ac_ct_CXX +if test -n "$ac_ct_CXX"; then + { echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 +echo "${ECHO_T}$ac_ct_CXX" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$ac_ct_CXX" && break +done + + if test "x$ac_ct_CXX" = x; then + CXX="g++" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + CXX=$ac_ct_CXX + fi +fi + + fi +fi +# Provide some information about the compiler. +echo "$as_me:$LINENO: checking for C++ compiler version" >&5 +ac_compiler=`set X $ac_compile; echo $2` +{ (ac_try="$ac_compiler --version >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler --version >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -v >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -v >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -V >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -V >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + +{ echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6; } +if test "${ac_cv_cxx_compiler_gnu+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_compiler_gnu=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_compiler_gnu=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_cxx_compiler_gnu=$ac_compiler_gnu + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6; } +GXX=`test $ac_compiler_gnu = yes && echo yes` +ac_test_CXXFLAGS=${CXXFLAGS+set} +ac_save_CXXFLAGS=$CXXFLAGS +{ echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 +echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6; } +if test "${ac_cv_prog_cxx_g+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_save_cxx_werror_flag=$ac_cxx_werror_flag + ac_cxx_werror_flag=yes + ac_cv_prog_cxx_g=no + CXXFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cxx_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + CXXFLAGS="" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cxx_werror_flag=$ac_save_cxx_werror_flag + CXXFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cxx_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cxx_werror_flag=$ac_save_cxx_werror_flag +fi +{ echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 +echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6; } +if test "$ac_test_CXXFLAGS" = set; then + CXXFLAGS=$ac_save_CXXFLAGS +elif test $ac_cv_prog_cxx_g = yes; then + if test "$GXX" = yes; then + CXXFLAGS="-g -O2" + else + CXXFLAGS="-g" + fi +else + if test "$GXX" = yes; then + CXXFLAGS="-O2" + else + CXXFLAGS= + fi +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +depcc="$CXX" am_compiler_list= + +{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 +echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } +if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CXX_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + case $depmode in + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + none) break ;; + esac + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. + if depmode=$depmode \ + source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CXX_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CXX_dependencies_compiler_type=none +fi + +fi +{ echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 +echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6; } +CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then + am__fastdepCXX_TRUE= + am__fastdepCXX_FALSE='#' +else + am__fastdepCXX_TRUE='#' + am__fastdepCXX_FALSE= +fi + + + + if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +{ echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 +echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6; } +if test -z "$CXXCPP"; then + if test "${ac_cv_prog_CXXCPP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Double quotes because CXXCPP needs to be expanded + for CXXCPP in "$CXX -E" "/lib/cpp" + do + ac_preproc_ok=false +for ac_cxx_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi + +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi + +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + break +fi + + done + ac_cv_prog_CXXCPP=$CXXCPP + +fi + CXXCPP=$ac_cv_prog_CXXCPP +else + ac_cv_prog_CXXCPP=$CXXCPP +fi +{ echo "$as_me:$LINENO: result: $CXXCPP" >&5 +echo "${ECHO_T}$CXXCPP" >&6; } +ac_preproc_ok=false +for ac_cxx_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi + +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi + +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + : +else + { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check +See \`config.log' for more details." >&5 +echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +else + _lt_caught_CXX_error=yes +fi + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + +archive_cmds_need_lc_CXX=no +allow_undefined_flag_CXX= +always_export_symbols_CXX=no +archive_expsym_cmds_CXX= +compiler_needs_object_CXX=no +export_dynamic_flag_spec_CXX= +hardcode_direct_CXX=no +hardcode_direct_absolute_CXX=no +hardcode_libdir_flag_spec_CXX= +hardcode_libdir_flag_spec_ld_CXX= +hardcode_libdir_separator_CXX= +hardcode_minus_L_CXX=no +hardcode_shlibpath_var_CXX=unsupported +hardcode_automatic_CXX=no +inherit_rpath_CXX=no +module_cmds_CXX= +module_expsym_cmds_CXX= +link_all_deplibs_CXX=unknown +old_archive_cmds_CXX=$old_archive_cmds +reload_flag_CXX=$reload_flag +reload_cmds_CXX=$reload_cmds +no_undefined_flag_CXX= +whole_archive_flag_spec_CXX= +enable_shared_with_static_runtimes_CXX=no + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +objext_CXX=$objext + +# No sense in running all these tests if we already determined that +# the CXX compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_caught_CXX_error" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="int some_variable = 0;" + + # Code to be used in simple link tests + lt_simple_link_test_code='int main(int, char *[]) { return(0); }' + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + + # save warnings/boilerplate of simple test code + ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM -r conftest* + + ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX + lt_save_with_gnu_ld=$with_gnu_ld + lt_save_path_LD=$lt_cv_path_LD + if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx + else + $as_unset lt_cv_prog_gnu_ld + fi + if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX + else + $as_unset lt_cv_path_LD + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} + compiler=$CC + compiler_CXX=$CC + for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` + + + if test -n "$compiler"; then + # We don't want -fno-exception when compiling C++ code, so set the + # no_builtin_flag separately + if test "$GXX" = yes; then + lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' + else + lt_prog_compiler_no_builtin_flag_CXX= + fi + + if test "$GXX" = yes; then + # Set up default GNU C++ configuration + + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { echo "$as_me:$LINENO: checking for ld used by $CC" >&5 +echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { echo "$as_me:$LINENO: checking for GNU ld" >&5 +echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; } +else + { echo "$as_me:$LINENO: checking for non-GNU ld" >&5 +echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; } +fi +if test "${lt_cv_path_LD+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +echo "${ECHO_T}$LD" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi +test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 +echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} + { (exit 1); exit 1; }; } +{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 +echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; } +if test "${lt_cv_prog_gnu_ld+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test "$with_gnu_ld" = yes; then + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='${wl}' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | + $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec_CXX= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + GXX=no + with_gnu_ld=no + wlarc= + fi + + # PORTME: fill in a description of your system's C++ link characteristics + { echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } + ld_shlibs_CXX=yes + case $host_os in + aix3*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + aix[4-9]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds_CXX='' + hardcode_direct_CXX=yes + hardcode_direct_absolute_CXX=yes + hardcode_libdir_separator_CXX=':' + link_all_deplibs_CXX=yes + file_list_spec_CXX='${wl}-f,' + + if test "$GXX" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct_CXX=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L_CXX=yes + hardcode_libdir_flag_spec_CXX='-L$libdir' + hardcode_libdir_separator_CXX= + fi + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + export_dynamic_flag_spec_CXX='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to + # export. + always_export_symbols_CXX=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag_CXX='-berok' + # Determine the default libpath from the value encoded in an empty + # executable. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" + + archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag_CXX="-z nodefs" + archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag_CXX=' ${wl}-bernotok' + allow_undefined_flag_CXX=' ${wl}-berok' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec_CXX='$convenience' + fi + archive_cmds_need_lc_CXX=yes + # This is similar to how AIX traditionally builds its shared + # libraries. + archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag_CXX=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs_CXX=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec_CXX='-L$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-all-symbols' + allow_undefined_flag_CXX=unsupported + always_export_symbols_CXX=no + enable_shared_with_static_runtimes_CXX=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs_CXX=no + fi + ;; + darwin* | rhapsody*) + + + archive_cmds_need_lc_CXX=no + hardcode_direct_CXX=no + hardcode_automatic_CXX=yes + hardcode_shlibpath_var_CXX=unsupported + if test "$lt_cv_ld_force_load" = "yes"; then + whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + else + whole_archive_flag_spec_CXX='' + fi + link_all_deplibs_CXX=yes + allow_undefined_flag_CXX="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=func_echo_all + archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + if test "$lt_cv_apple_cc_single_mod" != "yes"; then + archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" + archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" + fi + + else + ld_shlibs_CXX=no + fi + + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + freebsd[12]*) + # C++ shared libraries reported to be fairly broken before + # switch to ELF + ld_shlibs_CXX=no + ;; + + freebsd-elf*) + archive_cmds_need_lc_CXX=no + ;; + + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + ld_shlibs_CXX=yes + ;; + + gnu*) + ;; + + haiku*) + archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + link_all_deplibs_CXX=yes + ;; + + hpux9*) + hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_CXX=: + export_dynamic_flag_spec_CXX='${wl}-E' + hardcode_direct_CXX=yes + hardcode_minus_L_CXX=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + aCC*) + archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test "$GXX" = yes; then + archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_CXX=: + + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + export_dynamic_flag_spec_CXX='${wl}-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct_CXX=no + hardcode_shlibpath_var_CXX=no + ;; + *) + hardcode_direct_CXX=yes + hardcode_direct_absolute_CXX=yes + hardcode_minus_L_CXX=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test "$GXX" = yes; then + if test $with_gnu_ld = no; then + case $host_cpu in + hppa*64*) + archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + + interix[3-9]*) + hardcode_direct_CXX=no + hardcode_shlibpath_var_CXX=no + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + export_dynamic_flag_spec_CXX='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' + fi + fi + link_all_deplibs_CXX=yes + ;; + esac + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_CXX=: + inherit_rpath_CXX=yes + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc* | ecpc* ) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + archive_cmds_need_lc_CXX=no + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + case `$CC -V` in + *pgCC\ [1-5].* | *pgcpp\ [1-5].*) + prelink_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ + compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + old_archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + esac + + hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + ;; + cxx*) + # Compaq C++ + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec_CXX='-rpath $libdir' + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' + ;; + xl* | mpixl* | bgxl*) + # IBM XL 8.0 on PPC, with GNU ld + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + no_undefined_flag_CXX=' -zdefs' + archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' + hardcode_libdir_flag_spec_CXX='-R$libdir' + whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object_CXX=yes + + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; + + lynxos*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + m88k*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + hardcode_libdir_flag_spec_CXX='-R$libdir' + hardcode_direct_CXX=yes + hardcode_shlibpath_var_CXX=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + + *nto* | *qnx*) + ld_shlibs_CXX=yes + ;; + + openbsd2*) + # C++ shared libraries are fairly broken + ld_shlibs_CXX=no + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct_CXX=yes + hardcode_shlibpath_var_CXX=no + hardcode_direct_absolute_CXX=yes + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' + export_dynamic_flag_spec_CXX='${wl}-E' + whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + fi + output_verbose_link_cmd=func_echo_all + else + ld_shlibs_CXX=no + fi + ;; + + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + hardcode_libdir_separator_CXX=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + case $host in + osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; + *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; + esac + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + cxx*) + case $host in + osf3*) + allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + ;; + *) + allow_undefined_flag_CXX=' -expect_unresolved \*' + archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ + $RM $lib.exp' + hardcode_libdir_flag_spec_CXX='-rpath $libdir' + ;; + esac + + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' + case $host in + osf3*) + archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + *) + archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + esac + + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + + psos*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + archive_cmds_need_lc_CXX=yes + no_undefined_flag_CXX=' -zdefs' + archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + hardcode_libdir_flag_spec_CXX='-R$libdir' + hardcode_shlibpath_var_CXX=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. + # Supported since Solaris 2.6 (maybe 2.5.1?) + whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract' + ;; + esac + link_all_deplibs_CXX=yes + + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + no_undefined_flag_CXX=' ${wl}-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then + archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + else + # g++ 2.7 appears to require `-G' NOT `-shared' on this + # platform. + archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + fi + + hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag_CXX='${wl}-z,text' + archive_cmds_need_lc_CXX=no + hardcode_shlibpath_var_CXX=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag_CXX='${wl}-z,text' + allow_undefined_flag_CXX='${wl}-z,nodefs' + archive_cmds_need_lc_CXX=no + hardcode_shlibpath_var_CXX=no + hardcode_libdir_flag_spec_CXX='${wl}-R,$libdir' + hardcode_libdir_separator_CXX=':' + link_all_deplibs_CXX=yes + export_dynamic_flag_spec_CXX='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + old_archive_cmds_CXX='$CC -Tprelink_objects $oldobjs~ + '"$old_archive_cmds_CXX" + reload_cmds_CXX='$CC -Tprelink_objects $reload_objs~ + '"$reload_cmds_CXX" + ;; + *) + archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + vxworks*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + + { echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 +echo "${ECHO_T}$ld_shlibs_CXX" >&6; } + test "$ld_shlibs_CXX" = no && can_build_shared=no + + GCC_CXX="$GXX" + LD_CXX="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + # Dependencies to place before and after the object being linked: +predep_objects_CXX= +postdep_objects_CXX= +predeps_CXX= +postdeps_CXX= +compiler_lib_search_path_CXX= + +cat > conftest.$ac_ext <<_LT_EOF +class Foo +{ +public: + Foo (void) { a = 0; } +private: + int a; +}; +_LT_EOF + +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do + case $p in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test $p = "-L" || + test $p = "-R"; then + prev=$p + continue + else + prev= + fi + + if test "$pre_test_object_deps_done" = no; then + case $p in + -L* | -R*) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$compiler_lib_search_path_CXX"; then + compiler_lib_search_path_CXX="${prev}${p}" + else + compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$postdeps_CXX"; then + postdeps_CXX="${prev}${p}" + else + postdeps_CXX="${postdeps_CXX} ${prev}${p}" + fi + fi + ;; + + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test "$pre_test_object_deps_done" = no; then + if test -z "$predep_objects_CXX"; then + predep_objects_CXX="$p" + else + predep_objects_CXX="$predep_objects_CXX $p" + fi + else + if test -z "$postdep_objects_CXX"; then + postdep_objects_CXX="$p" + else + postdep_objects_CXX="$postdep_objects_CXX $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling CXX test program" +fi + +$RM -f confest.$objext + +# PORTME: override above test on systems where it is broken +case $host_os in +interix[3-9]*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + predep_objects_CXX= + postdep_objects_CXX= + postdeps_CXX= + ;; + +linux*) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + if test "$solaris_use_stlport4" != yes; then + postdeps_CXX='-library=Cstd -library=Crun' + fi + ;; + esac + ;; + +solaris*) + case $cc_basename in + CC* | sunCC*) + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + # Adding this requires a known-good setup of shared libraries for + # Sun compiler versions before 5.6, else PIC objects from an old + # archive will be linked into the output, leading to subtle bugs. + if test "$solaris_use_stlport4" != yes; then + postdeps_CXX='-library=Cstd -library=Crun' + fi + ;; + esac + ;; +esac + + +case " $postdeps_CXX " in +*" -lc "*) archive_cmds_need_lc_CXX=no ;; +esac + compiler_lib_search_dirs_CXX= +if test -n "${compiler_lib_search_path_CXX}"; then + compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + lt_prog_compiler_wl_CXX= +lt_prog_compiler_pic_CXX= +lt_prog_compiler_static_CXX= + +{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 +echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } + + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_CXX='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic_CXX='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic_CXX='-DDLL_EXPORT' + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic_CXX='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + lt_prog_compiler_pic_CXX= + ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static_CXX= + ;; + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic_CXX=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + ;; + *) + lt_prog_compiler_pic_CXX='-fPIC' + ;; + esac + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic_CXX='-fPIC -shared' + ;; + *) + lt_prog_compiler_pic_CXX='-fPIC' + ;; + esac + else + case $host_os in + aix[4-9]*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_CXX='-Bstatic' + else + lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + dgux*) + case $cc_basename in + ec++*) + lt_prog_compiler_pic_CXX='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + lt_prog_compiler_pic_CXX='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' + if test "$host_cpu" != ia64; then + lt_prog_compiler_pic_CXX='+Z' + fi + ;; + aCC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic_CXX='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + KCC*) + # KAI C++ Compiler + lt_prog_compiler_wl_CXX='--backend -Wl,' + lt_prog_compiler_pic_CXX='-fPIC' + ;; + ecpc* ) + # old Intel C++ for x86_64 which still supported -KPIC. + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-static' + ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-fPIC' + lt_prog_compiler_static_CXX='-static' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-fpic' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + lt_prog_compiler_pic_CXX= + lt_prog_compiler_static_CXX='-non_shared' + ;; + xlc* | xlC* | bgxl[cC]* | mpixl[cC]*) + # IBM XL 8.0, 9.0 on PPC and BlueGene + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-qpic' + lt_prog_compiler_static_CXX='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + lt_prog_compiler_wl_CXX='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + lt_prog_compiler_pic_CXX='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd*) + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic_CXX='-fPIC -shared' + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + lt_prog_compiler_wl_CXX='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + lt_prog_compiler_pic_CXX='-pic' + ;; + cxx*) + # Digital/Compaq C++ + lt_prog_compiler_wl_CXX='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + lt_prog_compiler_pic_CXX= + lt_prog_compiler_static_CXX='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + lt_prog_compiler_wl_CXX='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + lt_prog_compiler_pic_CXX='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + lt_prog_compiler_pic_CXX='-pic' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + lcc*) + # Lucid + lt_prog_compiler_pic_CXX='-pic' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + lt_prog_compiler_pic_CXX='-KPIC' + ;; + *) + ;; + esac + ;; + vxworks*) + ;; + *) + lt_prog_compiler_can_build_shared_CXX=no + ;; + esac + fi + +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic_CXX= + ;; + *) + lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" + ;; +esac +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6; } + + + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic_CXX"; then + { echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 +echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler_pic_works_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_pic_works_CXX=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works_CXX=yes + fi + fi + $RM -r conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works_CXX" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_pic_works_CXX" >&6; } + +if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then + case $lt_prog_compiler_pic_CXX in + "" | " "*) ;; + *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; + esac +else + lt_prog_compiler_pic_CXX= + lt_prog_compiler_can_build_shared_CXX=no +fi + +fi + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" +{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler_static_works_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_static_works_CXX=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works_CXX=yes + fi + else + lt_cv_prog_compiler_static_works_CXX=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works_CXX" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_static_works_CXX" >&6; } + +if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then + : +else + lt_prog_compiler_static_CXX= +fi + + + + + { echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 +echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_c_o_CXX=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o_CXX=yes + fi + fi + chmod u+w . 2>&5 + $RM -r conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM -r conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6; } + + + + { echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 +echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_c_o_CXX=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o_CXX=yes + fi + fi + chmod u+w . 2>&5 + $RM -r conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM -r conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6; } + + + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 +echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; } + hard_links=yes + $RM -r conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { echo "$as_me:$LINENO: result: $hard_links" >&5 +echo "${ECHO_T}$hard_links" >&6; } + if test "$hard_links" = no; then + { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + { echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } + + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + case $host_os in + aix[4-9]*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global defined + # symbols, whereas GNU nm marks them as "W". + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + export_symbols_cmds_CXX="$ltdll_cmds" + ;; + cygwin* | mingw* | cegcc*) + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + ;; + *) + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac + exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + +{ echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 +echo "${ECHO_T}$ld_shlibs_CXX" >&6; } +test "$ld_shlibs_CXX" = no && can_build_shared=no + +with_gnu_ld_CXX=$with_gnu_ld + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc_CXX" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc_CXX=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds_CXX in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 +echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } +if test "${lt_cv_archive_cmds_need_lc_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + $RM -r conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl_CXX + pic_flag=$lt_prog_compiler_pic_CXX + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag_CXX + allow_undefined_flag_CXX= + if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5 + (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + then + lt_cv_archive_cmds_need_lc_CXX=no + else + lt_cv_archive_cmds_need_lc_CXX=yes + fi + allow_undefined_flag_CXX=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM -r conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_archive_cmds_need_lc_CXX" >&5 +echo "${ECHO_T}$lt_cv_archive_cmds_need_lc_CXX" >&6; } + archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 +echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } + +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[4-9]*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext ${libname}${release}${versuffix}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[123]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +haiku*) + version_type=linux + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[3-9]*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + if test "${lt_cv_shlibpath_overrides_runpath+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\"" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then + lt_cv_shlibpath_overrides_runpath=yes +fi + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 +echo "${ECHO_T}$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 +echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } +hardcode_action_CXX= +if test -n "$hardcode_libdir_flag_spec_CXX" || + test -n "$runpath_var_CXX" || + test "X$hardcode_automatic_CXX" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$hardcode_direct_CXX" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" != no && + test "$hardcode_minus_L_CXX" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action_CXX=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action_CXX=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action_CXX=unsupported +fi +{ echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5 +echo "${ECHO_T}$hardcode_action_CXX" >&6; } + +if test "$hardcode_action_CXX" = relink || + test "$inherit_rpath_CXX" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + + fi # test -n "$compiler" + + CC=$lt_save_CC + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC + with_gnu_ld=$lt_save_with_gnu_ld + lt_cv_path_LDCXX=$lt_cv_path_LD + lt_cv_path_LD=$lt_save_path_LD + lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld + lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +fi # test "$_lt_caught_CXX_error" != yes + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + + + CFLAG_VISIBILITY= + HAVE_VISIBILITY=0 + if test -n "$GCC"; then + { echo "$as_me:$LINENO: checking whether the -Werror option is usable" >&5 +echo $ECHO_N "checking whether the -Werror option is usable... $ECHO_C" >&6; } + if test "${gl_cv_cc_vis_werror+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + gl_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Werror" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + gl_cv_cc_vis_werror=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + gl_cv_cc_vis_werror=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$gl_save_CFLAGS" +fi + + { echo "$as_me:$LINENO: result: $gl_cv_cc_vis_werror" >&5 +echo "${ECHO_T}$gl_cv_cc_vis_werror" >&6; } + { echo "$as_me:$LINENO: checking for simple visibility declarations" >&5 +echo $ECHO_N "checking for simple visibility declarations... $ECHO_C" >&6; } + if test "${gl_cv_cc_visibility+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + gl_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -fvisibility=hidden" + if test $gl_cv_cc_vis_werror = yes; then + CFLAGS="$CFLAGS -Werror" + fi + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +extern __attribute__((__visibility__("hidden"))) int hiddenvar; + extern __attribute__((__visibility__("default"))) int exportedvar; + extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); + extern __attribute__((__visibility__("default"))) int exportedfunc (void); + void dummyfunc (void) {} +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + gl_cv_cc_visibility=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + gl_cv_cc_visibility=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$gl_save_CFLAGS" +fi + + { echo "$as_me:$LINENO: result: $gl_cv_cc_visibility" >&5 +echo "${ECHO_T}$gl_cv_cc_visibility" >&6; } + if test $gl_cv_cc_visibility = yes; then + CFLAG_VISIBILITY="-fvisibility=hidden" + HAVE_VISIBILITY=1 + fi + fi + + + +cat >>confdefs.h <<_ACEOF +#define HAVE_VISIBILITY $HAVE_VISIBILITY +_ACEOF + + + + + + +for ac_func in gethostbyname +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$ac_func || defined __stub___$ac_func +choke me +#endif + +int +main () +{ +return $ac_func (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_var=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +ac_res=`eval echo '${'$as_ac_var'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + +for ac_func in gettimeofday +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$ac_func || defined __stub___$ac_func +choke me +#endif + +int +main () +{ +return $ac_func (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_var=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +ac_res=`eval echo '${'$as_ac_var'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + +for ac_func in inet_ntoa +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$ac_func || defined __stub___$ac_func +choke me +#endif + +int +main () +{ +return $ac_func (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_var=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +ac_res=`eval echo '${'$as_ac_var'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + +for ac_func in memset +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$ac_func || defined __stub___$ac_func +choke me +#endif + +int +main () +{ +return $ac_func (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_var=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +ac_res=`eval echo '${'$as_ac_var'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + +for ac_func in socket +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$ac_func || defined __stub___$ac_func +choke me +#endif + +int +main () +{ +return $ac_func (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_var=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +ac_res=`eval echo '${'$as_ac_var'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + +for ac_header in arpa/inet.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ----------------------------------- ## +## Report this to http://www.yassl.com ## +## ----------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in fcntl.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ----------------------------------- ## +## Report this to http://www.yassl.com ## +## ----------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in limits.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ----------------------------------- ## +## Report this to http://www.yassl.com ## +## ----------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in netdb.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ----------------------------------- ## +## Report this to http://www.yassl.com ## +## ----------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in netinet/in.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ----------------------------------- ## +## Report this to http://www.yassl.com ## +## ----------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in stddef.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ----------------------------------- ## +## Report this to http://www.yassl.com ## +## ----------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in sys/ioctl.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ----------------------------------- ## +## Report this to http://www.yassl.com ## +## ----------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in sys/socket.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ----------------------------------- ## +## Report this to http://www.yassl.com ## +## ----------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in sys/time.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ----------------------------------- ## +## Report this to http://www.yassl.com ## +## ----------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in errno.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ----------------------------------- ## +## Report this to http://www.yassl.com ## +## ----------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +{ echo "$as_me:$LINENO: checking for socket in -lnetwork" >&5 +echo $ECHO_N "checking for socket in -lnetwork... $ECHO_C" >&6; } +if test "${ac_cv_lib_network_socket+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lnetwork $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char socket (); +int +main () +{ +return socket (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_network_socket=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_network_socket=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_network_socket" >&5 +echo "${ECHO_T}$ac_cv_lib_network_socket" >&6; } +if test $ac_cv_lib_network_socket = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBNETWORK 1 +_ACEOF + + LIBS="-lnetwork $LIBS" + +fi + +{ echo "$as_me:$LINENO: checking for long long" >&5 +echo $ECHO_N "checking for long long... $ECHO_C" >&6; } +if test "${ac_cv_type_long_long+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +typedef long long ac__type_new_; +int +main () +{ +if ((ac__type_new_ *) 0) + return 0; +if (sizeof (ac__type_new_)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_type_long_long=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_long_long=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_long_long" >&5 +echo "${ECHO_T}$ac_cv_type_long_long" >&6; } + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ echo "$as_me:$LINENO: checking size of long long" >&5 +echo $ECHO_N "checking size of long long... $ECHO_C" >&6; } +if test "${ac_cv_sizeof_long_long+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef long long ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_lo=0 ac_mid=0 + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef long long ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo=`expr $ac_mid + 1` + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid + 1` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef long long ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=-1 ac_mid=-1 + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef long long ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_lo=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_hi=`expr '(' $ac_mid ')' - 1` + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo= ac_hi= +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef long long ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=$ac_mid +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo=`expr '(' $ac_mid ')' + 1` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +done +case $ac_lo in +?*) ac_cv_sizeof_long_long=$ac_lo;; +'') if test "$ac_cv_type_long_long" = yes; then + { { echo "$as_me:$LINENO: error: cannot compute sizeof (long long) +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (long long) +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } + else + ac_cv_sizeof_long_long=0 + fi ;; +esac +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef long long ac__type_sizeof_; +static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } +static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } +#include +#include +int +main () +{ + + FILE *f = fopen ("conftest.val", "w"); + if (! f) + return 1; + if (((long int) (sizeof (ac__type_sizeof_))) < 0) + { + long int i = longval (); + if (i != ((long int) (sizeof (ac__type_sizeof_)))) + return 1; + fprintf (f, "%ld\n", i); + } + else + { + unsigned long int i = ulongval (); + if (i != ((long int) (sizeof (ac__type_sizeof_)))) + return 1; + fprintf (f, "%lu\n", i); + } + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sizeof_long_long=`cat conftest.val` +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +if test "$ac_cv_type_long_long" = yes; then + { { echo "$as_me:$LINENO: error: cannot compute sizeof (long long) +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (long long) +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } + else + ac_cv_sizeof_long_long=0 + fi +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.val +fi +{ echo "$as_me:$LINENO: result: $ac_cv_sizeof_long_long" >&5 +echo "${ECHO_T}$ac_cv_sizeof_long_long" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long +_ACEOF + + +{ echo "$as_me:$LINENO: checking for long" >&5 +echo $ECHO_N "checking for long... $ECHO_C" >&6; } +if test "${ac_cv_type_long+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +typedef long ac__type_new_; +int +main () +{ +if ((ac__type_new_ *) 0) + return 0; +if (sizeof (ac__type_new_)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_type_long=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_long=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_long" >&5 +echo "${ECHO_T}$ac_cv_type_long" >&6; } + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ echo "$as_me:$LINENO: checking size of long" >&5 +echo $ECHO_N "checking size of long... $ECHO_C" >&6; } +if test "${ac_cv_sizeof_long+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef long ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_lo=0 ac_mid=0 + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef long ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo=`expr $ac_mid + 1` + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid + 1` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef long ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=-1 ac_mid=-1 + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef long ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_lo=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_hi=`expr '(' $ac_mid ')' - 1` + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo= ac_hi= +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef long ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=$ac_mid +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo=`expr '(' $ac_mid ')' + 1` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +done +case $ac_lo in +?*) ac_cv_sizeof_long=$ac_lo;; +'') if test "$ac_cv_type_long" = yes; then + { { echo "$as_me:$LINENO: error: cannot compute sizeof (long) +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (long) +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } + else + ac_cv_sizeof_long=0 + fi ;; +esac +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef long ac__type_sizeof_; +static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } +static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } +#include +#include +int +main () +{ + + FILE *f = fopen ("conftest.val", "w"); + if (! f) + return 1; + if (((long int) (sizeof (ac__type_sizeof_))) < 0) + { + long int i = longval (); + if (i != ((long int) (sizeof (ac__type_sizeof_)))) + return 1; + fprintf (f, "%ld\n", i); + } + else + { + unsigned long int i = ulongval (); + if (i != ((long int) (sizeof (ac__type_sizeof_)))) + return 1; + fprintf (f, "%lu\n", i); + } + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sizeof_long=`cat conftest.val` +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +if test "$ac_cv_type_long" = yes; then + { { echo "$as_me:$LINENO: error: cannot compute sizeof (long) +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (long) +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } + else + ac_cv_sizeof_long=0 + fi +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.val +fi +{ echo "$as_me:$LINENO: result: $ac_cv_sizeof_long" >&5 +echo "${ECHO_T}$ac_cv_sizeof_long" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_LONG $ac_cv_sizeof_long +_ACEOF + + +{ echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5 +echo $ECHO_N "checking whether byte ordering is bigendian... $ECHO_C" >&6; } +if test "${ac_cv_c_bigendian+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # See if sys/param.h defines the BYTE_ORDER macro. +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include + +int +main () +{ +#if ! (defined BYTE_ORDER && defined BIG_ENDIAN && defined LITTLE_ENDIAN \ + && BYTE_ORDER && BIG_ENDIAN && LITTLE_ENDIAN) + bogus endian macros +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + # It does; now see whether it defined to BIG_ENDIAN or not. +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include + +int +main () +{ +#if BYTE_ORDER != BIG_ENDIAN + not big endian +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_c_bigendian=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_c_bigendian=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # It does not; compile a test program. +if test "$cross_compiling" = yes; then + # try to guess the endianness by grepping values into an object file + ac_cv_c_bigendian=unknown + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +short int ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; +short int ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; +void _ascii () { char *s = (char *) ascii_mm; s = (char *) ascii_ii; } +short int ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; +short int ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; +void _ebcdic () { char *s = (char *) ebcdic_mm; s = (char *) ebcdic_ii; } +int +main () +{ + _ascii (); _ebcdic (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + if grep BIGenDianSyS conftest.$ac_objext >/dev/null ; then + ac_cv_c_bigendian=yes +fi +if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then + if test "$ac_cv_c_bigendian" = unknown; then + ac_cv_c_bigendian=no + else + # finding both strings is unlikely to happen, but who knows? + ac_cv_c_bigendian=unknown + fi +fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ + + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long int l; + char c[sizeof (long int)]; + } u; + u.l = 1; + return u.c[sizeof (long int) - 1] == 1; + + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_c_bigendian=no +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_c_bigendian=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5 +echo "${ECHO_T}$ac_cv_c_bigendian" >&6; } +case $ac_cv_c_bigendian in + yes) + +cat >>confdefs.h <<\_ACEOF +#define WORDS_BIGENDIAN 1 +_ACEOF + ;; + no) + ;; + *) + { { echo "$as_me:$LINENO: error: unknown endianness +presetting ac_cv_c_bigendian=no (or yes) will help" >&5 +echo "$as_me: error: unknown endianness +presetting ac_cv_c_bigendian=no (or yes) will help" >&2;} + { (exit 1); exit 1; }; } ;; +esac + +# Check whether --enable-static was given. +if test "${enable_static+set}" = set; then + enableval=$enable_static; p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_static=no +fi + + + + + + +# Check whether --enable-static was given. +if test "${enable_static+set}" = set; then + enableval=$enable_static; p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_static=no +fi + + + + + + + +for ac_header in stdlib.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ----------------------------------- ## +## Report this to http://www.yassl.com ## +## ----------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + +{ echo "$as_me:$LINENO: checking for GNU libc compatible malloc" >&5 +echo $ECHO_N "checking for GNU libc compatible malloc... $ECHO_C" >&6; } +if test "${ac_cv_func_malloc_0_nonnull+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + ac_cv_func_malloc_0_nonnull=no +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#if defined STDC_HEADERS || defined HAVE_STDLIB_H +# include +#else +char *malloc (); +#endif + +int +main () +{ +return ! malloc (0); + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_malloc_0_nonnull=yes +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_func_malloc_0_nonnull=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_malloc_0_nonnull" >&5 +echo "${ECHO_T}$ac_cv_func_malloc_0_nonnull" >&6; } +if test $ac_cv_func_malloc_0_nonnull = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_MALLOC 1 +_ACEOF + +else + cat >>confdefs.h <<\_ACEOF +#define HAVE_MALLOC 0 +_ACEOF + + case " $LIBOBJS " in + *" malloc.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS malloc.$ac_objext" + ;; +esac + + +cat >>confdefs.h <<\_ACEOF +#define malloc rpl_malloc +_ACEOF + +fi + + + +{ echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5 +echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6; } +if test "${ac_cv_header_time+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include + +int +main () +{ +if ((struct tm *) 0) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_header_time=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_header_time=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5 +echo "${ECHO_T}$ac_cv_header_time" >&6; } +if test $ac_cv_header_time = yes; then + +cat >>confdefs.h <<\_ACEOF +#define TIME_WITH_SYS_TIME 1 +_ACEOF + +fi + + + + + +for ac_header in $ac_header_list +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ----------------------------------- ## +## Report this to http://www.yassl.com ## +## ----------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + + + + + + + +for ac_func in $ac_func_list +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$ac_func || defined __stub___$ac_func +choke me +#endif + +int +main () +{ +return $ac_func (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_var=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +ac_res=`eval echo '${'$as_ac_var'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + + + + + + + + + + + + + + + + +{ echo "$as_me:$LINENO: checking for working mktime" >&5 +echo $ECHO_N "checking for working mktime... $ECHO_C" >&6; } +if test "${ac_cv_func_working_mktime+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + ac_cv_func_working_mktime=no +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Test program from Paul Eggert and Tony Leneis. */ +#ifdef TIME_WITH_SYS_TIME +# include +# include +#else +# ifdef HAVE_SYS_TIME_H +# include +# else +# include +# endif +#endif + +#include + +#ifdef HAVE_UNISTD_H +# include +#endif + +#ifndef HAVE_ALARM +# define alarm(X) /* empty */ +#endif + +/* Work around redefinition to rpl_putenv by other config tests. */ +#undef putenv + +static time_t time_t_max; +static time_t time_t_min; + +/* Values we'll use to set the TZ environment variable. */ +static char *tz_strings[] = { + (char *) 0, "TZ=GMT0", "TZ=JST-9", + "TZ=EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00" +}; +#define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0])) + +/* Return 0 if mktime fails to convert a date in the spring-forward gap. + Based on a problem report from Andreas Jaeger. */ +static int +spring_forward_gap () +{ + /* glibc (up to about 1998-10-07) failed this test. */ + struct tm tm; + + /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0" + instead of "TZ=America/Vancouver" in order to detect the bug even + on systems that don't support the Olson extension, or don't have the + full zoneinfo tables installed. */ + putenv ("TZ=PST8PDT,M4.1.0,M10.5.0"); + + tm.tm_year = 98; + tm.tm_mon = 3; + tm.tm_mday = 5; + tm.tm_hour = 2; + tm.tm_min = 0; + tm.tm_sec = 0; + tm.tm_isdst = -1; + return mktime (&tm) != (time_t) -1; +} + +static int +mktime_test1 (now) + time_t now; +{ + struct tm *lt; + return ! (lt = localtime (&now)) || mktime (lt) == now; +} + +static int +mktime_test (now) + time_t now; +{ + return (mktime_test1 (now) + && mktime_test1 ((time_t) (time_t_max - now)) + && mktime_test1 ((time_t) (time_t_min + now))); +} + +static int +irix_6_4_bug () +{ + /* Based on code from Ariel Faigon. */ + struct tm tm; + tm.tm_year = 96; + tm.tm_mon = 3; + tm.tm_mday = 0; + tm.tm_hour = 0; + tm.tm_min = 0; + tm.tm_sec = 0; + tm.tm_isdst = -1; + mktime (&tm); + return tm.tm_mon == 2 && tm.tm_mday == 31; +} + +static int +bigtime_test (j) + int j; +{ + struct tm tm; + time_t now; + tm.tm_year = tm.tm_mon = tm.tm_mday = tm.tm_hour = tm.tm_min = tm.tm_sec = j; + now = mktime (&tm); + if (now != (time_t) -1) + { + struct tm *lt = localtime (&now); + if (! (lt + && lt->tm_year == tm.tm_year + && lt->tm_mon == tm.tm_mon + && lt->tm_mday == tm.tm_mday + && lt->tm_hour == tm.tm_hour + && lt->tm_min == tm.tm_min + && lt->tm_sec == tm.tm_sec + && lt->tm_yday == tm.tm_yday + && lt->tm_wday == tm.tm_wday + && ((lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst) + == (tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst)))) + return 0; + } + return 1; +} + +static int +year_2050_test () +{ + /* The correct answer for 2050-02-01 00:00:00 in Pacific time, + ignoring leap seconds. */ + unsigned long int answer = 2527315200UL; + + struct tm tm; + time_t t; + tm.tm_year = 2050 - 1900; + tm.tm_mon = 2 - 1; + tm.tm_mday = 1; + tm.tm_hour = tm.tm_min = tm.tm_sec = 0; + tm.tm_isdst = -1; + + /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0" + instead of "TZ=America/Vancouver" in order to detect the bug even + on systems that don't support the Olson extension, or don't have the + full zoneinfo tables installed. */ + putenv ("TZ=PST8PDT,M4.1.0,M10.5.0"); + + t = mktime (&tm); + + /* Check that the result is either a failure, or close enough + to the correct answer that we can assume the discrepancy is + due to leap seconds. */ + return (t == (time_t) -1 + || (0 < t && answer - 120 <= t && t <= answer + 120)); +} + +int +main () +{ + time_t t, delta; + int i, j; + + /* This test makes some buggy mktime implementations loop. + Give up after 60 seconds; a mktime slower than that + isn't worth using anyway. */ + alarm (60); + + for (time_t_max = 1; 0 < time_t_max; time_t_max *= 2) + continue; + time_t_max--; + if ((time_t) -1 < 0) + for (time_t_min = -1; (time_t) (time_t_min * 2) < 0; time_t_min *= 2) + continue; + delta = time_t_max / 997; /* a suitable prime number */ + for (i = 0; i < N_STRINGS; i++) + { + if (tz_strings[i]) + putenv (tz_strings[i]); + + for (t = 0; t <= time_t_max - delta; t += delta) + if (! mktime_test (t)) + return 1; + if (! (mktime_test ((time_t) 1) + && mktime_test ((time_t) (60 * 60)) + && mktime_test ((time_t) (60 * 60 * 24)))) + return 1; + + for (j = 1; 0 < j; j *= 2) + if (! bigtime_test (j)) + return 1; + if (! bigtime_test (j - 1)) + return 1; + } + return ! (irix_6_4_bug () && spring_forward_gap () && year_2050_test ()); +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_working_mktime=yes +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_func_working_mktime=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_working_mktime" >&5 +echo "${ECHO_T}$ac_cv_func_working_mktime" >&6; } +if test $ac_cv_func_working_mktime = no; then + case " $LIBOBJS " in + *" mktime.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS mktime.$ac_objext" + ;; +esac + +fi + + +for ac_header in stdlib.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ----------------------------------- ## +## Report this to http://www.yassl.com ## +## ----------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + +{ echo "$as_me:$LINENO: checking for GNU libc compatible realloc" >&5 +echo $ECHO_N "checking for GNU libc compatible realloc... $ECHO_C" >&6; } +if test "${ac_cv_func_realloc_0_nonnull+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + ac_cv_func_realloc_0_nonnull=no +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#if defined STDC_HEADERS || defined HAVE_STDLIB_H +# include +#else +char *realloc (); +#endif + +int +main () +{ +return ! realloc (0, 0); + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_realloc_0_nonnull=yes +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_func_realloc_0_nonnull=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_realloc_0_nonnull" >&5 +echo "${ECHO_T}$ac_cv_func_realloc_0_nonnull" >&6; } +if test $ac_cv_func_realloc_0_nonnull = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_REALLOC 1 +_ACEOF + +else + cat >>confdefs.h <<\_ACEOF +#define HAVE_REALLOC 0 +_ACEOF + + case " $LIBOBJS " in + *" realloc.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS realloc.$ac_objext" + ;; +esac + + +cat >>confdefs.h <<\_ACEOF +#define realloc rpl_realloc +_ACEOF + +fi + + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="gcc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&5 +echo "$as_me: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } + +# Provide some information about the compiler. +echo "$as_me:$LINENO: checking for C compiler version" >&5 +ac_compiler=`set X $ac_compile; echo $2` +{ (ac_try="$ac_compiler --version >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler --version >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -v >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -v >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -V >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -V >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + +{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } +if test "${ac_cv_c_compiler_gnu+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_compiler_gnu=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_compiler_gnu=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } +GCC=`test $ac_compiler_gnu = yes && echo yes` +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 +echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } +if test "${ac_cv_prog_cc_g+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + CFLAGS="" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 +echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } +if test "${ac_cv_prog_cc_c89+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_c89=$ac_arg +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { echo "$as_me:$LINENO: result: none needed" >&5 +echo "${ECHO_T}none needed" >&6; } ;; + xno) + { echo "$as_me:$LINENO: result: unsupported" >&5 +echo "${ECHO_T}unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; +esac + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +depcc="$CC" am_compiler_list= + +{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 +echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } +if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + case $depmode in + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + none) break ;; + esac + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. + if depmode=$depmode \ + source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 +echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + +if test "x$CC" != xcc; then + { echo "$as_me:$LINENO: checking whether $CC and cc understand -c and -o together" >&5 +echo $ECHO_N "checking whether $CC and cc understand -c and -o together... $ECHO_C" >&6; } +else + { echo "$as_me:$LINENO: checking whether cc understands -c and -o together" >&5 +echo $ECHO_N "checking whether cc understands -c and -o together... $ECHO_C" >&6; } +fi +set dummy $CC; ac_cc=`echo $2 | + sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` +if { as_var=ac_cv_prog_cc_${ac_cc}_c_o; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +# Make sure it works both with $CC and with simple cc. +# We do the test twice because some compilers refuse to overwrite an +# existing .o file with -o, though they will create one. +ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5' +rm -f conftest2.* +if { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + test -f conftest2.$ac_objext && { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; +then + eval ac_cv_prog_cc_${ac_cc}_c_o=yes + if test "x$CC" != xcc; then + # Test first that cc exists at all. + if { ac_try='cc -c conftest.$ac_ext >&5' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5' + rm -f conftest2.* + if { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + test -f conftest2.$ac_objext && { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; + then + # cc works too. + : + else + # cc exists but doesn't like -o. + eval ac_cv_prog_cc_${ac_cc}_c_o=no + fi + fi + fi +else + eval ac_cv_prog_cc_${ac_cc}_c_o=no +fi +rm -f -r core conftest* + +fi +if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + +cat >>confdefs.h <<\_ACEOF +#define NO_MINUS_C_MINUS_O 1 +_ACEOF + +fi + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +if test -z "$CXX"; then + if test -n "$CCC"; then + CXX=$CCC + else + if test -n "$ac_tool_prefix"; then + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CXX"; then + ac_cv_prog_CXX="$CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CXX=$ac_cv_prog_CXX +if test -n "$CXX"; then + { echo "$as_me:$LINENO: result: $CXX" >&5 +echo "${ECHO_T}$CXX" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$CXX" && break + done +fi +if test -z "$CXX"; then + ac_ct_CXX=$CXX + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CXX"; then + ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CXX="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CXX=$ac_cv_prog_ac_ct_CXX +if test -n "$ac_ct_CXX"; then + { echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 +echo "${ECHO_T}$ac_ct_CXX" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$ac_ct_CXX" && break +done + + if test "x$ac_ct_CXX" = x; then + CXX="g++" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + CXX=$ac_ct_CXX + fi +fi + + fi +fi +# Provide some information about the compiler. +echo "$as_me:$LINENO: checking for C++ compiler version" >&5 +ac_compiler=`set X $ac_compile; echo $2` +{ (ac_try="$ac_compiler --version >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler --version >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -v >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -v >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -V >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -V >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + +{ echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6; } +if test "${ac_cv_cxx_compiler_gnu+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_compiler_gnu=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_compiler_gnu=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_cxx_compiler_gnu=$ac_compiler_gnu + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6; } +GXX=`test $ac_compiler_gnu = yes && echo yes` +ac_test_CXXFLAGS=${CXXFLAGS+set} +ac_save_CXXFLAGS=$CXXFLAGS +{ echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 +echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6; } +if test "${ac_cv_prog_cxx_g+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_save_cxx_werror_flag=$ac_cxx_werror_flag + ac_cxx_werror_flag=yes + ac_cv_prog_cxx_g=no + CXXFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cxx_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + CXXFLAGS="" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cxx_werror_flag=$ac_save_cxx_werror_flag + CXXFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cxx_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cxx_werror_flag=$ac_save_cxx_werror_flag +fi +{ echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 +echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6; } +if test "$ac_test_CXXFLAGS" = set; then + CXXFLAGS=$ac_save_CXXFLAGS +elif test $ac_cv_prog_cxx_g = yes; then + if test "$GXX" = yes; then + CXXFLAGS="-g -O2" + else + CXXFLAGS="-g" + fi +else + if test "$GXX" = yes; then + CXXFLAGS="-O2" + else + CXXFLAGS= + fi +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +depcc="$CXX" am_compiler_list= + +{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 +echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } +if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CXX_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + case $depmode in + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + none) break ;; + esac + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. + if depmode=$depmode \ + source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CXX_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CXX_dependencies_compiler_type=none +fi + +fi +{ echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 +echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6; } +CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then + am__fastdepCXX_TRUE= + am__fastdepCXX_FALSE='#' +else + am__fastdepCXX_TRUE='#' + am__fastdepCXX_FALSE= +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } +if test -z "$INSTALL"; then +if test "${ac_cv_path_install+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in + ./ | .// | /cC/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + done + done + ;; +esac +done +IFS=$as_save_IFS + + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ echo "$as_me:$LINENO: result: $INSTALL" >&5 +echo "${ECHO_T}$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +{ echo "$as_me:$LINENO: checking for size_t" >&5 +echo $ECHO_N "checking for size_t... $ECHO_C" >&6; } +if test "${ac_cv_type_size_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +typedef size_t ac__type_new_; +int +main () +{ +if ((ac__type_new_ *) 0) + return 0; +if (sizeof (ac__type_new_)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_type_size_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_size_t=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 +echo "${ECHO_T}$ac_cv_type_size_t" >&6; } +if test $ac_cv_type_size_t = yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define size_t unsigned int +_ACEOF + +fi + + + { echo "$as_me:$LINENO: checking for uint8_t" >&5 +echo $ECHO_N "checking for uint8_t... $ECHO_C" >&6; } +if test "${ac_cv_c_uint8_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_c_uint8_t=no + for ac_type in 'uint8_t' 'unsigned int' 'unsigned long int' \ + 'unsigned long long int' 'unsigned short int' 'unsigned char'; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(($ac_type) -1 >> (8 - 1) == 1)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + case $ac_type in + uint8_t) ac_cv_c_uint8_t=yes ;; + *) ac_cv_c_uint8_t=$ac_type ;; +esac + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + test "$ac_cv_c_uint8_t" != no && break + done +fi +{ echo "$as_me:$LINENO: result: $ac_cv_c_uint8_t" >&5 +echo "${ECHO_T}$ac_cv_c_uint8_t" >&6; } + case $ac_cv_c_uint8_t in #( + no|yes) ;; #( + *) + +cat >>confdefs.h <<\_ACEOF +#define _UINT8_T 1 +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define uint8_t $ac_cv_c_uint8_t +_ACEOF +;; + esac + +# By default we simply use the C compiler to build assembly code. + +test "${CCAS+set}" = set || CCAS=$CC +test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS + + + +depcc="$CCAS" am_compiler_list= + +{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 +echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } +if test "${am_cv_CCAS_dependencies_compiler_type+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CCAS_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + case $depmode in + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + none) break ;; + esac + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. + if depmode=$depmode \ + source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CCAS_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CCAS_dependencies_compiler_type=none +fi + +fi +{ echo "$as_me:$LINENO: result: $am_cv_CCAS_dependencies_compiler_type" >&5 +echo "${ECHO_T}$am_cv_CCAS_dependencies_compiler_type" >&6; } +CCASDEPMODE=depmode=$am_cv_CCAS_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CCAS_dependencies_compiler_type" = gcc3; then + am__fastdepCCAS_TRUE= + am__fastdepCCAS_FALSE='#' +else + am__fastdepCCAS_TRUE='#' + am__fastdepCCAS_FALSE= +fi + + +# FIXME: we rely on the cache variable name because +# there is no other way. +set dummy $CC +ac_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` +if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" != yes"; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi + + +LIBM= +case $host in +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + { echo "$as_me:$LINENO: checking for _mwvalidcheckl in -lmw" >&5 +echo $ECHO_N "checking for _mwvalidcheckl in -lmw... $ECHO_C" >&6; } +if test "${ac_cv_lib_mw__mwvalidcheckl+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lmw $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char _mwvalidcheckl (); +int +main () +{ +return _mwvalidcheckl (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_mw__mwvalidcheckl=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_mw__mwvalidcheckl=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_mw__mwvalidcheckl" >&5 +echo "${ECHO_T}$ac_cv_lib_mw__mwvalidcheckl" >&6; } +if test $ac_cv_lib_mw__mwvalidcheckl = yes; then + LIBM="-lmw" +fi + + { echo "$as_me:$LINENO: checking for cos in -lm" >&5 +echo $ECHO_N "checking for cos in -lm... $ECHO_C" >&6; } +if test "${ac_cv_lib_m_cos+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lm $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char cos (); +int +main () +{ +return cos (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_m_cos=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_m_cos=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_m_cos" >&5 +echo "${ECHO_T}$ac_cv_lib_m_cos" >&6; } +if test $ac_cv_lib_m_cos = yes; then + LIBM="$LIBM -lm" +fi + + ;; +*) + { echo "$as_me:$LINENO: checking for cos in -lm" >&5 +echo $ECHO_N "checking for cos in -lm... $ECHO_C" >&6; } +if test "${ac_cv_lib_m_cos+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lm $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char cos (); +int +main () +{ +return cos (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_m_cos=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_m_cos=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_m_cos" >&5 +echo "${ECHO_T}$ac_cv_lib_m_cos" >&6; } +if test $ac_cv_lib_m_cos = yes; then + LIBM="-lm" +fi + + ;; +esac + + + +OPTIMIZE_CFLAGS="-Os -fomit-frame-pointer" +OPTIMIZE_FAST_CFLAGS="-O3 -fomit-frame-pointer" +OPTIMIZE_HUGE_CFLAGS="-funroll-loops -DTFM_SMALL_SET" +DEBUG_CFLAGS="-g -DDEBUG -DDEBUG_CYASSL" + + +# DEBUG +# Check whether --enable-debug was given. +if test "${enable_debug+set}" = set; then + enableval=$enable_debug; ENABLED_DEBUG=$enableval +else + ENABLED_DEBUG=no + +fi + +if test "$ENABLED_DEBUG" = "yes" +then + # Full debug. Very slow in some cases + AM_CFLAGS="$DEBUG_CFLAGS $AM_CFLAGS" +else + # Optimized version. No debug + AM_CFLAGS="$AM_CFLAGS -DNDEBUG" +fi + + +# SMALL BUILD +# Check whether --enable-small was given. +if test "${enable_small+set}" = set; then + enableval=$enable_small; ENABLED_SMALL=$enableval +else + ENABLED_SMALL=no + +fi + +if test "$ENABLED_SMALL" = "yes" +then + # make small no tls build with smallest cipher + # if you only want server or client you can define NO_CYASSL_SERVER or + # NO_CYASSL_CLIENT but then some of the examples and testsuite won't build + # note that TLS needs HMAC + AM_CFLAGS="-DNO_TLS -DNO_HMAC -DNO_AES -DNO_DES3 -DNO_SHA256 -DNO_ERROR_STRINGS -DNO_RABBIT -DNO_PSK -DNO_DSA -DNO_DH -DNO_PWDBASED $AM_CFLAGS" +fi + + +# SINGLE THREADED +# Check whether --enable-singleThreaded was given. +if test "${enable_singleThreaded+set}" = set; then + enableval=$enable_singleThreaded; ENABLED_SINGLETHREADED=$enableval +else + ENABLED_SINGLETHREADED=no + +fi + +if test "$ENABLED_SINGLETHREADED" = "yes" +then + AM_CFLAGS="-DSINGLE_THREADED $AM_CFLAGS" +fi + + +# DTLS +# Check whether --enable-dtls was given. +if test "${enable_dtls+set}" = set; then + enableval=$enable_dtls; ENABLED_DTLS=$enableval +else + ENABLED_DTLS=no + +fi + +if test "$ENABLED_DTLS" = "yes" +then + AM_CFLAGS="-DCYASSL_DTLS $AM_CFLAGS" +fi + + +# OPENSSL Extra Compatibility +# Check whether --enable-opensslExtra was given. +if test "${enable_opensslExtra+set}" = set; then + enableval=$enable_opensslExtra; ENABLED_OPENSSLEXTRA=$enableval +else + ENABLED_OPENSSLEXTRA=no + +fi + +if test "$ENABLED_OPENSSLEXTRA" = "yes" +then + AM_CFLAGS="-DOPENSSL_EXTRA $AM_CFLAGS" +fi + +if test "$ENABLED_OPENSSLEXTRA" = "yes" && test "$ENABLED_SMALL" = "yes" +then + { { echo "$as_me:$LINENO: error: cannot enable small and opensslExtra, only one or the other." >&5 +echo "$as_me: error: cannot enable small and opensslExtra, only one or the other." >&2;} + { (exit 1); exit 1; }; } +fi + + +# IPv6 Test Apps +# Check whether --enable-ipv6 was given. +if test "${enable_ipv6+set}" = set; then + enableval=$enable_ipv6; ENABLED_IPV6=$enableval +else + ENABLED_IPV6=no + +fi + + +if test "$ENABLED_IPV6" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DTEST_IPV6" +fi + + +# Fortress build +# Check whether --enable-fortress was given. +if test "${enable_fortress+set}" = set; then + enableval=$enable_fortress; ENABLED_FORTRESS=$enableval +else + ENABLED_FORTRESS=no + +fi + + +if test "$ENABLED_FORTRESS" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DFORTRESS -DOPENSSL_EXTRA -DCYASSL_DES_ECB -DCYASSL_AES_COUNTER -DCYASSL_AES_DIRECT -DCYASSL_DER_LOAD -DCYASSL_SHA512 -DCYASSL_SHA384 -DCYASSL_KEY_GEN" +fi + + +# ssl bump build +# Check whether --enable-bump was given. +if test "${enable_bump+set}" = set; then + enableval=$enable_bump; ENABLED_BUMP=$enableval +else + ENABLED_BUMP=no + +fi + + +if test "$ENABLED_BUMP" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DLARGE_STATIC_BUFFERS -DCYASSL_CERT_GEN -DCYASSL_KEY_GEN -DHUGE_SESSION_CACHE -DOPENSSL_EXTRA -DFP_MAX_BITS=8192 -DCYASSL_DER_LOAD -DCYASSL_ALT_NAMES -DCYASSL_TEST_CERT" +fi + +# fastmath +# Check whether --enable-fastmath was given. +if test "${enable_fastmath+set}" = set; then + enableval=$enable_fastmath; ENABLED_FASTMATH=$enableval +else + ENABLED_FASTMATH=no + +fi + + +if test "x$ENABLED_FASTMATH" = "xyes" +then + AM_CFLAGS="$AM_CFLAGS -DUSE_FAST_MATH" +fi + + +# fast HUGE math +# Check whether --enable-fasthugemath was given. +if test "${enable_fasthugemath+set}" = set; then + enableval=$enable_fasthugemath; ENABLED_FASTHUGEMATH=$enableval +else + ENABLED_FASTHUGEMATH=no + +fi + + +if test "$ENABLED_BUMP" = "yes" +then + ENABLED_FASTHUGEMATH="yes" +fi + +if test "$ENABLED_FASTHUGEMATH" = "yes" +then + ENABLED_FASTMATH="yes" + AM_CFLAGS="$AM_CFLAGS -DUSE_FAST_MATH" +fi + + if test "x$ENABLED_FASTMATH" = "xyes"; then + BUILD_FASTMATH_TRUE= + BUILD_FASTMATH_FALSE='#' +else + BUILD_FASTMATH_TRUE='#' + BUILD_FASTMATH_FALSE= +fi + + + +# big cache +# Check whether --enable-bigcache was given. +if test "${enable_bigcache+set}" = set; then + enableval=$enable_bigcache; ENABLED_BIGCACHE=$enableval +else + ENABLED_BIGCACHE=no + +fi + + +if test "$ENABLED_BIGCACHE" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DBIG_SESSION_CACHE" +fi + + +# HUGE cache +# Check whether --enable-hugecache was given. +if test "${enable_hugecache+set}" = set; then + enableval=$enable_hugecache; ENABLED_HUGECACHE=$enableval +else + ENABLED_HUGECACHE=no + +fi + + +if test "$ENABLED_HUGECACHE" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DHUGE_SESSION_CACHE" +fi + + +# SMALL cache +# Check whether --enable-smallcache was given. +if test "${enable_smallcache+set}" = set; then + enableval=$enable_smallcache; ENABLED_SMALLCACHE=$enableval +else + ENABLED_SMALLCACHE=no + +fi + + +if test "$ENABLED_SMALLCACHE" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DSMALL_SESSION_CACHE" +fi + + +# SNIFFER +# Check whether --enable-sniffer was given. +if test "${enable_sniffer+set}" = set; then + enableval=$enable_sniffer; ENABLED_SNIFFER=$enableval +else + ENABLED_SNIFFER=no + +fi + + +if test "$ENABLED_SNIFFER" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DCYASSL_SNIFFER -DOPENSSL_EXTRA" +fi + + if test "x$ENABLED_SNIFFER" = "xyes"; then + BUILD_SNIFFER_TRUE= + BUILD_SNIFFER_FALSE='#' +else + BUILD_SNIFFER_TRUE='#' + BUILD_SNIFFER_FALSE= +fi + + +# AES-NI +# Check whether --enable-aesni was given. +if test "${enable_aesni+set}" = set; then + enableval=$enable_aesni; ENABLED_AESNI=$enableval +else + ENABLED_AESNI=no + +fi + + +if test "$ENABLED_AESNI" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DCYASSL_AESNI" + if test "$GCC" = "yes" + then + # GCC needs these flags, icc doesn't + AM_CFLAGS="$AM_CFLAGS -maes -msse4" + fi +fi + + if test "x$ENABLED_AESNI" = "xyes"; then + BUILD_AESNI_TRUE= + BUILD_AESNI_FALSE='#' +else + BUILD_AESNI_TRUE='#' + BUILD_AESNI_FALSE= +fi + + + +# RIPEMD +# Check whether --enable-ripemd was given. +if test "${enable_ripemd+set}" = set; then + enableval=$enable_ripemd; ENABLED_RIPEMD=$enableval +else + ENABLED_RIPEMD=no + +fi + + +if test "$ENABLED_RIPEMD" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DCYASSL_RIPEMD" +fi + + if test "x$ENABLED_RIPEMD" = "xyes"; then + BUILD_RIPEMD_TRUE= + BUILD_RIPEMD_FALSE='#' +else + BUILD_RIPEMD_TRUE='#' + BUILD_RIPEMD_FALSE= +fi + + + +# SHA512 +# Check whether --enable-sha512 was given. +if test "${enable_sha512+set}" = set; then + enableval=$enable_sha512; ENABLED_SHA512=$enableval +else + ENABLED_SHA512=no + +fi + + +if test "$ENABLED_SHA512" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DCYASSL_SHA512" +fi + +if test "$ENABLED_FORTRESS" = "yes" +then + ENABLED_SHA512="yes" +fi + + + if test "x$ENABLED_SHA512" = "xyes"; then + BUILD_SHA512_TRUE= + BUILD_SHA512_FALSE='#' +else + BUILD_SHA512_TRUE='#' + BUILD_SHA512_FALSE= +fi + + + +# SESSION CERTS +# Check whether --enable-sessioncerts was given. +if test "${enable_sessioncerts+set}" = set; then + enableval=$enable_sessioncerts; ENABLED_SESSIONCERTS=$enableval +else + ENABLED_SESSIONCERTS=no + +fi + + +if test "$ENABLED_SESSIONCERTS" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DSESSION_CERTS" +fi + + +# KEY GENERATION +# Check whether --enable-keygen was given. +if test "${enable_keygen+set}" = set; then + enableval=$enable_keygen; ENABLED_KEYGEN=$enableval +else + ENABLED_KEYGEN=no + +fi + + +if test "$ENABLED_KEYGEN" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DCYASSL_KEY_GEN" +fi + + +# CERT GENERATION +# Check whether --enable-certgen was given. +if test "${enable_certgen+set}" = set; then + enableval=$enable_certgen; ENABLED_CERTGEN=$enableval +else + ENABLED_CERTGEN=no + +fi + + +if test "$ENABLED_CERTGEN" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DCYASSL_CERT_GEN" +fi + + +# HC128 +# Check whether --enable-hc128 was given. +if test "${enable_hc128+set}" = set; then + enableval=$enable_hc128; ENABLED_HC128=$enableval +else + ENABLED_HC128=no + +fi + + +if test "$ENABLED_HC128" = "no" +then + AM_CFLAGS="$AM_CFLAGS -DNO_HC128" +else + AM_CFLAGS="$AM_CFLAGS -DHAVE_HC128" +fi + + if test "x$ENABLED_HC128" = "xyes"; then + BUILD_HC128_TRUE= + BUILD_HC128_FALSE='#' +else + BUILD_HC128_TRUE='#' + BUILD_HC128_FALSE= +fi + + + +# PSK +# Check whether --enable-psk was given. +if test "${enable_psk+set}" = set; then + enableval=$enable_psk; ENABLED_PSK=$enableval +else + ENABLED_PSK=no + +fi + + +if test "$ENABLED_PSK" = "no" +then + AM_CFLAGS="$AM_CFLAGS -DNO_PSK" +fi + + +# Web Server Build +# Check whether --enable-webServer was given. +if test "${enable_webServer+set}" = set; then + enableval=$enable_webServer; ENABLED_WEBSERVER=$enableval +else + ENABLED_WEBSERVER=no + +fi + + +if test "$ENABLED_WEBSERVER" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DHAVE_WEBSERVER" +fi + + +# No Filesystem Build +# Check whether --enable-noFilesystem was given. +if test "${enable_noFilesystem+set}" = set; then + enableval=$enable_noFilesystem; ENABLED_NOFILESYSTEM=$enableval +else + ENABLED_NOFILESYSTEM=no + +fi + + +if test "$ENABLED_NOFILESYSTEM" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DNO_FILESYSTEM" +fi + + +# No inline Build +# Check whether --enable-noInline was given. +if test "${enable_noInline+set}" = set; then + enableval=$enable_noInline; ENABLED_NOINLINE=$enableval +else + ENABLED_NOINLINE=no + +fi + + +if test "$ENABLED_NOINLINE" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DNO_INLINE" +fi + + if test "x$ENABLED_NOINLINE" = "xyes"; then + BUILD_NOINLINE_TRUE= + BUILD_NOINLINE_FALSE='#' +else + BUILD_NOINLINE_TRUE='#' + BUILD_NOINLINE_FALSE= +fi + + + +# ECC +# Check whether --enable-ecc was given. +if test "${enable_ecc+set}" = set; then + enableval=$enable_ecc; ENABLED_ECC=$enableval +else + ENABLED_ECC=no + +fi + + +if test "$ENABLED_ECC" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DHAVE_ECC" +fi + + if test "x$ENABLED_ECC" = "xyes"; then + BUILD_ECC_TRUE= + BUILD_ECC_FALSE='#' +else + BUILD_ECC_TRUE='#' + BUILD_ECC_FALSE= +fi + + + +if test "$ENABLED_ECC" = "yes" && test "$ENABLED_SMALL" = "yes" +then + { { echo "$as_me:$LINENO: error: cannot enable ecc and small, ecc requires TLS which small turns off." >&5 +echo "$as_me: error: cannot enable ecc and small, ecc requires TLS which small turns off." >&2;} + { (exit 1); exit 1; }; } +fi + + +# OCSP +# Check whether --enable-ocsp was given. +if test "${enable_ocsp+set}" = set; then + enableval=$enable_ocsp; ENABLED_OCSP=$enableval +else + ENABLED_OCSP=no +fi + + +if test "$ENABLED_OCSP" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DHAVE_OCSP" +fi + + if test "x$ENABLED_OCSP" = "xyes"; then + BUILD_OCSP_TRUE= + BUILD_OCSP_FALSE='#' +else + BUILD_OCSP_TRUE='#' + BUILD_OCSP_FALSE= +fi + + + +# CRL +# Check whether --enable-crl was given. +if test "${enable_crl+set}" = set; then + enableval=$enable_crl; ENABLED_CRL=$enableval +else + ENABLED_CRL=no +fi + + +if test "$ENABLED_CRL" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DHAVE_CRL" +fi + + if test "x$ENABLED_CRL" = "xyes"; then + BUILD_CRL_TRUE= + BUILD_CRL_FALSE='#' +else + BUILD_CRL_TRUE='#' + BUILD_CRL_FALSE= +fi + + + +# NTRU +ntruHome=`pwd`/NTRU_algorithm +ntruInclude=$ntruHome/cryptolib +ntruLib=$ntruHome +# Check whether --enable-ntru was given. +if test "${enable_ntru+set}" = set; then + enableval=$enable_ntru; ENABLED_NTRU=$enableval +else + ENABLED_NTRU=no + +fi + + +if test "$ENABLED_NTRU" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DHAVE_NTRU -I$ntruInclude" + AM_LDFLAGS="$AM_LDFLAGS -L$ntruLib" + LIBS="$LIBS -lntru_encrypt" +fi + + if test "x$ENABLED_NTRU" = "xyes"; then + BUILD_NTRU_TRUE= + BUILD_NTRU_FALSE='#' +else + BUILD_NTRU_TRUE='#' + BUILD_NTRU_FALSE= +fi + + +if test "$ENABLED_NTRU" = "yes" && test "$ENABLED_SMALL" = "yes" +then + { { echo "$as_me:$LINENO: error: cannot enable ntru and small, ntru requires TLS which small turns off." >&5 +echo "$as_me: error: cannot enable ntru and small, ntru requires TLS which small turns off." >&2;} + { (exit 1); exit 1; }; } +fi + + +# Test certs, use internal cert functions for extra testing +# Check whether --enable-testcert was given. +if test "${enable_testcert+set}" = set; then + enableval=$enable_testcert; ENABLED_TESTCERT=$enableval +else + ENABLED_TESTCERT=no + +fi + + +if test "$ENABLED_TESTCERT" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DCYASSL_TEST_CERT" +fi + + +# LIBZ +trylibzdir="" + +# Check whether --with-libz was given. +if test "${with_libz+set}" = set; then + withval=$with_libz; + { echo "$as_me:$LINENO: checking for libz" >&5 +echo $ECHO_N "checking for libz... $ECHO_C" >&6; } + CPPFLAGS="$CPPFLAGS -DHAVE_LIBZ" + LIBS="$LIBS -lz" + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ + deflateInit(0, 8); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + libz_linked=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + libz_linked=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + + if test "x$libz_linked" == "xno" ; then + if test "x$withval" != "xno" ; then + trylibzdir=$withval + fi + if test "x$withval" == "xyes" ; then + trylibzdir="/usr" + fi + + AM_LDFLAGS="$AM_LDFLAGS -L$trylibzdir/lib" + CPPFLAGS="$CPPFLAGS -I$trylibzdir/include" + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ + deflateInit(0, 8); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + libz_linked=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + libz_linked=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + + if test "x$libz_linked" == "xno" ; then + { { echo "$as_me:$LINENO: error: libz isn't found. + If it's already installed, specify its path using --with-libz=/dir/" >&5 +echo "$as_me: error: libz isn't found. + If it's already installed, specify its path using --with-libz=/dir/" >&2;} + { (exit 1); exit 1; }; } + fi + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + else + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + fi + + + +fi + + + +# OPTIMIZE FLAGS +if test "$GCC" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -Wall -Wno-unused" + if test "$ENABLED_DEBUG" = "no" + then + if test "$ENABLED_FASTMATH" = "yes" + then + AM_CFLAGS="$AM_CFLAGS $OPTIMIZE_FAST_CFLAGS" + if test "$ENABLED_FASTHUGEMATH" = "yes" + then + AM_CFLAGS="$AM_CFLAGS $OPTIMIZE_HUGE_CFLAGS" + fi + else + AM_CFLAGS="$AM_CFLAGS $OPTIMIZE_CFLAGS" + fi + fi +fi + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ax_pthread_ok=no + +# We used to check for pthread.h first, but this fails if pthread.h +# requires special compiler flags (e.g. on True64 or Sequent). +# It gets checked for in the link test anyway. + +# First of all, check if the user has set any of the PTHREAD_LIBS, +# etcetera environment variables, and if threads linking works using +# them: +if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + save_LIBS="$LIBS" + LIBS="$PTHREAD_LIBS $LIBS" + { echo "$as_me:$LINENO: checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS" >&5 +echo $ECHO_N "checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS... $ECHO_C" >&6; } + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char pthread_join (); +int +main () +{ +return pthread_join (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ax_pthread_ok=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + { echo "$as_me:$LINENO: result: $ax_pthread_ok" >&5 +echo "${ECHO_T}$ax_pthread_ok" >&6; } + if test x"$ax_pthread_ok" = xno; then + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" + fi + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" +fi + +# We must check for the threads library under a number of different +# names; the ordering is very important because some systems +# (e.g. DEC) have both -lpthread and -lpthreads, where one of the +# libraries is broken (non-POSIX). + +# Create a list of thread flags to try. Items starting with a "-" are +# C compiler flags, and other items are library names, except for "none" +# which indicates that we try without any flags at all, and "pthread-config" +# which is a program returning the flags for the Pth emulation library. + +ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" + +# The ordering *is* (sometimes) important. Some notes on the +# individual items follow: + +# pthreads: AIX (must check this before -lpthread) +# none: in case threads are in libc; should be tried before -Kthread and +# other compiler flags to prevent continual compiler warnings +# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) +# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) +# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) +# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) +# -pthreads: Solaris/gcc +# -mthreads: Mingw32/gcc, Lynx/gcc +# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it +# doesn't hurt to check since this sometimes defines pthreads too; +# also defines -D_REENTRANT) +# ... -mt is also the pthreads flag for HP/aCC +# pthread: Linux, etcetera +# --thread-safe: KAI C++ +# pthread-config: use pthread-config program (for GNU Pth library) + +case "${host_cpu}-${host_os}" in + *solaris*) + + # On Solaris (at least, for some versions), libc contains stubbed + # (non-functional) versions of the pthreads routines, so link-based + # tests will erroneously succeed. (We need to link with -pthreads/-mt/ + # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather + # a function called by this macro, so we could check for that, but + # who knows whether they'll stub that too in a future libc.) So, + # we'll just look for -pthreads and -lpthread first: + + ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags" + ;; + + *-darwin*) + ax_pthread_flags="-pthread $ax_pthread_flags" + ;; +esac + +if test x"$ax_pthread_ok" = xno; then +for flag in $ax_pthread_flags; do + + case $flag in + none) + { echo "$as_me:$LINENO: checking whether pthreads work without any flags" >&5 +echo $ECHO_N "checking whether pthreads work without any flags... $ECHO_C" >&6; } + ;; + + -*) + { echo "$as_me:$LINENO: checking whether pthreads work with $flag" >&5 +echo $ECHO_N "checking whether pthreads work with $flag... $ECHO_C" >&6; } + PTHREAD_CFLAGS="$flag" + ;; + + pthread-config) + # Extract the first word of "pthread-config", so it can be a program name with args. +set dummy pthread-config; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ax_pthread_config+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ax_pthread_config"; then + ac_cv_prog_ax_pthread_config="$ax_pthread_config" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ax_pthread_config="yes" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + test -z "$ac_cv_prog_ax_pthread_config" && ac_cv_prog_ax_pthread_config="no" +fi +fi +ax_pthread_config=$ac_cv_prog_ax_pthread_config +if test -n "$ax_pthread_config"; then + { echo "$as_me:$LINENO: result: $ax_pthread_config" >&5 +echo "${ECHO_T}$ax_pthread_config" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + if test x"$ax_pthread_config" = xno; then continue; fi + PTHREAD_CFLAGS="`pthread-config --cflags`" + PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" + ;; + + *) + { echo "$as_me:$LINENO: checking for the pthreads library -l$flag" >&5 +echo $ECHO_N "checking for the pthreads library -l$flag... $ECHO_C" >&6; } + PTHREAD_LIBS="-l$flag" + ;; + esac + + save_LIBS="$LIBS" + save_CFLAGS="$CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + + # Check for various functions. We must include pthread.h, + # since some functions may be macros. (On the Sequent, we + # need a special flag -Kthread to make this header compile.) + # We check for pthread_join because it is in -lpthread on IRIX + # while pthread_create is in libc. We check for pthread_attr_init + # due to DEC craziness with -lpthreads. We check for + # pthread_cleanup_push because it is one of the few pthread + # functions on Solaris that doesn't have a non-functional libc stub. + # We try pthread_create on general principles. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + static void routine(void *a) { a = 0; } + static void *start_routine(void *a) { return a; } +int +main () +{ +pthread_t th; pthread_attr_t attr; + pthread_create(&th, 0, start_routine, 0); + pthread_join(th, 0); + pthread_attr_init(&attr); + pthread_cleanup_push(routine, 0); + pthread_cleanup_pop(0) /* ; */ + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ax_pthread_ok=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + + { echo "$as_me:$LINENO: result: $ax_pthread_ok" >&5 +echo "${ECHO_T}$ax_pthread_ok" >&6; } + if test "x$ax_pthread_ok" = xyes; then + break; + fi + + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" +done +fi + +# Various other checks: +if test "x$ax_pthread_ok" = xyes; then + save_LIBS="$LIBS" + LIBS="$PTHREAD_LIBS $LIBS" + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + + # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. + { echo "$as_me:$LINENO: checking for joinable pthread attribute" >&5 +echo $ECHO_N "checking for joinable pthread attribute... $ECHO_C" >&6; } + attr_name=unknown + for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +int attr = $attr; return attr /* ; */ + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + attr_name=$attr; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + done + { echo "$as_me:$LINENO: result: $attr_name" >&5 +echo "${ECHO_T}$attr_name" >&6; } + if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then + +cat >>confdefs.h <<_ACEOF +#define PTHREAD_CREATE_JOINABLE $attr_name +_ACEOF + + fi + + { echo "$as_me:$LINENO: checking if more special flags are required for pthreads" >&5 +echo $ECHO_N "checking if more special flags are required for pthreads... $ECHO_C" >&6; } + flag=no + case "${host_cpu}-${host_os}" in + *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";; + *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";; + esac + { echo "$as_me:$LINENO: result: ${flag}" >&5 +echo "${ECHO_T}${flag}" >&6; } + if test "x$flag" != xno; then + PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" + fi + + { echo "$as_me:$LINENO: checking for PTHREAD_PRIO_INHERIT" >&5 +echo $ECHO_N "checking for PTHREAD_PRIO_INHERIT... $ECHO_C" >&6; } +if test "${ax_cv_PTHREAD_PRIO_INHERIT+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + cat >conftest.$ac_ext <<_ACEOF + + /* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +int i = PTHREAD_PRIO_INHERIT; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ax_cv_PTHREAD_PRIO_INHERIT=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ax_cv_PTHREAD_PRIO_INHERIT=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ echo "$as_me:$LINENO: result: $ax_cv_PTHREAD_PRIO_INHERIT" >&5 +echo "${ECHO_T}$ax_cv_PTHREAD_PRIO_INHERIT" >&6; } + if test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_PTHREAD_PRIO_INHERIT 1 +_ACEOF + +fi + + + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + + # More AIX lossage: must compile with xlc_r or cc_r + if test x"$GCC" != xyes; then + for ac_prog in xlc_r cc_r +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_PTHREAD_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$PTHREAD_CC"; then + ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_PTHREAD_CC="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +PTHREAD_CC=$ac_cv_prog_PTHREAD_CC +if test -n "$PTHREAD_CC"; then + { echo "$as_me:$LINENO: result: $PTHREAD_CC" >&5 +echo "${ECHO_T}$PTHREAD_CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$PTHREAD_CC" && break +done +test -n "$PTHREAD_CC" || PTHREAD_CC="${CC}" + + else + PTHREAD_CC=$CC + fi +else + PTHREAD_CC="$CC" +fi + + + + + +# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: +if test x"$ax_pthread_ok" = xyes; then + + +cat >>confdefs.h <<\_ACEOF +#define HAVE_PTHREAD 1 +_ACEOF + + + : +else + ax_pthread_ok=no + + +cat >>confdefs.h <<\_ACEOF +#define HAVE_PTHREAD 0 +_ACEOF + + +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + + { echo "$as_me:$LINENO: checking for library containing gethostbyname" >&5 +echo $ECHO_N "checking for library containing gethostbyname... $ECHO_C" >&6; } +if test "${ac_cv_search_gethostbyname+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_func_search_save_LIBS=$LIBS +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyname (); +int +main () +{ +return gethostbyname (); + ; + return 0; +} +_ACEOF +for ac_lib in '' nsl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_search_gethostbyname=$ac_res +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext + if test "${ac_cv_search_gethostbyname+set}" = set; then + break +fi +done +if test "${ac_cv_search_gethostbyname+set}" = set; then + : +else + ac_cv_search_gethostbyname=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_search_gethostbyname" >&5 +echo "${ECHO_T}$ac_cv_search_gethostbyname" >&6; } +ac_res=$ac_cv_search_gethostbyname +if test "$ac_res" != no; then + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + + { echo "$as_me:$LINENO: checking for library containing socket" >&5 +echo $ECHO_N "checking for library containing socket... $ECHO_C" >&6; } +if test "${ac_cv_search_socket+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_func_search_save_LIBS=$LIBS +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char socket (); +int +main () +{ +return socket (); + ; + return 0; +} +_ACEOF +for ac_lib in '' socket; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_search_socket=$ac_res +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext + if test "${ac_cv_search_socket+set}" = set; then + break +fi +done +if test "${ac_cv_search_socket+set}" = set; then + : +else + ac_cv_search_socket=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_search_socket" >&5 +echo "${ECHO_T}$ac_cv_search_socket" >&6; } +ac_res=$ac_cv_search_socket +if test "$ac_res" != no; then + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +else + + { echo "$as_me:$LINENO: checking for socket in -lsocket" >&5 +echo $ECHO_N "checking for socket in -lsocket... $ECHO_C" >&6; } +if test "${ac_cv_lib_socket_socket+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsocket -lnsl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char socket (); +int +main () +{ +return socket (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_socket_socket=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_socket_socket=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_socket_socket" >&5 +echo "${ECHO_T}$ac_cv_lib_socket_socket" >&6; } +if test $ac_cv_lib_socket_socket = yes; then + LIBS="-lsocket -lnsl $LIBS" +fi + +fi + + + +GCCWARNINGS="-Wall -fno-strict-aliasing -W -Wfloat-equal -Wundef \ + -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes \ + -Wwrite-strings -Wredundant-decls -Wchar-subscripts -Wcomment \ + -Wformat=2 -Wwrite-strings -Wmissing-declarations -Wredundant-decls \ + -Wnested-externs -Wbad-function-cast -Wswitch-enum -Winit-self \ + -Wmissing-field-initializers -Wdeclaration-after-statement \ + -Wold-style-definition -Waddress -Wmissing-noreturn -Wnormalized=id \ + -Woverride-init -Wstrict-overflow=1 -Wextra -Warray-bounds \ + -Wstack-protector -Wformat -Wformat-security -Wpointer-sign -Wshadow \ + -Wswitch-default" + +# Check whether --enable-gcc-lots-o-warnings was given. +if test "${enable_gcc_lots_o_warnings+set}" = set; then + enableval=$enable_gcc_lots_o_warnings; if test x$enableval = xyes; then + AM_CFLAGS="$AM_CFLAGS $GCCWARNINGS" +fi +fi + + +# Check whether --enable-gcc-hardening was given. +if test "${enable_gcc_hardening+set}" = set; then + enableval=$enable_gcc_hardening; if test x$enableval = xyes; then + AM_CFLAGS="$AM_CFLAGS -D_FORTIFY_SOURCE=2 -fstack-protector-all" + AM_CFLAGS="$AM_CFLAGS -fwrapv -fPIE -Wstack-protector" + AM_CFLAGS="$AM_CFLAGS --param ssp-buffer-size=1" + LDFLAGS="$LDFLAGS -pie" +fi +fi + + +# Check whether --enable-linker-hardening was given. +if test "${enable_linker_hardening+set}" = set; then + enableval=$enable_linker_hardening; if test x$enableval = xyes; then + LDFLAGS="$LDFLAGS -z relro -z now" +fi +fi + + + + + HEX_VERSION=`echo $VERSION | sed 's|\-a-z0-9*$||' | \ + awk -F. '{printf "0x%0.2d%0.3d%0.3d", $1, $2, $3}'` + + +AM_CFLAGS="$AM_CFLAGS $CFLAG_VISIBILITY" + + + +# FINAL +ac_config_files="$ac_config_files stamp-h" + +ac_config_files="$ac_config_files Makefile" + +ac_config_files="$ac_config_files cyassl/version.h" + +ac_config_files="$ac_config_files support/libcyassl.pc" + + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 +echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + *) $as_unset $ac_var ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + test "x$cache_file" != "x/dev/null" && + { echo "$as_me:$LINENO: updating cache $cache_file" >&5 +echo "$as_me: updating cache $cache_file" >&6;} + cat confcache >$cache_file + else + { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 +echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" + ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${am__fastdepCCAS_TRUE}" && test -z "${am__fastdepCCAS_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCCAS\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"am__fastdepCCAS\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${BUILD_FASTMATH_TRUE}" && test -z "${BUILD_FASTMATH_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"BUILD_FASTMATH\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"BUILD_FASTMATH\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${BUILD_SNIFFER_TRUE}" && test -z "${BUILD_SNIFFER_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"BUILD_SNIFFER\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"BUILD_SNIFFER\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${BUILD_AESNI_TRUE}" && test -z "${BUILD_AESNI_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"BUILD_AESNI\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"BUILD_AESNI\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${BUILD_RIPEMD_TRUE}" && test -z "${BUILD_RIPEMD_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"BUILD_RIPEMD\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"BUILD_RIPEMD\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${BUILD_SHA512_TRUE}" && test -z "${BUILD_SHA512_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"BUILD_SHA512\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"BUILD_SHA512\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${BUILD_HC128_TRUE}" && test -z "${BUILD_HC128_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"BUILD_HC128\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"BUILD_HC128\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${BUILD_NOINLINE_TRUE}" && test -z "${BUILD_NOINLINE_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"BUILD_NOINLINE\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"BUILD_NOINLINE\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${BUILD_ECC_TRUE}" && test -z "${BUILD_ECC_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"BUILD_ECC\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"BUILD_ECC\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${BUILD_OCSP_TRUE}" && test -z "${BUILD_OCSP_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"BUILD_OCSP\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"BUILD_OCSP\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${BUILD_CRL_TRUE}" && test -z "${BUILD_CRL_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"BUILD_CRL\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"BUILD_CRL\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${BUILD_NTRU_TRUE}" && test -z "${BUILD_NTRU_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"BUILD_NTRU\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"BUILD_NTRU\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi + +: ${CONFIG_STATUS=./config.status} +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 +echo "$as_me: creating $CONFIG_STATUS" >&6;} +cat >$CONFIG_STATUS <<_ACEOF +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false +SHELL=\${CONFIG_SHELL-$SHELL} +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + + + +# PATH needs CR +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Support unset when possible. +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +as_nl=' +' +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + { (exit 1); exit 1; } +fi + +# Work around bugs in pre-3.0 UWIN ksh. +for as_var in ENV MAIL MAILPATH +do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME +do + if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# Name of the executable. +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# CDPATH. +$as_unset CDPATH + + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line after each line using $LINENO; the second 'sed' + # does the real work. The second script uses 'N' to pair each + # line-number line with the line containing $LINENO, and appends + # trailing '-' during substitution so that $LINENO is not a special + # case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # scripts with optimization help from Paolo Bonzini. Blame Lee + # E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in +-n*) + case `echo 'x\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + *) ECHO_C='\c';; + esac;; +*) + ECHO_N='-n';; +esac + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir +fi +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 + +# Save the log message, to keep $[0] and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by cyassl $as_me 2.2.0, which was +generated by GNU Autoconf 2.61. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +cat >>$CONFIG_STATUS <<_ACEOF +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +ac_cs_usage="\ +\`$as_me' instantiates files from templates according to the +current configuration. + +Usage: $0 [OPTIONS] [FILE]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to ." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF +ac_cs_version="\\ +cyassl config.status 2.2.0 +configured by $0, generated by GNU Autoconf 2.61, + with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" + +Copyright (C) 2006 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +# If no file are specified by the user, then we need to provide default +# value. By we need to know if files were specified by the user. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + echo "$ac_cs_version"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + CONFIG_FILES="$CONFIG_FILES $ac_optarg" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + { echo "$as_me: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; };; + --help | --hel | -h ) + echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) { echo "$as_me: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; } ;; + + *) ac_config_targets="$ac_config_targets $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF +if \$ac_cs_recheck; then + echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 + CONFIG_SHELL=$SHELL + export CONFIG_SHELL + exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF +# +# INIT-COMMANDS +# +AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" + + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' +macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' +AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' +enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' +enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' +pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' +enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' +SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' +ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' +host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' +host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' +host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' +build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' +build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' +build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' +SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' +Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' +GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' +EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' +FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' +LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' +NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' +LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' +max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' +ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' +exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' +lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' +lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' +lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' +reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' +reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' +file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' +AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' +AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' +STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' +RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' +old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' +lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' +CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' +CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' +compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' +GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' +objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' +MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' +need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' +DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' +NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' +LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' +OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' +libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' +shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' +extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' +compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' +module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' +with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' +no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec_ld='`$ECHO "$hardcode_libdir_flag_spec_ld" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' +hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' +hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' +inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' +link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`' +always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' +exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' +include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' +prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' +file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' +variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' +need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' +version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' +runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' +libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' +library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' +soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' +install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' +postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' +postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' +finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' +hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' +sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' +sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' +hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' +enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' +old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' +striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_dirs='`$ECHO "$compiler_lib_search_dirs" | $SED "$delay_single_quote_subst"`' +predep_objects='`$ECHO "$predep_objects" | $SED "$delay_single_quote_subst"`' +postdep_objects='`$ECHO "$postdep_objects" | $SED "$delay_single_quote_subst"`' +predeps='`$ECHO "$predeps" | $SED "$delay_single_quote_subst"`' +postdeps='`$ECHO "$postdeps" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_path='`$ECHO "$compiler_lib_search_path" | $SED "$delay_single_quote_subst"`' +LD_CXX='`$ECHO "$LD_CXX" | $SED "$delay_single_quote_subst"`' +reload_flag_CXX='`$ECHO "$reload_flag_CXX" | $SED "$delay_single_quote_subst"`' +reload_cmds_CXX='`$ECHO "$reload_cmds_CXX" | $SED "$delay_single_quote_subst"`' +old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' +compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`' +GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes_CXX='`$ECHO "$enable_shared_with_static_runtimes_CXX" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec_CXX='`$ECHO "$export_dynamic_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec_CXX='`$ECHO "$whole_archive_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' +compiler_needs_object_CXX='`$ECHO "$compiler_needs_object_CXX" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds_CXX='`$ECHO "$old_archive_from_new_cmds_CXX" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds_CXX='`$ECHO "$old_archive_from_expsyms_cmds_CXX" | $SED "$delay_single_quote_subst"`' +archive_cmds_CXX='`$ECHO "$archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds_CXX='`$ECHO "$archive_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' +module_cmds_CXX='`$ECHO "$module_cmds_CXX" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds_CXX='`$ECHO "$module_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' +with_gnu_ld_CXX='`$ECHO "$with_gnu_ld_CXX" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag_CXX='`$ECHO "$allow_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' +no_undefined_flag_CXX='`$ECHO "$no_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec_CXX='`$ECHO "$hardcode_libdir_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec_ld_CXX='`$ECHO "$hardcode_libdir_flag_spec_ld_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator_CXX='`$ECHO "$hardcode_libdir_separator_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_direct_CXX='`$ECHO "$hardcode_direct_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute_CXX='`$ECHO "$hardcode_direct_absolute_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L_CXX='`$ECHO "$hardcode_minus_L_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`' +inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`' +link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`' +fix_srcfile_path_CXX='`$ECHO "$fix_srcfile_path_CXX" | $SED "$delay_single_quote_subst"`' +always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`' +exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`' +include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`' +prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`' +file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`' +predep_objects_CXX='`$ECHO "$predep_objects_CXX" | $SED "$delay_single_quote_subst"`' +postdep_objects_CXX='`$ECHO "$postdep_objects_CXX" | $SED "$delay_single_quote_subst"`' +predeps_CXX='`$ECHO "$predeps_CXX" | $SED "$delay_single_quote_subst"`' +postdeps_CXX='`$ECHO "$postdeps_CXX" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_path_CXX='`$ECHO "$compiler_lib_search_path_CXX" | $SED "$delay_single_quote_subst"`' + +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in AS \ +DLLTOOL \ +OBJDUMP \ +SHELL \ +ECHO \ +SED \ +GREP \ +EGREP \ +FGREP \ +LD \ +NM \ +LN_S \ +lt_SP2NL \ +lt_NL2SP \ +reload_flag \ +deplibs_check_method \ +file_magic_cmd \ +AR \ +AR_FLAGS \ +STRIP \ +RANLIB \ +CC \ +CFLAGS \ +compiler \ +lt_cv_sys_global_symbol_pipe \ +lt_cv_sys_global_symbol_to_cdecl \ +lt_cv_sys_global_symbol_to_c_name_address \ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ +lt_prog_compiler_no_builtin_flag \ +lt_prog_compiler_wl \ +lt_prog_compiler_pic \ +lt_prog_compiler_static \ +lt_cv_prog_compiler_c_o \ +need_locks \ +DSYMUTIL \ +NMEDIT \ +LIPO \ +OTOOL \ +OTOOL64 \ +shrext_cmds \ +export_dynamic_flag_spec \ +whole_archive_flag_spec \ +compiler_needs_object \ +with_gnu_ld \ +allow_undefined_flag \ +no_undefined_flag \ +hardcode_libdir_flag_spec \ +hardcode_libdir_flag_spec_ld \ +hardcode_libdir_separator \ +fix_srcfile_path \ +exclude_expsyms \ +include_expsyms \ +file_list_spec \ +variables_saved_for_relink \ +libname_spec \ +library_names_spec \ +soname_spec \ +install_override_mode \ +finish_eval \ +old_striplib \ +striplib \ +compiler_lib_search_dirs \ +predep_objects \ +postdep_objects \ +predeps \ +postdeps \ +compiler_lib_search_path \ +LD_CXX \ +reload_flag_CXX \ +compiler_CXX \ +lt_prog_compiler_no_builtin_flag_CXX \ +lt_prog_compiler_wl_CXX \ +lt_prog_compiler_pic_CXX \ +lt_prog_compiler_static_CXX \ +lt_cv_prog_compiler_c_o_CXX \ +export_dynamic_flag_spec_CXX \ +whole_archive_flag_spec_CXX \ +compiler_needs_object_CXX \ +with_gnu_ld_CXX \ +allow_undefined_flag_CXX \ +no_undefined_flag_CXX \ +hardcode_libdir_flag_spec_CXX \ +hardcode_libdir_flag_spec_ld_CXX \ +hardcode_libdir_separator_CXX \ +fix_srcfile_path_CXX \ +exclude_expsyms_CXX \ +include_expsyms_CXX \ +file_list_spec_CXX \ +compiler_lib_search_dirs_CXX \ +predep_objects_CXX \ +postdep_objects_CXX \ +predeps_CXX \ +postdeps_CXX \ +compiler_lib_search_path_CXX; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in reload_cmds \ +old_postinstall_cmds \ +old_postuninstall_cmds \ +old_archive_cmds \ +extract_expsyms_cmds \ +old_archive_from_new_cmds \ +old_archive_from_expsyms_cmds \ +archive_cmds \ +archive_expsym_cmds \ +module_cmds \ +module_expsym_cmds \ +export_symbols_cmds \ +prelink_cmds \ +postinstall_cmds \ +postuninstall_cmds \ +finish_cmds \ +sys_lib_search_path_spec \ +sys_lib_dlsearch_path_spec \ +reload_cmds_CXX \ +old_archive_cmds_CXX \ +old_archive_from_new_cmds_CXX \ +old_archive_from_expsyms_cmds_CXX \ +archive_cmds_CXX \ +archive_expsym_cmds_CXX \ +module_cmds_CXX \ +module_expsym_cmds_CXX \ +export_symbols_cmds_CXX \ +prelink_cmds_CXX; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +ac_aux_dir='$ac_aux_dir' +xsi_shell='$xsi_shell' +lt_shell_append='$lt_shell_append' + +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + + + PACKAGE='$PACKAGE' + VERSION='$VERSION' + TIMESTAMP='$TIMESTAMP' + RM='$RM' + ofile='$ofile' + + + + + + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h:config.in" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; + "stamp-h") CONFIG_FILES="$CONFIG_FILES stamp-h" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "cyassl/version.h") CONFIG_FILES="$CONFIG_FILES cyassl/version.h" ;; + "support/libcyassl.pc") CONFIG_FILES="$CONFIG_FILES support/libcyassl.pc" ;; + + *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 +echo "$as_me: error: invalid argument: $ac_config_target" >&2;} + { (exit 1); exit 1; }; };; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= + trap 'exit_status=$? + { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status +' 0 + trap '{ (exit 1); exit 1; }' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -n "$tmp" && test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || +{ + echo "$me: cannot create a temporary directory in ." >&2 + { (exit 1); exit 1; } +} + +# +# Set up the sed scripts for CONFIG_FILES section. +# + +# No need to generate the scripts if there are no CONFIG_FILES. +# This happens for instance when ./config.status config.h +if test -n "$CONFIG_FILES"; then + +_ACEOF + + + +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + cat >conf$$subs.sed <<_ACEOF +SHELL!$SHELL$ac_delim +PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim +PACKAGE_NAME!$PACKAGE_NAME$ac_delim +PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim +PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim +PACKAGE_STRING!$PACKAGE_STRING$ac_delim +PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim +exec_prefix!$exec_prefix$ac_delim +prefix!$prefix$ac_delim +program_transform_name!$program_transform_name$ac_delim +bindir!$bindir$ac_delim +sbindir!$sbindir$ac_delim +libexecdir!$libexecdir$ac_delim +datarootdir!$datarootdir$ac_delim +datadir!$datadir$ac_delim +sysconfdir!$sysconfdir$ac_delim +sharedstatedir!$sharedstatedir$ac_delim +localstatedir!$localstatedir$ac_delim +includedir!$includedir$ac_delim +oldincludedir!$oldincludedir$ac_delim +docdir!$docdir$ac_delim +infodir!$infodir$ac_delim +htmldir!$htmldir$ac_delim +dvidir!$dvidir$ac_delim +pdfdir!$pdfdir$ac_delim +psdir!$psdir$ac_delim +libdir!$libdir$ac_delim +localedir!$localedir$ac_delim +mandir!$mandir$ac_delim +DEFS!$DEFS$ac_delim +ECHO_C!$ECHO_C$ac_delim +ECHO_N!$ECHO_N$ac_delim +ECHO_T!$ECHO_T$ac_delim +LIBS!$LIBS$ac_delim +build_alias!$build_alias$ac_delim +host_alias!$host_alias$ac_delim +target_alias!$target_alias$ac_delim +build!$build$ac_delim +build_cpu!$build_cpu$ac_delim +build_vendor!$build_vendor$ac_delim +build_os!$build_os$ac_delim +host!$host$ac_delim +host_cpu!$host_cpu$ac_delim +host_vendor!$host_vendor$ac_delim +host_os!$host_os$ac_delim +target!$target$ac_delim +target_cpu!$target_cpu$ac_delim +target_vendor!$target_vendor$ac_delim +target_os!$target_os$ac_delim +INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim +INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim +INSTALL_DATA!$INSTALL_DATA$ac_delim +am__isrc!$am__isrc$ac_delim +CYGPATH_W!$CYGPATH_W$ac_delim +PACKAGE!$PACKAGE$ac_delim +VERSION!$VERSION$ac_delim +ACLOCAL!$ACLOCAL$ac_delim +AUTOCONF!$AUTOCONF$ac_delim +AUTOMAKE!$AUTOMAKE$ac_delim +AUTOHEADER!$AUTOHEADER$ac_delim +MAKEINFO!$MAKEINFO$ac_delim +install_sh!$install_sh$ac_delim +STRIP!$STRIP$ac_delim +INSTALL_STRIP_PROGRAM!$INSTALL_STRIP_PROGRAM$ac_delim +mkdir_p!$mkdir_p$ac_delim +AWK!$AWK$ac_delim +SET_MAKE!$SET_MAKE$ac_delim +am__leading_dot!$am__leading_dot$ac_delim +AMTAR!$AMTAR$ac_delim +am__tar!$am__tar$ac_delim +am__untar!$am__untar$ac_delim +CYASSL_LIBRARY_VERSION!$CYASSL_LIBRARY_VERSION$ac_delim +AS!$AS$ac_delim +DLLTOOL!$DLLTOOL$ac_delim +OBJDUMP!$OBJDUMP$ac_delim +LIBTOOL!$LIBTOOL$ac_delim +CC!$CC$ac_delim +CFLAGS!$CFLAGS$ac_delim +LDFLAGS!$LDFLAGS$ac_delim +CPPFLAGS!$CPPFLAGS$ac_delim +ac_ct_CC!$ac_ct_CC$ac_delim +EXEEXT!$EXEEXT$ac_delim +OBJEXT!$OBJEXT$ac_delim +DEPDIR!$DEPDIR$ac_delim +am__include!$am__include$ac_delim +am__quote!$am__quote$ac_delim +AMDEP_TRUE!$AMDEP_TRUE$ac_delim +AMDEP_FALSE!$AMDEP_FALSE$ac_delim +AMDEPBACKSLASH!$AMDEPBACKSLASH$ac_delim +CCDEPMODE!$CCDEPMODE$ac_delim +am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim +am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim +SED!$SED$ac_delim +GREP!$GREP$ac_delim +EGREP!$EGREP$ac_delim +FGREP!$FGREP$ac_delim +LD!$LD$ac_delim +_ACEOF + + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then + break + elif $ac_last_try; then + { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` +if test -n "$ac_eof"; then + ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` + ac_eof=`expr $ac_eof + 1` +fi + +cat >>$CONFIG_STATUS <<_ACEOF +cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +_ACEOF +sed ' +s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g +s/^/s,@/; s/!/@,|#_!!_#|/ +:n +t n +s/'"$ac_delim"'$/,g/; t +s/$/\\/; p +N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n +' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF +CEOF$ac_eof +_ACEOF + + +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + cat >conf$$subs.sed <<_ACEOF +DUMPBIN!$DUMPBIN$ac_delim +ac_ct_DUMPBIN!$ac_ct_DUMPBIN$ac_delim +NM!$NM$ac_delim +LN_S!$LN_S$ac_delim +AR!$AR$ac_delim +RANLIB!$RANLIB$ac_delim +DSYMUTIL!$DSYMUTIL$ac_delim +NMEDIT!$NMEDIT$ac_delim +LIPO!$LIPO$ac_delim +OTOOL!$OTOOL$ac_delim +OTOOL64!$OTOOL64$ac_delim +CPP!$CPP$ac_delim +CXX!$CXX$ac_delim +CXXFLAGS!$CXXFLAGS$ac_delim +ac_ct_CXX!$ac_ct_CXX$ac_delim +CXXDEPMODE!$CXXDEPMODE$ac_delim +am__fastdepCXX_TRUE!$am__fastdepCXX_TRUE$ac_delim +am__fastdepCXX_FALSE!$am__fastdepCXX_FALSE$ac_delim +CXXCPP!$CXXCPP$ac_delim +CFLAG_VISIBILITY!$CFLAG_VISIBILITY$ac_delim +HAVE_VISIBILITY!$HAVE_VISIBILITY$ac_delim +LIBOBJS!$LIBOBJS$ac_delim +CCAS!$CCAS$ac_delim +CCASFLAGS!$CCASFLAGS$ac_delim +CCASDEPMODE!$CCASDEPMODE$ac_delim +am__fastdepCCAS_TRUE!$am__fastdepCCAS_TRUE$ac_delim +am__fastdepCCAS_FALSE!$am__fastdepCCAS_FALSE$ac_delim +LIBM!$LIBM$ac_delim +BUILD_FASTMATH_TRUE!$BUILD_FASTMATH_TRUE$ac_delim +BUILD_FASTMATH_FALSE!$BUILD_FASTMATH_FALSE$ac_delim +BUILD_SNIFFER_TRUE!$BUILD_SNIFFER_TRUE$ac_delim +BUILD_SNIFFER_FALSE!$BUILD_SNIFFER_FALSE$ac_delim +BUILD_AESNI_TRUE!$BUILD_AESNI_TRUE$ac_delim +BUILD_AESNI_FALSE!$BUILD_AESNI_FALSE$ac_delim +BUILD_RIPEMD_TRUE!$BUILD_RIPEMD_TRUE$ac_delim +BUILD_RIPEMD_FALSE!$BUILD_RIPEMD_FALSE$ac_delim +BUILD_SHA512_TRUE!$BUILD_SHA512_TRUE$ac_delim +BUILD_SHA512_FALSE!$BUILD_SHA512_FALSE$ac_delim +BUILD_HC128_TRUE!$BUILD_HC128_TRUE$ac_delim +BUILD_HC128_FALSE!$BUILD_HC128_FALSE$ac_delim +BUILD_NOINLINE_TRUE!$BUILD_NOINLINE_TRUE$ac_delim +BUILD_NOINLINE_FALSE!$BUILD_NOINLINE_FALSE$ac_delim +BUILD_ECC_TRUE!$BUILD_ECC_TRUE$ac_delim +BUILD_ECC_FALSE!$BUILD_ECC_FALSE$ac_delim +BUILD_OCSP_TRUE!$BUILD_OCSP_TRUE$ac_delim +BUILD_OCSP_FALSE!$BUILD_OCSP_FALSE$ac_delim +BUILD_CRL_TRUE!$BUILD_CRL_TRUE$ac_delim +BUILD_CRL_FALSE!$BUILD_CRL_FALSE$ac_delim +BUILD_NTRU_TRUE!$BUILD_NTRU_TRUE$ac_delim +BUILD_NTRU_FALSE!$BUILD_NTRU_FALSE$ac_delim +ax_pthread_config!$ax_pthread_config$ac_delim +PTHREAD_CC!$PTHREAD_CC$ac_delim +PTHREAD_LIBS!$PTHREAD_LIBS$ac_delim +PTHREAD_CFLAGS!$PTHREAD_CFLAGS$ac_delim +HEX_VERSION!$HEX_VERSION$ac_delim +AM_CFLAGS!$AM_CFLAGS$ac_delim +AM_LDFLAGS!$AM_LDFLAGS$ac_delim +LTLIBOBJS!$LTLIBOBJS$ac_delim +_ACEOF + + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 58; then + break + elif $ac_last_try; then + { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` +if test -n "$ac_eof"; then + ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` + ac_eof=`expr $ac_eof + 1` +fi + +cat >>$CONFIG_STATUS <<_ACEOF +cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end +_ACEOF +sed ' +s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g +s/^/s,@/; s/!/@,|#_!!_#|/ +:n +t n +s/'"$ac_delim"'$/,g/; t +s/$/\\/; p +N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n +' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF +:end +s/|#_!!_#|//g +CEOF$ac_eof +_ACEOF + + +# VPATH may cause trouble with some makes, so we remove $(srcdir), +# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=/{ +s/:*\$(srcdir):*/:/ +s/:*\${srcdir}:*/:/ +s/:*@srcdir@:*/:/ +s/^\([^=]*=[ ]*\):*/\1/ +s/:*$// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF +fi # test -n "$CONFIG_FILES" + + +for ac_tag in :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 +echo "$as_me: error: Invalid tag $ac_tag." >&2;} + { (exit 1); exit 1; }; };; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 +echo "$as_me: error: cannot find input file: $ac_f" >&2;} + { (exit 1); exit 1; }; };; + esac + ac_file_inputs="$ac_file_inputs $ac_f" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input="Generated from "`IFS=: + echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { echo "$as_me:$LINENO: creating $ac_file" >&5 +echo "$as_me: creating $ac_file" >&6;} + fi + + case $ac_tag in + *:-:* | *:-) cat >"$tmp/stdin";; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + { as_dir="$ac_dir" + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 +echo "$as_me: error: cannot create directory $as_dir" >&2;} + { (exit 1); exit 1; }; }; } + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= + +case `sed -n '/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p +' $ac_file_inputs` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF + sed "$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s&@configure_input@&$configure_input&;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&5 +echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&2;} + + rm -f "$tmp/stdin" + case $ac_file in + -) cat "$tmp/out"; rm -f "$tmp/out";; + *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; + esac + ;; + :H) + # + # CONFIG_HEADER + # +_ACEOF + +# Transform confdefs.h into a sed script `conftest.defines', that +# substitutes the proper values into config.h.in to produce config.h. +rm -f conftest.defines conftest.tail +# First, append a space to every undef/define line, to ease matching. +echo 's/$/ /' >conftest.defines +# Then, protect against being on the right side of a sed subst, or in +# an unquoted here document, in config.status. If some macros were +# called several times there might be several #defines for the same +# symbol, which is useless. But do not sort them, since the last +# AC_DEFINE must be honored. +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +# These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where +# NAME is the cpp macro being defined, VALUE is the value it is being given. +# PARAMS is the parameter list in the macro definition--in most cases, it's +# just an empty string. +ac_dA='s,^\\([ #]*\\)[^ ]*\\([ ]*' +ac_dB='\\)[ (].*,\\1define\\2' +ac_dC=' ' +ac_dD=' ,' + +uniq confdefs.h | + sed -n ' + t rset + :rset + s/^[ ]*#[ ]*define[ ][ ]*// + t ok + d + :ok + s/[\\&,]/\\&/g + s/^\('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p + s/^\('"$ac_word_re"'\)[ ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p + ' >>conftest.defines + +# Remove the space that was appended to ease matching. +# Then replace #undef with comments. This is necessary, for +# example, in the case of _POSIX_SOURCE, which is predefined and required +# on some systems where configure will not decide to define it. +# (The regexp can be short, since the line contains either #define or #undef.) +echo 's/ $// +s,^[ #]*u.*,/* & */,' >>conftest.defines + +# Break up conftest.defines: +ac_max_sed_lines=50 + +# First sed command is: sed -f defines.sed $ac_file_inputs >"$tmp/out1" +# Second one is: sed -f defines.sed "$tmp/out1" >"$tmp/out2" +# Third one will be: sed -f defines.sed "$tmp/out2" >"$tmp/out1" +# et cetera. +ac_in='$ac_file_inputs' +ac_out='"$tmp/out1"' +ac_nxt='"$tmp/out2"' + +while : +do + # Write a here document: + cat >>$CONFIG_STATUS <<_ACEOF + # First, check the format of the line: + cat >"\$tmp/defines.sed" <<\\CEOF +/^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*/b def +/^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def +b +:def +_ACEOF + sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS + echo 'CEOF + sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS + ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in + sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail + grep . conftest.tail >/dev/null || break + rm -f conftest.defines + mv conftest.tail conftest.defines +done +rm -f conftest.defines conftest.tail + +echo "ac_result=$ac_in" >>$CONFIG_STATUS +cat >>$CONFIG_STATUS <<\_ACEOF + if test x"$ac_file" != x-; then + echo "/* $configure_input */" >"$tmp/config.h" + cat "$ac_result" >>"$tmp/config.h" + if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then + { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 +echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f $ac_file + mv "$tmp/config.h" $ac_file + fi + else + echo "/* $configure_input */" + cat "$ac_result" + fi + rm -f "$tmp/out12" +# Compute $ac_file's index in $config_headers. +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $ac_file | $ac_file:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $ac_file" >`$as_dirname -- $ac_file || +$as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X$ac_file : 'X\(//\)[^/]' \| \ + X$ac_file : 'X\(//\)$' \| \ + X$ac_file : 'X\(/\)' \| . 2>/dev/null || +echo X$ac_file | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + + :C) { echo "$as_me:$LINENO: executing $ac_file commands" >&5 +echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed 10q "$mf" | grep '^#.*generated by automake' > /dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| . 2>/dev/null || +echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| . 2>/dev/null || +echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + { as_dir=$dirpart/$fdir + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 +echo "$as_me: error: cannot create directory $as_dir" >&2;} + { (exit 1); exit 1; }; }; } + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done +done + ;; + "libtool":C) + + # See if we are running on zsh, and set the options which allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + + cfgfile="${ofile}T" + trap "$RM -f \"$cfgfile\"; exit 1" 1 2 15 + $RM -f "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL + +# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, +# Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is part of GNU Libtool. +# +# GNU Libtool is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, or +# obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + +# The names of the tagged configurations supported by this script. +available_tags="CXX " + +# ### BEGIN LIBTOOL CONFIG + +# Which release of libtool.m4 was used? +macro_version=$macro_version +macro_revision=$macro_revision + +# Assembler program. +AS=$lt_AS + +# DLL creation program. +DLLTOOL=$lt_DLLTOOL + +# Object dumper program. +OBJDUMP=$lt_OBJDUMP + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# What type of objects to build. +pic_mode=$pic_mode + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# An echo program that protects backslashes. +ECHO=$lt_ECHO + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="\$SED -e 1s/^X//" + +# A grep program that handles long lines. +GREP=$lt_GREP + +# An ERE matcher. +EGREP=$lt_EGREP + +# A literal string matcher. +FGREP=$lt_FGREP + +# A BSD- or MS-compatible name lister. +NM=$lt_NM + +# Whether we need soft or hard links. +LN_S=$lt_LN_S + +# What is the maximum length of a command? +max_cmd_len=$max_cmd_len + +# Object file suffix (normally "o"). +objext=$ac_objext + +# Executable file suffix (normally ""). +exeext=$exeext + +# whether the shell understands "unset". +lt_unset=$lt_unset + +# turn spaces into newlines. +SP2NL=$lt_lt_SP2NL + +# turn newlines into spaces. +NL2SP=$lt_lt_NL2SP + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method == "file_magic". +file_magic_cmd=$lt_file_magic_cmd + +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS + +# A symbol stripping program. +STRIP=$lt_STRIP + +# Commands used to install an old-style archive. +RANLIB=$lt_RANLIB +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Whether to use a lock for old archive extraction. +lock_old_archive_extraction=$lock_old_archive_extraction + +# A C compiler. +LTCC=$lt_CC + +# LTCC compiler flags. +LTCFLAGS=$lt_CFLAGS + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration. +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair. +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# Transform the output of nm in a C name address pair when lib prefix is needed. +global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# Used to examine libraries when file_magic_cmd begins with "file". +MAGIC_CMD=$MAGIC_CMD + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Tool to manipulate archived DWARF debug symbol files on Mac OS X. +DSYMUTIL=$lt_DSYMUTIL + +# Tool to change global to local symbols on Mac OS X. +NMEDIT=$lt_NMEDIT + +# Tool to manipulate fat objects and archives on Mac OS X. +LIPO=$lt_LIPO + +# ldd/readelf like tool for Mach-O binaries on Mac OS X. +OTOOL=$lt_OTOOL + +# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. +OTOOL64=$lt_OTOOL64 + +# Old archive suffix (normally "a"). +libext=$libext + +# Shared library suffix (normally ".so"). +shrext_cmds=$lt_shrext_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at link time. +variables_saved_for_relink=$lt_variables_saved_for_relink + +# Do we need the "lib" prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Library versioning type. +version_type=$version_type + +# Shared library runtime path variable. +runpath_var=$runpath_var + +# Shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Permission mode override for installation of shared libraries. +install_override_mode=$lt_install_override_mode + +# Command to use after installation of a shared archive. +postinstall_cmds=$lt_postinstall_cmds + +# Command to use after uninstallation of a shared archive. +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# As "finish_cmds", except a single script fragment to be evaled but +# not shown. +finish_eval=$lt_finish_eval + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Compile-time system search path for libraries. +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries. +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + + +# The linker used to build libraries. +LD=$lt_LD + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds + +# A language specific compiler. +CC=$lt_compiler + +# Is the compiler the GNU compiler? +with_gcc=$GCC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds +module_expsym_cmds=$lt_module_expsym_cmds + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# If ld is used when linking, flag to hardcode \$libdir into a binary +# during linking. This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \${shlibpath_var} if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path=$lt_fix_srcfile_path + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# The directories searched by this compiler when creating a shared library. +compiler_lib_search_dirs=$lt_compiler_lib_search_dirs + +# Dependencies to place before and after the objects being linked to +# create a shared library. +predep_objects=$lt_predep_objects +postdep_objects=$lt_postdep_objects +predeps=$lt_predeps +postdeps=$lt_postdeps + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path + +# ### END LIBTOOL CONFIG + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + +ltmain="$ac_aux_dir/ltmain.sh" + + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + case $xsi_shell in + yes) + cat << \_LT_EOF >> "$cfgfile" + +# func_dirname file append nondir_replacement +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +func_dirname () +{ + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac +} + +# func_basename file +func_basename () +{ + func_basename_result="${1##*/}" +} + +# func_dirname_and_basename file append nondir_replacement +# perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# Implementation must be kept synchronized with func_dirname +# and func_basename. For efficiency, we do not delegate to +# those functions but instead duplicate the functionality here. +func_dirname_and_basename () +{ + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac + func_basename_result="${1##*/}" +} + +# func_stripname prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +func_stripname () +{ + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary parameter first. + func_stripname_result=${3} + func_stripname_result=${func_stripname_result#"${1}"} + func_stripname_result=${func_stripname_result%"${2}"} +} + +# func_opt_split +func_opt_split () +{ + func_opt_split_opt=${1%%=*} + func_opt_split_arg=${1#*=} +} + +# func_lo2o object +func_lo2o () +{ + case ${1} in + *.lo) func_lo2o_result=${1%.lo}.${objext} ;; + *) func_lo2o_result=${1} ;; + esac +} + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=${1%.*}.lo +} + +# func_arith arithmetic-term... +func_arith () +{ + func_arith_result=$(( $* )) +} + +# func_len string +# STRING may not start with a hyphen. +func_len () +{ + func_len_result=${#1} +} + +_LT_EOF + ;; + *) # Bourne compatible functions. + cat << \_LT_EOF >> "$cfgfile" + +# func_dirname file append nondir_replacement +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +func_dirname () +{ + # Extract subdirectory from the argument. + func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi +} + +# func_basename file +func_basename () +{ + func_basename_result=`$ECHO "${1}" | $SED "$basename"` +} + + +# func_stripname prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# func_strip_suffix prefix name +func_stripname () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; + esac +} + +# sed scripts: +my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' +my_sed_long_arg='1s/^-[^=]*=//' + +# func_opt_split +func_opt_split () +{ + func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` + func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` +} + +# func_lo2o object +func_lo2o () +{ + func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` +} + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` +} + +# func_arith arithmetic-term... +func_arith () +{ + func_arith_result=`expr "$@"` +} + +# func_len string +# STRING may not start with a hyphen. +func_len () +{ + func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` +} + +_LT_EOF +esac + +case $lt_shell_append in + yes) + cat << \_LT_EOF >> "$cfgfile" + +# func_append var value +# Append VALUE to the end of shell variable VAR. +func_append () +{ + eval "$1+=\$2" +} +_LT_EOF + ;; + *) + cat << \_LT_EOF >> "$cfgfile" + +# func_append var value +# Append VALUE to the end of shell variable VAR. +func_append () +{ + eval "$1=\$$1\$2" +} + +_LT_EOF + ;; + esac + + + sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + + + cat <<_LT_EOF >> "$ofile" + +# ### BEGIN LIBTOOL TAG CONFIG: CXX + +# The linker used to build libraries. +LD=$lt_LD_CXX + +# How to create reloadable object files. +reload_flag=$lt_reload_flag_CXX +reload_cmds=$lt_reload_cmds_CXX + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds_CXX + +# A language specific compiler. +CC=$lt_compiler_CXX + +# Is the compiler the GNU compiler? +with_gcc=$GCC_CXX + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl_CXX + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic_CXX + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static_CXX + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc_CXX + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object_CXX + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds_CXX +archive_expsym_cmds=$lt_archive_expsym_cmds_CXX + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds_CXX +module_expsym_cmds=$lt_module_expsym_cmds_CXX + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld_CXX + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag_CXX + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag_CXX + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX + +# If ld is used when linking, flag to hardcode \$libdir into a binary +# during linking. This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct_CXX + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \${shlibpath_var} if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute_CXX + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L_CXX + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic_CXX + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath_CXX + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs_CXX + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path=$lt_fix_srcfile_path_CXX + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols_CXX + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds_CXX + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms_CXX + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms_CXX + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds_CXX + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec_CXX + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action_CXX + +# The directories searched by this compiler when creating a shared library. +compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX + +# Dependencies to place before and after the objects being linked to +# create a shared library. +predep_objects=$lt_predep_objects_CXX +postdep_objects=$lt_postdep_objects_CXX +predeps=$lt_predeps_CXX +postdeps=$lt_postdeps_CXX + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path_CXX + +# ### END LIBTOOL TAG CONFIG: CXX +_LT_EOF + + ;; + "stamp-h":F) echo timestamp > stamp-h ;; + + esac +done # for ac_tag + + +{ (exit 0); exit 0; } +_ACEOF +chmod +x $CONFIG_STATUS +ac_clean_files=$ac_clean_files_save + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || { (exit 1); exit 1; } +fi + + diff --git a/FreeRTOS-Plus/CyaSSL/configure.ac b/FreeRTOS-Plus/CyaSSL/configure.ac new file mode 100644 index 000000000..6bb2c4da6 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/configure.ac @@ -0,0 +1,659 @@ +# configure.ac +# +# Copyright (C) 2006-2011 Sawtooth Consulting Ltd. +# +# This file is part of CyaSSL. +# +# + +AC_INIT([cyassl],[2.2.0],[http://www.yassl.com]) + +AC_CONFIG_AUX_DIR(config) + +AC_CANONICAL_TARGET + +AM_INIT_AUTOMAKE(-Wall -Werror -Wno-portability foreign tar-ustar subdir-objects) + +AC_CANONICAL_HOST +AC_CANONICAL_BUILD + +AC_PREREQ([2.61]) + +AC_CONFIG_MACRO_DIR(m4) + +AC_CONFIG_HEADERS([config.h:config.in])dnl Keep filename to 8.3 for MS-DOS. + + +#shared library versioning +CYASSL_LIBRARY_VERSION=3:1:0 +# | | | +# +------+ | +---+ +# | | | +# current:revision:age +# | | | +# | | +- increment if interfaces have been added +# | | set to zero if interfaces have been removed +# | or changed +# | +- increment if source code has changed +# | set to zero if current is incremented +# +- increment if interfaces have been added, removed or changed +AC_SUBST(CYASSL_LIBRARY_VERSION) + +# Make sure configure doesn't add to CFLAGS +CFLAGS="$CFLAGS $C_EXTRA_FLAGS" + +LT_INIT([win32-dll]) +LT_LANG([C++]) +LT_LANG([C]) +gl_VISIBILITY + +m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) + +AC_CHECK_FUNCS([gethostbyname]) +AC_CHECK_FUNCS([gettimeofday]) +AC_CHECK_FUNCS([inet_ntoa]) +AC_CHECK_FUNCS([memset]) +AC_CHECK_FUNCS([socket]) +AC_CHECK_HEADERS([arpa/inet.h]) +AC_CHECK_HEADERS([fcntl.h]) +AC_CHECK_HEADERS([limits.h]) +AC_CHECK_HEADERS([netdb.h]) +AC_CHECK_HEADERS([netinet/in.h]) +AC_CHECK_HEADERS([stddef.h]) +AC_CHECK_HEADERS([sys/ioctl.h]) +AC_CHECK_HEADERS([sys/socket.h]) +AC_CHECK_HEADERS([sys/time.h]) +AC_CHECK_HEADERS(errno.h) +AC_CHECK_LIB(network,socket) +AC_CHECK_SIZEOF(long long, 8) +AC_CHECK_SIZEOF(long, 4) +AC_C_BIGENDIAN +AC_DISABLE_STATIC +AC_DISABLE_STATIC +AC_FUNC_MALLOC +AC_FUNC_MKTIME +AC_FUNC_REALLOC + +AC_PROG_CC +AC_PROG_CC_C_O +AC_PROG_CXX +AC_PROG_INSTALL +LT_INIT +AC_TYPE_SIZE_T +AC_TYPE_UINT8_T +AM_PROG_AS +AM_PROG_CC_C_O +LT_LIB_M + +OPTIMIZE_CFLAGS="-Os -fomit-frame-pointer" +OPTIMIZE_FAST_CFLAGS="-O3 -fomit-frame-pointer" +OPTIMIZE_HUGE_CFLAGS="-funroll-loops -DTFM_SMALL_SET" +DEBUG_CFLAGS="-g -DDEBUG -DDEBUG_CYASSL" + + +# DEBUG +AC_ARG_ENABLE(debug, + [ --enable-debug Enable CyaSSL debugging support (default: disabled)], + [ ENABLED_DEBUG=$enableval ], + [ ENABLED_DEBUG=no ] + ) +if test "$ENABLED_DEBUG" = "yes" +then + # Full debug. Very slow in some cases + AM_CFLAGS="$DEBUG_CFLAGS $AM_CFLAGS" +else + # Optimized version. No debug + AM_CFLAGS="$AM_CFLAGS -DNDEBUG" +fi + + +# SMALL BUILD +AC_ARG_ENABLE(small, + [ --enable-small Enable smallest build (default: disabled)], + [ ENABLED_SMALL=$enableval ], + [ ENABLED_SMALL=no ] + ) +if test "$ENABLED_SMALL" = "yes" +then + # make small no tls build with smallest cipher + # if you only want server or client you can define NO_CYASSL_SERVER or + # NO_CYASSL_CLIENT but then some of the examples and testsuite won't build + # note that TLS needs HMAC + AM_CFLAGS="-DNO_TLS -DNO_HMAC -DNO_AES -DNO_DES3 -DNO_SHA256 -DNO_ERROR_STRINGS -DNO_RABBIT -DNO_PSK -DNO_DSA -DNO_DH -DNO_PWDBASED $AM_CFLAGS" +fi + + +# SINGLE THREADED +AC_ARG_ENABLE(singleThreaded, + [ --enable-singleThreaded Enable CyaSSL single threaded (default: disabled)], + [ ENABLED_SINGLETHREADED=$enableval ], + [ ENABLED_SINGLETHREADED=no ] + ) +if test "$ENABLED_SINGLETHREADED" = "yes" +then + AM_CFLAGS="-DSINGLE_THREADED $AM_CFLAGS" +fi + + +# DTLS +AC_ARG_ENABLE(dtls, + [ --enable-dtls Enable CyaSSL DTLS (default: disabled)], + [ ENABLED_DTLS=$enableval ], + [ ENABLED_DTLS=no ] + ) +if test "$ENABLED_DTLS" = "yes" +then + AM_CFLAGS="-DCYASSL_DTLS $AM_CFLAGS" +fi + + +# OPENSSL Extra Compatibility +AC_ARG_ENABLE(opensslExtra, + [ --enable-opensslExtra Enable extra OpenSSL API, size+ (default: disabled)], + [ ENABLED_OPENSSLEXTRA=$enableval ], + [ ENABLED_OPENSSLEXTRA=no ] + ) +if test "$ENABLED_OPENSSLEXTRA" = "yes" +then + AM_CFLAGS="-DOPENSSL_EXTRA $AM_CFLAGS" +fi + +if test "$ENABLED_OPENSSLEXTRA" = "yes" && test "$ENABLED_SMALL" = "yes" +then + AC_MSG_ERROR([cannot enable small and opensslExtra, only one or the other.]) +fi + + +# IPv6 Test Apps +AC_ARG_ENABLE(ipv6, + [ --enable-ipv6 Enable testing of IPV6 (default: disabled)], + [ ENABLED_IPV6=$enableval ], + [ ENABLED_IPV6=no ] + ) + +if test "$ENABLED_IPV6" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DTEST_IPV6" +fi + + +# Fortress build +AC_ARG_ENABLE(fortress, + [ --enable-fortress Enable SSL fortress build (default: disabled)], + [ ENABLED_FORTRESS=$enableval ], + [ ENABLED_FORTRESS=no ] + ) + +if test "$ENABLED_FORTRESS" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DFORTRESS -DOPENSSL_EXTRA -DCYASSL_DES_ECB -DCYASSL_AES_COUNTER -DCYASSL_AES_DIRECT -DCYASSL_DER_LOAD -DCYASSL_SHA512 -DCYASSL_SHA384 -DCYASSL_KEY_GEN" +fi + + +# ssl bump build +AC_ARG_ENABLE(bump, + [ --enable-bump Enable SSL Bump build (default: disabled)], + [ ENABLED_BUMP=$enableval ], + [ ENABLED_BUMP=no ] + ) + +if test "$ENABLED_BUMP" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DLARGE_STATIC_BUFFERS -DCYASSL_CERT_GEN -DCYASSL_KEY_GEN -DHUGE_SESSION_CACHE -DOPENSSL_EXTRA -DFP_MAX_BITS=8192 -DCYASSL_DER_LOAD -DCYASSL_ALT_NAMES -DCYASSL_TEST_CERT" +fi + +# fastmath +AC_ARG_ENABLE(fastmath, + [ --enable-fastmath Enable fast math for BigInts (default: disabled)], + [ ENABLED_FASTMATH=$enableval ], + [ ENABLED_FASTMATH=no ] + ) + +if test "x$ENABLED_FASTMATH" = "xyes" +then + AM_CFLAGS="$AM_CFLAGS -DUSE_FAST_MATH" +fi + + +# fast HUGE math +AC_ARG_ENABLE(fasthugemath, + [ --enable-fasthugemath Enable fast math + huge code (default: disabled)], + [ ENABLED_FASTHUGEMATH=$enableval ], + [ ENABLED_FASTHUGEMATH=no ] + ) + +if test "$ENABLED_BUMP" = "yes" +then + ENABLED_FASTHUGEMATH="yes" +fi + +if test "$ENABLED_FASTHUGEMATH" = "yes" +then + ENABLED_FASTMATH="yes" + AM_CFLAGS="$AM_CFLAGS -DUSE_FAST_MATH" +fi + +AM_CONDITIONAL([BUILD_FASTMATH], [test "x$ENABLED_FASTMATH" = "xyes"]) + + +# big cache +AC_ARG_ENABLE(bigcache, + [ --enable-bigcache Enable big session cache (default: disabled)], + [ ENABLED_BIGCACHE=$enableval ], + [ ENABLED_BIGCACHE=no ] + ) + +if test "$ENABLED_BIGCACHE" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DBIG_SESSION_CACHE" +fi + + +# HUGE cache +AC_ARG_ENABLE(hugecache, + [ --enable-hugecache Enable huge session cache (default: disabled)], + [ ENABLED_HUGECACHE=$enableval ], + [ ENABLED_HUGECACHE=no ] + ) + +if test "$ENABLED_HUGECACHE" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DHUGE_SESSION_CACHE" +fi + + +# SMALL cache +AC_ARG_ENABLE(smallcache, + [ --enable-smallcache Enable small session cache (default: disabled)], + [ ENABLED_SMALLCACHE=$enableval ], + [ ENABLED_SMALLCACHE=no ] + ) + +if test "$ENABLED_SMALLCACHE" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DSMALL_SESSION_CACHE" +fi + + +# SNIFFER +AC_ARG_ENABLE(sniffer, + [ --enable-sniffer Enable CyaSSL sniffer support (default: disabled)], + [ ENABLED_SNIFFER=$enableval ], + [ ENABLED_SNIFFER=no ] + ) + +if test "$ENABLED_SNIFFER" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DCYASSL_SNIFFER -DOPENSSL_EXTRA" +fi + +AM_CONDITIONAL([BUILD_SNIFFER], [test "x$ENABLED_SNIFFER" = "xyes"]) + +# AES-NI +AC_ARG_ENABLE(aesni, + [ --enable-aesni Enable CyaSSL AES-NI support (default: disabled)], + [ ENABLED_AESNI=$enableval ], + [ ENABLED_AESNI=no ] + ) + +if test "$ENABLED_AESNI" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DCYASSL_AESNI" + if test "$GCC" = "yes" + then + # GCC needs these flags, icc doesn't + AM_CFLAGS="$AM_CFLAGS -maes -msse4" + fi +fi + +AM_CONDITIONAL([BUILD_AESNI], [test "x$ENABLED_AESNI" = "xyes"]) + + +# RIPEMD +AC_ARG_ENABLE(ripemd, + [ --enable-ripemd Enable CyaSSL RIPEMD-160 support (default: disabled)], + [ ENABLED_RIPEMD=$enableval ], + [ ENABLED_RIPEMD=no ] + ) + +if test "$ENABLED_RIPEMD" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DCYASSL_RIPEMD" +fi + +AM_CONDITIONAL([BUILD_RIPEMD], [test "x$ENABLED_RIPEMD" = "xyes"]) + + +# SHA512 +AC_ARG_ENABLE(sha512, + [ --enable-sha512 Enable CyaSSL SHA-160 support (default: disabled)], + [ ENABLED_SHA512=$enableval ], + [ ENABLED_SHA512=no ] + ) + +if test "$ENABLED_SHA512" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DCYASSL_SHA512" +fi + +if test "$ENABLED_FORTRESS" = "yes" +then + ENABLED_SHA512="yes" +fi + + +AM_CONDITIONAL([BUILD_SHA512], [test "x$ENABLED_SHA512" = "xyes"]) + + +# SESSION CERTS +AC_ARG_ENABLE(sessioncerts, + [ --enable-sessioncerts Enable session cert storing (default: disabled)], + [ ENABLED_SESSIONCERTS=$enableval ], + [ ENABLED_SESSIONCERTS=no ] + ) + +if test "$ENABLED_SESSIONCERTS" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DSESSION_CERTS" +fi + + +# KEY GENERATION +AC_ARG_ENABLE(keygen, + [ --enable-keygen Enable key generation (default: disabled)], + [ ENABLED_KEYGEN=$enableval ], + [ ENABLED_KEYGEN=no ] + ) + +if test "$ENABLED_KEYGEN" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DCYASSL_KEY_GEN" +fi + + +# CERT GENERATION +AC_ARG_ENABLE(certgen, + [ --enable-certgen Enable cert generation (default: disabled)], + [ ENABLED_CERTGEN=$enableval ], + [ ENABLED_CERTGEN=no ] + ) + +if test "$ENABLED_CERTGEN" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DCYASSL_CERT_GEN" +fi + + +# HC128 +AC_ARG_ENABLE(hc128, + [ --enable-hc128 Enable HC-128 (default: disabled)], + [ ENABLED_HC128=$enableval ], + [ ENABLED_HC128=no ] + ) + +if test "$ENABLED_HC128" = "no" +then + AM_CFLAGS="$AM_CFLAGS -DNO_HC128" +else + AM_CFLAGS="$AM_CFLAGS -DHAVE_HC128" +fi + +AM_CONDITIONAL([BUILD_HC128], [test "x$ENABLED_HC128" = "xyes"]) + + +# PSK +AC_ARG_ENABLE(psk, + [ --enable-psk Enable PSK (default: disabled)], + [ ENABLED_PSK=$enableval ], + [ ENABLED_PSK=no ] + ) + +if test "$ENABLED_PSK" = "no" +then + AM_CFLAGS="$AM_CFLAGS -DNO_PSK" +fi + + +# Web Server Build +AC_ARG_ENABLE(webServer, + [ --enable-webServer Enable Web Server (default: disabled)], + [ ENABLED_WEBSERVER=$enableval ], + [ ENABLED_WEBSERVER=no ] + ) + +if test "$ENABLED_WEBSERVER" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DHAVE_WEBSERVER" +fi + + +# No Filesystem Build +AC_ARG_ENABLE(noFilesystem, + [ --enable-noFilesystem Enable No Filesystem (default: disabled)], + [ ENABLED_NOFILESYSTEM=$enableval ], + [ ENABLED_NOFILESYSTEM=no ] + ) + +if test "$ENABLED_NOFILESYSTEM" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DNO_FILESYSTEM" +fi + + +# No inline Build +AC_ARG_ENABLE(noInline, + [ --enable-noInline Enable No inline (default: disabled)], + [ ENABLED_NOINLINE=$enableval ], + [ ENABLED_NOINLINE=no ] + ) + +if test "$ENABLED_NOINLINE" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DNO_INLINE" +fi + +AM_CONDITIONAL([BUILD_NOINLINE], [test "x$ENABLED_NOINLINE" = "xyes"]) + + +# ECC +AC_ARG_ENABLE(ecc, + [ --enable-ecc Enable ECC (default: disabled)], + [ ENABLED_ECC=$enableval ], + [ ENABLED_ECC=no ] + ) + +if test "$ENABLED_ECC" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DHAVE_ECC" +fi + +AM_CONDITIONAL([BUILD_ECC], [test "x$ENABLED_ECC" = "xyes"]) + + +if test "$ENABLED_ECC" = "yes" && test "$ENABLED_SMALL" = "yes" +then + AC_MSG_ERROR([cannot enable ecc and small, ecc requires TLS which small turns off.]) +fi + + +# OCSP +AC_ARG_ENABLE(ocsp, + [ --enable-ocsp Enable OCSP (default: disabled)], + [ ENABLED_OCSP=$enableval ], + [ ENABLED_OCSP=no ], + ) + +if test "$ENABLED_OCSP" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DHAVE_OCSP" +fi + +AM_CONDITIONAL([BUILD_OCSP], [test "x$ENABLED_OCSP" = "xyes"]) + + +# CRL +AC_ARG_ENABLE(crl, + [ --enable-crl Enable CRL (default: disabled)], + [ ENABLED_CRL=$enableval ], + [ ENABLED_CRL=no ], + ) + +if test "$ENABLED_CRL" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DHAVE_CRL" +fi + +AM_CONDITIONAL([BUILD_CRL], [test "x$ENABLED_CRL" = "xyes"]) + + +# NTRU +ntruHome=`pwd`/NTRU_algorithm +ntruInclude=$ntruHome/cryptolib +ntruLib=$ntruHome +AC_ARG_ENABLE(ntru, + [ --enable-ntru Enable NTRU (default: disabled)], + [ ENABLED_NTRU=$enableval ], + [ ENABLED_NTRU=no ] + ) + +if test "$ENABLED_NTRU" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DHAVE_NTRU -I$ntruInclude" + AM_LDFLAGS="$AM_LDFLAGS -L$ntruLib" + LIBS="$LIBS -lntru_encrypt" +fi + +AM_CONDITIONAL([BUILD_NTRU], [test "x$ENABLED_NTRU" = "xyes"]) + +if test "$ENABLED_NTRU" = "yes" && test "$ENABLED_SMALL" = "yes" +then + AC_MSG_ERROR([cannot enable ntru and small, ntru requires TLS which small turns off.]) +fi + + +# Test certs, use internal cert functions for extra testing +AC_ARG_ENABLE(testcert, + [ --enable-testcert Enable Test Cert (default: disabled)], + [ ENABLED_TESTCERT=$enableval ], + [ ENABLED_TESTCERT=no ] + ) + +if test "$ENABLED_TESTCERT" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DCYASSL_TEST_CERT" +fi + + +# LIBZ +trylibzdir="" +AC_ARG_WITH(libz, + [ --with-libz=PATH PATH to libz install (default /usr/) ], + [ + AC_MSG_CHECKING([for libz]) + CPPFLAGS="$CPPFLAGS -DHAVE_LIBZ" + LIBS="$LIBS -lz" + + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[ deflateInit(0, 8); ]])],[ libz_linked=yes ],[ libz_linked=no ]) + + if test "x$libz_linked" == "xno" ; then + if test "x$withval" != "xno" ; then + trylibzdir=$withval + fi + if test "x$withval" == "xyes" ; then + trylibzdir="/usr" + fi + + AM_LDFLAGS="$AM_LDFLAGS -L$trylibzdir/lib" + CPPFLAGS="$CPPFLAGS -I$trylibzdir/include" + + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[ deflateInit(0, 8); ]])],[ libz_linked=yes ],[ libz_linked=no ]) + + if test "x$libz_linked" == "xno" ; then + AC_MSG_ERROR([libz isn't found. + If it's already installed, specify its path using --with-libz=/dir/]) + fi + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([yes]) + fi + + ] +) + + +# OPTIMIZE FLAGS +if test "$GCC" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -Wall -Wno-unused" + if test "$ENABLED_DEBUG" = "no" + then + if test "$ENABLED_FASTMATH" = "yes" + then + AM_CFLAGS="$AM_CFLAGS $OPTIMIZE_FAST_CFLAGS" + if test "$ENABLED_FASTHUGEMATH" = "yes" + then + AM_CFLAGS="$AM_CFLAGS $OPTIMIZE_HUGE_CFLAGS" + fi + else + AM_CFLAGS="$AM_CFLAGS $OPTIMIZE_CFLAGS" + fi + fi +fi + +AX_PTHREAD([ + AC_DEFINE([HAVE_PTHREAD], [1], [Define if you have POSIX threads libraries and header files.]) + ], + [ + AC_DEFINE([HAVE_PTHREAD], [0], [Define if you have POSIX threads libraries and header files.]) + ]) + +LIB_SOCKET_NSL + +dnl Various GCC warnings that should never fire for release quality code +GCCWARNINGS="-Wall -fno-strict-aliasing -W -Wfloat-equal -Wundef \ + -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes \ + -Wwrite-strings -Wredundant-decls -Wchar-subscripts -Wcomment \ + -Wformat=2 -Wwrite-strings -Wmissing-declarations -Wredundant-decls \ + -Wnested-externs -Wbad-function-cast -Wswitch-enum -Winit-self \ + -Wmissing-field-initializers -Wdeclaration-after-statement \ + -Wold-style-definition -Waddress -Wmissing-noreturn -Wnormalized=id \ + -Woverride-init -Wstrict-overflow=1 -Wextra -Warray-bounds \ + -Wstack-protector -Wformat -Wformat-security -Wpointer-sign -Wshadow \ + -Wswitch-default" + +AC_ARG_ENABLE(gcc-lots-o-warnings, +AS_HELP_STRING(--enable-gcc-lots-o-warnings, Enable lots of gcc warnings (default: disabled)), +[if test x$enableval = xyes; then + AM_CFLAGS="$AM_CFLAGS $GCCWARNINGS" +fi]) + +AC_ARG_ENABLE(gcc-hardening, +AS_HELP_STRING(--enable-gcc-hardening, Enable compiler security checks (default: disabled)), +[if test x$enableval = xyes; then + AM_CFLAGS="$AM_CFLAGS -D_FORTIFY_SOURCE=2 -fstack-protector-all" + AM_CFLAGS="$AM_CFLAGS -fwrapv -fPIE -Wstack-protector" + AM_CFLAGS="$AM_CFLAGS --param ssp-buffer-size=1" + LDFLAGS="$LDFLAGS -pie" +fi]) + +dnl Linker hardening options +dnl Currently these options are ELF specific - you can't use this with MacOSX +AC_ARG_ENABLE(linker-hardening, +AS_HELP_STRING(--enable-linker-hardening, Enable linker security fixups (default: disabled)), +[if test x$enableval = xyes; then + LDFLAGS="$LDFLAGS -z relro -z now" +fi]) + +CREATE_HEX_VERSION +AM_CFLAGS="$AM_CFLAGS $CFLAG_VISIBILITY" +AC_SUBST(AM_CFLAGS) +AC_SUBST(AM_LDFLAGS) + +# FINAL +AC_CONFIG_FILES([stamp-h], [echo timestamp > stamp-h]) +AC_CONFIG_FILES([Makefile]) +AC_CONFIG_FILES([cyassl/version.h]) +AC_CONFIG_FILES([support/libcyassl.pc]) + +AC_OUTPUT + diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/benchmark/benchmark.c b/FreeRTOS-Plus/CyaSSL/ctaocrypt/benchmark/benchmark.c new file mode 100644 index 000000000..701061e40 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/benchmark/benchmark.c @@ -0,0 +1,649 @@ +/* benchmark.c + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +/* CTaoCrypt benchmark */ + +#ifdef HAVE_CONFIG_H + #include +#endif + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#ifdef _MSC_VER + /* 4996 warning to use MS extensions e.g., strcpy_s instead of strncpy */ + #pragma warning(disable: 4996) +#endif + +void bench_des(); +void bench_arc4(); +void bench_hc128(); +void bench_rabbit(); +void bench_aes(int); + +void bench_md5(); +void bench_sha(); +void bench_sha256(); +void bench_sha512(); +void bench_ripemd(); + +void bench_rsa(); +void bench_rsaKeyGen(); +void bench_dh(); +#ifdef HAVE_ECC +void bench_eccKeyGen(); +void bench_eccKeyAgree(); +#endif + +double current_time(); + + + +int main(int argc, char** argv) +{ +#ifndef NO_AES + bench_aes(0); + bench_aes(1); +#endif + bench_arc4(); +#ifdef HAVE_HC128 + bench_hc128(); +#endif +#ifndef NO_RABBIT + bench_rabbit(); +#endif +#ifndef NO_DES3 + bench_des(); +#endif + + printf("\n"); + + bench_md5(); + bench_sha(); +#ifndef NO_SHA256 + bench_sha256(); +#endif +#ifdef CYASSL_SHA512 + bench_sha512(); +#endif +#ifdef CYASSL_RIPEMD + bench_ripemd(); +#endif + + printf("\n"); + + bench_rsa(); + +#ifndef NO_DH + bench_dh(); +#endif + +#ifdef CYASSL_KEY_GEN + bench_rsaKeyGen(); +#endif + +#ifdef HAVE_ECC + bench_eccKeyGen(); + bench_eccKeyAgree(); +#endif + + return 0; +} + +const int megs = 5; /* how many megs to test (en/de)cryption */ +const int times = 100; /* public key iterations */ + +const byte key[] = +{ + 0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef, + 0xfe,0xde,0xba,0x98,0x76,0x54,0x32,0x10, + 0x89,0xab,0xcd,0xef,0x01,0x23,0x45,0x67 +}; + +const byte iv[] = +{ + 0x12,0x34,0x56,0x78,0x90,0xab,0xcd,0xef, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x11,0x21,0x31,0x41,0x51,0x61,0x71,0x81 + +}; + + +byte plain [1024*1024]; +byte cipher[1024*1024]; + + +#ifndef NO_AES +void bench_aes(int show) +{ + Aes enc; + double start, total, persec; + int i; + + AesSetKey(&enc, key, 16, iv, AES_ENCRYPTION); + start = current_time(); + + for(i = 0; i < megs; i++) + AesCbcEncrypt(&enc, plain, cipher, sizeof(plain)); + + total = current_time() - start; + + persec = 1 / total * megs; + + if (show) + printf("AES %d megs took %5.3f seconds, %6.2f MB/s\n", megs, total, + persec); +} +#endif + + +#ifndef NO_DES3 +void bench_des() +{ + Des3 enc; + double start, total, persec; + int i; + + Des3_SetKey(&enc, key, iv, DES_ENCRYPTION); + start = current_time(); + + for(i = 0; i < megs; i++) + Des3_CbcEncrypt(&enc, plain, cipher, sizeof(plain)); + + total = current_time() - start; + + persec = 1 / total * megs; + + printf("3DES %d megs took %5.3f seconds, %6.2f MB/s\n", megs, total, + persec); +} +#endif + + +void bench_arc4() +{ + Arc4 enc; + double start, total, persec; + int i; + + Arc4SetKey(&enc, key, 16); + start = current_time(); + + for(i = 0; i < megs; i++) + Arc4Process(&enc, cipher, plain, sizeof(plain)); + + total = current_time() - start; + persec = 1 / total * megs; + + printf("ARC4 %d megs took %5.3f seconds, %6.2f MB/s\n", megs, total, + persec); +} + + +#ifdef HAVE_HC128 +void bench_hc128() +{ + HC128 enc; + double start, total, persec; + int i; + + Hc128_SetKey(&enc, key, iv); + start = current_time(); + + for(i = 0; i < megs; i++) + Hc128_Process(&enc, cipher, plain, sizeof(plain)); + + total = current_time() - start; + persec = 1 / total * megs; + + printf("HC128 %d megs took %5.3f seconds, %6.2f MB/s\n", megs, total, + persec); +} +#endif /* HAVE_HC128 */ + + +#ifndef NO_RABBIT +void bench_rabbit() +{ + Rabbit enc; + double start, total, persec; + int i; + + RabbitSetKey(&enc, key, iv); + start = current_time(); + + for(i = 0; i < megs; i++) + RabbitProcess(&enc, cipher, plain, sizeof(plain)); + + total = current_time() - start; + persec = 1 / total * megs; + + printf("RABBIT %d megs took %5.3f seconds, %6.2f MB/s\n", megs, total, + persec); +} +#endif /* NO_RABBIT */ + + +void bench_md5() +{ + Md5 hash; + byte digest[MD5_DIGEST_SIZE]; + double start, total, persec; + int i; + + InitMd5(&hash); + start = current_time(); + + for(i = 0; i < megs; i++) + Md5Update(&hash, plain, sizeof(plain)); + + Md5Final(&hash, digest); + + total = current_time() - start; + persec = 1 / total * megs; + + printf("MD5 %d megs took %5.3f seconds, %6.2f MB/s\n", megs, total, + persec); +} + + +void bench_sha() +{ + Sha hash; + byte digest[SHA_DIGEST_SIZE]; + double start, total, persec; + int i; + + InitSha(&hash); + start = current_time(); + + for(i = 0; i < megs; i++) + ShaUpdate(&hash, plain, sizeof(plain)); + + ShaFinal(&hash, digest); + + total = current_time() - start; + persec = 1 / total * megs; + + printf("SHA %d megs took %5.3f seconds, %6.2f MB/s\n", megs, total, + persec); +} + + +#ifndef NO_SHA256 +void bench_sha256() +{ + Sha256 hash; + byte digest[SHA256_DIGEST_SIZE]; + double start, total, persec; + int i; + + InitSha256(&hash); + start = current_time(); + + for(i = 0; i < megs; i++) + Sha256Update(&hash, plain, sizeof(plain)); + + Sha256Final(&hash, digest); + + total = current_time() - start; + persec = 1 / total * megs; + + printf("SHA-256 %d megs took %5.3f seconds, %6.2f MB/s\n", megs, total, + persec); +} +#endif + +#ifdef CYASSL_SHA512 +void bench_sha512() +{ + Sha512 hash; + byte digest[SHA512_DIGEST_SIZE]; + double start, total, persec; + int i; + + InitSha512(&hash); + start = current_time(); + + for(i = 0; i < megs; i++) + Sha512Update(&hash, plain, sizeof(plain)); + + Sha512Final(&hash, digest); + + total = current_time() - start; + persec = 1 / total * megs; + + printf("SHA-512 %d megs took %5.3f seconds, %6.2f MB/s\n", megs, total, + persec); +} +#endif + +#ifdef CYASSL_RIPEMD +void bench_ripemd() +{ + RipeMd hash; + byte digest[RIPEMD_DIGEST_SIZE]; + double start, total, persec; + int i; + + InitRipeMd(&hash); + start = current_time(); + + for(i = 0; i < megs; i++) + RipeMdUpdate(&hash, plain, sizeof(plain)); + + RipeMdFinal(&hash, digest); + + total = current_time() - start; + persec = 1 / total * megs; + + printf("RIPEMD %d megs took %5.3f seconds, %6.2f MB/s\n", megs, total, + persec); +} +#endif + + +RNG rng; + +void bench_rsa() +{ + int i; + byte tmp[4096]; + size_t bytes; + word32 idx = 0; + + byte message[] = "Everyone gets Friday off."; + byte cipher[512]; /* for up to 4096 bit */ + byte* output; + const int len = (int)strlen((char*)message); + double start, total, each, milliEach; + + RsaKey key; + FILE* file = fopen("./certs/rsa2048.der", "rb"); + + if (!file) { + printf("can't find ./certs/rsa2048.der, " + "Please run from CyaSSL home dir\n"); + return; + } + + InitRng(&rng); + bytes = fread(tmp, 1, sizeof(tmp), file); + InitRsaKey(&key, 0); + bytes = RsaPrivateKeyDecode(tmp, &idx, &key, (word32)bytes); + + start = current_time(); + + for (i = 0; i < times; i++) + bytes = RsaPublicEncrypt(message,len,cipher,sizeof(cipher), &key, &rng); + + total = current_time() - start; + each = total / times; /* per second */ + milliEach = each * 1000; /* milliseconds */ + + printf("RSA 2048 encryption took %6.2f milliseconds, avg over %d" + " iterations\n", milliEach, times); + + start = current_time(); + + for (i = 0; i < times; i++) + RsaPrivateDecryptInline(cipher, (word32)bytes, &output, &key); + + total = current_time() - start; + each = total / times; /* per second */ + milliEach = each * 1000; /* milliseconds */ + + printf("RSA 2048 decryption took %6.2f milliseconds, avg over %d" + " iterations\n", milliEach, times); + + fclose(file); + FreeRsaKey(&key); +} + + +#ifndef NO_DH +void bench_dh() +{ + int i; + byte tmp[1024]; + size_t bytes; + word32 idx = 0, pubSz, privSz, pubSz2, privSz2, agreeSz; + + byte pub[256]; /* for 2048 bit */ + byte priv[256]; /* for 2048 bit */ + byte pub2[256]; /* for 2048 bit */ + byte priv2[256]; /* for 2048 bit */ + byte agree[256]; /* for 2048 bit */ + + double start, total, each, milliEach; + DhKey key; + FILE* file = fopen("./certs/dh2048.der", "rb"); + + if (!file) { + printf("can't find ./certs/dh2048.der, " + "Please run from CyaSSL home dir\n"); + return; + } + + bytes = fread(tmp, 1, sizeof(tmp), file); + InitDhKey(&key); + bytes = DhKeyDecode(tmp, &idx, &key, (word32)bytes); + + start = current_time(); + + for (i = 0; i < times; i++) + DhGenerateKeyPair(&key, &rng, priv, &privSz, pub, &pubSz); + + total = current_time() - start; + each = total / times; /* per second */ + milliEach = each * 1000; /* milliseconds */ + + printf("DH 2048 key generation %6.2f milliseconds, avg over %d" + " iterations\n", milliEach, times); + + DhGenerateKeyPair(&key, &rng, priv2, &privSz2, pub2, &pubSz2); + start = current_time(); + + for (i = 0; i < times; i++) + DhAgree(&key, agree, &agreeSz, priv, privSz, pub2, pubSz2); + + total = current_time() - start; + each = total / times; /* per second */ + milliEach = each * 1000; /* milliseconds */ + + printf("DH 2048 key agreement %6.2f milliseconds, avg over %d" + " iterations\n", milliEach, times); + + fclose(file); + FreeDhKey(&key); +} +#endif + +#ifdef CYASSL_KEY_GEN +void bench_rsaKeyGen() +{ + RsaKey genKey; + double start, total, each, milliEach; + int i; + const int genTimes = 5; + + /* 1024 bit */ + start = current_time(); + + for(i = 0; i < genTimes; i++) { + InitRsaKey(&genKey, 0); + MakeRsaKey(&genKey, 1024, 65537, &rng); + FreeRsaKey(&genKey); + } + + total = current_time() - start; + each = total / genTimes; /* per second */ + milliEach = each * 1000; /* millisconds */ + printf("\n"); + printf("RSA 1024 key generation %6.2f milliseconds, avg over %d" + " iterations\n", milliEach, genTimes); + + /* 2048 bit */ + start = current_time(); + + for(i = 0; i < genTimes; i++) { + InitRsaKey(&genKey, 0); + MakeRsaKey(&genKey, 2048, 65537, &rng); + FreeRsaKey(&genKey); + } + + total = current_time() - start; + each = total / genTimes; /* per second */ + milliEach = each * 1000; /* millisconds */ + printf("RSA 2048 key generation %6.2f milliseconds, avg over %d" + " iterations\n", milliEach, genTimes); +} +#endif /* CYASSL_KEY_GEN */ + +#ifdef HAVE_ECC +void bench_eccKeyGen() +{ + ecc_key genKey; + double start, total, each, milliEach; + int i; + const int genTimes = 5; + + /* 256 bit */ + start = current_time(); + + for(i = 0; i < genTimes; i++) { + int ret = ecc_make_key(&rng, 32, &genKey); + ecc_free(&genKey); + } + + total = current_time() - start; + each = total / genTimes; /* per second */ + milliEach = each * 1000; /* millisconds */ + printf("\n"); + printf("ECC 256 key generation %6.2f milliseconds, avg over %d" + " iterations\n", milliEach, genTimes); +} + + +void bench_eccKeyAgree() +{ + ecc_key genKey, genKey2; + double start, total, each, milliEach; + int i; + const int agreeTimes = 5; + byte shared[1024]; + byte sig[1024]; + byte digest[32]; + word32 x; + + ecc_make_key(&rng, 32, &genKey); + ecc_make_key(&rng, 32, &genKey2); + + /* 256 bit */ + start = current_time(); + + for(i = 0; i < agreeTimes; i++) { + x = sizeof(shared); + ecc_shared_secret(&genKey, &genKey2, shared, &x); + } + + total = current_time() - start; + each = total / agreeTimes; /* per second */ + milliEach = each * 1000; /* millisconds */ + printf("EC-DHE key agreement %6.2f milliseconds, avg over %d" + " iterations\n", milliEach, agreeTimes); + + /* make dummy digest */ + for (i = 0; i < sizeof(digest); i++) + digest[i] = i; + + + start = current_time(); + + for(i = 0; i < agreeTimes; i++) { + x = sizeof(sig); + ecc_sign_hash(digest, sizeof(digest), sig, &x, &rng, &genKey); + } + + total = current_time() - start; + each = total / agreeTimes; /* per second */ + milliEach = each * 1000; /* millisconds */ + printf("EC-DSA sign time %6.2f milliseconds, avg over %d" + " iterations\n", milliEach, agreeTimes); + + ecc_free(&genKey2); + ecc_free(&genKey); +} +#endif /* HAVE_ECC */ + + +#ifdef _WIN32 + + #define WIN32_LEAN_AND_MEAN + #include + + double current_time() + { + static int init = 0; + static LARGE_INTEGER freq; + + LARGE_INTEGER count; + + if (!init) { + QueryPerformanceFrequency(&freq); + init = 1; + } + + QueryPerformanceCounter(&count); + + return (double)count.QuadPart / freq.QuadPart; + } + +#else + + #include + + double current_time() + { + struct timeval tv; + gettimeofday(&tv, 0); + + return (double)tv.tv_sec + (double)tv.tv_usec / 1000000; + } + +#endif /* _WIN32 */ + diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/benchmark/benchmark.sln b/FreeRTOS-Plus/CyaSSL/ctaocrypt/benchmark/benchmark.sln new file mode 100644 index 000000000..e3e9483b8 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/benchmark/benchmark.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual C++ Express 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "benchmark", "benchmark.vcproj", "{615AEC46-5595-4DEA-9490-DBD5DE0F8772}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {615AEC46-5595-4DEA-9490-DBD5DE0F8772}.Debug|Win32.ActiveCfg = Debug|Win32 + {615AEC46-5595-4DEA-9490-DBD5DE0F8772}.Debug|Win32.Build.0 = Debug|Win32 + {615AEC46-5595-4DEA-9490-DBD5DE0F8772}.Release|Win32.ActiveCfg = Release|Win32 + {615AEC46-5595-4DEA-9490-DBD5DE0F8772}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/benchmark/benchmark.vcproj b/FreeRTOS-Plus/CyaSSL/ctaocrypt/benchmark/benchmark.vcproj new file mode 100644 index 000000000..5db23c372 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/benchmark/benchmark.vcproj @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/benchmark/include.am b/FreeRTOS-Plus/CyaSSL/ctaocrypt/benchmark/include.am new file mode 100644 index 000000000..8d4895bcb --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/benchmark/include.am @@ -0,0 +1,9 @@ +# vim:ft=automake +# All paths should be given relative to the root + +noinst_PROGRAMS += ctaocrypt/benchmark/benchmark +ctaocrypt_benchmark_benchmark_SOURCES = ctaocrypt/benchmark/benchmark.c +ctaocrypt_benchmark_benchmark_LDADD = src/libcyassl.la +ctaocrypt_benchmark_benchmark_DEPENDENCIES = src/libcyassl.la +EXTRA_DIST += ctaocrypt/benchmark/benchmark.sln +EXTRA_DIST += ctaocrypt/benchmark/benchmark.vcproj diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/aes.c b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/aes.c new file mode 100644 index 000000000..ca1afb140 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/aes.c @@ -0,0 +1,1408 @@ +/* aes.c + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +#ifdef HAVE_CONFIG_H + #include +#endif + +#ifndef NO_AES + +#include +#include +#include +#ifdef NO_INLINE + #include +#else + #include +#endif + + +#ifdef _MSC_VER + /* 4127 warning constant while(1) */ + #pragma warning(disable: 4127) +#endif + + +static const word32 rcon[] = { + 0x01000000, 0x02000000, 0x04000000, 0x08000000, + 0x10000000, 0x20000000, 0x40000000, 0x80000000, + 0x1B000000, 0x36000000, + /* for 128-bit blocks, Rijndael never uses more than 10 rcon values */ +}; + + +static const word32 Te[5][256] = { +{ + 0xc66363a5U, 0xf87c7c84U, 0xee777799U, 0xf67b7b8dU, + 0xfff2f20dU, 0xd66b6bbdU, 0xde6f6fb1U, 0x91c5c554U, + 0x60303050U, 0x02010103U, 0xce6767a9U, 0x562b2b7dU, + 0xe7fefe19U, 0xb5d7d762U, 0x4dababe6U, 0xec76769aU, + 0x8fcaca45U, 0x1f82829dU, 0x89c9c940U, 0xfa7d7d87U, + 0xeffafa15U, 0xb25959ebU, 0x8e4747c9U, 0xfbf0f00bU, + 0x41adadecU, 0xb3d4d467U, 0x5fa2a2fdU, 0x45afafeaU, + 0x239c9cbfU, 0x53a4a4f7U, 0xe4727296U, 0x9bc0c05bU, + 0x75b7b7c2U, 0xe1fdfd1cU, 0x3d9393aeU, 0x4c26266aU, + 0x6c36365aU, 0x7e3f3f41U, 0xf5f7f702U, 0x83cccc4fU, + 0x6834345cU, 0x51a5a5f4U, 0xd1e5e534U, 0xf9f1f108U, + 0xe2717193U, 0xabd8d873U, 0x62313153U, 0x2a15153fU, + 0x0804040cU, 0x95c7c752U, 0x46232365U, 0x9dc3c35eU, + 0x30181828U, 0x379696a1U, 0x0a05050fU, 0x2f9a9ab5U, + 0x0e070709U, 0x24121236U, 0x1b80809bU, 0xdfe2e23dU, + 0xcdebeb26U, 0x4e272769U, 0x7fb2b2cdU, 0xea75759fU, + 0x1209091bU, 0x1d83839eU, 0x582c2c74U, 0x341a1a2eU, + 0x361b1b2dU, 0xdc6e6eb2U, 0xb45a5aeeU, 0x5ba0a0fbU, + 0xa45252f6U, 0x763b3b4dU, 0xb7d6d661U, 0x7db3b3ceU, + 0x5229297bU, 0xdde3e33eU, 0x5e2f2f71U, 0x13848497U, + 0xa65353f5U, 0xb9d1d168U, 0x00000000U, 0xc1eded2cU, + 0x40202060U, 0xe3fcfc1fU, 0x79b1b1c8U, 0xb65b5bedU, + 0xd46a6abeU, 0x8dcbcb46U, 0x67bebed9U, 0x7239394bU, + 0x944a4adeU, 0x984c4cd4U, 0xb05858e8U, 0x85cfcf4aU, + 0xbbd0d06bU, 0xc5efef2aU, 0x4faaaae5U, 0xedfbfb16U, + 0x864343c5U, 0x9a4d4dd7U, 0x66333355U, 0x11858594U, + 0x8a4545cfU, 0xe9f9f910U, 0x04020206U, 0xfe7f7f81U, + 0xa05050f0U, 0x783c3c44U, 0x259f9fbaU, 0x4ba8a8e3U, + 0xa25151f3U, 0x5da3a3feU, 0x804040c0U, 0x058f8f8aU, + 0x3f9292adU, 0x219d9dbcU, 0x70383848U, 0xf1f5f504U, + 0x63bcbcdfU, 0x77b6b6c1U, 0xafdada75U, 0x42212163U, + 0x20101030U, 0xe5ffff1aU, 0xfdf3f30eU, 0xbfd2d26dU, + 0x81cdcd4cU, 0x180c0c14U, 0x26131335U, 0xc3ecec2fU, + 0xbe5f5fe1U, 0x359797a2U, 0x884444ccU, 0x2e171739U, + 0x93c4c457U, 0x55a7a7f2U, 0xfc7e7e82U, 0x7a3d3d47U, + 0xc86464acU, 0xba5d5de7U, 0x3219192bU, 0xe6737395U, + 0xc06060a0U, 0x19818198U, 0x9e4f4fd1U, 0xa3dcdc7fU, + 0x44222266U, 0x542a2a7eU, 0x3b9090abU, 0x0b888883U, + 0x8c4646caU, 0xc7eeee29U, 0x6bb8b8d3U, 0x2814143cU, + 0xa7dede79U, 0xbc5e5ee2U, 0x160b0b1dU, 0xaddbdb76U, + 0xdbe0e03bU, 0x64323256U, 0x743a3a4eU, 0x140a0a1eU, + 0x924949dbU, 0x0c06060aU, 0x4824246cU, 0xb85c5ce4U, + 0x9fc2c25dU, 0xbdd3d36eU, 0x43acacefU, 0xc46262a6U, + 0x399191a8U, 0x319595a4U, 0xd3e4e437U, 0xf279798bU, + 0xd5e7e732U, 0x8bc8c843U, 0x6e373759U, 0xda6d6db7U, + 0x018d8d8cU, 0xb1d5d564U, 0x9c4e4ed2U, 0x49a9a9e0U, + 0xd86c6cb4U, 0xac5656faU, 0xf3f4f407U, 0xcfeaea25U, + 0xca6565afU, 0xf47a7a8eU, 0x47aeaee9U, 0x10080818U, + 0x6fbabad5U, 0xf0787888U, 0x4a25256fU, 0x5c2e2e72U, + 0x381c1c24U, 0x57a6a6f1U, 0x73b4b4c7U, 0x97c6c651U, + 0xcbe8e823U, 0xa1dddd7cU, 0xe874749cU, 0x3e1f1f21U, + 0x964b4bddU, 0x61bdbddcU, 0x0d8b8b86U, 0x0f8a8a85U, + 0xe0707090U, 0x7c3e3e42U, 0x71b5b5c4U, 0xcc6666aaU, + 0x904848d8U, 0x06030305U, 0xf7f6f601U, 0x1c0e0e12U, + 0xc26161a3U, 0x6a35355fU, 0xae5757f9U, 0x69b9b9d0U, + 0x17868691U, 0x99c1c158U, 0x3a1d1d27U, 0x279e9eb9U, + 0xd9e1e138U, 0xebf8f813U, 0x2b9898b3U, 0x22111133U, + 0xd26969bbU, 0xa9d9d970U, 0x078e8e89U, 0x339494a7U, + 0x2d9b9bb6U, 0x3c1e1e22U, 0x15878792U, 0xc9e9e920U, + 0x87cece49U, 0xaa5555ffU, 0x50282878U, 0xa5dfdf7aU, + 0x038c8c8fU, 0x59a1a1f8U, 0x09898980U, 0x1a0d0d17U, + 0x65bfbfdaU, 0xd7e6e631U, 0x844242c6U, 0xd06868b8U, + 0x824141c3U, 0x299999b0U, 0x5a2d2d77U, 0x1e0f0f11U, + 0x7bb0b0cbU, 0xa85454fcU, 0x6dbbbbd6U, 0x2c16163aU, +}, +{ + 0xa5c66363U, 0x84f87c7cU, 0x99ee7777U, 0x8df67b7bU, + 0x0dfff2f2U, 0xbdd66b6bU, 0xb1de6f6fU, 0x5491c5c5U, + 0x50603030U, 0x03020101U, 0xa9ce6767U, 0x7d562b2bU, + 0x19e7fefeU, 0x62b5d7d7U, 0xe64dababU, 0x9aec7676U, + 0x458fcacaU, 0x9d1f8282U, 0x4089c9c9U, 0x87fa7d7dU, + 0x15effafaU, 0xebb25959U, 0xc98e4747U, 0x0bfbf0f0U, + 0xec41adadU, 0x67b3d4d4U, 0xfd5fa2a2U, 0xea45afafU, + 0xbf239c9cU, 0xf753a4a4U, 0x96e47272U, 0x5b9bc0c0U, + 0xc275b7b7U, 0x1ce1fdfdU, 0xae3d9393U, 0x6a4c2626U, + 0x5a6c3636U, 0x417e3f3fU, 0x02f5f7f7U, 0x4f83ccccU, + 0x5c683434U, 0xf451a5a5U, 0x34d1e5e5U, 0x08f9f1f1U, + 0x93e27171U, 0x73abd8d8U, 0x53623131U, 0x3f2a1515U, + 0x0c080404U, 0x5295c7c7U, 0x65462323U, 0x5e9dc3c3U, + 0x28301818U, 0xa1379696U, 0x0f0a0505U, 0xb52f9a9aU, + 0x090e0707U, 0x36241212U, 0x9b1b8080U, 0x3ddfe2e2U, + 0x26cdebebU, 0x694e2727U, 0xcd7fb2b2U, 0x9fea7575U, + 0x1b120909U, 0x9e1d8383U, 0x74582c2cU, 0x2e341a1aU, + 0x2d361b1bU, 0xb2dc6e6eU, 0xeeb45a5aU, 0xfb5ba0a0U, + 0xf6a45252U, 0x4d763b3bU, 0x61b7d6d6U, 0xce7db3b3U, + 0x7b522929U, 0x3edde3e3U, 0x715e2f2fU, 0x97138484U, + 0xf5a65353U, 0x68b9d1d1U, 0x00000000U, 0x2cc1ededU, + 0x60402020U, 0x1fe3fcfcU, 0xc879b1b1U, 0xedb65b5bU, + 0xbed46a6aU, 0x468dcbcbU, 0xd967bebeU, 0x4b723939U, + 0xde944a4aU, 0xd4984c4cU, 0xe8b05858U, 0x4a85cfcfU, + 0x6bbbd0d0U, 0x2ac5efefU, 0xe54faaaaU, 0x16edfbfbU, + 0xc5864343U, 0xd79a4d4dU, 0x55663333U, 0x94118585U, + 0xcf8a4545U, 0x10e9f9f9U, 0x06040202U, 0x81fe7f7fU, + 0xf0a05050U, 0x44783c3cU, 0xba259f9fU, 0xe34ba8a8U, + 0xf3a25151U, 0xfe5da3a3U, 0xc0804040U, 0x8a058f8fU, + 0xad3f9292U, 0xbc219d9dU, 0x48703838U, 0x04f1f5f5U, + 0xdf63bcbcU, 0xc177b6b6U, 0x75afdadaU, 0x63422121U, + 0x30201010U, 0x1ae5ffffU, 0x0efdf3f3U, 0x6dbfd2d2U, + 0x4c81cdcdU, 0x14180c0cU, 0x35261313U, 0x2fc3ececU, + 0xe1be5f5fU, 0xa2359797U, 0xcc884444U, 0x392e1717U, + 0x5793c4c4U, 0xf255a7a7U, 0x82fc7e7eU, 0x477a3d3dU, + 0xacc86464U, 0xe7ba5d5dU, 0x2b321919U, 0x95e67373U, + 0xa0c06060U, 0x98198181U, 0xd19e4f4fU, 0x7fa3dcdcU, + 0x66442222U, 0x7e542a2aU, 0xab3b9090U, 0x830b8888U, + 0xca8c4646U, 0x29c7eeeeU, 0xd36bb8b8U, 0x3c281414U, + 0x79a7dedeU, 0xe2bc5e5eU, 0x1d160b0bU, 0x76addbdbU, + 0x3bdbe0e0U, 0x56643232U, 0x4e743a3aU, 0x1e140a0aU, + 0xdb924949U, 0x0a0c0606U, 0x6c482424U, 0xe4b85c5cU, + 0x5d9fc2c2U, 0x6ebdd3d3U, 0xef43acacU, 0xa6c46262U, + 0xa8399191U, 0xa4319595U, 0x37d3e4e4U, 0x8bf27979U, + 0x32d5e7e7U, 0x438bc8c8U, 0x596e3737U, 0xb7da6d6dU, + 0x8c018d8dU, 0x64b1d5d5U, 0xd29c4e4eU, 0xe049a9a9U, + 0xb4d86c6cU, 0xfaac5656U, 0x07f3f4f4U, 0x25cfeaeaU, + 0xafca6565U, 0x8ef47a7aU, 0xe947aeaeU, 0x18100808U, + 0xd56fbabaU, 0x88f07878U, 0x6f4a2525U, 0x725c2e2eU, + 0x24381c1cU, 0xf157a6a6U, 0xc773b4b4U, 0x5197c6c6U, + 0x23cbe8e8U, 0x7ca1ddddU, 0x9ce87474U, 0x213e1f1fU, + 0xdd964b4bU, 0xdc61bdbdU, 0x860d8b8bU, 0x850f8a8aU, + 0x90e07070U, 0x427c3e3eU, 0xc471b5b5U, 0xaacc6666U, + 0xd8904848U, 0x05060303U, 0x01f7f6f6U, 0x121c0e0eU, + 0xa3c26161U, 0x5f6a3535U, 0xf9ae5757U, 0xd069b9b9U, + 0x91178686U, 0x5899c1c1U, 0x273a1d1dU, 0xb9279e9eU, + 0x38d9e1e1U, 0x13ebf8f8U, 0xb32b9898U, 0x33221111U, + 0xbbd26969U, 0x70a9d9d9U, 0x89078e8eU, 0xa7339494U, + 0xb62d9b9bU, 0x223c1e1eU, 0x92158787U, 0x20c9e9e9U, + 0x4987ceceU, 0xffaa5555U, 0x78502828U, 0x7aa5dfdfU, + 0x8f038c8cU, 0xf859a1a1U, 0x80098989U, 0x171a0d0dU, + 0xda65bfbfU, 0x31d7e6e6U, 0xc6844242U, 0xb8d06868U, + 0xc3824141U, 0xb0299999U, 0x775a2d2dU, 0x111e0f0fU, + 0xcb7bb0b0U, 0xfca85454U, 0xd66dbbbbU, 0x3a2c1616U, +}, +{ + 0x63a5c663U, 0x7c84f87cU, 0x7799ee77U, 0x7b8df67bU, + 0xf20dfff2U, 0x6bbdd66bU, 0x6fb1de6fU, 0xc55491c5U, + 0x30506030U, 0x01030201U, 0x67a9ce67U, 0x2b7d562bU, + 0xfe19e7feU, 0xd762b5d7U, 0xabe64dabU, 0x769aec76U, + 0xca458fcaU, 0x829d1f82U, 0xc94089c9U, 0x7d87fa7dU, + 0xfa15effaU, 0x59ebb259U, 0x47c98e47U, 0xf00bfbf0U, + 0xadec41adU, 0xd467b3d4U, 0xa2fd5fa2U, 0xafea45afU, + 0x9cbf239cU, 0xa4f753a4U, 0x7296e472U, 0xc05b9bc0U, + 0xb7c275b7U, 0xfd1ce1fdU, 0x93ae3d93U, 0x266a4c26U, + 0x365a6c36U, 0x3f417e3fU, 0xf702f5f7U, 0xcc4f83ccU, + 0x345c6834U, 0xa5f451a5U, 0xe534d1e5U, 0xf108f9f1U, + 0x7193e271U, 0xd873abd8U, 0x31536231U, 0x153f2a15U, + 0x040c0804U, 0xc75295c7U, 0x23654623U, 0xc35e9dc3U, + 0x18283018U, 0x96a13796U, 0x050f0a05U, 0x9ab52f9aU, + 0x07090e07U, 0x12362412U, 0x809b1b80U, 0xe23ddfe2U, + 0xeb26cdebU, 0x27694e27U, 0xb2cd7fb2U, 0x759fea75U, + 0x091b1209U, 0x839e1d83U, 0x2c74582cU, 0x1a2e341aU, + 0x1b2d361bU, 0x6eb2dc6eU, 0x5aeeb45aU, 0xa0fb5ba0U, + 0x52f6a452U, 0x3b4d763bU, 0xd661b7d6U, 0xb3ce7db3U, + 0x297b5229U, 0xe33edde3U, 0x2f715e2fU, 0x84971384U, + 0x53f5a653U, 0xd168b9d1U, 0x00000000U, 0xed2cc1edU, + 0x20604020U, 0xfc1fe3fcU, 0xb1c879b1U, 0x5bedb65bU, + 0x6abed46aU, 0xcb468dcbU, 0xbed967beU, 0x394b7239U, + 0x4ade944aU, 0x4cd4984cU, 0x58e8b058U, 0xcf4a85cfU, + 0xd06bbbd0U, 0xef2ac5efU, 0xaae54faaU, 0xfb16edfbU, + 0x43c58643U, 0x4dd79a4dU, 0x33556633U, 0x85941185U, + 0x45cf8a45U, 0xf910e9f9U, 0x02060402U, 0x7f81fe7fU, + 0x50f0a050U, 0x3c44783cU, 0x9fba259fU, 0xa8e34ba8U, + 0x51f3a251U, 0xa3fe5da3U, 0x40c08040U, 0x8f8a058fU, + 0x92ad3f92U, 0x9dbc219dU, 0x38487038U, 0xf504f1f5U, + 0xbcdf63bcU, 0xb6c177b6U, 0xda75afdaU, 0x21634221U, + 0x10302010U, 0xff1ae5ffU, 0xf30efdf3U, 0xd26dbfd2U, + 0xcd4c81cdU, 0x0c14180cU, 0x13352613U, 0xec2fc3ecU, + 0x5fe1be5fU, 0x97a23597U, 0x44cc8844U, 0x17392e17U, + 0xc45793c4U, 0xa7f255a7U, 0x7e82fc7eU, 0x3d477a3dU, + 0x64acc864U, 0x5de7ba5dU, 0x192b3219U, 0x7395e673U, + 0x60a0c060U, 0x81981981U, 0x4fd19e4fU, 0xdc7fa3dcU, + 0x22664422U, 0x2a7e542aU, 0x90ab3b90U, 0x88830b88U, + 0x46ca8c46U, 0xee29c7eeU, 0xb8d36bb8U, 0x143c2814U, + 0xde79a7deU, 0x5ee2bc5eU, 0x0b1d160bU, 0xdb76addbU, + 0xe03bdbe0U, 0x32566432U, 0x3a4e743aU, 0x0a1e140aU, + 0x49db9249U, 0x060a0c06U, 0x246c4824U, 0x5ce4b85cU, + 0xc25d9fc2U, 0xd36ebdd3U, 0xacef43acU, 0x62a6c462U, + 0x91a83991U, 0x95a43195U, 0xe437d3e4U, 0x798bf279U, + 0xe732d5e7U, 0xc8438bc8U, 0x37596e37U, 0x6db7da6dU, + 0x8d8c018dU, 0xd564b1d5U, 0x4ed29c4eU, 0xa9e049a9U, + 0x6cb4d86cU, 0x56faac56U, 0xf407f3f4U, 0xea25cfeaU, + 0x65afca65U, 0x7a8ef47aU, 0xaee947aeU, 0x08181008U, + 0xbad56fbaU, 0x7888f078U, 0x256f4a25U, 0x2e725c2eU, + 0x1c24381cU, 0xa6f157a6U, 0xb4c773b4U, 0xc65197c6U, + 0xe823cbe8U, 0xdd7ca1ddU, 0x749ce874U, 0x1f213e1fU, + 0x4bdd964bU, 0xbddc61bdU, 0x8b860d8bU, 0x8a850f8aU, + 0x7090e070U, 0x3e427c3eU, 0xb5c471b5U, 0x66aacc66U, + 0x48d89048U, 0x03050603U, 0xf601f7f6U, 0x0e121c0eU, + 0x61a3c261U, 0x355f6a35U, 0x57f9ae57U, 0xb9d069b9U, + 0x86911786U, 0xc15899c1U, 0x1d273a1dU, 0x9eb9279eU, + 0xe138d9e1U, 0xf813ebf8U, 0x98b32b98U, 0x11332211U, + 0x69bbd269U, 0xd970a9d9U, 0x8e89078eU, 0x94a73394U, + 0x9bb62d9bU, 0x1e223c1eU, 0x87921587U, 0xe920c9e9U, + 0xce4987ceU, 0x55ffaa55U, 0x28785028U, 0xdf7aa5dfU, + 0x8c8f038cU, 0xa1f859a1U, 0x89800989U, 0x0d171a0dU, + 0xbfda65bfU, 0xe631d7e6U, 0x42c68442U, 0x68b8d068U, + 0x41c38241U, 0x99b02999U, 0x2d775a2dU, 0x0f111e0fU, + 0xb0cb7bb0U, 0x54fca854U, 0xbbd66dbbU, 0x163a2c16U, +}, +{ + 0x6363a5c6U, 0x7c7c84f8U, 0x777799eeU, 0x7b7b8df6U, + 0xf2f20dffU, 0x6b6bbdd6U, 0x6f6fb1deU, 0xc5c55491U, + 0x30305060U, 0x01010302U, 0x6767a9ceU, 0x2b2b7d56U, + 0xfefe19e7U, 0xd7d762b5U, 0xababe64dU, 0x76769aecU, + 0xcaca458fU, 0x82829d1fU, 0xc9c94089U, 0x7d7d87faU, + 0xfafa15efU, 0x5959ebb2U, 0x4747c98eU, 0xf0f00bfbU, + 0xadadec41U, 0xd4d467b3U, 0xa2a2fd5fU, 0xafafea45U, + 0x9c9cbf23U, 0xa4a4f753U, 0x727296e4U, 0xc0c05b9bU, + 0xb7b7c275U, 0xfdfd1ce1U, 0x9393ae3dU, 0x26266a4cU, + 0x36365a6cU, 0x3f3f417eU, 0xf7f702f5U, 0xcccc4f83U, + 0x34345c68U, 0xa5a5f451U, 0xe5e534d1U, 0xf1f108f9U, + 0x717193e2U, 0xd8d873abU, 0x31315362U, 0x15153f2aU, + 0x04040c08U, 0xc7c75295U, 0x23236546U, 0xc3c35e9dU, + 0x18182830U, 0x9696a137U, 0x05050f0aU, 0x9a9ab52fU, + 0x0707090eU, 0x12123624U, 0x80809b1bU, 0xe2e23ddfU, + 0xebeb26cdU, 0x2727694eU, 0xb2b2cd7fU, 0x75759feaU, + 0x09091b12U, 0x83839e1dU, 0x2c2c7458U, 0x1a1a2e34U, + 0x1b1b2d36U, 0x6e6eb2dcU, 0x5a5aeeb4U, 0xa0a0fb5bU, + 0x5252f6a4U, 0x3b3b4d76U, 0xd6d661b7U, 0xb3b3ce7dU, + 0x29297b52U, 0xe3e33eddU, 0x2f2f715eU, 0x84849713U, + 0x5353f5a6U, 0xd1d168b9U, 0x00000000U, 0xeded2cc1U, + 0x20206040U, 0xfcfc1fe3U, 0xb1b1c879U, 0x5b5bedb6U, + 0x6a6abed4U, 0xcbcb468dU, 0xbebed967U, 0x39394b72U, + 0x4a4ade94U, 0x4c4cd498U, 0x5858e8b0U, 0xcfcf4a85U, + 0xd0d06bbbU, 0xefef2ac5U, 0xaaaae54fU, 0xfbfb16edU, + 0x4343c586U, 0x4d4dd79aU, 0x33335566U, 0x85859411U, + 0x4545cf8aU, 0xf9f910e9U, 0x02020604U, 0x7f7f81feU, + 0x5050f0a0U, 0x3c3c4478U, 0x9f9fba25U, 0xa8a8e34bU, + 0x5151f3a2U, 0xa3a3fe5dU, 0x4040c080U, 0x8f8f8a05U, + 0x9292ad3fU, 0x9d9dbc21U, 0x38384870U, 0xf5f504f1U, + 0xbcbcdf63U, 0xb6b6c177U, 0xdada75afU, 0x21216342U, + 0x10103020U, 0xffff1ae5U, 0xf3f30efdU, 0xd2d26dbfU, + 0xcdcd4c81U, 0x0c0c1418U, 0x13133526U, 0xecec2fc3U, + 0x5f5fe1beU, 0x9797a235U, 0x4444cc88U, 0x1717392eU, + 0xc4c45793U, 0xa7a7f255U, 0x7e7e82fcU, 0x3d3d477aU, + 0x6464acc8U, 0x5d5de7baU, 0x19192b32U, 0x737395e6U, + 0x6060a0c0U, 0x81819819U, 0x4f4fd19eU, 0xdcdc7fa3U, + 0x22226644U, 0x2a2a7e54U, 0x9090ab3bU, 0x8888830bU, + 0x4646ca8cU, 0xeeee29c7U, 0xb8b8d36bU, 0x14143c28U, + 0xdede79a7U, 0x5e5ee2bcU, 0x0b0b1d16U, 0xdbdb76adU, + 0xe0e03bdbU, 0x32325664U, 0x3a3a4e74U, 0x0a0a1e14U, + 0x4949db92U, 0x06060a0cU, 0x24246c48U, 0x5c5ce4b8U, + 0xc2c25d9fU, 0xd3d36ebdU, 0xacacef43U, 0x6262a6c4U, + 0x9191a839U, 0x9595a431U, 0xe4e437d3U, 0x79798bf2U, + 0xe7e732d5U, 0xc8c8438bU, 0x3737596eU, 0x6d6db7daU, + 0x8d8d8c01U, 0xd5d564b1U, 0x4e4ed29cU, 0xa9a9e049U, + 0x6c6cb4d8U, 0x5656faacU, 0xf4f407f3U, 0xeaea25cfU, + 0x6565afcaU, 0x7a7a8ef4U, 0xaeaee947U, 0x08081810U, + 0xbabad56fU, 0x787888f0U, 0x25256f4aU, 0x2e2e725cU, + 0x1c1c2438U, 0xa6a6f157U, 0xb4b4c773U, 0xc6c65197U, + 0xe8e823cbU, 0xdddd7ca1U, 0x74749ce8U, 0x1f1f213eU, + 0x4b4bdd96U, 0xbdbddc61U, 0x8b8b860dU, 0x8a8a850fU, + 0x707090e0U, 0x3e3e427cU, 0xb5b5c471U, 0x6666aaccU, + 0x4848d890U, 0x03030506U, 0xf6f601f7U, 0x0e0e121cU, + 0x6161a3c2U, 0x35355f6aU, 0x5757f9aeU, 0xb9b9d069U, + 0x86869117U, 0xc1c15899U, 0x1d1d273aU, 0x9e9eb927U, + 0xe1e138d9U, 0xf8f813ebU, 0x9898b32bU, 0x11113322U, + 0x6969bbd2U, 0xd9d970a9U, 0x8e8e8907U, 0x9494a733U, + 0x9b9bb62dU, 0x1e1e223cU, 0x87879215U, 0xe9e920c9U, + 0xcece4987U, 0x5555ffaaU, 0x28287850U, 0xdfdf7aa5U, + 0x8c8c8f03U, 0xa1a1f859U, 0x89898009U, 0x0d0d171aU, + 0xbfbfda65U, 0xe6e631d7U, 0x4242c684U, 0x6868b8d0U, + 0x4141c382U, 0x9999b029U, 0x2d2d775aU, 0x0f0f111eU, + 0xb0b0cb7bU, 0x5454fca8U, 0xbbbbd66dU, 0x16163a2cU, +}, +{ + 0x63636363U, 0x7c7c7c7cU, 0x77777777U, 0x7b7b7b7bU, + 0xf2f2f2f2U, 0x6b6b6b6bU, 0x6f6f6f6fU, 0xc5c5c5c5U, + 0x30303030U, 0x01010101U, 0x67676767U, 0x2b2b2b2bU, + 0xfefefefeU, 0xd7d7d7d7U, 0xababababU, 0x76767676U, + 0xcacacacaU, 0x82828282U, 0xc9c9c9c9U, 0x7d7d7d7dU, + 0xfafafafaU, 0x59595959U, 0x47474747U, 0xf0f0f0f0U, + 0xadadadadU, 0xd4d4d4d4U, 0xa2a2a2a2U, 0xafafafafU, + 0x9c9c9c9cU, 0xa4a4a4a4U, 0x72727272U, 0xc0c0c0c0U, + 0xb7b7b7b7U, 0xfdfdfdfdU, 0x93939393U, 0x26262626U, + 0x36363636U, 0x3f3f3f3fU, 0xf7f7f7f7U, 0xccccccccU, + 0x34343434U, 0xa5a5a5a5U, 0xe5e5e5e5U, 0xf1f1f1f1U, + 0x71717171U, 0xd8d8d8d8U, 0x31313131U, 0x15151515U, + 0x04040404U, 0xc7c7c7c7U, 0x23232323U, 0xc3c3c3c3U, + 0x18181818U, 0x96969696U, 0x05050505U, 0x9a9a9a9aU, + 0x07070707U, 0x12121212U, 0x80808080U, 0xe2e2e2e2U, + 0xebebebebU, 0x27272727U, 0xb2b2b2b2U, 0x75757575U, + 0x09090909U, 0x83838383U, 0x2c2c2c2cU, 0x1a1a1a1aU, + 0x1b1b1b1bU, 0x6e6e6e6eU, 0x5a5a5a5aU, 0xa0a0a0a0U, + 0x52525252U, 0x3b3b3b3bU, 0xd6d6d6d6U, 0xb3b3b3b3U, + 0x29292929U, 0xe3e3e3e3U, 0x2f2f2f2fU, 0x84848484U, + 0x53535353U, 0xd1d1d1d1U, 0x00000000U, 0xededededU, + 0x20202020U, 0xfcfcfcfcU, 0xb1b1b1b1U, 0x5b5b5b5bU, + 0x6a6a6a6aU, 0xcbcbcbcbU, 0xbebebebeU, 0x39393939U, + 0x4a4a4a4aU, 0x4c4c4c4cU, 0x58585858U, 0xcfcfcfcfU, + 0xd0d0d0d0U, 0xefefefefU, 0xaaaaaaaaU, 0xfbfbfbfbU, + 0x43434343U, 0x4d4d4d4dU, 0x33333333U, 0x85858585U, + 0x45454545U, 0xf9f9f9f9U, 0x02020202U, 0x7f7f7f7fU, + 0x50505050U, 0x3c3c3c3cU, 0x9f9f9f9fU, 0xa8a8a8a8U, + 0x51515151U, 0xa3a3a3a3U, 0x40404040U, 0x8f8f8f8fU, + 0x92929292U, 0x9d9d9d9dU, 0x38383838U, 0xf5f5f5f5U, + 0xbcbcbcbcU, 0xb6b6b6b6U, 0xdadadadaU, 0x21212121U, + 0x10101010U, 0xffffffffU, 0xf3f3f3f3U, 0xd2d2d2d2U, + 0xcdcdcdcdU, 0x0c0c0c0cU, 0x13131313U, 0xececececU, + 0x5f5f5f5fU, 0x97979797U, 0x44444444U, 0x17171717U, + 0xc4c4c4c4U, 0xa7a7a7a7U, 0x7e7e7e7eU, 0x3d3d3d3dU, + 0x64646464U, 0x5d5d5d5dU, 0x19191919U, 0x73737373U, + 0x60606060U, 0x81818181U, 0x4f4f4f4fU, 0xdcdcdcdcU, + 0x22222222U, 0x2a2a2a2aU, 0x90909090U, 0x88888888U, + 0x46464646U, 0xeeeeeeeeU, 0xb8b8b8b8U, 0x14141414U, + 0xdedededeU, 0x5e5e5e5eU, 0x0b0b0b0bU, 0xdbdbdbdbU, + 0xe0e0e0e0U, 0x32323232U, 0x3a3a3a3aU, 0x0a0a0a0aU, + 0x49494949U, 0x06060606U, 0x24242424U, 0x5c5c5c5cU, + 0xc2c2c2c2U, 0xd3d3d3d3U, 0xacacacacU, 0x62626262U, + 0x91919191U, 0x95959595U, 0xe4e4e4e4U, 0x79797979U, + 0xe7e7e7e7U, 0xc8c8c8c8U, 0x37373737U, 0x6d6d6d6dU, + 0x8d8d8d8dU, 0xd5d5d5d5U, 0x4e4e4e4eU, 0xa9a9a9a9U, + 0x6c6c6c6cU, 0x56565656U, 0xf4f4f4f4U, 0xeaeaeaeaU, + 0x65656565U, 0x7a7a7a7aU, 0xaeaeaeaeU, 0x08080808U, + 0xbabababaU, 0x78787878U, 0x25252525U, 0x2e2e2e2eU, + 0x1c1c1c1cU, 0xa6a6a6a6U, 0xb4b4b4b4U, 0xc6c6c6c6U, + 0xe8e8e8e8U, 0xddddddddU, 0x74747474U, 0x1f1f1f1fU, + 0x4b4b4b4bU, 0xbdbdbdbdU, 0x8b8b8b8bU, 0x8a8a8a8aU, + 0x70707070U, 0x3e3e3e3eU, 0xb5b5b5b5U, 0x66666666U, + 0x48484848U, 0x03030303U, 0xf6f6f6f6U, 0x0e0e0e0eU, + 0x61616161U, 0x35353535U, 0x57575757U, 0xb9b9b9b9U, + 0x86868686U, 0xc1c1c1c1U, 0x1d1d1d1dU, 0x9e9e9e9eU, + 0xe1e1e1e1U, 0xf8f8f8f8U, 0x98989898U, 0x11111111U, + 0x69696969U, 0xd9d9d9d9U, 0x8e8e8e8eU, 0x94949494U, + 0x9b9b9b9bU, 0x1e1e1e1eU, 0x87878787U, 0xe9e9e9e9U, + 0xcecececeU, 0x55555555U, 0x28282828U, 0xdfdfdfdfU, + 0x8c8c8c8cU, 0xa1a1a1a1U, 0x89898989U, 0x0d0d0d0dU, + 0xbfbfbfbfU, 0xe6e6e6e6U, 0x42424242U, 0x68686868U, + 0x41414141U, 0x99999999U, 0x2d2d2d2dU, 0x0f0f0f0fU, + 0xb0b0b0b0U, 0x54545454U, 0xbbbbbbbbU, 0x16161616U, +} +}; + + +static const word32 Td[5][256] = { +{ + 0x51f4a750U, 0x7e416553U, 0x1a17a4c3U, 0x3a275e96U, + 0x3bab6bcbU, 0x1f9d45f1U, 0xacfa58abU, 0x4be30393U, + 0x2030fa55U, 0xad766df6U, 0x88cc7691U, 0xf5024c25U, + 0x4fe5d7fcU, 0xc52acbd7U, 0x26354480U, 0xb562a38fU, + 0xdeb15a49U, 0x25ba1b67U, 0x45ea0e98U, 0x5dfec0e1U, + 0xc32f7502U, 0x814cf012U, 0x8d4697a3U, 0x6bd3f9c6U, + 0x038f5fe7U, 0x15929c95U, 0xbf6d7aebU, 0x955259daU, + 0xd4be832dU, 0x587421d3U, 0x49e06929U, 0x8ec9c844U, + 0x75c2896aU, 0xf48e7978U, 0x99583e6bU, 0x27b971ddU, + 0xbee14fb6U, 0xf088ad17U, 0xc920ac66U, 0x7dce3ab4U, + 0x63df4a18U, 0xe51a3182U, 0x97513360U, 0x62537f45U, + 0xb16477e0U, 0xbb6bae84U, 0xfe81a01cU, 0xf9082b94U, + 0x70486858U, 0x8f45fd19U, 0x94de6c87U, 0x527bf8b7U, + 0xab73d323U, 0x724b02e2U, 0xe31f8f57U, 0x6655ab2aU, + 0xb2eb2807U, 0x2fb5c203U, 0x86c57b9aU, 0xd33708a5U, + 0x302887f2U, 0x23bfa5b2U, 0x02036abaU, 0xed16825cU, + 0x8acf1c2bU, 0xa779b492U, 0xf307f2f0U, 0x4e69e2a1U, + 0x65daf4cdU, 0x0605bed5U, 0xd134621fU, 0xc4a6fe8aU, + 0x342e539dU, 0xa2f355a0U, 0x058ae132U, 0xa4f6eb75U, + 0x0b83ec39U, 0x4060efaaU, 0x5e719f06U, 0xbd6e1051U, + 0x3e218af9U, 0x96dd063dU, 0xdd3e05aeU, 0x4de6bd46U, + 0x91548db5U, 0x71c45d05U, 0x0406d46fU, 0x605015ffU, + 0x1998fb24U, 0xd6bde997U, 0x894043ccU, 0x67d99e77U, + 0xb0e842bdU, 0x07898b88U, 0xe7195b38U, 0x79c8eedbU, + 0xa17c0a47U, 0x7c420fe9U, 0xf8841ec9U, 0x00000000U, + 0x09808683U, 0x322bed48U, 0x1e1170acU, 0x6c5a724eU, + 0xfd0efffbU, 0x0f853856U, 0x3daed51eU, 0x362d3927U, + 0x0a0fd964U, 0x685ca621U, 0x9b5b54d1U, 0x24362e3aU, + 0x0c0a67b1U, 0x9357e70fU, 0xb4ee96d2U, 0x1b9b919eU, + 0x80c0c54fU, 0x61dc20a2U, 0x5a774b69U, 0x1c121a16U, + 0xe293ba0aU, 0xc0a02ae5U, 0x3c22e043U, 0x121b171dU, + 0x0e090d0bU, 0xf28bc7adU, 0x2db6a8b9U, 0x141ea9c8U, + 0x57f11985U, 0xaf75074cU, 0xee99ddbbU, 0xa37f60fdU, + 0xf701269fU, 0x5c72f5bcU, 0x44663bc5U, 0x5bfb7e34U, + 0x8b432976U, 0xcb23c6dcU, 0xb6edfc68U, 0xb8e4f163U, + 0xd731dccaU, 0x42638510U, 0x13972240U, 0x84c61120U, + 0x854a247dU, 0xd2bb3df8U, 0xaef93211U, 0xc729a16dU, + 0x1d9e2f4bU, 0xdcb230f3U, 0x0d8652ecU, 0x77c1e3d0U, + 0x2bb3166cU, 0xa970b999U, 0x119448faU, 0x47e96422U, + 0xa8fc8cc4U, 0xa0f03f1aU, 0x567d2cd8U, 0x223390efU, + 0x87494ec7U, 0xd938d1c1U, 0x8ccaa2feU, 0x98d40b36U, + 0xa6f581cfU, 0xa57ade28U, 0xdab78e26U, 0x3fadbfa4U, + 0x2c3a9de4U, 0x5078920dU, 0x6a5fcc9bU, 0x547e4662U, + 0xf68d13c2U, 0x90d8b8e8U, 0x2e39f75eU, 0x82c3aff5U, + 0x9f5d80beU, 0x69d0937cU, 0x6fd52da9U, 0xcf2512b3U, + 0xc8ac993bU, 0x10187da7U, 0xe89c636eU, 0xdb3bbb7bU, + 0xcd267809U, 0x6e5918f4U, 0xec9ab701U, 0x834f9aa8U, + 0xe6956e65U, 0xaaffe67eU, 0x21bccf08U, 0xef15e8e6U, + 0xbae79bd9U, 0x4a6f36ceU, 0xea9f09d4U, 0x29b07cd6U, + 0x31a4b2afU, 0x2a3f2331U, 0xc6a59430U, 0x35a266c0U, + 0x744ebc37U, 0xfc82caa6U, 0xe090d0b0U, 0x33a7d815U, + 0xf104984aU, 0x41ecdaf7U, 0x7fcd500eU, 0x1791f62fU, + 0x764dd68dU, 0x43efb04dU, 0xccaa4d54U, 0xe49604dfU, + 0x9ed1b5e3U, 0x4c6a881bU, 0xc12c1fb8U, 0x4665517fU, + 0x9d5eea04U, 0x018c355dU, 0xfa877473U, 0xfb0b412eU, + 0xb3671d5aU, 0x92dbd252U, 0xe9105633U, 0x6dd64713U, + 0x9ad7618cU, 0x37a10c7aU, 0x59f8148eU, 0xeb133c89U, + 0xcea927eeU, 0xb761c935U, 0xe11ce5edU, 0x7a47b13cU, + 0x9cd2df59U, 0x55f2733fU, 0x1814ce79U, 0x73c737bfU, + 0x53f7cdeaU, 0x5ffdaa5bU, 0xdf3d6f14U, 0x7844db86U, + 0xcaaff381U, 0xb968c43eU, 0x3824342cU, 0xc2a3405fU, + 0x161dc372U, 0xbce2250cU, 0x283c498bU, 0xff0d9541U, + 0x39a80171U, 0x080cb3deU, 0xd8b4e49cU, 0x6456c190U, + 0x7bcb8461U, 0xd532b670U, 0x486c5c74U, 0xd0b85742U, +}, +{ + 0x5051f4a7U, 0x537e4165U, 0xc31a17a4U, 0x963a275eU, + 0xcb3bab6bU, 0xf11f9d45U, 0xabacfa58U, 0x934be303U, + 0x552030faU, 0xf6ad766dU, 0x9188cc76U, 0x25f5024cU, + 0xfc4fe5d7U, 0xd7c52acbU, 0x80263544U, 0x8fb562a3U, + 0x49deb15aU, 0x6725ba1bU, 0x9845ea0eU, 0xe15dfec0U, + 0x02c32f75U, 0x12814cf0U, 0xa38d4697U, 0xc66bd3f9U, + 0xe7038f5fU, 0x9515929cU, 0xebbf6d7aU, 0xda955259U, + 0x2dd4be83U, 0xd3587421U, 0x2949e069U, 0x448ec9c8U, + 0x6a75c289U, 0x78f48e79U, 0x6b99583eU, 0xdd27b971U, + 0xb6bee14fU, 0x17f088adU, 0x66c920acU, 0xb47dce3aU, + 0x1863df4aU, 0x82e51a31U, 0x60975133U, 0x4562537fU, + 0xe0b16477U, 0x84bb6baeU, 0x1cfe81a0U, 0x94f9082bU, + 0x58704868U, 0x198f45fdU, 0x8794de6cU, 0xb7527bf8U, + 0x23ab73d3U, 0xe2724b02U, 0x57e31f8fU, 0x2a6655abU, + 0x07b2eb28U, 0x032fb5c2U, 0x9a86c57bU, 0xa5d33708U, + 0xf2302887U, 0xb223bfa5U, 0xba02036aU, 0x5ced1682U, + 0x2b8acf1cU, 0x92a779b4U, 0xf0f307f2U, 0xa14e69e2U, + 0xcd65daf4U, 0xd50605beU, 0x1fd13462U, 0x8ac4a6feU, + 0x9d342e53U, 0xa0a2f355U, 0x32058ae1U, 0x75a4f6ebU, + 0x390b83ecU, 0xaa4060efU, 0x065e719fU, 0x51bd6e10U, + 0xf93e218aU, 0x3d96dd06U, 0xaedd3e05U, 0x464de6bdU, + 0xb591548dU, 0x0571c45dU, 0x6f0406d4U, 0xff605015U, + 0x241998fbU, 0x97d6bde9U, 0xcc894043U, 0x7767d99eU, + 0xbdb0e842U, 0x8807898bU, 0x38e7195bU, 0xdb79c8eeU, + 0x47a17c0aU, 0xe97c420fU, 0xc9f8841eU, 0x00000000U, + 0x83098086U, 0x48322bedU, 0xac1e1170U, 0x4e6c5a72U, + 0xfbfd0effU, 0x560f8538U, 0x1e3daed5U, 0x27362d39U, + 0x640a0fd9U, 0x21685ca6U, 0xd19b5b54U, 0x3a24362eU, + 0xb10c0a67U, 0x0f9357e7U, 0xd2b4ee96U, 0x9e1b9b91U, + 0x4f80c0c5U, 0xa261dc20U, 0x695a774bU, 0x161c121aU, + 0x0ae293baU, 0xe5c0a02aU, 0x433c22e0U, 0x1d121b17U, + 0x0b0e090dU, 0xadf28bc7U, 0xb92db6a8U, 0xc8141ea9U, + 0x8557f119U, 0x4caf7507U, 0xbbee99ddU, 0xfda37f60U, + 0x9ff70126U, 0xbc5c72f5U, 0xc544663bU, 0x345bfb7eU, + 0x768b4329U, 0xdccb23c6U, 0x68b6edfcU, 0x63b8e4f1U, + 0xcad731dcU, 0x10426385U, 0x40139722U, 0x2084c611U, + 0x7d854a24U, 0xf8d2bb3dU, 0x11aef932U, 0x6dc729a1U, + 0x4b1d9e2fU, 0xf3dcb230U, 0xec0d8652U, 0xd077c1e3U, + 0x6c2bb316U, 0x99a970b9U, 0xfa119448U, 0x2247e964U, + 0xc4a8fc8cU, 0x1aa0f03fU, 0xd8567d2cU, 0xef223390U, + 0xc787494eU, 0xc1d938d1U, 0xfe8ccaa2U, 0x3698d40bU, + 0xcfa6f581U, 0x28a57adeU, 0x26dab78eU, 0xa43fadbfU, + 0xe42c3a9dU, 0x0d507892U, 0x9b6a5fccU, 0x62547e46U, + 0xc2f68d13U, 0xe890d8b8U, 0x5e2e39f7U, 0xf582c3afU, + 0xbe9f5d80U, 0x7c69d093U, 0xa96fd52dU, 0xb3cf2512U, + 0x3bc8ac99U, 0xa710187dU, 0x6ee89c63U, 0x7bdb3bbbU, + 0x09cd2678U, 0xf46e5918U, 0x01ec9ab7U, 0xa8834f9aU, + 0x65e6956eU, 0x7eaaffe6U, 0x0821bccfU, 0xe6ef15e8U, + 0xd9bae79bU, 0xce4a6f36U, 0xd4ea9f09U, 0xd629b07cU, + 0xaf31a4b2U, 0x312a3f23U, 0x30c6a594U, 0xc035a266U, + 0x37744ebcU, 0xa6fc82caU, 0xb0e090d0U, 0x1533a7d8U, + 0x4af10498U, 0xf741ecdaU, 0x0e7fcd50U, 0x2f1791f6U, + 0x8d764dd6U, 0x4d43efb0U, 0x54ccaa4dU, 0xdfe49604U, + 0xe39ed1b5U, 0x1b4c6a88U, 0xb8c12c1fU, 0x7f466551U, + 0x049d5eeaU, 0x5d018c35U, 0x73fa8774U, 0x2efb0b41U, + 0x5ab3671dU, 0x5292dbd2U, 0x33e91056U, 0x136dd647U, + 0x8c9ad761U, 0x7a37a10cU, 0x8e59f814U, 0x89eb133cU, + 0xeecea927U, 0x35b761c9U, 0xede11ce5U, 0x3c7a47b1U, + 0x599cd2dfU, 0x3f55f273U, 0x791814ceU, 0xbf73c737U, + 0xea53f7cdU, 0x5b5ffdaaU, 0x14df3d6fU, 0x867844dbU, + 0x81caaff3U, 0x3eb968c4U, 0x2c382434U, 0x5fc2a340U, + 0x72161dc3U, 0x0cbce225U, 0x8b283c49U, 0x41ff0d95U, + 0x7139a801U, 0xde080cb3U, 0x9cd8b4e4U, 0x906456c1U, + 0x617bcb84U, 0x70d532b6U, 0x74486c5cU, 0x42d0b857U, +}, +{ + 0xa75051f4U, 0x65537e41U, 0xa4c31a17U, 0x5e963a27U, + 0x6bcb3babU, 0x45f11f9dU, 0x58abacfaU, 0x03934be3U, + 0xfa552030U, 0x6df6ad76U, 0x769188ccU, 0x4c25f502U, + 0xd7fc4fe5U, 0xcbd7c52aU, 0x44802635U, 0xa38fb562U, + 0x5a49deb1U, 0x1b6725baU, 0x0e9845eaU, 0xc0e15dfeU, + 0x7502c32fU, 0xf012814cU, 0x97a38d46U, 0xf9c66bd3U, + 0x5fe7038fU, 0x9c951592U, 0x7aebbf6dU, 0x59da9552U, + 0x832dd4beU, 0x21d35874U, 0x692949e0U, 0xc8448ec9U, + 0x896a75c2U, 0x7978f48eU, 0x3e6b9958U, 0x71dd27b9U, + 0x4fb6bee1U, 0xad17f088U, 0xac66c920U, 0x3ab47dceU, + 0x4a1863dfU, 0x3182e51aU, 0x33609751U, 0x7f456253U, + 0x77e0b164U, 0xae84bb6bU, 0xa01cfe81U, 0x2b94f908U, + 0x68587048U, 0xfd198f45U, 0x6c8794deU, 0xf8b7527bU, + 0xd323ab73U, 0x02e2724bU, 0x8f57e31fU, 0xab2a6655U, + 0x2807b2ebU, 0xc2032fb5U, 0x7b9a86c5U, 0x08a5d337U, + 0x87f23028U, 0xa5b223bfU, 0x6aba0203U, 0x825ced16U, + 0x1c2b8acfU, 0xb492a779U, 0xf2f0f307U, 0xe2a14e69U, + 0xf4cd65daU, 0xbed50605U, 0x621fd134U, 0xfe8ac4a6U, + 0x539d342eU, 0x55a0a2f3U, 0xe132058aU, 0xeb75a4f6U, + 0xec390b83U, 0xefaa4060U, 0x9f065e71U, 0x1051bd6eU, + + 0x8af93e21U, 0x063d96ddU, 0x05aedd3eU, 0xbd464de6U, + 0x8db59154U, 0x5d0571c4U, 0xd46f0406U, 0x15ff6050U, + 0xfb241998U, 0xe997d6bdU, 0x43cc8940U, 0x9e7767d9U, + 0x42bdb0e8U, 0x8b880789U, 0x5b38e719U, 0xeedb79c8U, + 0x0a47a17cU, 0x0fe97c42U, 0x1ec9f884U, 0x00000000U, + 0x86830980U, 0xed48322bU, 0x70ac1e11U, 0x724e6c5aU, + 0xfffbfd0eU, 0x38560f85U, 0xd51e3daeU, 0x3927362dU, + 0xd9640a0fU, 0xa621685cU, 0x54d19b5bU, 0x2e3a2436U, + 0x67b10c0aU, 0xe70f9357U, 0x96d2b4eeU, 0x919e1b9bU, + 0xc54f80c0U, 0x20a261dcU, 0x4b695a77U, 0x1a161c12U, + 0xba0ae293U, 0x2ae5c0a0U, 0xe0433c22U, 0x171d121bU, + 0x0d0b0e09U, 0xc7adf28bU, 0xa8b92db6U, 0xa9c8141eU, + 0x198557f1U, 0x074caf75U, 0xddbbee99U, 0x60fda37fU, + 0x269ff701U, 0xf5bc5c72U, 0x3bc54466U, 0x7e345bfbU, + 0x29768b43U, 0xc6dccb23U, 0xfc68b6edU, 0xf163b8e4U, + 0xdccad731U, 0x85104263U, 0x22401397U, 0x112084c6U, + 0x247d854aU, 0x3df8d2bbU, 0x3211aef9U, 0xa16dc729U, + 0x2f4b1d9eU, 0x30f3dcb2U, 0x52ec0d86U, 0xe3d077c1U, + 0x166c2bb3U, 0xb999a970U, 0x48fa1194U, 0x642247e9U, + 0x8cc4a8fcU, 0x3f1aa0f0U, 0x2cd8567dU, 0x90ef2233U, + 0x4ec78749U, 0xd1c1d938U, 0xa2fe8ccaU, 0x0b3698d4U, + 0x81cfa6f5U, 0xde28a57aU, 0x8e26dab7U, 0xbfa43fadU, + 0x9de42c3aU, 0x920d5078U, 0xcc9b6a5fU, 0x4662547eU, + 0x13c2f68dU, 0xb8e890d8U, 0xf75e2e39U, 0xaff582c3U, + 0x80be9f5dU, 0x937c69d0U, 0x2da96fd5U, 0x12b3cf25U, + 0x993bc8acU, 0x7da71018U, 0x636ee89cU, 0xbb7bdb3bU, + 0x7809cd26U, 0x18f46e59U, 0xb701ec9aU, 0x9aa8834fU, + 0x6e65e695U, 0xe67eaaffU, 0xcf0821bcU, 0xe8e6ef15U, + 0x9bd9bae7U, 0x36ce4a6fU, 0x09d4ea9fU, 0x7cd629b0U, + 0xb2af31a4U, 0x23312a3fU, 0x9430c6a5U, 0x66c035a2U, + 0xbc37744eU, 0xcaa6fc82U, 0xd0b0e090U, 0xd81533a7U, + 0x984af104U, 0xdaf741ecU, 0x500e7fcdU, 0xf62f1791U, + 0xd68d764dU, 0xb04d43efU, 0x4d54ccaaU, 0x04dfe496U, + 0xb5e39ed1U, 0x881b4c6aU, 0x1fb8c12cU, 0x517f4665U, + 0xea049d5eU, 0x355d018cU, 0x7473fa87U, 0x412efb0bU, + 0x1d5ab367U, 0xd25292dbU, 0x5633e910U, 0x47136dd6U, + 0x618c9ad7U, 0x0c7a37a1U, 0x148e59f8U, 0x3c89eb13U, + 0x27eecea9U, 0xc935b761U, 0xe5ede11cU, 0xb13c7a47U, + 0xdf599cd2U, 0x733f55f2U, 0xce791814U, 0x37bf73c7U, + 0xcdea53f7U, 0xaa5b5ffdU, 0x6f14df3dU, 0xdb867844U, + 0xf381caafU, 0xc43eb968U, 0x342c3824U, 0x405fc2a3U, + 0xc372161dU, 0x250cbce2U, 0x498b283cU, 0x9541ff0dU, + 0x017139a8U, 0xb3de080cU, 0xe49cd8b4U, 0xc1906456U, + 0x84617bcbU, 0xb670d532U, 0x5c74486cU, 0x5742d0b8U, +}, +{ + 0xf4a75051U, 0x4165537eU, 0x17a4c31aU, 0x275e963aU, + 0xab6bcb3bU, 0x9d45f11fU, 0xfa58abacU, 0xe303934bU, + 0x30fa5520U, 0x766df6adU, 0xcc769188U, 0x024c25f5U, + 0xe5d7fc4fU, 0x2acbd7c5U, 0x35448026U, 0x62a38fb5U, + 0xb15a49deU, 0xba1b6725U, 0xea0e9845U, 0xfec0e15dU, + 0x2f7502c3U, 0x4cf01281U, 0x4697a38dU, 0xd3f9c66bU, + 0x8f5fe703U, 0x929c9515U, 0x6d7aebbfU, 0x5259da95U, + 0xbe832dd4U, 0x7421d358U, 0xe0692949U, 0xc9c8448eU, + 0xc2896a75U, 0x8e7978f4U, 0x583e6b99U, 0xb971dd27U, + 0xe14fb6beU, 0x88ad17f0U, 0x20ac66c9U, 0xce3ab47dU, + 0xdf4a1863U, 0x1a3182e5U, 0x51336097U, 0x537f4562U, + 0x6477e0b1U, 0x6bae84bbU, 0x81a01cfeU, 0x082b94f9U, + 0x48685870U, 0x45fd198fU, 0xde6c8794U, 0x7bf8b752U, + 0x73d323abU, 0x4b02e272U, 0x1f8f57e3U, 0x55ab2a66U, + 0xeb2807b2U, 0xb5c2032fU, 0xc57b9a86U, 0x3708a5d3U, + 0x2887f230U, 0xbfa5b223U, 0x036aba02U, 0x16825cedU, + 0xcf1c2b8aU, 0x79b492a7U, 0x07f2f0f3U, 0x69e2a14eU, + 0xdaf4cd65U, 0x05bed506U, 0x34621fd1U, 0xa6fe8ac4U, + 0x2e539d34U, 0xf355a0a2U, 0x8ae13205U, 0xf6eb75a4U, + 0x83ec390bU, 0x60efaa40U, 0x719f065eU, 0x6e1051bdU, + 0x218af93eU, 0xdd063d96U, 0x3e05aeddU, 0xe6bd464dU, + 0x548db591U, 0xc45d0571U, 0x06d46f04U, 0x5015ff60U, + 0x98fb2419U, 0xbde997d6U, 0x4043cc89U, 0xd99e7767U, + 0xe842bdb0U, 0x898b8807U, 0x195b38e7U, 0xc8eedb79U, + 0x7c0a47a1U, 0x420fe97cU, 0x841ec9f8U, 0x00000000U, + 0x80868309U, 0x2bed4832U, 0x1170ac1eU, 0x5a724e6cU, + 0x0efffbfdU, 0x8538560fU, 0xaed51e3dU, 0x2d392736U, + 0x0fd9640aU, 0x5ca62168U, 0x5b54d19bU, 0x362e3a24U, + 0x0a67b10cU, 0x57e70f93U, 0xee96d2b4U, 0x9b919e1bU, + 0xc0c54f80U, 0xdc20a261U, 0x774b695aU, 0x121a161cU, + 0x93ba0ae2U, 0xa02ae5c0U, 0x22e0433cU, 0x1b171d12U, + 0x090d0b0eU, 0x8bc7adf2U, 0xb6a8b92dU, 0x1ea9c814U, + 0xf1198557U, 0x75074cafU, 0x99ddbbeeU, 0x7f60fda3U, + 0x01269ff7U, 0x72f5bc5cU, 0x663bc544U, 0xfb7e345bU, + 0x4329768bU, 0x23c6dccbU, 0xedfc68b6U, 0xe4f163b8U, + 0x31dccad7U, 0x63851042U, 0x97224013U, 0xc6112084U, + 0x4a247d85U, 0xbb3df8d2U, 0xf93211aeU, 0x29a16dc7U, + 0x9e2f4b1dU, 0xb230f3dcU, 0x8652ec0dU, 0xc1e3d077U, + 0xb3166c2bU, 0x70b999a9U, 0x9448fa11U, 0xe9642247U, + 0xfc8cc4a8U, 0xf03f1aa0U, 0x7d2cd856U, 0x3390ef22U, + 0x494ec787U, 0x38d1c1d9U, 0xcaa2fe8cU, 0xd40b3698U, + 0xf581cfa6U, 0x7ade28a5U, 0xb78e26daU, 0xadbfa43fU, + 0x3a9de42cU, 0x78920d50U, 0x5fcc9b6aU, 0x7e466254U, + 0x8d13c2f6U, 0xd8b8e890U, 0x39f75e2eU, 0xc3aff582U, + 0x5d80be9fU, 0xd0937c69U, 0xd52da96fU, 0x2512b3cfU, + 0xac993bc8U, 0x187da710U, 0x9c636ee8U, 0x3bbb7bdbU, + 0x267809cdU, 0x5918f46eU, 0x9ab701ecU, 0x4f9aa883U, + 0x956e65e6U, 0xffe67eaaU, 0xbccf0821U, 0x15e8e6efU, + 0xe79bd9baU, 0x6f36ce4aU, 0x9f09d4eaU, 0xb07cd629U, + 0xa4b2af31U, 0x3f23312aU, 0xa59430c6U, 0xa266c035U, + 0x4ebc3774U, 0x82caa6fcU, 0x90d0b0e0U, 0xa7d81533U, + 0x04984af1U, 0xecdaf741U, 0xcd500e7fU, 0x91f62f17U, + 0x4dd68d76U, 0xefb04d43U, 0xaa4d54ccU, 0x9604dfe4U, + 0xd1b5e39eU, 0x6a881b4cU, 0x2c1fb8c1U, 0x65517f46U, + 0x5eea049dU, 0x8c355d01U, 0x877473faU, 0x0b412efbU, + 0x671d5ab3U, 0xdbd25292U, 0x105633e9U, 0xd647136dU, + 0xd7618c9aU, 0xa10c7a37U, 0xf8148e59U, 0x133c89ebU, + 0xa927eeceU, 0x61c935b7U, 0x1ce5ede1U, 0x47b13c7aU, + 0xd2df599cU, 0xf2733f55U, 0x14ce7918U, 0xc737bf73U, + 0xf7cdea53U, 0xfdaa5b5fU, 0x3d6f14dfU, 0x44db8678U, + 0xaff381caU, 0x68c43eb9U, 0x24342c38U, 0xa3405fc2U, + 0x1dc37216U, 0xe2250cbcU, 0x3c498b28U, 0x0d9541ffU, + 0xa8017139U, 0x0cb3de08U, 0xb4e49cd8U, 0x56c19064U, + 0xcb84617bU, 0x32b670d5U, 0x6c5c7448U, 0xb85742d0U, +}, +{ + 0x52525252U, 0x09090909U, 0x6a6a6a6aU, 0xd5d5d5d5U, + 0x30303030U, 0x36363636U, 0xa5a5a5a5U, 0x38383838U, + 0xbfbfbfbfU, 0x40404040U, 0xa3a3a3a3U, 0x9e9e9e9eU, + 0x81818181U, 0xf3f3f3f3U, 0xd7d7d7d7U, 0xfbfbfbfbU, + 0x7c7c7c7cU, 0xe3e3e3e3U, 0x39393939U, 0x82828282U, + 0x9b9b9b9bU, 0x2f2f2f2fU, 0xffffffffU, 0x87878787U, + 0x34343434U, 0x8e8e8e8eU, 0x43434343U, 0x44444444U, + 0xc4c4c4c4U, 0xdedededeU, 0xe9e9e9e9U, 0xcbcbcbcbU, + 0x54545454U, 0x7b7b7b7bU, 0x94949494U, 0x32323232U, + 0xa6a6a6a6U, 0xc2c2c2c2U, 0x23232323U, 0x3d3d3d3dU, + 0xeeeeeeeeU, 0x4c4c4c4cU, 0x95959595U, 0x0b0b0b0bU, + 0x42424242U, 0xfafafafaU, 0xc3c3c3c3U, 0x4e4e4e4eU, + 0x08080808U, 0x2e2e2e2eU, 0xa1a1a1a1U, 0x66666666U, + 0x28282828U, 0xd9d9d9d9U, 0x24242424U, 0xb2b2b2b2U, + 0x76767676U, 0x5b5b5b5bU, 0xa2a2a2a2U, 0x49494949U, + 0x6d6d6d6dU, 0x8b8b8b8bU, 0xd1d1d1d1U, 0x25252525U, + 0x72727272U, 0xf8f8f8f8U, 0xf6f6f6f6U, 0x64646464U, + 0x86868686U, 0x68686868U, 0x98989898U, 0x16161616U, + 0xd4d4d4d4U, 0xa4a4a4a4U, 0x5c5c5c5cU, 0xccccccccU, + 0x5d5d5d5dU, 0x65656565U, 0xb6b6b6b6U, 0x92929292U, + 0x6c6c6c6cU, 0x70707070U, 0x48484848U, 0x50505050U, + 0xfdfdfdfdU, 0xededededU, 0xb9b9b9b9U, 0xdadadadaU, + 0x5e5e5e5eU, 0x15151515U, 0x46464646U, 0x57575757U, + 0xa7a7a7a7U, 0x8d8d8d8dU, 0x9d9d9d9dU, 0x84848484U, + 0x90909090U, 0xd8d8d8d8U, 0xababababU, 0x00000000U, + 0x8c8c8c8cU, 0xbcbcbcbcU, 0xd3d3d3d3U, 0x0a0a0a0aU, + 0xf7f7f7f7U, 0xe4e4e4e4U, 0x58585858U, 0x05050505U, + 0xb8b8b8b8U, 0xb3b3b3b3U, 0x45454545U, 0x06060606U, + 0xd0d0d0d0U, 0x2c2c2c2cU, 0x1e1e1e1eU, 0x8f8f8f8fU, + 0xcacacacaU, 0x3f3f3f3fU, 0x0f0f0f0fU, 0x02020202U, + 0xc1c1c1c1U, 0xafafafafU, 0xbdbdbdbdU, 0x03030303U, + 0x01010101U, 0x13131313U, 0x8a8a8a8aU, 0x6b6b6b6bU, + 0x3a3a3a3aU, 0x91919191U, 0x11111111U, 0x41414141U, + 0x4f4f4f4fU, 0x67676767U, 0xdcdcdcdcU, 0xeaeaeaeaU, + 0x97979797U, 0xf2f2f2f2U, 0xcfcfcfcfU, 0xcecececeU, + 0xf0f0f0f0U, 0xb4b4b4b4U, 0xe6e6e6e6U, 0x73737373U, + 0x96969696U, 0xacacacacU, 0x74747474U, 0x22222222U, + 0xe7e7e7e7U, 0xadadadadU, 0x35353535U, 0x85858585U, + 0xe2e2e2e2U, 0xf9f9f9f9U, 0x37373737U, 0xe8e8e8e8U, + 0x1c1c1c1cU, 0x75757575U, 0xdfdfdfdfU, 0x6e6e6e6eU, + 0x47474747U, 0xf1f1f1f1U, 0x1a1a1a1aU, 0x71717171U, + 0x1d1d1d1dU, 0x29292929U, 0xc5c5c5c5U, 0x89898989U, + 0x6f6f6f6fU, 0xb7b7b7b7U, 0x62626262U, 0x0e0e0e0eU, + 0xaaaaaaaaU, 0x18181818U, 0xbebebebeU, 0x1b1b1b1bU, + 0xfcfcfcfcU, 0x56565656U, 0x3e3e3e3eU, 0x4b4b4b4bU, + 0xc6c6c6c6U, 0xd2d2d2d2U, 0x79797979U, 0x20202020U, + 0x9a9a9a9aU, 0xdbdbdbdbU, 0xc0c0c0c0U, 0xfefefefeU, + 0x78787878U, 0xcdcdcdcdU, 0x5a5a5a5aU, 0xf4f4f4f4U, + 0x1f1f1f1fU, 0xddddddddU, 0xa8a8a8a8U, 0x33333333U, + 0x88888888U, 0x07070707U, 0xc7c7c7c7U, 0x31313131U, + 0xb1b1b1b1U, 0x12121212U, 0x10101010U, 0x59595959U, + 0x27272727U, 0x80808080U, 0xececececU, 0x5f5f5f5fU, + 0x60606060U, 0x51515151U, 0x7f7f7f7fU, 0xa9a9a9a9U, + 0x19191919U, 0xb5b5b5b5U, 0x4a4a4a4aU, 0x0d0d0d0dU, + 0x2d2d2d2dU, 0xe5e5e5e5U, 0x7a7a7a7aU, 0x9f9f9f9fU, + 0x93939393U, 0xc9c9c9c9U, 0x9c9c9c9cU, 0xefefefefU, + 0xa0a0a0a0U, 0xe0e0e0e0U, 0x3b3b3b3bU, 0x4d4d4d4dU, + 0xaeaeaeaeU, 0x2a2a2a2aU, 0xf5f5f5f5U, 0xb0b0b0b0U, + 0xc8c8c8c8U, 0xebebebebU, 0xbbbbbbbbU, 0x3c3c3c3cU, + 0x83838383U, 0x53535353U, 0x99999999U, 0x61616161U, + 0x17171717U, 0x2b2b2b2bU, 0x04040404U, 0x7e7e7e7eU, + 0xbabababaU, 0x77777777U, 0xd6d6d6d6U, 0x26262626U, + 0xe1e1e1e1U, 0x69696969U, 0x14141414U, 0x63636363U, + 0x55555555U, 0x21212121U, 0x0c0c0c0cU, 0x7d7d7d7dU, +} +}; + + + +#define GETBYTE(x, y) (word32)((byte)((x) >> (8 * (y)))) + + +#ifdef CYASSL_AESNI + +#ifndef _MSC_VER + + #define cpuid(func,ax,bx,cx,dx)\ + __asm__ __volatile__ ("cpuid":\ + "=a" (ax), "=b" (bx), "=c" (cx), "=d" (dx) : "a" (func)); + +#else + + #define cpuid(func,ax,bx,cx,dx)\ + __asm mov eax, func \ + __asm cpuid \ + __asm mov ax, eax \ + __asm mov bx, ebx \ + __asm mov cx, ecx \ + __asm mov dx, edx + +#endif /* _MSC_VER */ + + +static int Check_CPU_support_AES() +{ + unsigned int a,b,c,d; + cpuid(1,a,b,c,d); + + if (c & 0x2000000) + return 1; + + return 0; +} + +static int checkAESNI = 0; +static int haveAESNI = 0; + + +void AES_CBC_encrypt(const unsigned char* in, unsigned char* out, + unsigned char* ivec, unsigned long length, + const unsigned char* KS, int nr); + + +void AES_CBC_decrypt(const unsigned char* in, unsigned char* out, + unsigned char* ivec, unsigned long length, + const unsigned char* KS, int nr); + +void AES_128_Key_Expansion(const unsigned char* userkey, + unsigned char* key_schedule); + +void AES_192_Key_Expansion(const unsigned char* userkey, + unsigned char* key_schedule); + +void AES_256_Key_Expansion(const unsigned char* userkey, + unsigned char* key_schedule); + + +int AES_set_encrypt_key (const unsigned char *userKey, const int bits, + Aes* aes) +{ + if (!userKey || !aes) + return BAD_FUNC_ARG; + + if (bits == 128) { + AES_128_Key_Expansion (userKey,(byte*)aes->key); aes->rounds = 10; + return 0; + } + else if (bits == 192) { + AES_192_Key_Expansion (userKey,(byte*)aes->key); aes->rounds = 12; + return 0; + } + else if (bits == 256) { + AES_256_Key_Expansion (userKey,(byte*)aes->key); aes->rounds = 14; + return 0; + } + return BAD_FUNC_ARG; +} + + +int AES_set_decrypt_key (const unsigned char* userKey, const int bits, + Aes* aes) +{ + int nr; + Aes temp_key; + __m128i *Key_Schedule = (__m128i*)aes->key; + __m128i *Temp_Key_Schedule = (__m128i*)temp_key.key; + + if (!userKey || !aes) + return BAD_FUNC_ARG; + + if (AES_set_encrypt_key(userKey,bits,&temp_key) == BAD_FUNC_ARG) + return BAD_FUNC_ARG; + + nr = temp_key.rounds; + aes->rounds = nr; + + Key_Schedule[nr] = Temp_Key_Schedule[0]; + Key_Schedule[nr-1] = _mm_aesimc_si128(Temp_Key_Schedule[1]); + Key_Schedule[nr-2] = _mm_aesimc_si128(Temp_Key_Schedule[2]); + Key_Schedule[nr-3] = _mm_aesimc_si128(Temp_Key_Schedule[3]); + Key_Schedule[nr-4] = _mm_aesimc_si128(Temp_Key_Schedule[4]); + Key_Schedule[nr-5] = _mm_aesimc_si128(Temp_Key_Schedule[5]); + Key_Schedule[nr-6] = _mm_aesimc_si128(Temp_Key_Schedule[6]); + Key_Schedule[nr-7] = _mm_aesimc_si128(Temp_Key_Schedule[7]); + Key_Schedule[nr-8] = _mm_aesimc_si128(Temp_Key_Schedule[8]); + Key_Schedule[nr-9] = _mm_aesimc_si128(Temp_Key_Schedule[9]); + + if(nr>10) { + Key_Schedule[nr-10] = _mm_aesimc_si128(Temp_Key_Schedule[10]); + Key_Schedule[nr-11] = _mm_aesimc_si128(Temp_Key_Schedule[11]); + } + + if(nr>12) { + Key_Schedule[nr-12] = _mm_aesimc_si128(Temp_Key_Schedule[12]); + Key_Schedule[nr-13] = _mm_aesimc_si128(Temp_Key_Schedule[13]); + } + + Key_Schedule[0] = Temp_Key_Schedule[nr]; + + return 0; +} + + + +#endif /* CYASSL_AESNI */ + + +int AesSetIV(Aes* aes, const byte* iv) +{ + if (aes == NULL) + return BAD_FUNC_ARG; + + if (iv) + XMEMCPY(aes->reg, iv, AES_BLOCK_SIZE); + + return 0; +} + + +int AesSetKey(Aes* aes, const byte* userKey, word32 keylen, const byte* iv, + int dir) +{ + word32 temp, *rk = aes->key; + unsigned int i = 0; + + if (!((keylen == 16) || (keylen == 24) || (keylen == 32))) + return BAD_FUNC_ARG; + +#ifdef CYASSL_AESNI + if (checkAESNI == 0) { + haveAESNI = Check_CPU_support_AES(); + checkAESNI = 1; + } + if (haveAESNI) { + if (iv) + XMEMCPY(aes->reg, iv, AES_BLOCK_SIZE); + if (dir == AES_ENCRYPTION) + return AES_set_encrypt_key(userKey, keylen * 8, aes); + else + return AES_set_decrypt_key(userKey, keylen * 8, aes); + } +#endif /* CYASSL_AESNI */ + + aes->rounds = keylen/4 + 6; + + XMEMCPY(rk, userKey, keylen); + #ifdef LITTLE_ENDIAN_ORDER + ByteReverseWords(rk, rk, keylen); + #endif + + switch(keylen) + { + case 16: + while (1) + { + temp = rk[3]; + rk[4] = rk[0] ^ + (Te[4][GETBYTE(temp, 2)] & 0xff000000) ^ + (Te[4][GETBYTE(temp, 1)] & 0x00ff0000) ^ + (Te[4][GETBYTE(temp, 0)] & 0x0000ff00) ^ + (Te[4][GETBYTE(temp, 3)] & 0x000000ff) ^ + rcon[i]; + rk[5] = rk[1] ^ rk[4]; + rk[6] = rk[2] ^ rk[5]; + rk[7] = rk[3] ^ rk[6]; + if (++i == 10) + break; + rk += 4; + } + break; + + case 24: + while (1) /* for (;;) here triggers a bug in VC60 SP4 w/ Pro Pack */ + { + temp = rk[ 5]; + rk[ 6] = rk[ 0] ^ + (Te[4][GETBYTE(temp, 2)] & 0xff000000) ^ + (Te[4][GETBYTE(temp, 1)] & 0x00ff0000) ^ + (Te[4][GETBYTE(temp, 0)] & 0x0000ff00) ^ + (Te[4][GETBYTE(temp, 3)] & 0x000000ff) ^ + rcon[i]; + rk[ 7] = rk[ 1] ^ rk[ 6]; + rk[ 8] = rk[ 2] ^ rk[ 7]; + rk[ 9] = rk[ 3] ^ rk[ 8]; + if (++i == 8) + break; + rk[10] = rk[ 4] ^ rk[ 9]; + rk[11] = rk[ 5] ^ rk[10]; + rk += 6; + } + break; + + case 32: + while (1) + { + temp = rk[ 7]; + rk[ 8] = rk[ 0] ^ + (Te[4][GETBYTE(temp, 2)] & 0xff000000) ^ + (Te[4][GETBYTE(temp, 1)] & 0x00ff0000) ^ + (Te[4][GETBYTE(temp, 0)] & 0x0000ff00) ^ + (Te[4][GETBYTE(temp, 3)] & 0x000000ff) ^ + rcon[i]; + rk[ 9] = rk[ 1] ^ rk[ 8]; + rk[10] = rk[ 2] ^ rk[ 9]; + rk[11] = rk[ 3] ^ rk[10]; + if (++i == 7) + break; + temp = rk[11]; + rk[12] = rk[ 4] ^ + (Te[4][GETBYTE(temp, 3)] & 0xff000000) ^ + (Te[4][GETBYTE(temp, 2)] & 0x00ff0000) ^ + (Te[4][GETBYTE(temp, 1)] & 0x0000ff00) ^ + (Te[4][GETBYTE(temp, 0)] & 0x000000ff); + rk[13] = rk[ 5] ^ rk[12]; + rk[14] = rk[ 6] ^ rk[13]; + rk[15] = rk[ 7] ^ rk[14]; + + rk += 8; + } + break; + + default: + return BAD_FUNC_ARG; + } + + if (dir == AES_DECRYPTION) + { + unsigned int j; + rk = aes->key; + + /* invert the order of the round keys: */ + for (i = 0, j = 4* aes->rounds; i < j; i += 4, j -= 4) { + temp = rk[i ]; rk[i ] = rk[j ]; rk[j ] = temp; + temp = rk[i + 1]; rk[i + 1] = rk[j + 1]; rk[j + 1] = temp; + temp = rk[i + 2]; rk[i + 2] = rk[j + 2]; rk[j + 2] = temp; + temp = rk[i + 3]; rk[i + 3] = rk[j + 3]; rk[j + 3] = temp; + } + /* apply the inverse MixColumn transform to all round keys but the + first and the last: */ + for (i = 1; i < aes->rounds; i++) { + rk += 4; + rk[0] = + Td[0][Te[4][GETBYTE(rk[0], 3)] & 0xff] ^ + Td[1][Te[4][GETBYTE(rk[0], 2)] & 0xff] ^ + Td[2][Te[4][GETBYTE(rk[0], 1)] & 0xff] ^ + Td[3][Te[4][GETBYTE(rk[0], 0)] & 0xff]; + rk[1] = + Td[0][Te[4][GETBYTE(rk[1], 3)] & 0xff] ^ + Td[1][Te[4][GETBYTE(rk[1], 2)] & 0xff] ^ + Td[2][Te[4][GETBYTE(rk[1], 1)] & 0xff] ^ + Td[3][Te[4][GETBYTE(rk[1], 0)] & 0xff]; + rk[2] = + Td[0][Te[4][GETBYTE(rk[2], 3)] & 0xff] ^ + Td[1][Te[4][GETBYTE(rk[2], 2)] & 0xff] ^ + Td[2][Te[4][GETBYTE(rk[2], 1)] & 0xff] ^ + Td[3][Te[4][GETBYTE(rk[2], 0)] & 0xff]; + rk[3] = + Td[0][Te[4][GETBYTE(rk[3], 3)] & 0xff] ^ + Td[1][Te[4][GETBYTE(rk[3], 2)] & 0xff] ^ + Td[2][Te[4][GETBYTE(rk[3], 1)] & 0xff] ^ + Td[3][Te[4][GETBYTE(rk[3], 0)] & 0xff]; + } + } + + return AesSetIV(aes, iv); +} + + +static void AesEncrypt(Aes* aes, const byte* inBlock, byte* outBlock) +{ + word32 s0, s1, s2, s3; + word32 t0, t1, t2, t3; + word32 r = aes->rounds >> 1; + + const word32* rk = aes->key; + if (r > 7 || r == 0) { + CYASSL_MSG("AesEncrypt encountered improper key, set it up"); + return; /* stop instead of segfaulting, set up your keys! */ + } + /* + * map byte array block to cipher state + * and add initial round key: + */ + XMEMCPY(&s0, inBlock, sizeof(s0)); + XMEMCPY(&s1, inBlock + sizeof(s0), sizeof(s1)); + XMEMCPY(&s2, inBlock + 2 * sizeof(s0), sizeof(s2)); + XMEMCPY(&s3, inBlock + 3 * sizeof(s0), sizeof(s3)); + + #ifdef LITTLE_ENDIAN_ORDER + s0 = ByteReverseWord32(s0); + s1 = ByteReverseWord32(s1); + s2 = ByteReverseWord32(s2); + s3 = ByteReverseWord32(s3); + #endif + + s0 ^= rk[0]; + s1 ^= rk[1]; + s2 ^= rk[2]; + s3 ^= rk[3]; + + /* + * Nr - 1 full rounds: + */ + + for (;;) { + t0 = + Te[0][GETBYTE(s0, 3)] ^ + Te[1][GETBYTE(s1, 2)] ^ + Te[2][GETBYTE(s2, 1)] ^ + Te[3][GETBYTE(s3, 0)] ^ + rk[4]; + t1 = + Te[0][GETBYTE(s1, 3)] ^ + Te[1][GETBYTE(s2, 2)] ^ + Te[2][GETBYTE(s3, 1)] ^ + Te[3][GETBYTE(s0, 0)] ^ + rk[5]; + t2 = + Te[0][GETBYTE(s2, 3)] ^ + Te[1][GETBYTE(s3, 2)] ^ + Te[2][GETBYTE(s0, 1)] ^ + Te[3][GETBYTE(s1, 0)] ^ + rk[6]; + t3 = + Te[0][GETBYTE(s3, 3)] ^ + Te[1][GETBYTE(s0, 2)] ^ + Te[2][GETBYTE(s1, 1)] ^ + Te[3][GETBYTE(s2, 0)] ^ + rk[7]; + + rk += 8; + if (--r == 0) { + break; + } + + s0 = + Te[0][GETBYTE(t0, 3)] ^ + Te[1][GETBYTE(t1, 2)] ^ + Te[2][GETBYTE(t2, 1)] ^ + Te[3][GETBYTE(t3, 0)] ^ + rk[0]; + s1 = + Te[0][GETBYTE(t1, 3)] ^ + Te[1][GETBYTE(t2, 2)] ^ + Te[2][GETBYTE(t3, 1)] ^ + Te[3][GETBYTE(t0, 0)] ^ + rk[1]; + s2 = + Te[0][GETBYTE(t2, 3)] ^ + Te[1][GETBYTE(t3, 2)] ^ + Te[2][GETBYTE(t0, 1)] ^ + Te[3][GETBYTE(t1, 0)] ^ + rk[2]; + s3 = + Te[0][GETBYTE(t3, 3)] ^ + Te[1][GETBYTE(t0, 2)] ^ + Te[2][GETBYTE(t1, 1)] ^ + Te[3][GETBYTE(t2, 0)] ^ + rk[3]; + } + + /* + * apply last round and + * map cipher state to byte array block: + */ + + s0 = + (Te[4][GETBYTE(t0, 3)] & 0xff000000) ^ + (Te[4][GETBYTE(t1, 2)] & 0x00ff0000) ^ + (Te[4][GETBYTE(t2, 1)] & 0x0000ff00) ^ + (Te[4][GETBYTE(t3, 0)] & 0x000000ff) ^ + rk[0]; + s1 = + (Te[4][GETBYTE(t1, 3)] & 0xff000000) ^ + (Te[4][GETBYTE(t2, 2)] & 0x00ff0000) ^ + (Te[4][GETBYTE(t3, 1)] & 0x0000ff00) ^ + (Te[4][GETBYTE(t0, 0)] & 0x000000ff) ^ + rk[1]; + s2 = + (Te[4][GETBYTE(t2, 3)] & 0xff000000) ^ + (Te[4][GETBYTE(t3, 2)] & 0x00ff0000) ^ + (Te[4][GETBYTE(t0, 1)] & 0x0000ff00) ^ + (Te[4][GETBYTE(t1, 0)] & 0x000000ff) ^ + rk[2]; + s3 = + (Te[4][GETBYTE(t3, 3)] & 0xff000000) ^ + (Te[4][GETBYTE(t0, 2)] & 0x00ff0000) ^ + (Te[4][GETBYTE(t1, 1)] & 0x0000ff00) ^ + (Te[4][GETBYTE(t2, 0)] & 0x000000ff) ^ + rk[3]; + + /* write out */ + #ifdef LITTLE_ENDIAN_ORDER + s0 = ByteReverseWord32(s0); + s1 = ByteReverseWord32(s1); + s2 = ByteReverseWord32(s2); + s3 = ByteReverseWord32(s3); + #endif + + XMEMCPY(outBlock, &s0, sizeof(s0)); + XMEMCPY(outBlock + sizeof(s0), &s1, sizeof(s1)); + XMEMCPY(outBlock + 2 * sizeof(s0), &s2, sizeof(s2)); + XMEMCPY(outBlock + 3 * sizeof(s0), &s3, sizeof(s3)); +} + + +static void AesDecrypt(Aes* aes, const byte* inBlock, byte* outBlock) +{ + word32 s0, s1, s2, s3; + word32 t0, t1, t2, t3; + word32 r = aes->rounds >> 1; + + const word32* rk = aes->key; + if (r > 7 || r == 0) { + CYASSL_MSG("AesDecrypt encountered improper key, set it up"); + return; /* stop instead of segfaulting, set up your keys! */ + } + /* + * map byte array block to cipher state + * and add initial round key: + */ + XMEMCPY(&s0, inBlock, sizeof(s0)); + XMEMCPY(&s1, inBlock + sizeof(s0), sizeof(s1)); + XMEMCPY(&s2, inBlock + 2 * sizeof(s0), sizeof(s2)); + XMEMCPY(&s3, inBlock + 3 * sizeof(s0), sizeof(s3)); + + #ifdef LITTLE_ENDIAN_ORDER + s0 = ByteReverseWord32(s0); + s1 = ByteReverseWord32(s1); + s2 = ByteReverseWord32(s2); + s3 = ByteReverseWord32(s3); + #endif + + s0 ^= rk[0]; + s1 ^= rk[1]; + s2 ^= rk[2]; + s3 ^= rk[3]; + + /* + * Nr - 1 full rounds: + */ + + for (;;) { + t0 = + Td[0][GETBYTE(s0, 3)] ^ + Td[1][GETBYTE(s3, 2)] ^ + Td[2][GETBYTE(s2, 1)] ^ + Td[3][GETBYTE(s1, 0)] ^ + rk[4]; + t1 = + Td[0][GETBYTE(s1, 3)] ^ + Td[1][GETBYTE(s0, 2)] ^ + Td[2][GETBYTE(s3, 1)] ^ + Td[3][GETBYTE(s2, 0)] ^ + rk[5]; + t2 = + Td[0][GETBYTE(s2, 3)] ^ + Td[1][GETBYTE(s1, 2)] ^ + Td[2][GETBYTE(s0, 1)] ^ + Td[3][GETBYTE(s3, 0)] ^ + rk[6]; + t3 = + Td[0][GETBYTE(s3, 3)] ^ + Td[1][GETBYTE(s2, 2)] ^ + Td[2][GETBYTE(s1, 1)] ^ + Td[3][GETBYTE(s0, 0)] ^ + rk[7]; + + rk += 8; + if (--r == 0) { + break; + } + + s0 = + Td[0][GETBYTE(t0, 3)] ^ + Td[1][GETBYTE(t3, 2)] ^ + Td[2][GETBYTE(t2, 1)] ^ + Td[3][GETBYTE(t1, 0)] ^ + rk[0]; + s1 = + Td[0][GETBYTE(t1, 3)] ^ + Td[1][GETBYTE(t0, 2)] ^ + Td[2][GETBYTE(t3, 1)] ^ + Td[3][GETBYTE(t2, 0)] ^ + rk[1]; + s2 = + Td[0][GETBYTE(t2, 3)] ^ + Td[1][GETBYTE(t1, 2)] ^ + Td[2][GETBYTE(t0, 1)] ^ + Td[3][GETBYTE(t3, 0)] ^ + rk[2]; + s3 = + Td[0][GETBYTE(t3, 3)] ^ + Td[1][GETBYTE(t2, 2)] ^ + Td[2][GETBYTE(t1, 1)] ^ + Td[3][GETBYTE(t0, 0)] ^ + rk[3]; + } + /* + * apply last round and + * map cipher state to byte array block: + */ + s0 = + (Td[4][GETBYTE(t0, 3)] & 0xff000000) ^ + (Td[4][GETBYTE(t3, 2)] & 0x00ff0000) ^ + (Td[4][GETBYTE(t2, 1)] & 0x0000ff00) ^ + (Td[4][GETBYTE(t1, 0)] & 0x000000ff) ^ + rk[0]; + s1 = + (Td[4][GETBYTE(t1, 3)] & 0xff000000) ^ + (Td[4][GETBYTE(t0, 2)] & 0x00ff0000) ^ + (Td[4][GETBYTE(t3, 1)] & 0x0000ff00) ^ + (Td[4][GETBYTE(t2, 0)] & 0x000000ff) ^ + rk[1]; + s2 = + (Td[4][GETBYTE(t2, 3)] & 0xff000000) ^ + (Td[4][GETBYTE(t1, 2)] & 0x00ff0000) ^ + (Td[4][GETBYTE(t0, 1)] & 0x0000ff00) ^ + (Td[4][GETBYTE(t3, 0)] & 0x000000ff) ^ + rk[2]; + s3 = + (Td[4][GETBYTE(t3, 3)] & 0xff000000) ^ + (Td[4][GETBYTE(t2, 2)] & 0x00ff0000) ^ + (Td[4][GETBYTE(t1, 1)] & 0x0000ff00) ^ + (Td[4][GETBYTE(t0, 0)] & 0x000000ff) ^ + rk[3]; + + /* write out */ + #ifdef LITTLE_ENDIAN_ORDER + s0 = ByteReverseWord32(s0); + s1 = ByteReverseWord32(s1); + s2 = ByteReverseWord32(s2); + s3 = ByteReverseWord32(s3); + #endif + + XMEMCPY(outBlock, &s0, sizeof(s0)); + XMEMCPY(outBlock + sizeof(s0), &s1, sizeof(s1)); + XMEMCPY(outBlock + 2 * sizeof(s0), &s2, sizeof(s2)); + XMEMCPY(outBlock + 3 * sizeof(s0), &s3, sizeof(s3)); +} + + +void AesCbcEncrypt(Aes* aes, byte* out, const byte* in, word32 sz) +{ + word32 blocks = sz / AES_BLOCK_SIZE; + +#ifdef CYASSL_AESNI + if (haveAESNI) { + #ifdef DEBUG_AESNI + printf("about to aes cbc encrypt\n"); + printf("in = %p\n", in); + printf("out = %p\n", out); + printf("aes->key = %p\n", aes->key); + printf("aes->reg = %p\n", aes->reg); + printf("aes->rounds = %d\n", aes->rounds); + printf("sz = %d\n", sz); + #endif + AES_CBC_encrypt(in, out, (byte*)aes->reg, sz, (byte*)aes->key, + aes->rounds); + /* store iv for next call */ + XMEMCPY(aes->reg, out + sz - AES_BLOCK_SIZE, AES_BLOCK_SIZE); + return; + } +#endif + + while (blocks--) { + xorbuf((byte*)aes->reg, in, AES_BLOCK_SIZE); + AesEncrypt(aes, (byte*)aes->reg, (byte*)aes->reg); + XMEMCPY(out, aes->reg, AES_BLOCK_SIZE); + + out += AES_BLOCK_SIZE; + in += AES_BLOCK_SIZE; + } +} + + +void AesCbcDecrypt(Aes* aes, byte* out, const byte* in, word32 sz) +{ + word32 blocks = sz / AES_BLOCK_SIZE; + +#ifdef CYASSL_AESNI + if (haveAESNI) { + #ifdef DEBUG_AESNI + printf("about to aes cbc decrypt\n"); + printf("in = %p\n", in); + printf("out = %p\n", out); + printf("aes->key = %p\n", aes->key); + printf("aes->reg = %p\n", aes->reg); + printf("aes->rounds = %d\n", aes->rounds); + printf("sz = %d\n", sz); + #endif + + /* if input and output same will overwrite input iv */ + XMEMCPY(aes->tmp, in + sz - AES_BLOCK_SIZE, AES_BLOCK_SIZE); + AES_CBC_decrypt(in, out, (byte*)aes->reg, sz, (byte*)aes->key, + aes->rounds); + /* store iv for next call */ + XMEMCPY(aes->reg, aes->tmp, AES_BLOCK_SIZE); + return; + } +#endif + + while (blocks--) { + XMEMCPY(aes->tmp, in, AES_BLOCK_SIZE); + AesDecrypt(aes, (byte*)aes->tmp, out); + xorbuf(out, (byte*)aes->reg, AES_BLOCK_SIZE); + XMEMCPY(aes->reg, aes->tmp, AES_BLOCK_SIZE); + + out += AES_BLOCK_SIZE; + in += AES_BLOCK_SIZE; + } +} + + +#ifdef CYASSL_AES_DIRECT + +/* Allow direct access to one block encrypt */ +void AesEncryptDirect(Aes* aes, byte* out, const byte* in) +{ + return AesEncrypt(aes, in, out); +} + + +/* Allow direct access to one block decrypt */ +void AesDecryptDirect(Aes* aes, byte* out, const byte* in) +{ + return AesDecrypt(aes, in, out); +} + + +#endif /* CYASSL_AES_DIRECT */ + + +#ifdef CYASSL_AES_COUNTER + +/* Increment AES counter */ +static INLINE void IncrementAesCounter(byte* inOutCtr) +{ + int i; + + /* in network byte order so start at end and work back */ + for (i = AES_BLOCK_SIZE - 1; i >= 0; i--) { + if (++inOutCtr[i]) /* we're done unless we overflow */ + return; + } +} + + +void AesCtrEncrypt(Aes* aes, byte* out, const byte* in, word32 sz) +{ + word32 blocks = sz / AES_BLOCK_SIZE; + + while (blocks--) { + AesEncrypt(aes, (byte*)aes->reg, out); + IncrementAesCounter((byte*)aes->reg); + xorbuf(out, in, AES_BLOCK_SIZE); + + out += AES_BLOCK_SIZE; + in += AES_BLOCK_SIZE; + } +} + +#endif /* CYASSL_AES_COUNTER */ + +#endif /* NO_AES */ + diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/aes_asm.s b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/aes_asm.s new file mode 100644 index 000000000..4aa358619 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/aes_asm.s @@ -0,0 +1,484 @@ +/* aes_asm.s + * + * Copyright (C) 2006-2011 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +/* See Intel® Advanced Encryption Standard (AES) Instructions Set White Paper + * by Intel Mobility Group, Israel Development Center, Israel Shay Gueron + */ + + +//AES_CBC_encrypt (const unsigned char *in, +// unsigned char *out, +// unsigned char ivec[16], +// unsigned long length, +// const unsigned char *KS, +// int nr) +.globl AES_CBC_encrypt +AES_CBC_encrypt: +# parameter 1: %rdi +# parameter 2: %rsi +# parameter 3: %rdx +# parameter 4: %rcx +# parameter 5: %r8 +# parameter 6: %r9d +movq %rcx, %r10 +shrq $4, %rcx +shlq $60, %r10 +je NO_PARTS +addq $1, %rcx +NO_PARTS: +subq $16, %rsi +movdqa (%rdx), %xmm1 +LOOP: +pxor (%rdi), %xmm1 +pxor (%r8), %xmm1 +addq $16,%rsi +addq $16,%rdi +cmpl $12, %r9d +aesenc 16(%r8),%xmm1 +aesenc 32(%r8),%xmm1 +aesenc 48(%r8),%xmm1 +aesenc 64(%r8),%xmm1 +aesenc 80(%r8),%xmm1 +aesenc 96(%r8),%xmm1 +aesenc 112(%r8),%xmm1 +aesenc 128(%r8),%xmm1 +aesenc 144(%r8),%xmm1 +movdqa 160(%r8),%xmm2 +jb LAST +cmpl $14, %r9d + +aesenc 160(%r8),%xmm1 +aesenc 176(%r8),%xmm1 +movdqa 192(%r8),%xmm2 +jb LAST +aesenc 192(%r8),%xmm1 +aesenc 208(%r8),%xmm1 +movdqa 224(%r8),%xmm2 +LAST: +decq %rcx +aesenclast %xmm2,%xmm1 +movdqu %xmm1,(%rsi) +jne LOOP +ret + + + +//AES_CBC_decrypt (const unsigned char *in, +// unsigned char *out, +// unsigned char ivec[16], +// unsigned long length, +// const unsigned char *KS, +// int nr) +.globl AES_CBC_decrypt +AES_CBC_decrypt: +# parameter 1: %rdi +# parameter 2: %rsi +# parameter 3: %rdx +# parameter 4: %rcx +# parameter 5: %r8 +# parameter 6: %r9d + +movq %rcx, %r10 +shrq $4, %rcx +shlq $60, %r10 +je DNO_PARTS_4 +addq $1, %rcx +DNO_PARTS_4: +movq %rcx, %r10 +shlq $62, %r10 +shrq $62, %r10 +shrq $2, %rcx +movdqu (%rdx),%xmm5 +je DREMAINDER_4 +subq $64, %rsi +DLOOP_4: +movdqu (%rdi), %xmm1 +movdqu 16(%rdi), %xmm2 +movdqu 32(%rdi), %xmm3 +movdqu 48(%rdi), %xmm4 +movdqa %xmm1, %xmm6 +movdqa %xmm2, %xmm7 +movdqa %xmm3, %xmm8 +movdqa %xmm4, %xmm15 +movdqa (%r8), %xmm9 +movdqa 16(%r8), %xmm10 +movdqa 32(%r8), %xmm11 +movdqa 48(%r8), %xmm12 +pxor %xmm9, %xmm1 +pxor %xmm9, %xmm2 +pxor %xmm9, %xmm3 + +pxor %xmm9, %xmm4 +aesdec %xmm10, %xmm1 +aesdec %xmm10, %xmm2 +aesdec %xmm10, %xmm3 +aesdec %xmm10, %xmm4 +aesdec %xmm11, %xmm1 +aesdec %xmm11, %xmm2 +aesdec %xmm11, %xmm3 +aesdec %xmm11, %xmm4 +aesdec %xmm12, %xmm1 +aesdec %xmm12, %xmm2 +aesdec %xmm12, %xmm3 +aesdec %xmm12, %xmm4 +movdqa 64(%r8), %xmm9 +movdqa 80(%r8), %xmm10 +movdqa 96(%r8), %xmm11 +movdqa 112(%r8), %xmm12 +aesdec %xmm9, %xmm1 +aesdec %xmm9, %xmm2 +aesdec %xmm9, %xmm3 +aesdec %xmm9, %xmm4 +aesdec %xmm10, %xmm1 +aesdec %xmm10, %xmm2 +aesdec %xmm10, %xmm3 +aesdec %xmm10, %xmm4 +aesdec %xmm11, %xmm1 +aesdec %xmm11, %xmm2 +aesdec %xmm11, %xmm3 +aesdec %xmm11, %xmm4 +aesdec %xmm12, %xmm1 +aesdec %xmm12, %xmm2 +aesdec %xmm12, %xmm3 +aesdec %xmm12, %xmm4 +movdqa 128(%r8), %xmm9 +movdqa 144(%r8), %xmm10 +movdqa 160(%r8), %xmm11 +cmpl $12, %r9d +aesdec %xmm9, %xmm1 +aesdec %xmm9, %xmm2 +aesdec %xmm9, %xmm3 +aesdec %xmm9, %xmm4 +aesdec %xmm10, %xmm1 +aesdec %xmm10, %xmm2 +aesdec %xmm10, %xmm3 +aesdec %xmm10, %xmm4 +jb DLAST_4 +movdqa 160(%r8), %xmm9 +movdqa 176(%r8), %xmm10 +movdqa 192(%r8), %xmm11 +cmpl $14, %r9d +aesdec %xmm9, %xmm1 +aesdec %xmm9, %xmm2 +aesdec %xmm9, %xmm3 +aesdec %xmm9, %xmm4 +aesdec %xmm10, %xmm1 +aesdec %xmm10, %xmm2 +aesdec %xmm10, %xmm3 +aesdec %xmm10, %xmm4 +jb DLAST_4 + +movdqa 192(%r8), %xmm9 +movdqa 208(%r8), %xmm10 +movdqa 224(%r8), %xmm11 +aesdec %xmm9, %xmm1 +aesdec %xmm9, %xmm2 +aesdec %xmm9, %xmm3 +aesdec %xmm9, %xmm4 +aesdec %xmm10, %xmm1 +aesdec %xmm10, %xmm2 +aesdec %xmm10, %xmm3 +aesdec %xmm10, %xmm4 +DLAST_4: +addq $64, %rdi +addq $64, %rsi +decq %rcx +aesdeclast %xmm11, %xmm1 +aesdeclast %xmm11, %xmm2 +aesdeclast %xmm11, %xmm3 +aesdeclast %xmm11, %xmm4 +pxor %xmm5 ,%xmm1 +pxor %xmm6 ,%xmm2 +pxor %xmm7 ,%xmm3 +pxor %xmm8 ,%xmm4 +movdqu %xmm1, (%rsi) +movdqu %xmm2, 16(%rsi) +movdqu %xmm3, 32(%rsi) +movdqu %xmm4, 48(%rsi) +movdqa %xmm15,%xmm5 +jne DLOOP_4 +addq $64, %rsi +DREMAINDER_4: +cmpq $0, %r10 +je DEND_4 +DLOOP_4_2: +movdqu (%rdi), %xmm1 +movdqa %xmm1 ,%xmm15 +addq $16, %rdi +pxor (%r8), %xmm1 +movdqu 160(%r8), %xmm2 +cmpl $12, %r9d +aesdec 16(%r8), %xmm1 +aesdec 32(%r8), %xmm1 +aesdec 48(%r8), %xmm1 +aesdec 64(%r8), %xmm1 +aesdec 80(%r8), %xmm1 +aesdec 96(%r8), %xmm1 +aesdec 112(%r8), %xmm1 +aesdec 128(%r8), %xmm1 +aesdec 144(%r8), %xmm1 +jb DLAST_4_2 +movdqu 192(%r8), %xmm2 +cmpl $14, %r9d +aesdec 160(%r8), %xmm1 +aesdec 176(%r8), %xmm1 +jb DLAST_4_2 +movdqu 224(%r8), %xmm2 +aesdec 192(%r8), %xmm1 +aesdec 208(%r8), %xmm1 +DLAST_4_2: +aesdeclast %xmm2, %xmm1 +pxor %xmm5, %xmm1 +movdqa %xmm15, %xmm5 +movdqu %xmm1, (%rsi) + +addq $16, %rsi +decq %r10 +jne DLOOP_4_2 +DEND_4: +ret + + + + +//void AES_128_Key_Expansion(const unsigned char* userkey, +// unsigned char* key_schedule); +.align 16,0x90 +.globl AES_128_Key_Expansion +AES_128_Key_Expansion: +# parameter 1: %rdi +# parameter 2: %rsi +movl $10, 240(%rsi) + +movdqu (%rdi), %xmm1 +movdqa %xmm1, (%rsi) + + +ASSISTS: +aeskeygenassist $1, %xmm1, %xmm2 +call PREPARE_ROUNDKEY_128 +movdqa %xmm1, 16(%rsi) +aeskeygenassist $2, %xmm1, %xmm2 +call PREPARE_ROUNDKEY_128 +movdqa %xmm1, 32(%rsi) +aeskeygenassist $4, %xmm1, %xmm2 +call PREPARE_ROUNDKEY_128 +movdqa %xmm1, 48(%rsi) +aeskeygenassist $8, %xmm1, %xmm2 +call PREPARE_ROUNDKEY_128 +movdqa %xmm1, 64(%rsi) +aeskeygenassist $16, %xmm1, %xmm2 +call PREPARE_ROUNDKEY_128 +movdqa %xmm1, 80(%rsi) +aeskeygenassist $32, %xmm1, %xmm2 +call PREPARE_ROUNDKEY_128 +movdqa %xmm1, 96(%rsi) +aeskeygenassist $64, %xmm1, %xmm2 +call PREPARE_ROUNDKEY_128 +movdqa %xmm1, 112(%rsi) +aeskeygenassist $0x80, %xmm1, %xmm2 +call PREPARE_ROUNDKEY_128 +movdqa %xmm1, 128(%rsi) +aeskeygenassist $0x1b, %xmm1, %xmm2 +call PREPARE_ROUNDKEY_128 +movdqa %xmm1, 144(%rsi) +aeskeygenassist $0x36, %xmm1, %xmm2 +call PREPARE_ROUNDKEY_128 +movdqa %xmm1, 160(%rsi) +ret + +PREPARE_ROUNDKEY_128: +pshufd $255, %xmm2, %xmm2 +movdqa %xmm1, %xmm3 +pslldq $4, %xmm3 +pxor %xmm3, %xmm1 +pslldq $4, %xmm3 +pxor %xmm3, %xmm1 +pslldq $4, %xmm3 +pxor %xmm3, %xmm1 +pxor %xmm2, %xmm1 +ret + + +//void AES_192_Key_Expansion (const unsigned char *userkey, +// unsigned char *key) +.globl AES_192_Key_Expansion +AES_192_Key_Expansion: +# parameter 1: %rdi +# parameter 2: %rsi + +movdqu (%rdi), %xmm1 +movdqu 16(%rdi), %xmm3 +movdqa %xmm1, (%rsi) +movdqa %xmm3, %xmm5 + +aeskeygenassist $0x1, %xmm3, %xmm2 +call PREPARE_ROUNDKEY_192 +shufpd $0, %xmm1, %xmm5 +movdqa %xmm5, 16(%rsi) +movdqa %xmm1, %xmm6 +shufpd $1, %xmm3, %xmm6 +movdqa %xmm6, 32(%rsi) + +aeskeygenassist $0x2, %xmm3, %xmm2 +call PREPARE_ROUNDKEY_192 +movdqa %xmm1, 48(%rsi) +movdqa %xmm3, %xmm5 + +aeskeygenassist $0x4, %xmm3, %xmm2 +call PREPARE_ROUNDKEY_192 +shufpd $0, %xmm1, %xmm5 +movdqa %xmm5, 64(%rsi) +movdqa %xmm1, %xmm6 +shufpd $1, %xmm3, %xmm6 +movdqa %xmm6, 80(%rsi) + +aeskeygenassist $0x8, %xmm3, %xmm2 +call PREPARE_ROUNDKEY_192 +movdqa %xmm1, 96(%rsi) +movdqa %xmm3, %xmm5 + +aeskeygenassist $0x10, %xmm3, %xmm2 +call PREPARE_ROUNDKEY_192 +shufpd $0, %xmm1, %xmm5 +movdqa %xmm5, 112(%rsi) +movdqa %xmm1, %xmm6 +shufpd $1, %xmm3, %xmm6 +movdqa %xmm6, 128(%rsi) + +aeskeygenassist $0x20, %xmm3, %xmm2 +call PREPARE_ROUNDKEY_192 +movdqa %xmm1, 144(%rsi) +movdqa %xmm3, %xmm5 + +aeskeygenassist $0x40, %xmm3, %xmm2 +call PREPARE_ROUNDKEY_192 +shufpd $0, %xmm1, %xmm5 +movdqa %xmm5, 160(%rsi) +movdqa %xmm1, %xmm6 +shufpd $1, %xmm3, %xmm6 +movdqa %xmm6, 176(%rsi) + +aeskeygenassist $0x80, %xmm3, %xmm2 +call PREPARE_ROUNDKEY_192 +movdqa %xmm1, 192(%rsi) +movdqa %xmm3, 208(%rsi) +ret + +PREPARE_ROUNDKEY_192: +pshufd $0x55, %xmm2, %xmm2 +movdqu %xmm1, %xmm4 +pslldq $4, %xmm4 +pxor %xmm4, %xmm1 + +pslldq $4, %xmm4 +pxor %xmm4, %xmm1 +pslldq $4, %xmm4 +pxor %xmm4, %xmm1 +pxor %xmm2, %xmm1 +pshufd $0xff, %xmm1, %xmm2 +movdqu %xmm3, %xmm4 +pslldq $4, %xmm4 +pxor %xmm4, %xmm3 +pxor %xmm2, %xmm3 +ret + + +//void AES_256_Key_Expansion (const unsigned char *userkey, +// unsigned char *key) +.globl AES_256_Key_Expansion +AES_256_Key_Expansion: +# parameter 1: %rdi +# parameter 2: %rsi + +movdqu (%rdi), %xmm1 +movdqu 16(%rdi), %xmm3 +movdqa %xmm1, (%rsi) +movdqa %xmm3, 16(%rsi) + +aeskeygenassist $0x1, %xmm3, %xmm2 +call MAKE_RK256_a +movdqa %xmm1, 32(%rsi) +aeskeygenassist $0x0, %xmm1, %xmm2 +call MAKE_RK256_b +movdqa %xmm3, 48(%rsi) +aeskeygenassist $0x2, %xmm3, %xmm2 +call MAKE_RK256_a +movdqa %xmm1, 64(%rsi) +aeskeygenassist $0x0, %xmm1, %xmm2 +call MAKE_RK256_b +movdqa %xmm3, 80(%rsi) +aeskeygenassist $0x4, %xmm3, %xmm2 +call MAKE_RK256_a +movdqa %xmm1, 96(%rsi) +aeskeygenassist $0x0, %xmm1, %xmm2 +call MAKE_RK256_b +movdqa %xmm3, 112(%rsi) +aeskeygenassist $0x8, %xmm3, %xmm2 +call MAKE_RK256_a +movdqa %xmm1, 128(%rsi) +aeskeygenassist $0x0, %xmm1, %xmm2 +call MAKE_RK256_b +movdqa %xmm3, 144(%rsi) +aeskeygenassist $0x10, %xmm3, %xmm2 +call MAKE_RK256_a +movdqa %xmm1, 160(%rsi) +aeskeygenassist $0x0, %xmm1, %xmm2 +call MAKE_RK256_b +movdqa %xmm3, 176(%rsi) +aeskeygenassist $0x20, %xmm3, %xmm2 +call MAKE_RK256_a +movdqa %xmm1, 192(%rsi) + +aeskeygenassist $0x0, %xmm1, %xmm2 +call MAKE_RK256_b +movdqa %xmm3, 208(%rsi) +aeskeygenassist $0x40, %xmm3, %xmm2 +call MAKE_RK256_a +movdqa %xmm1, 224(%rsi) + +ret + +MAKE_RK256_a: +pshufd $0xff, %xmm2, %xmm2 +movdqa %xmm1, %xmm4 +pslldq $4, %xmm4 +pxor %xmm4, %xmm1 +pslldq $4, %xmm4 +pxor %xmm4, %xmm1 +pslldq $4, %xmm4 +pxor %xmm4, %xmm1 +pxor %xmm2, %xmm1 +ret + +MAKE_RK256_b: +pshufd $0xaa, %xmm2, %xmm2 +movdqa %xmm3, %xmm4 +pslldq $4, %xmm4 +pxor %xmm4, %xmm3 +pslldq $4, %xmm4 +pxor %xmm4, %xmm3 +pslldq $4, %xmm4 +pxor %xmm4, %xmm3 +pxor %xmm2, %xmm3 +ret + diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/arc4.c b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/arc4.c new file mode 100644 index 000000000..cbb132da8 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/arc4.c @@ -0,0 +1,78 @@ +/* arc4.c + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +#ifdef HAVE_CONFIG_H + #include +#endif + +#include + + +void Arc4SetKey(Arc4* arc4, const byte* key, word32 length) +{ + word32 i; + word32 keyIndex = 0, stateIndex = 0; + + arc4->x = 1; + arc4->y = 0; + + for (i = 0; i < ARC4_STATE_SIZE; i++) + arc4->state[i] = (byte)i; + + for (i = 0; i < ARC4_STATE_SIZE; i++) { + word32 a = arc4->state[i]; + stateIndex += key[keyIndex] + a; + stateIndex &= 0xFF; + arc4->state[i] = arc4->state[stateIndex]; + arc4->state[stateIndex] = (byte)a; + + if (++keyIndex >= length) + keyIndex = 0; + } +} + + +static INLINE byte MakeByte(word32* x, word32* y, byte* s) +{ + word32 a = s[*x], b; + *y = (*y+a) & 0xff; + + b = s[*y]; + s[*x] = (byte)b; + s[*y] = (byte)a; + *x = (*x+1) & 0xff; + + return s[(a+b) & 0xff]; +} + + +void Arc4Process(Arc4* arc4, byte* out, const byte* in, word32 length) +{ + word32 x = arc4->x; + word32 y = arc4->y; + + while(length--) + *out++ = *in++ ^ MakeByte(&x, &y, arc4->state); + + arc4->x = (byte)x; + arc4->y = (byte)y; +} + diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/asm.c b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/asm.c new file mode 100644 index 000000000..008322e90 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/asm.c @@ -0,0 +1,1305 @@ +/* asm.c + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +#ifdef HAVE_CONFIG_H + #include +#endif + +/* + * Based on public domain TomsFastMath 0.10 by Tom St Denis, tomstdenis@iahu.ca, + * http://math.libtomcrypt.com + */ + + +/******************************************************************/ +/* fp_montgomery_reduce.c asm or generic */ +#if defined(TFM_X86) && !defined(TFM_SSE2) +/* x86-32 code */ + +#define MONT_START +#define MONT_FINI +#define LOOP_END +#define LOOP_START \ + mu = c[x] * mp + +#define INNERMUL \ +asm( \ + "movl %5,%%eax \n\t" \ + "mull %4 \n\t" \ + "addl %1,%%eax \n\t" \ + "adcl $0,%%edx \n\t" \ + "addl %%eax,%0 \n\t" \ + "adcl $0,%%edx \n\t" \ + "movl %%edx,%1 \n\t" \ +:"=g"(_c[LO]), "=r"(cy) \ +:"0"(_c[LO]), "1"(cy), "g"(mu), "g"(*tmpm++) \ +: "%eax", "%edx", "%cc") + +#define PROPCARRY \ +asm( \ + "addl %1,%0 \n\t" \ + "setb %%al \n\t" \ + "movzbl %%al,%1 \n\t" \ +:"=g"(_c[LO]), "=r"(cy) \ +:"0"(_c[LO]), "1"(cy) \ +: "%eax", "%cc") + +/******************************************************************/ +#elif defined(TFM_X86_64) +/* x86-64 code */ + +#define MONT_START +#define MONT_FINI +#define LOOP_END +#define LOOP_START \ + mu = c[x] * mp + +#define INNERMUL \ +asm( \ + "movq %5,%%rax \n\t" \ + "mulq %4 \n\t" \ + "addq %1,%%rax \n\t" \ + "adcq $0,%%rdx \n\t" \ + "addq %%rax,%0 \n\t" \ + "adcq $0,%%rdx \n\t" \ + "movq %%rdx,%1 \n\t" \ +:"=g"(_c[LO]), "=r"(cy) \ +:"0"(_c[LO]), "1"(cy), "r"(mu), "r"(*tmpm++) \ +: "%rax", "%rdx", "%cc") + +#define INNERMUL8 \ + asm( \ + "movq 0(%5),%%rax \n\t" \ + "movq 0(%2),%%r10 \n\t" \ + "movq 0x8(%5),%%r11 \n\t" \ + "mulq %4 \n\t" \ + "addq %%r10,%%rax \n\t" \ + "adcq $0,%%rdx \n\t" \ + "movq 0x8(%2),%%r10 \n\t" \ + "addq %3,%%rax \n\t" \ + "adcq $0,%%rdx \n\t" \ + "movq %%rax,0(%0) \n\t" \ + "movq %%rdx,%1 \n\t" \ + \ + "movq %%r11,%%rax \n\t" \ + "movq 0x10(%5),%%r11 \n\t" \ + "mulq %4 \n\t" \ + "addq %%r10,%%rax \n\t" \ + "adcq $0,%%rdx \n\t" \ + "movq 0x10(%2),%%r10 \n\t" \ + "addq %3,%%rax \n\t" \ + "adcq $0,%%rdx \n\t" \ + "movq %%rax,0x8(%0) \n\t" \ + "movq %%rdx,%1 \n\t" \ + \ + "movq %%r11,%%rax \n\t" \ + "movq 0x18(%5),%%r11 \n\t" \ + "mulq %4 \n\t" \ + "addq %%r10,%%rax \n\t" \ + "adcq $0,%%rdx \n\t" \ + "movq 0x18(%2),%%r10 \n\t" \ + "addq %3,%%rax \n\t" \ + "adcq $0,%%rdx \n\t" \ + "movq %%rax,0x10(%0) \n\t" \ + "movq %%rdx,%1 \n\t" \ + \ + "movq %%r11,%%rax \n\t" \ + "movq 0x20(%5),%%r11 \n\t" \ + "mulq %4 \n\t" \ + "addq %%r10,%%rax \n\t" \ + "adcq $0,%%rdx \n\t" \ + "movq 0x20(%2),%%r10 \n\t" \ + "addq %3,%%rax \n\t" \ + "adcq $0,%%rdx \n\t" \ + "movq %%rax,0x18(%0) \n\t" \ + "movq %%rdx,%1 \n\t" \ + \ + "movq %%r11,%%rax \n\t" \ + "movq 0x28(%5),%%r11 \n\t" \ + "mulq %4 \n\t" \ + "addq %%r10,%%rax \n\t" \ + "adcq $0,%%rdx \n\t" \ + "movq 0x28(%2),%%r10 \n\t" \ + "addq %3,%%rax \n\t" \ + "adcq $0,%%rdx \n\t" \ + "movq %%rax,0x20(%0) \n\t" \ + "movq %%rdx,%1 \n\t" \ + \ + "movq %%r11,%%rax \n\t" \ + "movq 0x30(%5),%%r11 \n\t" \ + "mulq %4 \n\t" \ + "addq %%r10,%%rax \n\t" \ + "adcq $0,%%rdx \n\t" \ + "movq 0x30(%2),%%r10 \n\t" \ + "addq %3,%%rax \n\t" \ + "adcq $0,%%rdx \n\t" \ + "movq %%rax,0x28(%0) \n\t" \ + "movq %%rdx,%1 \n\t" \ + \ + "movq %%r11,%%rax \n\t" \ + "movq 0x38(%5),%%r11 \n\t" \ + "mulq %4 \n\t" \ + "addq %%r10,%%rax \n\t" \ + "adcq $0,%%rdx \n\t" \ + "movq 0x38(%2),%%r10 \n\t" \ + "addq %3,%%rax \n\t" \ + "adcq $0,%%rdx \n\t" \ + "movq %%rax,0x30(%0) \n\t" \ + "movq %%rdx,%1 \n\t" \ + \ + "movq %%r11,%%rax \n\t" \ + "mulq %4 \n\t" \ + "addq %%r10,%%rax \n\t" \ + "adcq $0,%%rdx \n\t" \ + "addq %3,%%rax \n\t" \ + "adcq $0,%%rdx \n\t" \ + "movq %%rax,0x38(%0) \n\t" \ + "movq %%rdx,%1 \n\t" \ + \ +:"=r"(_c), "=r"(cy) \ +: "0"(_c), "1"(cy), "g"(mu), "r"(tmpm)\ +: "%rax", "%rdx", "%r10", "%r11", "%cc") + + +#define PROPCARRY \ +asm( \ + "addq %1,%0 \n\t" \ + "setb %%al \n\t" \ + "movzbq %%al,%1 \n\t" \ +:"=g"(_c[LO]), "=r"(cy) \ +:"0"(_c[LO]), "1"(cy) \ +: "%rax", "%cc") + +/******************************************************************/ +#elif defined(TFM_SSE2) +/* SSE2 code (assumes 32-bit fp_digits) */ +/* XMM register assignments: + * xmm0 *tmpm++, then Mu * (*tmpm++) + * xmm1 c[x], then Mu + * xmm2 mp + * xmm3 cy + * xmm4 _c[LO] + */ + +#define MONT_START \ + asm("movd %0,%%mm2"::"g"(mp)) + +#define MONT_FINI \ + asm("emms") + +#define LOOP_START \ +asm( \ +"movd %0,%%mm1 \n\t" \ +"pxor %%mm3,%%mm3 \n\t" \ +"pmuludq %%mm2,%%mm1 \n\t" \ +:: "g"(c[x])) + +/* pmuludq on mmx registers does a 32x32->64 multiply. */ +#define INNERMUL \ +asm( \ + "movd %1,%%mm4 \n\t" \ + "movd %2,%%mm0 \n\t" \ + "paddq %%mm4,%%mm3 \n\t" \ + "pmuludq %%mm1,%%mm0 \n\t" \ + "paddq %%mm0,%%mm3 \n\t" \ + "movd %%mm3,%0 \n\t" \ + "psrlq $32, %%mm3 \n\t" \ +:"=g"(_c[LO]) : "0"(_c[LO]), "g"(*tmpm++) ); + +#define INNERMUL8 \ +asm( \ + "movd 0(%1),%%mm4 \n\t" \ + "movd 0(%2),%%mm0 \n\t" \ + "paddq %%mm4,%%mm3 \n\t" \ + "pmuludq %%mm1,%%mm0 \n\t" \ + "movd 4(%2),%%mm5 \n\t" \ + "paddq %%mm0,%%mm3 \n\t" \ + "movd 4(%1),%%mm6 \n\t" \ + "movd %%mm3,0(%0) \n\t" \ + "psrlq $32, %%mm3 \n\t" \ +\ + "paddq %%mm6,%%mm3 \n\t" \ + "pmuludq %%mm1,%%mm5 \n\t" \ + "movd 8(%2),%%mm6 \n\t" \ + "paddq %%mm5,%%mm3 \n\t" \ + "movd 8(%1),%%mm7 \n\t" \ + "movd %%mm3,4(%0) \n\t" \ + "psrlq $32, %%mm3 \n\t" \ +\ + "paddq %%mm7,%%mm3 \n\t" \ + "pmuludq %%mm1,%%mm6 \n\t" \ + "movd 12(%2),%%mm7 \n\t" \ + "paddq %%mm6,%%mm3 \n\t" \ + "movd 12(%1),%%mm5 \n\t" \ + "movd %%mm3,8(%0) \n\t" \ + "psrlq $32, %%mm3 \n\t" \ +\ + "paddq %%mm5,%%mm3 \n\t" \ + "pmuludq %%mm1,%%mm7 \n\t" \ + "movd 16(%2),%%mm5 \n\t" \ + "paddq %%mm7,%%mm3 \n\t" \ + "movd 16(%1),%%mm6 \n\t" \ + "movd %%mm3,12(%0) \n\t" \ + "psrlq $32, %%mm3 \n\t" \ +\ + "paddq %%mm6,%%mm3 \n\t" \ + "pmuludq %%mm1,%%mm5 \n\t" \ + "movd 20(%2),%%mm6 \n\t" \ + "paddq %%mm5,%%mm3 \n\t" \ + "movd 20(%1),%%mm7 \n\t" \ + "movd %%mm3,16(%0) \n\t" \ + "psrlq $32, %%mm3 \n\t" \ +\ + "paddq %%mm7,%%mm3 \n\t" \ + "pmuludq %%mm1,%%mm6 \n\t" \ + "movd 24(%2),%%mm7 \n\t" \ + "paddq %%mm6,%%mm3 \n\t" \ + "movd 24(%1),%%mm5 \n\t" \ + "movd %%mm3,20(%0) \n\t" \ + "psrlq $32, %%mm3 \n\t" \ +\ + "paddq %%mm5,%%mm3 \n\t" \ + "pmuludq %%mm1,%%mm7 \n\t" \ + "movd 28(%2),%%mm5 \n\t" \ + "paddq %%mm7,%%mm3 \n\t" \ + "movd 28(%1),%%mm6 \n\t" \ + "movd %%mm3,24(%0) \n\t" \ + "psrlq $32, %%mm3 \n\t" \ +\ + "paddq %%mm6,%%mm3 \n\t" \ + "pmuludq %%mm1,%%mm5 \n\t" \ + "paddq %%mm5,%%mm3 \n\t" \ + "movd %%mm3,28(%0) \n\t" \ + "psrlq $32, %%mm3 \n\t" \ +:"=r"(_c) : "0"(_c), "r"(tmpm) ); + +/* TAO switched tmpm from "g" to "r" after gcc tried to index the indexed stack + pointer */ + +#define LOOP_END \ +asm( "movd %%mm3,%0 \n" :"=r"(cy)) + +#define PROPCARRY \ +asm( \ + "addl %1,%0 \n\t" \ + "setb %%al \n\t" \ + "movzbl %%al,%1 \n\t" \ +:"=g"(_c[LO]), "=r"(cy) \ +:"0"(_c[LO]), "1"(cy) \ +: "%eax", "%cc") + +/******************************************************************/ +#elif defined(TFM_ARM) + /* ARMv4 code */ + +#define MONT_START +#define MONT_FINI +#define LOOP_END +#define LOOP_START \ + mu = c[x] * mp + +#define INNERMUL \ +asm( \ + " LDR r0,%1 \n\t" \ + " ADDS r0,r0,%0 \n\t" \ + " MOVCS %0,#1 \n\t" \ + " MOVCC %0,#0 \n\t" \ + " UMLAL r0,%0,%3,%4 \n\t" \ + " STR r0,%1 \n\t" \ +:"=r"(cy),"=m"(_c[0]):"0"(cy),"r"(mu),"r"(*tmpm++),"1"(_c[0]):"r0","%cc"); + +#define PROPCARRY \ +asm( \ + " LDR r0,%1 \n\t" \ + " ADDS r0,r0,%0 \n\t" \ + " STR r0,%1 \n\t" \ + " MOVCS %0,#1 \n\t" \ + " MOVCC %0,#0 \n\t" \ +:"=r"(cy),"=m"(_c[0]):"0"(cy),"1"(_c[0]):"r0","%cc"); + +#elif defined(TFM_PPC32) + +/* PPC32 */ +#define MONT_START +#define MONT_FINI +#define LOOP_END +#define LOOP_START \ + mu = c[x] * mp + +#define INNERMUL \ +asm( \ + " mullw 16,%3,%4 \n\t" \ + " mulhwu 17,%3,%4 \n\t" \ + " addc 16,16,%0 \n\t" \ + " addze 17,17 \n\t" \ + " lwz 18,%1 \n\t" \ + " addc 16,16,18 \n\t" \ + " addze %0,17 \n\t" \ + " stw 16,%1 \n\t" \ +:"=r"(cy),"=m"(_c[0]):"0"(cy),"r"(mu),"r"(tmpm[0]),"1"(_c[0]):"16", "17", "18","%cc"); ++tmpm; + +#define PROPCARRY \ +asm( \ + " lwz 16,%1 \n\t" \ + " addc 16,16,%0 \n\t" \ + " stw 16,%1 \n\t" \ + " xor %0,%0,%0 \n\t" \ + " addze %0,%0 \n\t" \ +:"=r"(cy),"=m"(_c[0]):"0"(cy),"1"(_c[0]):"16","%cc"); + +#elif defined(TFM_PPC64) + +/* PPC64 */ +#define MONT_START +#define MONT_FINI +#define LOOP_END +#define LOOP_START \ + mu = c[x] * mp + +#define INNERMUL \ +asm( \ + " mulld 16,%3,%4 \n\t" \ + " mulhdu 17,%3,%4 \n\t" \ + " addc 16,16,%0 \n\t" \ + " addze 17,17 \n\t" \ + " ldx 18,0,%1 \n\t" \ + " addc 16,16,18 \n\t" \ + " addze %0,17 \n\t" \ + " sdx 16,0,%1 \n\t" \ +:"=r"(cy),"=m"(_c[0]):"0"(cy),"r"(mu),"r"(tmpm[0]),"1"(_c[0]):"16", "17", "18","%cc"); ++tmpm; + +#define PROPCARRY \ +asm( \ + " ldx 16,0,%1 \n\t" \ + " addc 16,16,%0 \n\t" \ + " sdx 16,0,%1 \n\t" \ + " xor %0,%0,%0 \n\t" \ + " addze %0,%0 \n\t" \ +:"=r"(cy),"=m"(_c[0]):"0"(cy),"1"(_c[0]):"16","%cc"); + +/******************************************************************/ + +#elif defined(TFM_AVR32) + +/* AVR32 */ +#define MONT_START +#define MONT_FINI +#define LOOP_END +#define LOOP_START \ + mu = c[x] * mp + +#define INNERMUL \ +asm( \ + " ld.w r2,%1 \n\t" \ + " add r2,%0 \n\t" \ + " eor r3,r3 \n\t" \ + " acr r3 \n\t" \ + " macu.d r2,%3,%4 \n\t" \ + " st.w %1,r2 \n\t" \ + " mov %0,r3 \n\t" \ +:"=r"(cy),"=r"(_c):"0"(cy),"r"(mu),"r"(*tmpm++),"1"(_c):"r2","r3"); + +#define PROPCARRY \ +asm( \ + " ld.w r2,%1 \n\t" \ + " add r2,%0 \n\t" \ + " st.w %1,r2 \n\t" \ + " eor %0,%0 \n\t" \ + " acr %0 \n\t" \ +:"=r"(cy),"=r"(&_c[0]):"0"(cy),"1"(&_c[0]):"r2","%cc"); + +#else + +/* ISO C code */ +#define MONT_START +#define MONT_FINI +#define LOOP_END +#define LOOP_START \ + mu = c[x] * mp + +#define INNERMUL \ + do { fp_word t; \ + _c[0] = t = ((fp_word)_c[0] + (fp_word)cy) + \ + (((fp_word)mu) * ((fp_word)*tmpm++)); \ + cy = (t >> DIGIT_BIT); \ + } while (0) + +#define PROPCARRY \ + do { fp_digit t = _c[0] += cy; cy = (t < cy); } while (0) + +#endif +/******************************************************************/ + + +#define LO 0 +/* end fp_montogomery_reduce.c asm */ + + +/* start fp_sqr_comba.c asm */ +#if defined(TFM_X86) + +/* x86-32 optimized */ + +#define COMBA_START + +#define CLEAR_CARRY \ + c0 = c1 = c2 = 0; + +#define COMBA_STORE(x) \ + x = c0; + +#define COMBA_STORE2(x) \ + x = c1; + +#define CARRY_FORWARD \ + do { c0 = c1; c1 = c2; c2 = 0; } while (0); + +#define COMBA_FINI + +#define SQRADD(i, j) \ +asm( \ + "movl %6,%%eax \n\t" \ + "mull %%eax \n\t" \ + "addl %%eax,%0 \n\t" \ + "adcl %%edx,%1 \n\t" \ + "adcl $0,%2 \n\t" \ + :"=r"(c0), "=r"(c1), "=r"(c2): "0"(c0), "1"(c1), "2"(c2), "m"(i) :"%eax","%edx","%cc"); + +#define SQRADD2(i, j) \ +asm( \ + "movl %6,%%eax \n\t" \ + "mull %7 \n\t" \ + "addl %%eax,%0 \n\t" \ + "adcl %%edx,%1 \n\t" \ + "adcl $0,%2 \n\t" \ + "addl %%eax,%0 \n\t" \ + "adcl %%edx,%1 \n\t" \ + "adcl $0,%2 \n\t" \ + :"=r"(c0), "=r"(c1), "=r"(c2): "0"(c0), "1"(c1), "2"(c2), "m"(i), "m"(j) :"%eax","%edx", "%cc"); + +#define SQRADDSC(i, j) \ +asm( \ + "movl %3,%%eax \n\t" \ + "mull %4 \n\t" \ + "movl %%eax,%0 \n\t" \ + "movl %%edx,%1 \n\t" \ + "xorl %2,%2 \n\t" \ + :"=r"(sc0), "=r"(sc1), "=r"(sc2): "g"(i), "g"(j) :"%eax","%edx","%cc"); + +/* TAO removed sc0,1,2 as input to remove warning so %6,%7 become %3,%4 */ + +#define SQRADDAC(i, j) \ +asm( \ + "movl %6,%%eax \n\t" \ + "mull %7 \n\t" \ + "addl %%eax,%0 \n\t" \ + "adcl %%edx,%1 \n\t" \ + "adcl $0,%2 \n\t" \ + :"=r"(sc0), "=r"(sc1), "=r"(sc2): "0"(sc0), "1"(sc1), "2"(sc2), "g"(i), "g"(j) :"%eax","%edx","%cc"); + +#define SQRADDDB \ +asm( \ + "addl %6,%0 \n\t" \ + "adcl %7,%1 \n\t" \ + "adcl %8,%2 \n\t" \ + "addl %6,%0 \n\t" \ + "adcl %7,%1 \n\t" \ + "adcl %8,%2 \n\t" \ + :"=r"(c0), "=r"(c1), "=r"(c2) : "0"(c0), "1"(c1), "2"(c2), "r"(sc0), "r"(sc1), "r"(sc2) : "%cc"); + +#elif defined(TFM_X86_64) +/* x86-64 optimized */ + +#define COMBA_START + +#define CLEAR_CARRY \ + c0 = c1 = c2 = 0; + +#define COMBA_STORE(x) \ + x = c0; + +#define COMBA_STORE2(x) \ + x = c1; + +#define CARRY_FORWARD \ + do { c0 = c1; c1 = c2; c2 = 0; } while (0); + +#define COMBA_FINI + +#define SQRADD(i, j) \ +asm( \ + "movq %6,%%rax \n\t" \ + "mulq %%rax \n\t" \ + "addq %%rax,%0 \n\t" \ + "adcq %%rdx,%1 \n\t" \ + "adcq $0,%2 \n\t" \ + :"=r"(c0), "=r"(c1), "=r"(c2): "0"(c0), "1"(c1), "2"(c2), "g"(i) :"%rax","%rdx","%cc"); + +#define SQRADD2(i, j) \ +asm( \ + "movq %6,%%rax \n\t" \ + "mulq %7 \n\t" \ + "addq %%rax,%0 \n\t" \ + "adcq %%rdx,%1 \n\t" \ + "adcq $0,%2 \n\t" \ + "addq %%rax,%0 \n\t" \ + "adcq %%rdx,%1 \n\t" \ + "adcq $0,%2 \n\t" \ + :"=r"(c0), "=r"(c1), "=r"(c2): "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) :"%rax","%rdx","%cc"); + +#define SQRADDSC(i, j) \ +asm( \ + "movq %3,%%rax \n\t" \ + "mulq %4 \n\t" \ + "movq %%rax,%0 \n\t" \ + "movq %%rdx,%1 \n\t" \ + "xorq %2,%2 \n\t" \ + :"=r"(sc0), "=r"(sc1), "=r"(sc2): "g"(i), "g"(j) :"%rax","%rdx","%cc"); + +/* TAO removed sc0,1,2 as input to remove warning so %6,%7 become %3,%4 */ + +#define SQRADDAC(i, j) \ +asm( \ + "movq %6,%%rax \n\t" \ + "mulq %7 \n\t" \ + "addq %%rax,%0 \n\t" \ + "adcq %%rdx,%1 \n\t" \ + "adcq $0,%2 \n\t" \ + :"=r"(sc0), "=r"(sc1), "=r"(sc2): "0"(sc0), "1"(sc1), "2"(sc2), "g"(i), "g"(j) :"%rax","%rdx","%cc"); + +#define SQRADDDB \ +asm( \ + "addq %6,%0 \n\t" \ + "adcq %7,%1 \n\t" \ + "adcq %8,%2 \n\t" \ + "addq %6,%0 \n\t" \ + "adcq %7,%1 \n\t" \ + "adcq %8,%2 \n\t" \ + :"=r"(c0), "=r"(c1), "=r"(c2) : "0"(c0), "1"(c1), "2"(c2), "r"(sc0), "r"(sc1), "r"(sc2) : "%cc"); + +#elif defined(TFM_SSE2) + +/* SSE2 Optimized */ +#define COMBA_START + +#define CLEAR_CARRY \ + c0 = c1 = c2 = 0; + +#define COMBA_STORE(x) \ + x = c0; + +#define COMBA_STORE2(x) \ + x = c1; + +#define CARRY_FORWARD \ + do { c0 = c1; c1 = c2; c2 = 0; } while (0); + +#define COMBA_FINI \ + asm("emms"); + +#define SQRADD(i, j) \ +asm( \ + "movd %6,%%mm0 \n\t" \ + "pmuludq %%mm0,%%mm0\n\t" \ + "movd %%mm0,%%eax \n\t" \ + "psrlq $32,%%mm0 \n\t" \ + "addl %%eax,%0 \n\t" \ + "movd %%mm0,%%eax \n\t" \ + "adcl %%eax,%1 \n\t" \ + "adcl $0,%2 \n\t" \ + :"=r"(c0), "=r"(c1), "=r"(c2): "0"(c0), "1"(c1), "2"(c2), "m"(i) :"%eax","%cc"); + +#define SQRADD2(i, j) \ +asm( \ + "movd %6,%%mm0 \n\t" \ + "movd %7,%%mm1 \n\t" \ + "pmuludq %%mm1,%%mm0\n\t" \ + "movd %%mm0,%%eax \n\t" \ + "psrlq $32,%%mm0 \n\t" \ + "movd %%mm0,%%edx \n\t" \ + "addl %%eax,%0 \n\t" \ + "adcl %%edx,%1 \n\t" \ + "adcl $0,%2 \n\t" \ + "addl %%eax,%0 \n\t" \ + "adcl %%edx,%1 \n\t" \ + "adcl $0,%2 \n\t" \ + :"=r"(c0), "=r"(c1), "=r"(c2): "0"(c0), "1"(c1), "2"(c2), "m"(i), "m"(j) :"%eax","%edx","%cc"); + +#define SQRADDSC(i, j) \ +asm( \ + "movd %3,%%mm0 \n\t" \ + "movd %4,%%mm1 \n\t" \ + "pmuludq %%mm1,%%mm0\n\t" \ + "movd %%mm0,%0 \n\t" \ + "psrlq $32,%%mm0 \n\t" \ + "movd %%mm0,%1 \n\t" \ + "xorl %2,%2 \n\t" \ + :"=r"(sc0), "=r"(sc1), "=r"(sc2): "m"(i), "m"(j)); + +/* TAO removed sc0,1,2 as input to remove warning so %6,%7 become %3,%4 */ + +#define SQRADDAC(i, j) \ +asm( \ + "movd %6,%%mm0 \n\t" \ + "movd %7,%%mm1 \n\t" \ + "pmuludq %%mm1,%%mm0\n\t" \ + "movd %%mm0,%%eax \n\t" \ + "psrlq $32,%%mm0 \n\t" \ + "movd %%mm0,%%edx \n\t" \ + "addl %%eax,%0 \n\t" \ + "adcl %%edx,%1 \n\t" \ + "adcl $0,%2 \n\t" \ + :"=r"(sc0), "=r"(sc1), "=r"(sc2): "0"(sc0), "1"(sc1), "2"(sc2), "m"(i), "m"(j) :"%eax","%edx","%cc"); + +#define SQRADDDB \ +asm( \ + "addl %6,%0 \n\t" \ + "adcl %7,%1 \n\t" \ + "adcl %8,%2 \n\t" \ + "addl %6,%0 \n\t" \ + "adcl %7,%1 \n\t" \ + "adcl %8,%2 \n\t" \ + :"=r"(c0), "=r"(c1), "=r"(c2) : "0"(c0), "1"(c1), "2"(c2), "r"(sc0), "r"(sc1), "r"(sc2) : "%cc"); + +#elif defined(TFM_ARM) + +/* ARM code */ + +#define COMBA_START + +#define CLEAR_CARRY \ + c0 = c1 = c2 = 0; + +#define COMBA_STORE(x) \ + x = c0; + +#define COMBA_STORE2(x) \ + x = c1; + +#define CARRY_FORWARD \ + do { c0 = c1; c1 = c2; c2 = 0; } while (0); + +#define COMBA_FINI + +/* multiplies point i and j, updates carry "c1" and digit c2 */ +#define SQRADD(i, j) \ +asm( \ +" UMULL r0,r1,%6,%6 \n\t" \ +" ADDS %0,%0,r0 \n\t" \ +" ADCS %1,%1,r1 \n\t" \ +" ADC %2,%2,#0 \n\t" \ +:"=r"(c0), "=r"(c1), "=r"(c2) : "0"(c0), "1"(c1), "2"(c2), "r"(i) : "r0", "r1", "%cc"); + +/* for squaring some of the terms are doubled... */ +#define SQRADD2(i, j) \ +asm( \ +" UMULL r0,r1,%6,%7 \n\t" \ +" ADDS %0,%0,r0 \n\t" \ +" ADCS %1,%1,r1 \n\t" \ +" ADC %2,%2,#0 \n\t" \ +" ADDS %0,%0,r0 \n\t" \ +" ADCS %1,%1,r1 \n\t" \ +" ADC %2,%2,#0 \n\t" \ +:"=r"(c0), "=r"(c1), "=r"(c2) : "0"(c0), "1"(c1), "2"(c2), "r"(i), "r"(j) : "r0", "r1", "%cc"); + +#define SQRADDSC(i, j) \ +asm( \ +" UMULL %0,%1,%6,%7 \n\t" \ +" SUB %2,%2,%2 \n\t" \ +:"=r"(sc0), "=r"(sc1), "=r"(sc2) : "0"(sc0), "1"(sc1), "2"(sc2), "r"(i), "r"(j) : "%cc"); + +#define SQRADDAC(i, j) \ +asm( \ +" UMULL r0,r1,%6,%7 \n\t" \ +" ADDS %0,%0,r0 \n\t" \ +" ADCS %1,%1,r1 \n\t" \ +" ADC %2,%2,#0 \n\t" \ +:"=r"(sc0), "=r"(sc1), "=r"(sc2) : "0"(sc0), "1"(sc1), "2"(sc2), "r"(i), "r"(j) : "r0", "r1", "%cc"); + +#define SQRADDDB \ +asm( \ +" ADDS %0,%0,%3 \n\t" \ +" ADCS %1,%1,%4 \n\t" \ +" ADC %2,%2,%5 \n\t" \ +" ADDS %0,%0,%3 \n\t" \ +" ADCS %1,%1,%4 \n\t" \ +" ADC %2,%2,%5 \n\t" \ +:"=r"(c0), "=r"(c1), "=r"(c2) : "r"(sc0), "r"(sc1), "r"(sc2), "0"(c0), "1"(c1), "2"(c2) : "%cc"); + +#elif defined(TFM_PPC32) + +/* PPC32 */ + +#define COMBA_START + +#define CLEAR_CARRY \ + c0 = c1 = c2 = 0; + +#define COMBA_STORE(x) \ + x = c0; + +#define COMBA_STORE2(x) \ + x = c1; + +#define CARRY_FORWARD \ + do { c0 = c1; c1 = c2; c2 = 0; } while (0); + +#define COMBA_FINI + +/* multiplies point i and j, updates carry "c1" and digit c2 */ +#define SQRADD(i, j) \ +asm( \ + " mullw 16,%6,%6 \n\t" \ + " addc %0,%0,16 \n\t" \ + " mulhwu 16,%6,%6 \n\t" \ + " adde %1,%1,16 \n\t" \ + " addze %2,%2 \n\t" \ +:"=r"(c0), "=r"(c1), "=r"(c2):"0"(c0), "1"(c1), "2"(c2), "r"(i):"16","%cc"); + +/* for squaring some of the terms are doubled... */ +#define SQRADD2(i, j) \ +asm( \ + " mullw 16,%6,%7 \n\t" \ + " mulhwu 17,%6,%7 \n\t" \ + " addc %0,%0,16 \n\t" \ + " adde %1,%1,17 \n\t" \ + " addze %2,%2 \n\t" \ + " addc %0,%0,16 \n\t" \ + " adde %1,%1,17 \n\t" \ + " addze %2,%2 \n\t" \ +:"=r"(c0), "=r"(c1), "=r"(c2):"0"(c0), "1"(c1), "2"(c2), "r"(i), "r"(j):"16", "17","%cc"); + +#define SQRADDSC(i, j) \ +asm( \ + " mullw %0,%6,%7 \n\t" \ + " mulhwu %1,%6,%7 \n\t" \ + " xor %2,%2,%2 \n\t" \ +:"=r"(sc0), "=r"(sc1), "=r"(sc2):"0"(sc0), "1"(sc1), "2"(sc2), "r"(i),"r"(j) : "%cc"); + +#define SQRADDAC(i, j) \ +asm( \ + " mullw 16,%6,%7 \n\t" \ + " addc %0,%0,16 \n\t" \ + " mulhwu 16,%6,%7 \n\t" \ + " adde %1,%1,16 \n\t" \ + " addze %2,%2 \n\t" \ +:"=r"(sc0), "=r"(sc1), "=r"(sc2):"0"(sc0), "1"(sc1), "2"(sc2), "r"(i), "r"(j):"16", "%cc"); + +#define SQRADDDB \ +asm( \ + " addc %0,%0,%3 \n\t" \ + " adde %1,%1,%4 \n\t" \ + " adde %2,%2,%5 \n\t" \ + " addc %0,%0,%3 \n\t" \ + " adde %1,%1,%4 \n\t" \ + " adde %2,%2,%5 \n\t" \ +:"=r"(c0), "=r"(c1), "=r"(c2) : "r"(sc0), "r"(sc1), "r"(sc2), "0"(c0), "1"(c1), "2"(c2) : "%cc"); + +#elif defined(TFM_PPC64) +/* PPC64 */ + +#define COMBA_START + +#define CLEAR_CARRY \ + c0 = c1 = c2 = 0; + +#define COMBA_STORE(x) \ + x = c0; + +#define COMBA_STORE2(x) \ + x = c1; + +#define CARRY_FORWARD \ + do { c0 = c1; c1 = c2; c2 = 0; } while (0); + +#define COMBA_FINI + +/* multiplies point i and j, updates carry "c1" and digit c2 */ +#define SQRADD(i, j) \ +asm( \ + " mulld 16,%6,%6 \n\t" \ + " addc %0,%0,16 \n\t" \ + " mulhdu 16,%6,%6 \n\t" \ + " adde %1,%1,16 \n\t" \ + " addze %2,%2 \n\t" \ +:"=r"(c0), "=r"(c1), "=r"(c2):"0"(c0), "1"(c1), "2"(c2), "r"(i):"16","%cc"); + +/* for squaring some of the terms are doubled... */ +#define SQRADD2(i, j) \ +asm( \ + " mulld 16,%6,%7 \n\t" \ + " mulhdu 17,%6,%7 \n\t" \ + " addc %0,%0,16 \n\t" \ + " adde %1,%1,17 \n\t" \ + " addze %2,%2 \n\t" \ + " addc %0,%0,16 \n\t" \ + " adde %1,%1,17 \n\t" \ + " addze %2,%2 \n\t" \ +:"=r"(c0), "=r"(c1), "=r"(c2):"0"(c0), "1"(c1), "2"(c2), "r"(i), "r"(j):"16", "17","%cc"); + +#define SQRADDSC(i, j) \ +asm( \ + " mulld %0,%6,%7 \n\t" \ + " mulhdu %1,%6,%7 \n\t" \ + " xor %2,%2,%2 \n\t" \ +:"=r"(sc0), "=r"(sc1), "=r"(sc2):"0"(sc0), "1"(sc1), "2"(sc2), "r"(i),"r"(j) : "%cc"); + +#define SQRADDAC(i, j) \ +asm( \ + " mulld 16,%6,%7 \n\t" \ + " addc %0,%0,16 \n\t" \ + " mulhdu 16,%6,%7 \n\t" \ + " adde %1,%1,16 \n\t" \ + " addze %2,%2 \n\t" \ +:"=r"(sc0), "=r"(sc1), "=r"(sc2):"0"(sc0), "1"(sc1), "2"(sc2), "r"(i), "r"(j):"16", "%cc"); + +#define SQRADDDB \ +asm( \ + " addc %0,%0,%3 \n\t" \ + " adde %1,%1,%4 \n\t" \ + " adde %2,%2,%5 \n\t" \ + " addc %0,%0,%3 \n\t" \ + " adde %1,%1,%4 \n\t" \ + " adde %2,%2,%5 \n\t" \ +:"=r"(c0), "=r"(c1), "=r"(c2) : "r"(sc0), "r"(sc1), "r"(sc2), "0"(c0), "1"(c1), "2"(c2) : "%cc"); + + +#elif defined(TFM_AVR32) + +/* AVR32 */ + +#define COMBA_START + +#define CLEAR_CARRY \ + c0 = c1 = c2 = 0; + +#define COMBA_STORE(x) \ + x = c0; + +#define COMBA_STORE2(x) \ + x = c1; + +#define CARRY_FORWARD \ + do { c0 = c1; c1 = c2; c2 = 0; } while (0); + +#define COMBA_FINI + +/* multiplies point i and j, updates carry "c1" and digit c2 */ +#define SQRADD(i, j) \ +asm( \ + " mulu.d r2,%6,%6 \n\t" \ + " add %0,%0,r2 \n\t" \ + " adc %1,%1,r3 \n\t" \ + " acr %2 \n\t" \ +:"=r"(c0), "=r"(c1), "=r"(c2):"0"(c0), "1"(c1), "2"(c2), "r"(i):"r2","r3"); + +/* for squaring some of the terms are doubled... */ +#define SQRADD2(i, j) \ +asm( \ + " mulu.d r2,%6,%7 \n\t" \ + " add %0,%0,r2 \n\t" \ + " adc %1,%1,r3 \n\t" \ + " acr %2, \n\t" \ + " add %0,%0,r2 \n\t" \ + " adc %1,%1,r3 \n\t" \ + " acr %2, \n\t" \ +:"=r"(c0), "=r"(c1), "=r"(c2):"0"(c0), "1"(c1), "2"(c2), "r"(i), "r"(j):"r2", "r3"); + +#define SQRADDSC(i, j) \ +asm( \ + " mulu.d r2,%6,%7 \n\t" \ + " mov %0,r2 \n\t" \ + " mov %1,r3 \n\t" \ + " eor %2,%2 \n\t" \ +:"=r"(sc0), "=r"(sc1), "=r"(sc2):"0"(sc0), "1"(sc1), "2"(sc2), "r"(i),"r"(j) : "r2", "r3"); + +#define SQRADDAC(i, j) \ +asm( \ + " mulu.d r2,%6,%7 \n\t" \ + " add %0,%0,r2 \n\t" \ + " adc %1,%1,r3 \n\t" \ + " acr %2 \n\t" \ +:"=r"(sc0), "=r"(sc1), "=r"(sc2):"0"(sc0), "1"(sc1), "2"(sc2), "r"(i), "r"(j):"r2", "r3"); + +#define SQRADDDB \ +asm( \ + " add %0,%0,%3 \n\t" \ + " adc %1,%1,%4 \n\t" \ + " adc %2,%2,%5 \n\t" \ + " add %0,%0,%3 \n\t" \ + " adc %1,%1,%4 \n\t" \ + " adc %2,%2,%5 \n\t" \ +:"=r"(c0), "=r"(c1), "=r"(c2) : "r"(sc0), "r"(sc1), "r"(sc2), "0"(c0), "1"(c1), "2"(c2) : "%cc"); + + +#else + +#define TFM_ISO + +/* ISO C portable code */ + +#define COMBA_START + +#define CLEAR_CARRY \ + c0 = c1 = c2 = 0; + +#define COMBA_STORE(x) \ + x = c0; + +#define COMBA_STORE2(x) \ + x = c1; + +#define CARRY_FORWARD \ + do { c0 = c1; c1 = c2; c2 = 0; } while (0); + +#define COMBA_FINI + +/* multiplies point i and j, updates carry "c1" and digit c2 */ +#define SQRADD(i, j) \ + do { fp_word t; \ + t = c0 + ((fp_word)i) * ((fp_word)j); c0 = t; \ + t = c1 + (t >> DIGIT_BIT); c1 = t; c2 += t >> DIGIT_BIT; \ + } while (0); + + +/* for squaring some of the terms are doubled... */ +#define SQRADD2(i, j) \ + do { fp_word t; \ + t = ((fp_word)i) * ((fp_word)j); \ + tt = (fp_word)c0 + t; c0 = tt; \ + tt = (fp_word)c1 + (tt >> DIGIT_BIT); c1 = tt; c2 += tt >> DIGIT_BIT; \ + tt = (fp_word)c0 + t; c0 = tt; \ + tt = (fp_word)c1 + (tt >> DIGIT_BIT); c1 = tt; c2 += tt >> DIGIT_BIT; \ + } while (0); + +#define SQRADDSC(i, j) \ + do { fp_word t; \ + t = ((fp_word)i) * ((fp_word)j); \ + sc0 = (fp_digit)t; sc1 = (t >> DIGIT_BIT); sc2 = 0; \ + } while (0); + +#define SQRADDAC(i, j) \ + do { fp_word t; \ + t = sc0 + ((fp_word)i) * ((fp_word)j); sc0 = t; \ + t = sc1 + (t >> DIGIT_BIT); sc1 = t; sc2 += t >> DIGIT_BIT; \ + } while (0); + +#define SQRADDDB \ + do { fp_word t; \ + t = ((fp_word)sc0) + ((fp_word)sc0) + c0; c0 = t; \ + t = ((fp_word)sc1) + ((fp_word)sc1) + c1 + (t >> DIGIT_BIT); c1 = t; \ + c2 = c2 + ((fp_word)sc2) + ((fp_word)sc2) + (t >> DIGIT_BIT); \ + } while (0); + +#endif + +#ifdef TFM_SMALL_SET +#include "fp_sqr_comba_small_set.i" +#include "fp_sqr_comba_3.i" +#include "fp_sqr_comba_4.i" +#include "fp_sqr_comba_6.i" +#include "fp_sqr_comba_7.i" +#include "fp_sqr_comba_8.i" +#include "fp_sqr_comba_9.i" +#include "fp_sqr_comba_12.i" +#include "fp_sqr_comba_17.i" +#include "fp_sqr_comba_20.i" +#include "fp_sqr_comba_24.i" +#include "fp_sqr_comba_28.i" +#include "fp_sqr_comba_32.i" +#include "fp_sqr_comba_48.i" +#include "fp_sqr_comba_64.i" +#endif +/* end fp_sqr_comba.c asm */ + +/* start fp_mul_comba.c asm */ +/* these are the combas. Worship them. */ +#if defined(TFM_X86) +/* Generic x86 optimized code */ + +/* anything you need at the start */ +#define COMBA_START + +/* clear the chaining variables */ +#define COMBA_CLEAR \ + c0 = c1 = c2 = 0; + +/* forward the carry to the next digit */ +#define COMBA_FORWARD \ + do { c0 = c1; c1 = c2; c2 = 0; } while (0); + +/* store the first sum */ +#define COMBA_STORE(x) \ + x = c0; + +/* store the second sum [carry] */ +#define COMBA_STORE2(x) \ + x = c1; + +/* anything you need at the end */ +#define COMBA_FINI + +/* this should multiply i and j */ +#define MULADD(i, j) \ +asm( \ + "movl %6,%%eax \n\t" \ + "mull %7 \n\t" \ + "addl %%eax,%0 \n\t" \ + "adcl %%edx,%1 \n\t" \ + "adcl $0,%2 \n\t" \ + :"=r"(c0), "=r"(c1), "=r"(c2): "0"(c0), "1"(c1), "2"(c2), "m"(i), "m"(j) :"%eax","%edx","%cc"); + +#elif defined(TFM_X86_64) +/* x86-64 optimized */ + +/* anything you need at the start */ +#define COMBA_START + +/* clear the chaining variables */ +#define COMBA_CLEAR \ + c0 = c1 = c2 = 0; + +/* forward the carry to the next digit */ +#define COMBA_FORWARD \ + do { c0 = c1; c1 = c2; c2 = 0; } while (0); + +/* store the first sum */ +#define COMBA_STORE(x) \ + x = c0; + +/* store the second sum [carry] */ +#define COMBA_STORE2(x) \ + x = c1; + +/* anything you need at the end */ +#define COMBA_FINI + +/* this should multiply i and j */ +#define MULADD(i, j) \ +asm ( \ + "movq %6,%%rax \n\t" \ + "mulq %7 \n\t" \ + "addq %%rax,%0 \n\t" \ + "adcq %%rdx,%1 \n\t" \ + "adcq $0,%2 \n\t" \ + :"=r"(c0), "=r"(c1), "=r"(c2): "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) :"%rax","%rdx","%cc"); + +#elif defined(TFM_SSE2) +/* use SSE2 optimizations */ + +/* anything you need at the start */ +#define COMBA_START + +/* clear the chaining variables */ +#define COMBA_CLEAR \ + c0 = c1 = c2 = 0; + +/* forward the carry to the next digit */ +#define COMBA_FORWARD \ + do { c0 = c1; c1 = c2; c2 = 0; } while (0); + +/* store the first sum */ +#define COMBA_STORE(x) \ + x = c0; + +/* store the second sum [carry] */ +#define COMBA_STORE2(x) \ + x = c1; + +/* anything you need at the end */ +#define COMBA_FINI \ + asm("emms"); + +/* this should multiply i and j */ +#define MULADD(i, j) \ +asm( \ + "movd %6,%%mm0 \n\t" \ + "movd %7,%%mm1 \n\t" \ + "pmuludq %%mm1,%%mm0\n\t" \ + "movd %%mm0,%%eax \n\t" \ + "psrlq $32,%%mm0 \n\t" \ + "addl %%eax,%0 \n\t" \ + "movd %%mm0,%%eax \n\t" \ + "adcl %%eax,%1 \n\t" \ + "adcl $0,%2 \n\t" \ + :"=r"(c0), "=r"(c1), "=r"(c2): "0"(c0), "1"(c1), "2"(c2), "m"(i), "m"(j) :"%eax","%cc"); + +#elif defined(TFM_ARM) +/* ARM code */ + +#define COMBA_START + +#define COMBA_CLEAR \ + c0 = c1 = c2 = 0; + +#define COMBA_FORWARD \ + do { c0 = c1; c1 = c2; c2 = 0; } while (0); + +#define COMBA_STORE(x) \ + x = c0; + +#define COMBA_STORE2(x) \ + x = c1; + +#define COMBA_FINI + +#define MULADD(i, j) \ +asm( \ +" UMULL r0,r1,%6,%7 \n\t" \ +" ADDS %0,%0,r0 \n\t" \ +" ADCS %1,%1,r1 \n\t" \ +" ADC %2,%2,#0 \n\t" \ +:"=r"(c0), "=r"(c1), "=r"(c2) : "0"(c0), "1"(c1), "2"(c2), "r"(i), "r"(j) : "r0", "r1", "%cc"); + +#elif defined(TFM_PPC32) +/* For 32-bit PPC */ + +#define COMBA_START + +#define COMBA_CLEAR \ + c0 = c1 = c2 = 0; + +#define COMBA_FORWARD \ + do { c0 = c1; c1 = c2; c2 = 0; } while (0); + +#define COMBA_STORE(x) \ + x = c0; + +#define COMBA_STORE2(x) \ + x = c1; + +#define COMBA_FINI + +/* untested: will mulhwu change the flags? Docs say no */ +#define MULADD(i, j) \ +asm( \ + " mullw 16,%6,%7 \n\t" \ + " addc %0,%0,16 \n\t" \ + " mulhwu 16,%6,%7 \n\t" \ + " adde %1,%1,16 \n\t" \ + " addze %2,%2 \n\t" \ +:"=r"(c0), "=r"(c1), "=r"(c2):"0"(c0), "1"(c1), "2"(c2), "r"(i), "r"(j):"16"); + +#elif defined(TFM_PPC64) +/* For 64-bit PPC */ + +#define COMBA_START + +#define COMBA_CLEAR \ + c0 = c1 = c2 = 0; + +#define COMBA_FORWARD \ + do { c0 = c1; c1 = c2; c2 = 0; } while (0); + +#define COMBA_STORE(x) \ + x = c0; + +#define COMBA_STORE2(x) \ + x = c1; + +#define COMBA_FINI + +/* untested: will mulhwu change the flags? Docs say no */ +#define MULADD(i, j) \ +asm( \ + " mulld 16,%6,%7 \n\t" \ + " addc %0,%0,16 \n\t" \ + " mulhdu 16,%6,%7 \n\t" \ + " adde %1,%1,16 \n\t" \ + " addze %2,%2 \n\t" \ +:"=r"(c0), "=r"(c1), "=r"(c2):"0"(c0), "1"(c1), "2"(c2), "r"(i), "r"(j):"16"); + +#elif defined(TFM_AVR32) + +/* ISO C code */ + +#define COMBA_START + +#define COMBA_CLEAR \ + c0 = c1 = c2 = 0; + +#define COMBA_FORWARD \ + do { c0 = c1; c1 = c2; c2 = 0; } while (0); + +#define COMBA_STORE(x) \ + x = c0; + +#define COMBA_STORE2(x) \ + x = c1; + +#define COMBA_FINI + +#define MULADD(i, j) \ +asm( \ + " mulu.d r2,%6,%7 \n\t"\ + " add %0,r2 \n\t"\ + " adc %1,%1,r3 \n\t"\ + " acr %2 \n\t"\ +:"=r"(c0), "=r"(c1), "=r"(c2):"0"(c0), "1"(c1), "2"(c2), "r"(i), "r"(j):"r2","r3"); + +#else +/* ISO C code */ + +#define COMBA_START + +#define COMBA_CLEAR \ + c0 = c1 = c2 = 0; + +#define COMBA_FORWARD \ + do { c0 = c1; c1 = c2; c2 = 0; } while (0); + +#define COMBA_STORE(x) \ + x = c0; + +#define COMBA_STORE2(x) \ + x = c1; + +#define COMBA_FINI + +#define MULADD(i, j) \ + do { fp_word t; \ + t = (fp_word)c0 + ((fp_word)i) * ((fp_word)j); c0 = t; \ + t = (fp_word)c1 + (t >> DIGIT_BIT); c1 = t; c2 += t >> DIGIT_BIT; \ + } while (0); + +#endif + + +#ifdef TFM_SMALL_SET +#include "fp_mul_comba_small_set.i" +#include "fp_mul_comba_3.i" +#include "fp_mul_comba_4.i" +#include "fp_mul_comba_6.i" +#include "fp_mul_comba_7.i" +#include "fp_mul_comba_8.i" +#include "fp_mul_comba_9.i" +#include "fp_mul_comba_12.i" +#include "fp_mul_comba_17.i" +#include "fp_mul_comba_20.i" +#include "fp_mul_comba_24.i" +#include "fp_mul_comba_28.i" +#include "fp_mul_comba_32.i" +#include "fp_mul_comba_48.i" +#include "fp_mul_comba_64.i" +#endif + +/* end fp_mul_comba.c asm */ + diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/asn.c b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/asn.c new file mode 100644 index 000000000..db1e0e1ec --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/asn.c @@ -0,0 +1,4687 @@ +/* asn.c + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +#ifdef HAVE_CONFIG_H + #include +#endif + +#ifdef THREADX + #include "os.h" /* dc_rtc_api needs */ + #include "dc_rtc_api.h" /* to get current time */ +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef HAVE_NTRU + #include "crypto_ntru.h" +#endif + +#ifdef HAVE_ECC + #include +#endif + + +#ifdef _MSC_VER + /* 4996 warning to use MS extensions e.g., strcpy_s instead of XSTRNCPY */ + #pragma warning(disable: 4996) +#endif + + +#ifndef TRUE +enum { + FALSE = 0, + TRUE = 1 +}; +#endif + + +#ifdef THREADX + /* uses parital structures */ + #define XTIME(tl) (0) + #define XGMTIME(c) my_gmtime((c)) + #define XVALIDATE_DATE(d, f, t) ValidateDate((d), (f), (t)) +#elif defined(MICRIUM) + #if (NET_SECURE_MGR_CFG_EN == DEF_ENABLED) + #define XVALIDATE_DATE(d,f,t) NetSecure_ValidateDateHandler((d),(f),(t)) + #else + #define XVALIDATE_DATE(d, f, t) (0) + #endif + #define NO_TIME_H + /* since Micrium not defining XTIME or XGMTIME, CERT_GEN not available */ +#elif defined(USER_TIME) + /* no structures used */ + #define NO_TIME_H + /* user time, and gmtime compatible functions, there is a gmtime + implementation here that WINCE uses, so really just need some ticks + since the EPOCH + */ +#else + /* default */ + /* uses complete facility */ + #include + #define XTIME(tl) time((tl)) + #define XGMTIME(c) gmtime((c)) + #define XVALIDATE_DATE(d, f, t) ValidateDate((d), (f), (t)) +#endif + + +#ifdef _WIN32_WCE +/* no time() or gmtime() even though in time.h header?? */ + +#include + + +time_t time(time_t* timer) +{ + SYSTEMTIME sysTime; + FILETIME fTime; + ULARGE_INTEGER intTime; + time_t localTime; + + if (timer == NULL) + timer = &localTime; + + GetSystemTime(&sysTime); + SystemTimeToFileTime(&sysTime, &fTime); + + XMEMCPY(&intTime, &fTime, sizeof(FILETIME)); + /* subtract EPOCH */ + intTime.QuadPart -= 0x19db1ded53e8000; + /* to secs */ + intTime.QuadPart /= 10000000; + *timer = (time_t)intTime.QuadPart; + + return *timer; +} + + + +struct tm* gmtime(const time_t* timer) +{ + #define YEAR0 1900 + #define EPOCH_YEAR 1970 + #define SECS_DAY (24L * 60L * 60L) + #define LEAPYEAR(year) (!((year) % 4) && (((year) % 100) || !((year) %400))) + #define YEARSIZE(year) (LEAPYEAR(year) ? 366 : 365) + + static const int _ytab[2][12] = + { + {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, + {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} + }; + + static struct tm st_time; + struct tm* ret = &st_time; + time_t time = *timer; + unsigned long dayclock, dayno; + int year = EPOCH_YEAR; + + dayclock = (unsigned long)time % SECS_DAY; + dayno = (unsigned long)time / SECS_DAY; + + ret->tm_sec = dayclock % 60; + ret->tm_min = (dayclock % 3600) / 60; + ret->tm_hour = dayclock / 3600; + ret->tm_wday = (dayno + 4) % 7; /* day 0 a Thursday */ + + while(dayno >= (unsigned long)YEARSIZE(year)) { + dayno -= YEARSIZE(year); + year++; + } + + ret->tm_year = year - YEAR0; + ret->tm_yday = dayno; + ret->tm_mon = 0; + + while(dayno >= (unsigned long)_ytab[LEAPYEAR(year)][ret->tm_mon]) { + dayno -= _ytab[LEAPYEAR(year)][ret->tm_mon]; + ret->tm_mon++; + } + + ret->tm_mday = ++dayno; + ret->tm_isdst = 0; + + return ret; +} + +#endif /* _WIN32_WCE */ + + +#ifdef THREADX + +#define YEAR0 1900 + +struct tm* my_gmtime(const time_t* timer) /* has a gmtime() but hangs */ +{ + static struct tm st_time; + struct tm* ret = &st_time; + + DC_RTC_CALENDAR cal; + dc_rtc_time_get(&cal, TRUE); + + ret->tm_year = cal.year - YEAR0; /* gm starts at 1900 */ + ret->tm_mon = cal.month - 1; /* gm starts at 0 */ + ret->tm_mday = cal.day; + ret->tm_hour = cal.hour; + ret->tm_min = cal.minute; + ret->tm_sec = cal.second; + + return ret; +} + +#endif /* THREADX */ + + +static INLINE word32 btoi(byte b) +{ + return b - 0x30; +} + + +/* two byte date/time, add to value */ +static INLINE void GetTime(int* value, const byte* date, int* idx) +{ + int i = *idx; + + *value += btoi(date[i++]) * 10; + *value += btoi(date[i++]); + + *idx = i; +} + + +#if defined(MICRIUM) + +CPU_INT32S NetSecure_ValidateDateHandler(CPU_INT08U *date, CPU_INT08U format, + CPU_INT08U dateType) +{ + CPU_BOOLEAN rtn_code; + CPU_INT32S i; + CPU_INT32S val; + CPU_INT16U year; + CPU_INT08U month; + CPU_INT16U day; + CPU_INT08U hour; + CPU_INT08U min; + CPU_INT08U sec; + + i = 0; + year = 0u; + + if (format == ASN_UTC_TIME) { + if (btoi(date[0]) >= 5) + year = 1900; + else + year = 2000; + } + else { /* format == GENERALIZED_TIME */ + year += btoi(date[i++]) * 1000; + year += btoi(date[i++]) * 100; + } + + val = year; + GetTime(&val, date, &i); + year = (CPU_INT16U)val; + + val = 0; + GetTime(&val, date, &i); + month = (CPU_INT08U)val; + + val = 0; + GetTime(&val, date, &i); + day = (CPU_INT16U)val; + + val = 0; + GetTime(&val, date, &i); + hour = (CPU_INT08U)val; + + val = 0; + GetTime(&val, date, &i); + min = (CPU_INT08U)val; + + val = 0; + GetTime(&val, date, &i); + sec = (CPU_INT08U)val; + + return NetSecure_ValidateDate(year, month, day, hour, min, sec, dateType); +} + +#endif /* MICRIUM */ + + +static int GetLength(const byte* input, word32* inOutIdx, int* len, + word32 maxIdx) +{ + int length = 0; + word32 i = *inOutIdx; + byte b; + + if ( (i+1) > maxIdx) { /* for first read */ + CYASSL_MSG("GetLength bad index on input"); + return BUFFER_E; + } + + b = input[i++]; + if (b >= ASN_LONG_LENGTH) { + word32 bytes = b & 0x7F; + + if ( (i+bytes) > maxIdx) { /* for reading bytes */ + CYASSL_MSG("GetLength bad long length"); + return BUFFER_E; + } + + while (bytes--) { + b = input[i++]; + length = (length << 8) | b; + } + } + else + length = b; + + if ( (i+length) > maxIdx) { /* for user of length */ + CYASSL_MSG("GetLength value exceeds buffer length"); + return BUFFER_E; + } + + *inOutIdx = i; + *len = length; + + return length; +} + + +static int GetSequence(const byte* input, word32* inOutIdx, int* len, + word32 maxIdx) +{ + int length = -1; + word32 idx = *inOutIdx; + + if (input[idx++] != (ASN_SEQUENCE | ASN_CONSTRUCTED) || + GetLength(input, &idx, &length, maxIdx) < 0) + return ASN_PARSE_E; + + *len = length; + *inOutIdx = idx; + + return length; +} + + +static int GetSet(const byte* input, word32* inOutIdx, int* len, word32 maxIdx) +{ + int length = -1; + word32 idx = *inOutIdx; + + if (input[idx++] != (ASN_SET | ASN_CONSTRUCTED) || + GetLength(input, &idx, &length, maxIdx) < 0) + return ASN_PARSE_E; + + *len = length; + *inOutIdx = idx; + + return length; +} + + +/* winodws header clash for WinCE using GetVersion */ +static int GetMyVersion(const byte* input, word32* inOutIdx, int* version) +{ + word32 idx = *inOutIdx; + + CYASSL_ENTER("GetMyVersion"); + + if (input[idx++] != ASN_INTEGER) + return ASN_PARSE_E; + + if (input[idx++] != 0x01) + return ASN_VERSION_E; + + *version = input[idx++]; + *inOutIdx = idx; + + return *version; +} + + +/* Get small count integer, 32 bits or less */ +static int GetShortInt(const byte* input, word32* inOutIdx, int* number) +{ + word32 idx = *inOutIdx; + word32 len; + + *number = 0; + + if (input[idx++] != ASN_INTEGER) + return ASN_PARSE_E; + + len = input[idx++]; + if (len > 4) + return ASN_PARSE_E; + + while (len--) { + *number = *number << 8 | input[idx++]; + } + + *inOutIdx = idx; + + return *number; +} + + +/* May not have one, not an error */ +static int GetExplicitVersion(const byte* input, word32* inOutIdx, int* version) +{ + word32 idx = *inOutIdx; + + CYASSL_ENTER("GetExplicitVersion"); + if (input[idx++] == (ASN_CONTEXT_SPECIFIC | ASN_CONSTRUCTED)) { + *inOutIdx = ++idx; /* eat header */ + return GetMyVersion(input, inOutIdx, version); + } + + /* go back as is */ + *version = 0; + + return 0; +} + + +static int GetInt(mp_int* mpi, const byte* input, word32* inOutIdx, + word32 maxIdx) +{ + word32 i = *inOutIdx; + byte b = input[i++]; + int length; + + if (b != ASN_INTEGER) + return ASN_PARSE_E; + + if (GetLength(input, &i, &length, maxIdx) < 0) + return ASN_PARSE_E; + + if ( (b = input[i++]) == 0x00) + length--; + else + i--; + + mp_init(mpi); + if (mp_read_unsigned_bin(mpi, (byte*)input + i, length) != 0) { + mp_clear(mpi); + return ASN_GETINT_E; + } + + *inOutIdx = i + length; + return 0; +} + + +static int GetObjectId(const byte* input, word32* inOutIdx, word32* oid, + word32 maxIdx) +{ + int length; + word32 i = *inOutIdx; + byte b; + *oid = 0; + + b = input[i++]; + if (b != ASN_OBJECT_ID) + return ASN_OBJECT_ID_E; + + if (GetLength(input, &i, &length, maxIdx) < 0) + return ASN_PARSE_E; + + while(length--) + *oid += input[i++]; + /* just sum it up for now */ + + *inOutIdx = i; + + return 0; +} + + +static int GetAlgoId(const byte* input, word32* inOutIdx, word32* oid, + word32 maxIdx) +{ + int length; + word32 i = *inOutIdx; + byte b; + *oid = 0; + + CYASSL_ENTER("GetAlgoId"); + + if (GetSequence(input, &i, &length, maxIdx) < 0) + return ASN_PARSE_E; + + b = input[i++]; + if (b != ASN_OBJECT_ID) + return ASN_OBJECT_ID_E; + + if (GetLength(input, &i, &length, maxIdx) < 0) + return ASN_PARSE_E; + + while(length--) + *oid += input[i++]; + /* just sum it up for now */ + + /* could have NULL tag and 0 terminator, but may not */ + b = input[i++]; + + if (b == ASN_TAG_NULL) { + b = input[i++]; + if (b != 0) + return ASN_EXPECT_0_E; + } + else + /* go back, didn't have it */ + i--; + + *inOutIdx = i; + + return 0; +} + + +int RsaPrivateKeyDecode(const byte* input, word32* inOutIdx, RsaKey* key, + word32 inSz) +{ + int version, length; + + if (GetSequence(input, inOutIdx, &length, inSz) < 0) + return ASN_PARSE_E; + + if (GetMyVersion(input, inOutIdx, &version) < 0) + return ASN_PARSE_E; + + key->type = RSA_PRIVATE; + + if (GetInt(&key->n, input, inOutIdx, inSz) < 0 || + GetInt(&key->e, input, inOutIdx, inSz) < 0 || + GetInt(&key->d, input, inOutIdx, inSz) < 0 || + GetInt(&key->p, input, inOutIdx, inSz) < 0 || + GetInt(&key->q, input, inOutIdx, inSz) < 0 || + GetInt(&key->dP, input, inOutIdx, inSz) < 0 || + GetInt(&key->dQ, input, inOutIdx, inSz) < 0 || + GetInt(&key->u, input, inOutIdx, inSz) < 0 ) return ASN_RSA_KEY_E; + + return 0; +} + + +/* Remove PKCS8 header, move beginning of traditional to beginning of input */ +int ToTraditional(byte* input, word32 sz) +{ + word32 inOutIdx = 0, oid; + int version, length; + + if (GetSequence(input, &inOutIdx, &length, sz) < 0) + return ASN_PARSE_E; + + if (GetMyVersion(input, &inOutIdx, &version) < 0) + return ASN_PARSE_E; + + if (GetAlgoId(input, &inOutIdx, &oid, sz) < 0) + return ASN_PARSE_E; + + if (input[inOutIdx] == ASN_OBJECT_ID) { + /* pkcs8 ecc uses slightly different format */ + inOutIdx++; /* past id */ + if (GetLength(input, &inOutIdx, &length, sz) < 0) + return ASN_PARSE_E; + inOutIdx += length; /* over sub id, key input will verify */ + } + + if (input[inOutIdx++] != ASN_OCTET_STRING) + return ASN_PARSE_E; + + if (GetLength(input, &inOutIdx, &length, sz) < 0) + return ASN_PARSE_E; + + XMEMMOVE(input, input + inOutIdx, length); + + return 0; +} + + +#ifndef NO_PWDBASED + +/* Check To see if PKCS version algo is supported, set id if it is return 0 + < 0 on error */ +static int CheckAlgo(int first, int second, int* id, int* version) +{ + *id = ALGO_ID_E; + *version = PKCS5; /* default */ + + if (first == 1) { + switch (second) { + case 1: + *id = PBE_SHA1_RC4_128; + *version = PKCS12; + return 0; + case 3: + *id = PBE_SHA1_DES3; + *version = PKCS12; + return 0; + default: + return ALGO_ID_E; + } + } + + if (first != PKCS5) + return ASN_INPUT_E; /* VERSION ERROR */ + + if (second == PBES2) { + *version = PKCS5v2; + return 0; + } + + switch (second) { + case 3: /* see RFC 2898 for ids */ + *id = PBE_MD5_DES; + return 0; + case 10: + *id = PBE_SHA1_DES; + return 0; + default: + return ALGO_ID_E; + + } +} + + +/* Check To see if PKCS v2 algo is supported, set id if it is return 0 + < 0 on error */ +static int CheckAlgoV2(int oid, int* id) +{ + switch (oid) { + case 69: + *id = PBE_SHA1_DES; + return 0; + case 652: + *id = PBE_SHA1_DES3; + return 0; + default: + return ALGO_ID_E; + + } +} + + +/* Decrypt intput in place from parameters based on id */ +static int DecryptKey(const char* password, int passwordSz, byte* salt, + int saltSz, int iterations, int id, byte* input, + int length, int version, byte* cbcIv) +{ + byte key[MAX_KEY_SIZE]; + int typeH; + int derivedLen; + int decryptionType; + int ret = 0; + + switch (id) { + case PBE_MD5_DES: + typeH = MD5; + derivedLen = 16; /* may need iv for v1.5 */ + decryptionType = DES_TYPE; + break; + + case PBE_SHA1_DES: + typeH = SHA; + derivedLen = 16; /* may need iv for v1.5 */ + decryptionType = DES_TYPE; + break; + + case PBE_SHA1_DES3: + typeH = SHA; + derivedLen = 32; /* may need iv for v1.5 */ + decryptionType = DES3_TYPE; + break; + + case PBE_SHA1_RC4_128: + typeH = SHA; + derivedLen = 16; + decryptionType = RC4_TYPE; + break; + + default: + return ALGO_ID_E; + } + + if (version == PKCS5v2) + ret = PBKDF2(key, (byte*)password, passwordSz, salt, saltSz, iterations, + derivedLen, typeH); + else if (version == PKCS5) + ret = PBKDF1(key, (byte*)password, passwordSz, salt, saltSz, iterations, + derivedLen, typeH); + else if (version == PKCS12) { + int i, idx = 0; + byte unicodePasswd[MAX_UNICODE_SZ]; + + if ( (passwordSz * 2 + 2) > (int)sizeof(unicodePasswd)) + return UNICODE_SIZE_E; + + for (i = 0; i < passwordSz; i++) { + unicodePasswd[idx++] = 0x00; + unicodePasswd[idx++] = (byte)password[i]; + } + /* add trailing NULL */ + unicodePasswd[idx++] = 0x00; + unicodePasswd[idx++] = 0x00; + + ret = PKCS12_PBKDF(key, unicodePasswd, idx, salt, saltSz, + iterations, derivedLen, typeH, 1); + if (decryptionType != RC4_TYPE) + ret += PKCS12_PBKDF(cbcIv, unicodePasswd, idx, salt, saltSz, + iterations, 8, typeH, 2); + } + + if (ret != 0) + return ret; + + switch (decryptionType) { +#ifndef NO_DES3 + case DES_TYPE: + { + Des dec; + byte* desIv = key + 8; + + if (version == PKCS5v2 || version == PKCS12) + desIv = cbcIv; + Des_SetKey(&dec, key, desIv, DES_DECRYPTION); + Des_CbcDecrypt(&dec, input, input, length); + break; + } + + case DES3_TYPE: + { + Des3 dec; + byte* desIv = key + 24; + + if (version == PKCS5v2 || version == PKCS12) + desIv = cbcIv; + Des3_SetKey(&dec, key, desIv, DES_DECRYPTION); + Des3_CbcDecrypt(&dec, input, input, length); + break; + } +#endif + case RC4_TYPE: + { + Arc4 dec; + + Arc4SetKey(&dec, key, derivedLen); + Arc4Process(&dec, input, input, length); + break; + } + + default: + return ALGO_ID_E; + } + + return 0; +} + + +/* Remove Encrypted PKCS8 header, move beginning of traditional to beginning + of input */ +int ToTraditionalEnc(byte* input, word32 sz,const char* password,int passwordSz) +{ + word32 inOutIdx = 0, oid; + int first, second, length, iterations, saltSz, id; + int version; + byte salt[MAX_SALT_SIZE]; + byte cbcIv[MAX_IV_SIZE]; + + if (GetSequence(input, &inOutIdx, &length, sz) < 0) + return ASN_PARSE_E; + + if (GetAlgoId(input, &inOutIdx, &oid, sz) < 0) + return ASN_PARSE_E; + + first = input[inOutIdx - 2]; /* PKCS version alwyas 2nd to last byte */ + second = input[inOutIdx - 1]; /* version.algo, algo id last byte */ + + if (CheckAlgo(first, second, &id, &version) < 0) + return ASN_INPUT_E; /* Algo ID error */ + + if (version == PKCS5v2) { + + if (GetSequence(input, &inOutIdx, &length, sz) < 0) + return ASN_PARSE_E; + + if (GetAlgoId(input, &inOutIdx, &oid, sz) < 0) + return ASN_PARSE_E; + + if (oid != PBKDF2_OID) + return ASN_PARSE_E; + } + + if (GetSequence(input, &inOutIdx, &length, sz) < 0) + return ASN_PARSE_E; + + if (input[inOutIdx++] != ASN_OCTET_STRING) + return ASN_PARSE_E; + + if (GetLength(input, &inOutIdx, &saltSz, sz) < 0) + return ASN_PARSE_E; + + if (saltSz > MAX_SALT_SIZE) + return ASN_PARSE_E; + + XMEMCPY(salt, &input[inOutIdx], saltSz); + inOutIdx += saltSz; + + if (GetShortInt(input, &inOutIdx, &iterations) < 0) + return ASN_PARSE_E; + + if (version == PKCS5v2) { + /* get encryption algo */ + if (GetAlgoId(input, &inOutIdx, &oid, sz) < 0) + return ASN_PARSE_E; + + if (CheckAlgoV2(oid, &id) < 0) + return ASN_PARSE_E; /* PKCS v2 algo id error */ + + if (input[inOutIdx++] != ASN_OCTET_STRING) + return ASN_PARSE_E; + + if (GetLength(input, &inOutIdx, &length, sz) < 0) + return ASN_PARSE_E; + + XMEMCPY(cbcIv, &input[inOutIdx], length); + inOutIdx += length; + } + + if (input[inOutIdx++] != ASN_OCTET_STRING) + return ASN_PARSE_E; + + if (GetLength(input, &inOutIdx, &length, sz) < 0) + return ASN_PARSE_E; + + if (DecryptKey(password, passwordSz, salt, saltSz, iterations, id, + input + inOutIdx, length, version, cbcIv) < 0) + return ASN_INPUT_E; /* decrypt failure */ + + XMEMMOVE(input, input + inOutIdx, length); + return ToTraditional(input, length); +} + +#endif /* NO_PWDBASED */ + + +int RsaPublicKeyDecode(const byte* input, word32* inOutIdx, RsaKey* key, + word32 inSz) +{ + int length; + + if (GetSequence(input, inOutIdx, &length, inSz) < 0) + return ASN_PARSE_E; + + key->type = RSA_PUBLIC; + +#ifdef OPENSSL_EXTRA + { + byte b = input[*inOutIdx]; + if (b != ASN_INTEGER) { + /* not from decoded cert, will have algo id, skip past */ + if (GetSequence(input, inOutIdx, &length, inSz) < 0) + return ASN_PARSE_E; + + b = input[(*inOutIdx)++]; + if (b != ASN_OBJECT_ID) + return ASN_OBJECT_ID_E; + + if (GetLength(input, inOutIdx, &length, inSz) < 0) + return ASN_PARSE_E; + + *inOutIdx += length; /* skip past */ + + /* could have NULL tag and 0 terminator, but may not */ + b = input[(*inOutIdx)++]; + + if (b == ASN_TAG_NULL) { + b = input[(*inOutIdx)++]; + if (b != 0) + return ASN_EXPECT_0_E; + } + else + /* go back, didn't have it */ + (*inOutIdx)--; + + /* should have bit tag length and seq next */ + b = input[(*inOutIdx)++]; + if (b != ASN_BIT_STRING) + return ASN_BITSTR_E; + + if (GetLength(input, inOutIdx, &length, inSz) < 0) + return ASN_PARSE_E; + + /* could have 0 */ + b = input[(*inOutIdx)++]; + if (b != 0) + (*inOutIdx)--; + + if (GetSequence(input, inOutIdx, &length, inSz) < 0) + return ASN_PARSE_E; + } /* end if */ + } /* openssl var block */ +#endif /* OPENSSL_EXTRA */ + + if (GetInt(&key->n, input, inOutIdx, inSz) < 0 || + GetInt(&key->e, input, inOutIdx, inSz) < 0 ) return ASN_RSA_KEY_E; + + return 0; +} + + +#ifndef NO_DH + +int DhKeyDecode(const byte* input, word32* inOutIdx, DhKey* key, word32 inSz) +{ + int length; + + if (GetSequence(input, inOutIdx, &length, inSz) < 0) + return ASN_PARSE_E; + + if (GetInt(&key->p, input, inOutIdx, inSz) < 0 || + GetInt(&key->g, input, inOutIdx, inSz) < 0 ) return ASN_DH_KEY_E; + + return 0; +} + +int DhSetKey(DhKey* key, const byte* p, word32 pSz, const byte* g, word32 gSz) +{ + /* may have leading 0 */ + if (p[0] == 0) { + pSz--; p++; + } + + if (g[0] == 0) { + gSz--; g++; + } + + mp_init(&key->p); + if (mp_read_unsigned_bin(&key->p, p, pSz) != 0) { + mp_clear(&key->p); + return ASN_DH_KEY_E; + } + + mp_init(&key->g); + if (mp_read_unsigned_bin(&key->g, g, gSz) != 0) { + mp_clear(&key->p); + return ASN_DH_KEY_E; + } + + return 0; +} + + +#ifdef OPENSSL_EXTRA + +int DhParamsLoad(const byte* input, word32 inSz, byte* p, word32* pInOutSz, + byte* g, word32* gInOutSz) +{ + word32 i = 0; + byte b; + int length; + + if (GetSequence(input, &i, &length, inSz) < 0) + return ASN_PARSE_E; + + b = input[i++]; + if (b != ASN_INTEGER) + return ASN_PARSE_E; + + if (GetLength(input, &i, &length, inSz) < 0) + return ASN_PARSE_E; + + if ( (b = input[i++]) == 0x00) + length--; + else + i--; + + if (length <= (int)*pInOutSz) { + XMEMCPY(p, &input[i], length); + *pInOutSz = length; + } + else + return BUFFER_E; + + i += length; + + b = input[i++]; + if (b != ASN_INTEGER) + return ASN_PARSE_E; + + if (GetLength(input, &i, &length, inSz) < 0) + return ASN_PARSE_E; + + if (length <= (int)*gInOutSz) { + XMEMCPY(g, &input[i], length); + *gInOutSz = length; + } + else + return BUFFER_E; + + return 0; +} + +#endif /* OPENSSL_EXTRA */ +#endif /* NO_DH */ + + +#ifndef NO_DSA + +int DsaPublicKeyDecode(const byte* input, word32* inOutIdx, DsaKey* key, + word32 inSz) +{ + int length; + + if (GetSequence(input, inOutIdx, &length, inSz) < 0) + return ASN_PARSE_E; + + if (GetInt(&key->p, input, inOutIdx, inSz) < 0 || + GetInt(&key->q, input, inOutIdx, inSz) < 0 || + GetInt(&key->g, input, inOutIdx, inSz) < 0 || + GetInt(&key->y, input, inOutIdx, inSz) < 0 ) return ASN_DH_KEY_E; + + key->type = DSA_PUBLIC; + return 0; +} + + +int DsaPrivateKeyDecode(const byte* input, word32* inOutIdx, DsaKey* key, + word32 inSz) +{ + int length, version; + + if (GetSequence(input, inOutIdx, &length, inSz) < 0) + return ASN_PARSE_E; + + if (GetMyVersion(input, inOutIdx, &version) < 0) + return ASN_PARSE_E; + + if (GetInt(&key->p, input, inOutIdx, inSz) < 0 || + GetInt(&key->q, input, inOutIdx, inSz) < 0 || + GetInt(&key->g, input, inOutIdx, inSz) < 0 || + GetInt(&key->y, input, inOutIdx, inSz) < 0 || + GetInt(&key->x, input, inOutIdx, inSz) < 0 ) return ASN_DH_KEY_E; + + key->type = DSA_PRIVATE; + return 0; +} + +#endif /* NO_DSA */ + + +void InitDecodedCert(DecodedCert* cert, byte* source, word32 inSz, void* heap) +{ + cert->publicKey = 0; + cert->pubKeyStored = 0; + cert->signature = 0; + cert->subjectCN = 0; + cert->subjectCNLen = 0; + cert->issuer[0] = '\0'; + cert->subject[0] = '\0'; + cert->source = source; /* don't own */ + cert->srcIdx = 0; + cert->maxIdx = inSz; /* can't go over this index */ + cert->heap = heap; + XMEMSET(cert->serial, 0, EXTERNAL_SERIAL_SIZE); + cert->serialSz = 0; + cert->extensions = 0; + cert->extensionsSz = 0; + cert->extensionsIdx = 0; + cert->extAuthInfo = NULL; + cert->extAuthInfoSz = 0; + cert->extCrlInfo = NULL; + cert->extCrlInfoSz = 0; + cert->isCA = 0; +#ifdef CYASSL_CERT_GEN + cert->subjectSN = 0; + cert->subjectSNLen = 0; + cert->subjectC = 0; + cert->subjectCLen = 0; + cert->subjectL = 0; + cert->subjectLLen = 0; + cert->subjectST = 0; + cert->subjectSTLen = 0; + cert->subjectO = 0; + cert->subjectOLen = 0; + cert->subjectOU = 0; + cert->subjectOULen = 0; + cert->subjectEmail = 0; + cert->subjectEmailLen = 0; + cert->beforeDate = 0; + cert->beforeDateLen = 0; + cert->afterDate = 0; + cert->afterDateLen = 0; +#endif /* CYASSL_CERT_GEN */ +} + + +void FreeDecodedCert(DecodedCert* cert) +{ + if (cert->subjectCNLen == 0) /* 0 means no longer pointer to raw, we own */ + XFREE(cert->subjectCN, cert->heap, DYNAMIC_TYPE_SUBJECT_CN); + if (cert->pubKeyStored == 1) + XFREE(cert->publicKey, cert->heap, DYNAMIC_TYPE_PUBLIC_KEY); +} + + +static int GetCertHeader(DecodedCert* cert) +{ + int ret = 0, version, len; + byte serialTmp[EXTERNAL_SERIAL_SIZE]; + mp_int mpi; + + if (GetSequence(cert->source, &cert->srcIdx, &len, cert->maxIdx) < 0) + return ASN_PARSE_E; + + cert->certBegin = cert->srcIdx; + + if (GetSequence(cert->source, &cert->srcIdx, &len, cert->maxIdx) < 0) + return ASN_PARSE_E; + cert->sigIndex = len + cert->srcIdx; + + if (GetExplicitVersion(cert->source, &cert->srcIdx, &version) < 0) + return ASN_PARSE_E; + + if (GetInt(&mpi, cert->source, &cert->srcIdx, cert->maxIdx) < 0) + return ASN_PARSE_E; + + len = mp_unsigned_bin_size(&mpi); + if (len < (int)sizeof(serialTmp)) { + if (mp_to_unsigned_bin(&mpi, serialTmp) == MP_OKAY) { + if (len > EXTERNAL_SERIAL_SIZE) + len = EXTERNAL_SERIAL_SIZE; + XMEMCPY(cert->serial, serialTmp, len); + cert->serialSz = len; + } + } + mp_clear(&mpi); + return ret; +} + + +/* Store Rsa Key, may save later, Dsa could use in future */ +static int StoreRsaKey(DecodedCert* cert) +{ + int length; + word32 read = cert->srcIdx; + + if (GetSequence(cert->source, &cert->srcIdx, &length, cert->maxIdx) < 0) + return ASN_PARSE_E; + + read = cert->srcIdx - read; + length += read; + + while (read--) + cert->srcIdx--; + + cert->pubKeySize = length; + cert->publicKey = cert->source + cert->srcIdx; + cert->srcIdx += length; + + return 0; +} + + +#ifdef HAVE_ECC + + /* return 0 on sucess if the ECC curve oid sum is supported */ + static int CheckCurve(word32 oid) + { + if (oid != ECC_256R1 && oid != ECC_384R1 && oid != ECC_521R1 && oid != + ECC_160R1 && oid != ECC_192R1 && oid != ECC_224R1) + return ALGO_ID_E; + + return 0; + } + +#endif /* HAVE_ECC */ + + +static int GetKey(DecodedCert* cert) +{ + int length; +#ifdef HAVE_NTRU + int tmpIdx = cert->srcIdx; +#endif + + if (GetSequence(cert->source, &cert->srcIdx, &length, cert->maxIdx) < 0) + return ASN_PARSE_E; + + if (GetAlgoId(cert->source, &cert->srcIdx, &cert->keyOID, cert->maxIdx) < 0) + return ASN_PARSE_E; + + if (cert->keyOID == RSAk) { + byte b = cert->source[cert->srcIdx++]; + if (b != ASN_BIT_STRING) + return ASN_BITSTR_E; + + if (GetLength(cert->source, &cert->srcIdx, &length, cert->maxIdx) < 0) + return ASN_PARSE_E; + b = cert->source[cert->srcIdx++]; + if (b != 0x00) + return ASN_EXPECT_0_E; + } + else if (cert->keyOID == DSAk ) + ; /* do nothing */ +#ifdef HAVE_NTRU + else if (cert->keyOID == NTRUk ) { + const byte* key = &cert->source[tmpIdx]; + byte* next = (byte*)key; + word16 keyLen; + byte keyBlob[MAX_NTRU_KEY_SZ]; + + word32 rc = crypto_ntru_encrypt_subjectPublicKeyInfo2PublicKey(key, + &keyLen, NULL, &next); + + if (rc != NTRU_OK) + return ASN_NTRU_KEY_E; + if (keyLen > sizeof(keyBlob)) + return ASN_NTRU_KEY_E; + + rc = crypto_ntru_encrypt_subjectPublicKeyInfo2PublicKey(key, &keyLen, + keyBlob, &next); + if (rc != NTRU_OK) + return ASN_NTRU_KEY_E; + + if ( (next - key) < 0) + return ASN_NTRU_KEY_E; + + cert->srcIdx = tmpIdx + (next - key); + + cert->publicKey = (byte*) XMALLOC(keyLen, cert->heap, + DYNAMIC_TYPE_PUBLIC_KEY); + if (cert->publicKey == NULL) + return MEMORY_E; + XMEMCPY(cert->publicKey, keyBlob, keyLen); + cert->pubKeyStored = 1; + cert->pubKeySize = keyLen; + } +#endif /* HAVE_NTRU */ +#ifdef HAVE_ECC + else if (cert->keyOID == ECDSAk ) { + word32 oid = 0; + int oidSz = 0; + byte b = cert->source[cert->srcIdx++]; + + if (b != ASN_OBJECT_ID) + return ASN_OBJECT_ID_E; + + if (GetLength(cert->source, &cert->srcIdx, &oidSz, cert->maxIdx) < 0) + return ASN_PARSE_E; + + while(oidSz--) + oid += cert->source[cert->srcIdx++]; + if (CheckCurve(oid) < 0) + return ECC_CURVE_OID_E; + + /* key header */ + b = cert->source[cert->srcIdx++]; + if (b != ASN_BIT_STRING) + return ASN_BITSTR_E; + + if (GetLength(cert->source, &cert->srcIdx, &length, cert->maxIdx) < 0) + return ASN_PARSE_E; + b = cert->source[cert->srcIdx++]; + if (b != 0x00) + return ASN_EXPECT_0_E; + + /* actual key, use length - 1 since ate preceding 0 */ + length -= 1; + + cert->publicKey = (byte*) XMALLOC(length, cert->heap, + DYNAMIC_TYPE_PUBLIC_KEY); + if (cert->publicKey == NULL) + return MEMORY_E; + XMEMCPY(cert->publicKey, &cert->source[cert->srcIdx], length); + cert->pubKeyStored = 1; + cert->pubKeySize = length; + + cert->srcIdx += length; + } +#endif /* HAVE_ECC */ + else + return ASN_UNKNOWN_OID_E; + + if (cert->keyOID == RSAk) + return StoreRsaKey(cert); + return 0; +} + + +/* process NAME, either issuer or subject */ +static int GetName(DecodedCert* cert, int nameType) +{ + Sha sha; + int length; /* length of all distinguished names */ + int dummy; + char* full = (nameType == ISSUER) ? cert->issuer : cert->subject; + word32 idx = 0; + + if (cert->source[cert->srcIdx] == ASN_OBJECT_ID) { + CYASSL_MSG("Trying optional prefix..."); + + if (GetLength(cert->source, &cert->srcIdx, &length, cert->maxIdx) < 0) + return ASN_PARSE_E; + + cert->srcIdx += length; + CYASSL_MSG("Got optional prefix"); + } + + if (GetSequence(cert->source, &cert->srcIdx, &length, cert->maxIdx) < 0) + return ASN_PARSE_E; + + InitSha(&sha); + ShaUpdate(&sha, &cert->source[cert->srcIdx], length); + if (nameType == ISSUER) + ShaFinal(&sha, cert->issuerHash); + else + ShaFinal(&sha, cert->subjectHash); + + length += cert->srcIdx; + + while (cert->srcIdx < (word32)length) { + byte b; + byte joint[2]; + int oidSz; + + if (GetSet(cert->source, &cert->srcIdx, &dummy, cert->maxIdx) < 0) { + (void)b; /* empty body warning w/o messages enabled */ + CYASSL_MSG("Cert name lacks set header, trying sequence"); + } + + if (GetSequence(cert->source, &cert->srcIdx, &dummy, cert->maxIdx) < 0) + return ASN_PARSE_E; + + b = cert->source[cert->srcIdx++]; + if (b != ASN_OBJECT_ID) + return ASN_OBJECT_ID_E; + + if (GetLength(cert->source, &cert->srcIdx, &oidSz, cert->maxIdx) < 0) + return ASN_PARSE_E; + + XMEMCPY(joint, &cert->source[cert->srcIdx], sizeof(joint)); + + /* v1 name types */ + if (joint[0] == 0x55 && joint[1] == 0x04) { + byte id; + byte copy = FALSE; + int strLen; + + cert->srcIdx += 2; + id = cert->source[cert->srcIdx++]; + b = cert->source[cert->srcIdx++]; /* strType */ + + if (GetLength(cert->source, &cert->srcIdx, &strLen, + cert->maxIdx) < 0) + return ASN_PARSE_E; + + if (strLen == 0) { + CYASSL_MSG("Zero length name"); + return ASN_PARSE_E; + } + if (strLen > (int)(ASN_NAME_MAX - idx)) + return ASN_PARSE_E; + + if (4 > (ASN_NAME_MAX - idx)) /* make sure room for biggest */ + return ASN_PARSE_E; /* pre fix header too "/CN=" */ + + if (id == ASN_COMMON_NAME) { + if (nameType == SUBJECT) { + cert->subjectCN = (char *)&cert->source[cert->srcIdx]; + cert->subjectCNLen = strLen; + } + + XMEMCPY(&full[idx], "/CN=", 4); + idx += 4; + copy = TRUE; + } + else if (id == ASN_SUR_NAME) { + XMEMCPY(&full[idx], "/SN=", 4); + idx += 4; + copy = TRUE; +#ifdef CYASSL_CERT_GEN + if (nameType == SUBJECT) { + cert->subjectSN = (char*)&cert->source[cert->srcIdx]; + cert->subjectSNLen = strLen; + } +#endif /* CYASSL_CERT_GEN */ + } + else if (id == ASN_COUNTRY_NAME) { + XMEMCPY(&full[idx], "/C=", 3); + idx += 3; + copy = TRUE; +#ifdef CYASSL_CERT_GEN + if (nameType == SUBJECT) { + cert->subjectC = (char*)&cert->source[cert->srcIdx]; + cert->subjectCLen = strLen; + } +#endif /* CYASSL_CERT_GEN */ + } + else if (id == ASN_LOCALITY_NAME) { + XMEMCPY(&full[idx], "/L=", 3); + idx += 3; + copy = TRUE; +#ifdef CYASSL_CERT_GEN + if (nameType == SUBJECT) { + cert->subjectL = (char*)&cert->source[cert->srcIdx]; + cert->subjectLLen = strLen; + } +#endif /* CYASSL_CERT_GEN */ + } + else if (id == ASN_STATE_NAME) { + XMEMCPY(&full[idx], "/ST=", 4); + idx += 4; + copy = TRUE; +#ifdef CYASSL_CERT_GEN + if (nameType == SUBJECT) { + cert->subjectST = (char*)&cert->source[cert->srcIdx]; + cert->subjectSTLen = strLen; + } +#endif /* CYASSL_CERT_GEN */ + } + else if (id == ASN_ORG_NAME) { + XMEMCPY(&full[idx], "/O=", 3); + idx += 3; + copy = TRUE; +#ifdef CYASSL_CERT_GEN + if (nameType == SUBJECT) { + cert->subjectO = (char*)&cert->source[cert->srcIdx]; + cert->subjectOLen = strLen; + } +#endif /* CYASSL_CERT_GEN */ + } + else if (id == ASN_ORGUNIT_NAME) { + XMEMCPY(&full[idx], "/OU=", 4); + idx += 4; + copy = TRUE; +#ifdef CYASSL_CERT_GEN + if (nameType == SUBJECT) { + cert->subjectOU = (char*)&cert->source[cert->srcIdx]; + cert->subjectOULen = strLen; + } +#endif /* CYASSL_CERT_GEN */ + } + + if (copy) { + XMEMCPY(&full[idx], &cert->source[cert->srcIdx], strLen); + idx += strLen; + } + + cert->srcIdx += strLen; + } + else { + /* skip */ + byte email = FALSE; + byte uid = FALSE; + int adv; + + if (joint[0] == 0x2a && joint[1] == 0x86) /* email id hdr */ + email = TRUE; + + if (joint[0] == 0x9 && joint[1] == 0x92) /* uid id hdr */ + uid = TRUE; + + cert->srcIdx += oidSz + 1; + + if (GetLength(cert->source, &cert->srcIdx, &adv, cert->maxIdx) < 0) + return ASN_PARSE_E; + + if (adv > (int)(ASN_NAME_MAX - idx)) + return ASN_PARSE_E; + + if (email) { + if (14 > (ASN_NAME_MAX - idx)) + return ASN_PARSE_E; + XMEMCPY(&full[idx], "/emailAddress=", 14); + idx += 14; + +#ifdef CYASSL_CERT_GEN + if (nameType == SUBJECT) { + cert->subjectEmail = (char*)&cert->source[cert->srcIdx]; + cert->subjectEmailLen = adv; + } +#endif /* CYASSL_CERT_GEN */ + + XMEMCPY(&full[idx], &cert->source[cert->srcIdx], adv); + idx += adv; + } + + if (uid) { + if (5 > (ASN_NAME_MAX - idx)) + return ASN_PARSE_E; + XMEMCPY(&full[idx], "/UID=", 5); + idx += 5; + + XMEMCPY(&full[idx], &cert->source[cert->srcIdx], adv); + idx += adv; + } + + cert->srcIdx += adv; + } + } + full[idx++] = 0; + + return 0; +} + + +#ifndef NO_TIME_H + +/* to the second */ +static int DateGreaterThan(const struct tm* a, const struct tm* b) +{ + if (a->tm_year > b->tm_year) + return 1; + + if (a->tm_year == b->tm_year && a->tm_mon > b->tm_mon) + return 1; + + if (a->tm_year == b->tm_year && a->tm_mon == b->tm_mon && + a->tm_mday > b->tm_mday) + return 1; + + if (a->tm_year == b->tm_year && a->tm_mon == b->tm_mon && + a->tm_mday == b->tm_mday && a->tm_hour > b->tm_hour) + return 1; + + if (a->tm_year == b->tm_year && a->tm_mon == b->tm_mon && + a->tm_mday == b->tm_mday && a->tm_hour == b->tm_hour && + a->tm_min > b->tm_min) + return 1; + + if (a->tm_year == b->tm_year && a->tm_mon == b->tm_mon && + a->tm_mday == b->tm_mday && a->tm_hour == b->tm_hour && + a->tm_min == b->tm_min && a->tm_sec > b->tm_sec) + return 1; + + return 0; /* false */ +} + + +static INLINE int DateLessThan(const struct tm* a, const struct tm* b) +{ + return !DateGreaterThan(a,b); +} + + +/* like atoi but only use first byte */ +/* Make sure before and after dates are valid */ +static int ValidateDate(const byte* date, byte format, int dateType) +{ + time_t ltime; + struct tm certTime; + struct tm* localTime; + int i = 0; + + ltime = XTIME(0); + XMEMSET(&certTime, 0, sizeof(certTime)); + + if (format == ASN_UTC_TIME) { + if (btoi(date[0]) >= 5) + certTime.tm_year = 1900; + else + certTime.tm_year = 2000; + } + else { /* format == GENERALIZED_TIME */ + certTime.tm_year += btoi(date[i++]) * 1000; + certTime.tm_year += btoi(date[i++]) * 100; + } + + GetTime(&certTime.tm_year, date, &i); certTime.tm_year -= 1900; /* adjust */ + GetTime(&certTime.tm_mon, date, &i); certTime.tm_mon -= 1; /* adjust */ + GetTime(&certTime.tm_mday, date, &i); + GetTime(&certTime.tm_hour, date, &i); + GetTime(&certTime.tm_min, date, &i); + GetTime(&certTime.tm_sec, date, &i); + + if (date[i] != 'Z') { /* only Zulu supported for this profile */ + CYASSL_MSG("Only Zulu time supported for this profile"); + return 0; + } + + localTime = XGMTIME(<ime); + + if (dateType == BEFORE) { + if (DateLessThan(localTime, &certTime)) + return 0; + } + else + if (DateGreaterThan(localTime, &certTime)) + return 0; + + return 1; +} + +#endif /* NO_TIME_H */ + + +static int GetDate(DecodedCert* cert, int dateType) +{ + int length; + byte date[MAX_DATE_SIZE]; + byte b; + +#ifdef CYASSL_CERT_GEN + word32 startIdx = 0; + if (dateType == BEFORE) + cert->beforeDate = &cert->source[cert->srcIdx]; + else + cert->afterDate = &cert->source[cert->srcIdx]; + startIdx = cert->srcIdx; +#endif + + b = cert->source[cert->srcIdx++]; + if (b != ASN_UTC_TIME && b != ASN_GENERALIZED_TIME) + return ASN_TIME_E; + + if (GetLength(cert->source, &cert->srcIdx, &length, cert->maxIdx) < 0) + return ASN_PARSE_E; + + if (length > MAX_DATE_SIZE || length < MIN_DATE_SIZE) + return ASN_DATE_SZ_E; + + XMEMCPY(date, &cert->source[cert->srcIdx], length); + cert->srcIdx += length; + +#ifdef CYASSL_CERT_GEN + if (dateType == BEFORE) + cert->beforeDateLen = cert->srcIdx - startIdx; + else + cert->afterDateLen = cert->srcIdx - startIdx; +#endif + + if (!XVALIDATE_DATE(date, b, dateType)) { + if (dateType == BEFORE) + return ASN_BEFORE_DATE_E; + else + return ASN_AFTER_DATE_E; + } + + return 0; +} + + +static int GetValidity(DecodedCert* cert, int verify) +{ + int length; + int badDate = 0; + + if (GetSequence(cert->source, &cert->srcIdx, &length, cert->maxIdx) < 0) + return ASN_PARSE_E; + + if (GetDate(cert, BEFORE) < 0 && verify) + badDate = ASN_BEFORE_DATE_E; /* continue parsing */ + + if (GetDate(cert, AFTER) < 0 && verify) + return ASN_AFTER_DATE_E; + + if (badDate != 0) + return badDate; + + return 0; +} + + +int DecodeToKey(DecodedCert* cert, int verify) +{ + int badDate = 0; + int ret; + + if ( (ret = GetCertHeader(cert)) < 0) + return ret; + + if ( (ret = GetAlgoId(cert->source, &cert->srcIdx, &cert->signatureOID, + cert->maxIdx)) < 0) + return ret; + + if ( (ret = GetName(cert, ISSUER)) < 0) + return ret; + + if ( (ret = GetValidity(cert, verify)) < 0) + badDate = ret; + + if ( (ret = GetName(cert, SUBJECT)) < 0) + return ret; + + if ( (ret = GetKey(cert)) < 0) + return ret; + + if (badDate != 0) + return badDate; + + return ret; +} + + +static int GetSignature(DecodedCert* cert) +{ + int length; + byte b = cert->source[cert->srcIdx++]; + + if (b != ASN_BIT_STRING) + return ASN_BITSTR_E; + + if (GetLength(cert->source, &cert->srcIdx, &length, cert->maxIdx) < 0) + return ASN_PARSE_E; + + cert->sigLength = length; + + b = cert->source[cert->srcIdx++]; + if (b != 0x00) + return ASN_EXPECT_0_E; + + cert->sigLength--; + cert->signature = &cert->source[cert->srcIdx]; + cert->srcIdx += cert->sigLength; + + return 0; +} + + +static word32 SetDigest(const byte* digest, word32 digSz, byte* output) +{ + output[0] = ASN_OCTET_STRING; + output[1] = (byte)digSz; + XMEMCPY(&output[2], digest, digSz); + + return digSz + 2; +} + + +static word32 BytePrecision(word32 value) +{ + word32 i; + for (i = sizeof(value); i; --i) + if (value >> (i - 1) * 8) + break; + + return i; +} + + +static word32 SetLength(word32 length, byte* output) +{ + word32 i = 0, j; + + if (length < ASN_LONG_LENGTH) + output[i++] = (byte)length; + else { + output[i++] = (byte)(BytePrecision(length) | ASN_LONG_LENGTH); + + for (j = BytePrecision(length); j; --j) { + output[i] = (byte)(length >> (j - 1) * 8); + i++; + } + } + + return i; +} + + +static word32 SetSequence(word32 len, byte* output) +{ + output[0] = ASN_SEQUENCE | ASN_CONSTRUCTED; + return SetLength(len, output + 1) + 1; +} + + +static word32 SetAlgoID(int algoOID, byte* output, int type) +{ + /* adding TAG_NULL and 0 to end */ + + /* hashTypes */ + static const byte shaAlgoID[] = { 0x2b, 0x0e, 0x03, 0x02, 0x1a, + 0x05, 0x00 }; + static const byte sha256AlgoID[] = { 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, + 0x04, 0x02, 0x01, 0x05, 0x00 }; + static const byte sha384AlgoID[] = { 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, + 0x04, 0x02, 0x02, 0x05, 0x00 }; + static const byte sha512AlgoID[] = { 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, + 0x04, 0x02, 0x03, 0x05, 0x00 }; + static const byte md5AlgoID[] = { 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, + 0x02, 0x05, 0x05, 0x00 }; + static const byte md2AlgoID[] = { 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, + 0x02, 0x02, 0x05, 0x00}; + /* sigTypes */ + static const byte md5wRSA_AlgoID[] = { 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, + 0x01, 0x01, 0x04, 0x05, 0x00}; + static const byte shawRSA_AlgoID[] = { 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, + 0x01, 0x01, 0x05, 0x05, 0x00}; + static const byte sha256wRSA_AlgoID[] = { 0x2a, 0x86, 0x48, 0x86, 0xf7, + 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00}; + static const byte sha384wRSA_AlgoID[] = {0x2a, 0x86, 0x48, 0x86, 0xf7, + 0x0d, 0x01, 0x01, 0x0c, 0x05, 0x00}; + static const byte sha512wRSA_AlgoID[] = {0x2a, 0x86, 0x48, 0x86, 0xf7, + 0x0d, 0x01, 0x01, 0x0d, 0x05, 0x00}; + /* keyTypes */ + static const byte RSA_AlgoID[] = { 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, + 0x01, 0x01, 0x01, 0x05, 0x00}; + int algoSz = 0; + word32 idSz, seqSz; + const byte* algoName = 0; + byte ID_Length[MAX_LENGTH_SZ]; + byte seqArray[MAX_SEQ_SZ + 1]; /* add object_id to end */ + + if (type == hashType) { + switch (algoOID) { + case SHAh: + algoSz = sizeof(shaAlgoID); + algoName = shaAlgoID; + break; + + case SHA256h: + algoSz = sizeof(sha256AlgoID); + algoName = sha256AlgoID; + break; + + case SHA384h: + algoSz = sizeof(sha384AlgoID); + algoName = sha384AlgoID; + break; + + case SHA512h: + algoSz = sizeof(sha512AlgoID); + algoName = sha512AlgoID; + break; + + case MD2h: + algoSz = sizeof(md2AlgoID); + algoName = md2AlgoID; + break; + + case MD5h: + algoSz = sizeof(md5AlgoID); + algoName = md5AlgoID; + break; + + default: + CYASSL_MSG("Unknown Hash Algo"); + return 0; /* UNKOWN_HASH_E; */ + } + } + else if (type == sigType) { /* sigType */ + switch (algoOID) { + case CTC_MD5wRSA: + algoSz = sizeof(md5wRSA_AlgoID); + algoName = md5wRSA_AlgoID; + break; + + case CTC_SHAwRSA: + algoSz = sizeof(shawRSA_AlgoID); + algoName = shawRSA_AlgoID; + break; + + case CTC_SHA256wRSA: + algoSz = sizeof(sha256wRSA_AlgoID); + algoName = sha256wRSA_AlgoID; + break; + + case CTC_SHA384wRSA: + algoSz = sizeof(sha384wRSA_AlgoID); + algoName = sha384wRSA_AlgoID; + break; + + case CTC_SHA512wRSA: + algoSz = sizeof(sha512wRSA_AlgoID); + algoName = sha512wRSA_AlgoID; + break; + + default: + CYASSL_MSG("Unknown Signature Algo"); + return 0; + } + } + else if (type == keyType) { /* keyType */ + switch (algoOID) { + case RSAk: + algoSz = sizeof(RSA_AlgoID); + algoName = RSA_AlgoID; + break; + + default: + CYASSL_MSG("Unknown Key Algo"); + return 0; + } + } + else { + CYASSL_MSG("Unknown Algo type"); + return 0; + } + + idSz = SetLength(algoSz - 2, ID_Length); /* don't include TAG_NULL/0 */ + seqSz = SetSequence(idSz + algoSz + 1, seqArray); + seqArray[seqSz++] = ASN_OBJECT_ID; + + XMEMCPY(output, seqArray, seqSz); + XMEMCPY(output + seqSz, ID_Length, idSz); + XMEMCPY(output + seqSz + idSz, algoName, algoSz); + + return seqSz + idSz + algoSz; + +} + + +word32 EncodeSignature(byte* out, const byte* digest, word32 digSz, int hashOID) +{ + byte digArray[MAX_ENCODED_DIG_SZ]; + byte algoArray[MAX_ALGO_SZ]; + byte seqArray[MAX_SEQ_SZ]; + word32 encDigSz, algoSz, seqSz; + + encDigSz = SetDigest(digest, digSz, digArray); + algoSz = SetAlgoID(hashOID, algoArray, hashType); + seqSz = SetSequence(encDigSz + algoSz, seqArray); + + XMEMCPY(out, seqArray, seqSz); + XMEMCPY(out + seqSz, algoArray, algoSz); + XMEMCPY(out + seqSz + algoSz, digArray, encDigSz); + + return encDigSz + algoSz + seqSz; +} + + +/* return true (1) for Confirmation */ +static int ConfirmSignature(DecodedCert* cert, const byte* key, word32 keySz, + word32 keyOID) +{ +#ifdef CYASSL_SHA512 + byte digest[SHA512_DIGEST_SIZE]; /* max size */ +#elif !defined(NO_SHA256) + byte digest[SHA256_DIGEST_SIZE]; /* max size */ +#else + byte digest[SHA_DIGEST_SIZE]; /* max size */ +#endif + int typeH, digestSz, ret; + + if (cert->signatureOID == CTC_MD5wRSA) { + Md5 md5; + InitMd5(&md5); + Md5Update(&md5, cert->source + cert->certBegin, + cert->sigIndex - cert->certBegin); + Md5Final(&md5, digest); + typeH = MD5h; + digestSz = MD5_DIGEST_SIZE; + } + else if (cert->signatureOID == CTC_SHAwRSA || + cert->signatureOID == CTC_SHAwDSA || + cert->signatureOID == CTC_SHAwECDSA) { + Sha sha; + InitSha(&sha); + ShaUpdate(&sha, cert->source + cert->certBegin, + cert->sigIndex - cert->certBegin); + ShaFinal(&sha, digest); + typeH = SHAh; + digestSz = SHA_DIGEST_SIZE; + } +#ifndef NO_SHA256 + else if (cert->signatureOID == CTC_SHA256wRSA || + cert->signatureOID == CTC_SHA256wECDSA) { + Sha256 sha256; + InitSha256(&sha256); + Sha256Update(&sha256, cert->source + cert->certBegin, + cert->sigIndex - cert->certBegin); + Sha256Final(&sha256, digest); + typeH = SHA256h; + digestSz = SHA256_DIGEST_SIZE; + } +#endif +#ifdef CYASSL_SHA512 + else if (cert->signatureOID == CTC_SHA512wRSA || + cert->signatureOID == CTC_SHA512wECDSA) { + Sha512 sha512; + InitSha512(&sha512); + Sha512Update(&sha512, cert->source + cert->certBegin, + cert->sigIndex - cert->certBegin); + Sha512Final(&sha512, digest); + typeH = SHA512h; + digestSz = SHA512_DIGEST_SIZE; + } +#endif +#ifdef CYASSL_SHA384 + else if (cert->signatureOID == CTC_SHA384wRSA || + cert->signatureOID == CTC_SHA384wECDSA) { + Sha384 sha384; + InitSha384(&sha384); + Sha384Update(&sha384, cert->source + cert->certBegin, + cert->sigIndex - cert->certBegin); + Sha384Final(&sha384, digest); + typeH = SHA384h; + digestSz = SHA384_DIGEST_SIZE; + } +#endif + else { + CYASSL_MSG("Verify Signautre has unsupported type"); + return 0; + } + + if (keyOID == RSAk) { + RsaKey pubKey; + byte encodedSig[MAX_ENCODED_SIG_SZ]; + byte plain[MAX_ENCODED_SIG_SZ]; + word32 idx = 0; + int sigSz, verifySz; + byte* out; + + if (cert->sigLength > MAX_ENCODED_SIG_SZ) { + CYASSL_MSG("Verify Signautre is too big"); + return 0; + } + + InitRsaKey(&pubKey, cert->heap); + if (RsaPublicKeyDecode(key, &idx, &pubKey, keySz) < 0) { + CYASSL_MSG("ASN Key decode error RSA"); + ret = 0; + } + else { + XMEMCPY(plain, cert->signature, cert->sigLength); + if ( (verifySz = RsaSSL_VerifyInline(plain, cert->sigLength, &out, + &pubKey)) < 0) { + CYASSL_MSG("Rsa SSL verify error"); + ret = 0; + } + else { + /* make sure we're right justified */ + sigSz = EncodeSignature(encodedSig, digest, digestSz, typeH); + if (sigSz != verifySz || XMEMCMP(out, encodedSig, sigSz) != 0){ + CYASSL_MSG("Rsa SSL verify match encode error"); + ret = 0; + } + else + ret = 1; /* match */ + +#ifdef CYASSL_DEBUG_ENCODING + { + int x; + printf("cyassl encodedSig:\n"); + for (x = 0; x < sigSz; x++) { + printf("%02x ", encodedSig[x]); + if ( (x % 16) == 15) + printf("\n"); + } + printf("\n"); + printf("actual digest:\n"); + for (x = 0; x < verifySz; x++) { + printf("%02x ", out[x]); + if ( (x % 16) == 15) + printf("\n"); + } + printf("\n"); + } +#endif /* CYASSL_DEBUG_ENCODING */ + } + } + FreeRsaKey(&pubKey); + return ret; + } +#ifdef HAVE_ECC + else if (keyOID == ECDSAk) { + ecc_key pubKey; + int verify = 0; + + if (ecc_import_x963(key, keySz, &pubKey) < 0) { + CYASSL_MSG("ASN Key import error ECC"); + return 0; + } + + ret = ecc_verify_hash(cert->signature, cert->sigLength, digest, + digestSz, &verify, &pubKey); + ecc_free(&pubKey); + if (ret == 0 && verify == 1) + return 1; /* match */ + + CYASSL_MSG("ECC Verify didn't match"); + return 0; + } +#endif /* HAVE_ECC */ + else { + CYASSL_MSG("Verify Key type unknown"); + return 0; + } +} + + +static void DecodeBasicCaConstraint(byte* input, int sz, DecodedCert* cert) +{ + word32 idx = 0; + int length = 0; + + CYASSL_ENTER("DecodeBasicCaConstraint"); + if (GetSequence(input, &idx, &length, sz) < 0) return; + + if (input[idx++] != ASN_BOOLEAN) + { + CYASSL_MSG("\tfail: constraint not BOOLEAN"); + return; + } + + if (GetLength(input, &idx, &length, sz) < 0) + { + CYASSL_MSG("\tfail: length"); + return; + } + + if (input[idx]) + cert->isCA = 1; +} + + +#define CRLDP_FULL_NAME 0 + /* From RFC3280 SS4.2.1.14, Distribution Point Name*/ +#define GENERALNAME_URI 6 + /* From RFC3280 SS4.2.1.7, GeneralName */ + +static void DecodeCrlDist(byte* input, int sz, DecodedCert* cert) +{ + word32 idx = 0; + int length = 0; + + CYASSL_ENTER("DecodeCrlDist"); + + /* Unwrap the list of Distribution Points*/ + if (GetSequence(input, &idx, &length, sz) < 0) return; + + /* Unwrap a single Distribution Point */ + if (GetSequence(input, &idx, &length, sz) < 0) return; + + /* The Distribution Point has three explicit optional members + * First check for a DistributionPointName + */ + if (input[idx] == (ASN_CONSTRUCTED | ASN_CONTEXT_SPECIFIC | 0)) + { + idx++; + if (GetLength(input, &idx, &length, sz) < 0) return; + + if (input[idx] == + (ASN_CONTEXT_SPECIFIC | ASN_CONSTRUCTED | CRLDP_FULL_NAME)) + { + idx++; + if (GetLength(input, &idx, &length, sz) < 0) return; + + if (input[idx] == (ASN_CONTEXT_SPECIFIC | GENERALNAME_URI)) + { + idx++; + if (GetLength(input, &idx, &length, sz) < 0) return; + + cert->extCrlInfoSz = length; + cert->extCrlInfo = input + idx; + idx += length; + } + else + /* This isn't a URI, skip it. */ + idx += length; + } + else + /* This isn't a FULLNAME, skip it. */ + idx += length; + } + + /* Check for reasonFlags */ + if (idx < (word32)sz && + input[idx] == (ASN_CONSTRUCTED | ASN_CONTEXT_SPECIFIC | 1)) + { + idx++; + if (GetLength(input, &idx, &length, sz) < 0) return; + idx += length; + } + + /* Check for cRLIssuer */ + if (idx < (word32)sz && + input[idx] == (ASN_CONSTRUCTED | ASN_CONTEXT_SPECIFIC | 2)) + { + idx++; + if (GetLength(input, &idx, &length, sz) < 0) return; + idx += length; + } + + if (idx < (word32)sz) + { + CYASSL_MSG("\tThere are more CRL Distribution Point records, " + "but we only use the first one."); + } + + return; +} + + +static void DecodeAuthInfo(byte* input, int sz, DecodedCert* cert) +/* + * Read the first of the Authority Information Access records. If there are + * any issues, return without saving the record. + */ +{ + word32 idx = 0; + int length = 0; + word32 oid; + + /* Unwrap the list of AIAs */ + if (GetSequence(input, &idx, &length, sz) < 0) return; + + /* Unwrap a single AIA */ + if (GetSequence(input, &idx, &length, sz) < 0) return; + + oid = 0; + if (GetObjectId(input, &idx, &oid, sz) < 0) return; + + /* Only supporting URIs right now. */ + if (input[idx] == (ASN_CONTEXT_SPECIFIC | GENERALNAME_URI)) + { + idx++; + if (GetLength(input, &idx, &length, sz) < 0) return; + + cert->extAuthInfoSz = length; + cert->extAuthInfo = input + idx; + idx += length; + } + else + { + /* Skip anything else. */ + idx++; + if (GetLength(input, &idx, &length, sz) < 0) return; + idx += length; + } + + if (idx < (word32)sz) + { + CYASSL_MSG("\tThere are more Authority Information Access records, " + "but we only use first one."); + } + + return; +} + + +static void DecodeCertExtensions(DecodedCert* cert) +/* + * Processing the Certificate Extensions. This does not modify the current + * index. It is works starting with the recorded extensions pointer. + */ +{ + word32 idx = 0; + int sz = cert->extensionsSz; + byte* input = cert->extensions; + int length; + word32 oid; + + CYASSL_ENTER("DecodeCertExtensions"); + + if (input == NULL || sz == 0) return; + + if (input[idx++] != ASN_EXTENSIONS)return; + + if (GetLength(input, &idx, &length, sz) < 0) return; + + if (GetSequence(input, &idx, &length, sz) < 0) return; + + while (idx < (word32)sz) { + if (GetSequence(input, &idx, &length, sz) < 0) { + CYASSL_MSG("\tfail: should be a SEQUENCE"); + return; + } + + oid = 0; + if (GetObjectId(input, &idx, &oid, sz) < 0) { + CYASSL_MSG("\tfail: OBJECT ID"); + return; + } + + /* check for critical flag */ + if (input[idx] == ASN_BOOLEAN) { + CYASSL_MSG("\tfound optional critical flag, moving past"); + idx += (ASN_BOOL_SIZE + 1); + } + + /* process the extension based on the OID */ + if (input[idx++] != ASN_OCTET_STRING) { + CYASSL_MSG("\tfail: should be an OCTET STRING"); + return; + } + + if (GetLength(input, &idx, &length, sz) < 0) { + CYASSL_MSG("\tfail: extension data length"); + return; + } + + switch (oid) { + case BASIC_CA_OID: + DecodeBasicCaConstraint(&input[idx], length, cert); + break; + + case CRL_DIST_OID: + DecodeCrlDist(&input[idx], length, cert); + break; + + case AUTH_INFO_OID: + DecodeAuthInfo(&input[idx], length, cert); + break; + + default: + CYASSL_MSG("\tExtension type not handled, skipping"); + break; + } + idx += length; + } + + return; +} + + +int ParseCert(DecodedCert* cert, int type, int verify, void* cm) +{ + int ret; + char* ptr; + + ret = ParseCertRelative(cert, type, verify, cm); + if (ret < 0) + return ret; + + if (cert->subjectCNLen > 0) { + ptr = (char*) XMALLOC(cert->subjectCNLen + 1, cert->heap, + DYNAMIC_TYPE_SUBJECT_CN); + if (ptr == NULL) + return MEMORY_E; + XMEMCPY(ptr, cert->subjectCN, cert->subjectCNLen); + ptr[cert->subjectCNLen] = '\0'; + cert->subjectCN = ptr; + cert->subjectCNLen = 0; + } + + if (cert->keyOID == RSAk && cert->pubKeySize > 0) { + ptr = (char*) XMALLOC(cert->pubKeySize, cert->heap, + DYNAMIC_TYPE_PUBLIC_KEY); + if (ptr == NULL) + return MEMORY_E; + XMEMCPY(ptr, cert->publicKey, cert->pubKeySize); + cert->publicKey = (byte *)ptr; + cert->pubKeyStored = 1; + } + + return ret; +} + + +/* from SSL proper, for locking can't do find here anymore */ +#ifdef __cplusplus + extern "C" { +#endif + CYASSL_LOCAL Signer* GetCA(void* signers, byte* hash); +#ifdef __cplusplus + } +#endif + + +int ParseCertRelative(DecodedCert* cert, int type, int verify, void* cm) +{ + word32 confirmOID; + int ret; + int badDate = 0; + + if ((ret = DecodeToKey(cert, verify)) < 0) { + if (ret == ASN_BEFORE_DATE_E || ret == ASN_AFTER_DATE_E) + badDate = ret; + else + return ret; + } + + if (cert->srcIdx != cert->sigIndex) { + if (cert->srcIdx < cert->sigIndex) { + /* save extensions */ + cert->extensions = &cert->source[cert->srcIdx]; + cert->extensionsSz = cert->sigIndex - cert->srcIdx; + cert->extensionsIdx = cert->srcIdx; /* for potential later use */ + } + DecodeCertExtensions(cert); + /* advance past extensions */ + cert->srcIdx = cert->sigIndex; + } + + if ((ret = GetAlgoId(cert->source, &cert->srcIdx, &confirmOID, + cert->maxIdx)) < 0) + return ret; + + if ((ret = GetSignature(cert)) < 0) + return ret; + + if (confirmOID != cert->signatureOID) + return ASN_SIG_OID_E; + + if (verify && type != CA_TYPE) { + Signer* ca = GetCA(cm, cert->issuerHash); + CYASSL_MSG("About to verify certificate signature"); + + if (ca) { +#ifdef HAVE_OCSP + /* Need the ca's public key hash for OCSP */ + { + Sha sha; + InitSha(&sha); + ShaUpdate(&sha, ca->publicKey, ca->pubKeySize); + ShaFinal(&sha, cert->issuerKeyHash); + } +#endif /* HAVE_OCSP */ + /* try to confirm/verify signature */ + if (!ConfirmSignature(cert, ca->publicKey, + ca->pubKeySize, ca->keyOID)) { + CYASSL_MSG("Confirm signature failed"); + return ASN_SIG_CONFIRM_E; + } + } + else { + /* no signer */ + CYASSL_MSG("No CA signer to verify with"); + return ASN_SIG_CONFIRM_E; + } + } + + if (badDate != 0) + return badDate; + + return 0; +} + + +Signer* MakeSigner(void* heap) +{ + Signer* signer = (Signer*) XMALLOC(sizeof(Signer), heap, + DYNAMIC_TYPE_SIGNER); + if (signer) { + signer->name = 0; + signer->publicKey = 0; + signer->next = 0; + } + (void)heap; + + return signer; +} + + +void FreeSigners(Signer* signer, void* heap) +{ + while (signer) { + Signer* next = signer->next; + + XFREE(signer->name, heap, DYNAMIC_TYPE_SUBJECT_CN); + XFREE(signer->publicKey, heap, DYNAMIC_TYPE_PUBLIC_KEY); + XFREE(signer, heap, DYNAMIC_TYPE_SIGNER); + + signer = next; + } + (void)heap; +} + + +void CTaoCryptErrorString(int error, char* buffer) +{ + const int max = MAX_ERROR_SZ; /* shorthand */ + +#ifdef NO_ERROR_STRINGS + + XSTRNCPY(buffer, "no support for error strings built in", max); + +#else + + switch (error) { + + case OPEN_RAN_E : + XSTRNCPY(buffer, "opening random device error", max); + break; + + case READ_RAN_E : + XSTRNCPY(buffer, "reading random device error", max); + break; + + case WINCRYPT_E : + XSTRNCPY(buffer, "windows crypt init error", max); + break; + + case CRYPTGEN_E : + XSTRNCPY(buffer, "windows crypt generation error", max); + break; + + case RAN_BLOCK_E : + XSTRNCPY(buffer, "random device read would block error", max); + break; + + case MP_INIT_E : + XSTRNCPY(buffer, "mp_init error state", max); + break; + + case MP_READ_E : + XSTRNCPY(buffer, "mp_read error state", max); + break; + + case MP_EXPTMOD_E : + XSTRNCPY(buffer, "mp_exptmod error state", max); + break; + + case MP_TO_E : + XSTRNCPY(buffer, "mp_to_xxx error state, can't convert", max); + break; + + case MP_SUB_E : + XSTRNCPY(buffer, "mp_sub error state, can't subtract", max); + break; + + case MP_ADD_E : + XSTRNCPY(buffer, "mp_add error state, can't add", max); + break; + + case MP_MUL_E : + XSTRNCPY(buffer, "mp_mul error state, can't multiply", max); + break; + + case MP_MULMOD_E : + XSTRNCPY(buffer, "mp_mulmod error state, can't multiply mod", max); + break; + + case MP_MOD_E : + XSTRNCPY(buffer, "mp_mod error state, can't mod", max); + break; + + case MP_INVMOD_E : + XSTRNCPY(buffer, "mp_invmod error state, can't inv mod", max); + break; + + case MP_CMP_E : + XSTRNCPY(buffer, "mp_cmp error state", max); + break; + + case MP_ZERO_E : + XSTRNCPY(buffer, "mp zero result, not expected", max); + break; + + case MEMORY_E : + XSTRNCPY(buffer, "out of memory error", max); + break; + + case RSA_WRONG_TYPE_E : + XSTRNCPY(buffer, "RSA wrong block type for RSA function", max); + break; + + case RSA_BUFFER_E : + XSTRNCPY(buffer, "RSA buffer error, output too small or input too big", + max); + break; + + case BUFFER_E : + XSTRNCPY(buffer, "Buffer error, output too small or input too big",max); + break; + + case ALGO_ID_E : + XSTRNCPY(buffer, "Setting Cert AlogID error", max); + break; + + case PUBLIC_KEY_E : + XSTRNCPY(buffer, "Setting Cert Public Key error", max); + break; + + case DATE_E : + XSTRNCPY(buffer, "Setting Cert Date validity error", max); + break; + + case SUBJECT_E : + XSTRNCPY(buffer, "Setting Cert Subject name error", max); + break; + + case ISSUER_E : + XSTRNCPY(buffer, "Setting Cert Issuer name error", max); + break; + + case CA_TRUE_E : + XSTRNCPY(buffer, "Setting basic constraint CA true error", max); + break; + + case EXTENSIONS_E : + XSTRNCPY(buffer, "Setting extensions error", max); + break; + + case ASN_PARSE_E : + XSTRNCPY(buffer, "ASN parsing error, invalid input", max); + break; + + case ASN_VERSION_E : + XSTRNCPY(buffer, "ASN version error, invalid number", max); + break; + + case ASN_GETINT_E : + XSTRNCPY(buffer, "ASN get big int error, invalid data", max); + break; + + case ASN_RSA_KEY_E : + XSTRNCPY(buffer, "ASN key init error, invalid input", max); + break; + + case ASN_OBJECT_ID_E : + XSTRNCPY(buffer, "ASN object id error, invalid id", max); + break; + + case ASN_TAG_NULL_E : + XSTRNCPY(buffer, "ASN tag error, not null", max); + break; + + case ASN_EXPECT_0_E : + XSTRNCPY(buffer, "ASN expect error, not zero", max); + break; + + case ASN_BITSTR_E : + XSTRNCPY(buffer, "ASN bit string error, wrong id", max); + break; + + case ASN_UNKNOWN_OID_E : + XSTRNCPY(buffer, "ASN oid error, unknown sum id", max); + break; + + case ASN_DATE_SZ_E : + XSTRNCPY(buffer, "ASN date error, bad size", max); + break; + + case ASN_BEFORE_DATE_E : + XSTRNCPY(buffer, "ASN date error, current date before", max); + break; + + case ASN_AFTER_DATE_E : + XSTRNCPY(buffer, "ASN date error, current date after", max); + break; + + case ASN_SIG_OID_E : + XSTRNCPY(buffer, "ASN signature error, mismatched oid", max); + break; + + case ASN_TIME_E : + XSTRNCPY(buffer, "ASN time error, unkown time type", max); + break; + + case ASN_INPUT_E : + XSTRNCPY(buffer, "ASN input error, not enough data", max); + break; + + case ASN_SIG_CONFIRM_E : + XSTRNCPY(buffer, "ASN sig error, confirm failure", max); + break; + + case ASN_SIG_HASH_E : + XSTRNCPY(buffer, "ASN sig error, unsupported hash type", max); + break; + + case ASN_SIG_KEY_E : + XSTRNCPY(buffer, "ASN sig error, unsupported key type", max); + break; + + case ASN_DH_KEY_E : + XSTRNCPY(buffer, "ASN key init error, invalid input", max); + break; + + case ASN_NTRU_KEY_E : + XSTRNCPY(buffer, "ASN NTRU key decode error, invalid input", max); + break; + + case ECC_BAD_ARG_E : + XSTRNCPY(buffer, "ECC input argument wrong type, invalid input", max); + break; + + case ASN_ECC_KEY_E : + XSTRNCPY(buffer, "ECC ASN1 bad key data, invalid input", max); + break; + + case ECC_CURVE_OID_E : + XSTRNCPY(buffer, "ECC curve sum OID unsupported, invalid input", max); + break; + + case BAD_FUNC_ARG : + XSTRNCPY(buffer, "Bad function argument", max); + break; + + case NOT_COMPILED_IN : + XSTRNCPY(buffer, "Feature not compiled in", max); + break; + + case UNICODE_SIZE_E : + XSTRNCPY(buffer, "Unicode password too big", max); + break; + + case NO_PASSWORD : + XSTRNCPY(buffer, "No password provided by user", max); + break; + + case ALT_NAME_E : + XSTRNCPY(buffer, "Alt Name problem, too big", max); + break; + + default: + XSTRNCPY(buffer, "unknown error number", max); + + } + +#endif /* NO_ERROR_STRINGS */ + +} + + +#if defined(CYASSL_KEY_GEN) || defined(CYASSL_CERT_GEN) + +static int SetMyVersion(word32 version, byte* output, int header) +{ + int i = 0; + + if (header) { + output[i++] = ASN_CONTEXT_SPECIFIC | ASN_CONSTRUCTED; + output[i++] = ASN_BIT_STRING; + } + output[i++] = ASN_INTEGER; + output[i++] = 0x01; + output[i++] = version; + + return i; +} + + +int DerToPem(const byte* der, word32 derSz, byte* output, word32 outSz, + int type) +{ + char header[80]; + char footer[80]; + + int headerLen; + int footerLen; + int i; + int err; + int outLen; /* return length or error */ + + if (type == CERT_TYPE) { + XSTRNCPY(header, "-----BEGIN CERTIFICATE-----\n", sizeof(header)); + XSTRNCPY(footer, "-----END CERTIFICATE-----\n", sizeof(footer)); + } else { + XSTRNCPY(header, "-----BEGIN RSA PRIVATE KEY-----\n", sizeof(header)); + XSTRNCPY(footer, "-----END RSA PRIVATE KEY-----\n", sizeof(footer)); + } + + headerLen = XSTRLEN(header); + footerLen = XSTRLEN(footer); + + if (!der || !output) + return BAD_FUNC_ARG; + + /* don't even try if outSz too short */ + if (outSz < headerLen + footerLen + derSz) + return BAD_FUNC_ARG; + + /* header */ + XMEMCPY(output, header, headerLen); + i = headerLen; + + /* body */ + outLen = outSz; /* input to Base64_Encode */ + if ( (err = Base64_Encode(der, derSz, output + i, (word32*)&outLen)) < 0) + return err; + i += outLen; + + /* footer */ + if ( (i + footerLen) > (int)outSz) + return BAD_FUNC_ARG; + XMEMCPY(output + i, footer, footerLen); + + return outLen + headerLen + footerLen; +} + + +#endif /* CYASSL_KEY_GEN || CYASSL_CERT_GEN */ + + +#ifdef CYASSL_KEY_GEN + + +static mp_int* GetRsaInt(RsaKey* key, int idx) +{ + if (idx == 0) + return &key->n; + if (idx == 1) + return &key->e; + if (idx == 2) + return &key->d; + if (idx == 3) + return &key->p; + if (idx == 4) + return &key->q; + if (idx == 5) + return &key->dP; + if (idx == 6) + return &key->dQ; + if (idx == 7) + return &key->u; + + return NULL; +} + + +/* Convert RsaKey key to DER format, write to output (inLen), return bytes + written */ +int RsaKeyToDer(RsaKey* key, byte* output, word32 inLen) +{ + word32 seqSz, verSz, rawLen, intTotalLen = 0; + word32 sizes[RSA_INTS]; + int i, j, outLen; + + byte seq[MAX_SEQ_SZ]; + byte ver[MAX_VERSION_SZ]; + byte tmps[RSA_INTS][MAX_RSA_INT_SZ]; + + if (!key || !output) + return BAD_FUNC_ARG; + + if (key->type != RSA_PRIVATE) + return BAD_FUNC_ARG; + + /* write all big ints from key to DER tmps */ + for (i = 0; i < RSA_INTS; i++) { + mp_int* keyInt = GetRsaInt(key, i); + rawLen = mp_unsigned_bin_size(keyInt); + + tmps[i][0] = ASN_INTEGER; + sizes[i] = SetLength(rawLen, tmps[i] + 1) + 1; /* int tag */ + + if ( (sizes[i] + rawLen) < sizeof(tmps[i])) { + int err = mp_to_unsigned_bin(keyInt, tmps[i] + sizes[i]); + if (err == MP_OKAY) { + sizes[i] += rawLen; + intTotalLen += sizes[i]; + } + else + return err; + } + else + return ASN_INPUT_E; + } + + /* make headers */ + verSz = SetMyVersion(0, ver, FALSE); + seqSz = SetSequence(verSz + intTotalLen, seq); + + outLen = seqSz + verSz + intTotalLen; + if (outLen > (int)inLen) + return BAD_FUNC_ARG; + + /* write to output */ + XMEMCPY(output, seq, seqSz); + j = seqSz; + XMEMCPY(output + j, ver, verSz); + j += verSz; + + for (i = 0; i < RSA_INTS; i++) { + XMEMCPY(output + j, tmps[i], sizes[i]); + j += sizes[i]; + } + + return outLen; +} + +#endif /* CYASSL_KEY_GEN */ + + +#ifdef CYASSL_CERT_GEN + +/* Initialize and Set Certficate defaults: + version = 3 (0x2) + serial = 0 + sigType = SHA_WITH_RSA + issuer = blank + daysValid = 500 + selfSigned = 1 (true) use subject as issuer + subject = blank +*/ +void InitCert(Cert* cert) +{ + cert->version = 2; /* version 3 is hex 2 */ + cert->sigType = CTC_SHAwRSA; + cert->daysValid = 500; + cert->selfSigned = 1; + cert->isCA = 0; + cert->bodySz = 0; +#ifdef CYASSL_ALT_NAMES + cert->altNamesSz = 0; + cert->beforeDateSz = 0; + cert->afterDateSz = 0; +#endif + cert->keyType = RSA_KEY; + XMEMSET(cert->serial, 0, CTC_SERIAL_SIZE); + + cert->issuer.country[0] = '\0'; + cert->issuer.state[0] = '\0'; + cert->issuer.locality[0] = '\0'; + cert->issuer.sur[0] = '\0'; + cert->issuer.org[0] = '\0'; + cert->issuer.unit[0] = '\0'; + cert->issuer.commonName[0] = '\0'; + cert->issuer.email[0] = '\0'; + + cert->subject.country[0] = '\0'; + cert->subject.state[0] = '\0'; + cert->subject.locality[0] = '\0'; + cert->subject.sur[0] = '\0'; + cert->subject.org[0] = '\0'; + cert->subject.unit[0] = '\0'; + cert->subject.commonName[0] = '\0'; + cert->subject.email[0] = '\0'; +} + + +/* DER encoded x509 Certificate */ +typedef struct DerCert { + byte size[MAX_LENGTH_SZ]; /* length encoded */ + byte version[MAX_VERSION_SZ]; /* version encoded */ + byte serial[CTC_SERIAL_SIZE + MAX_LENGTH_SZ]; /* serial number encoded */ + byte sigAlgo[MAX_ALGO_SZ]; /* signature algo encoded */ + byte issuer[ASN_NAME_MAX]; /* issuer encoded */ + byte subject[ASN_NAME_MAX]; /* subject encoded */ + byte validity[MAX_DATE_SIZE*2 + MAX_SEQ_SZ*2]; /* before and after dates */ + byte publicKey[MAX_PUBLIC_KEY_SZ]; /* rsa / ntru public key encoded */ + byte ca[MAX_CA_SZ]; /* basic constraint CA true size */ + byte extensions[MAX_EXTENSIONS_SZ]; /* all extensions */ + int sizeSz; /* encoded size length */ + int versionSz; /* encoded version length */ + int serialSz; /* encoded serial length */ + int sigAlgoSz; /* enocded sig alog length */ + int issuerSz; /* encoded issuer length */ + int subjectSz; /* encoded subject length */ + int validitySz; /* encoded validity length */ + int publicKeySz; /* encoded public key length */ + int caSz; /* encoded CA extension length */ + int extensionsSz; /* encoded extensions total length */ + int total; /* total encoded lengths */ +} DerCert; + + +/* Write a set header to output */ +static word32 SetSet(word32 len, byte* output) +{ + output[0] = ASN_SET | ASN_CONSTRUCTED; + return SetLength(len, output + 1) + 1; +} + + +/* Write a serial number to output */ +static int SetSerial(const byte* serial, byte* output) +{ + int length = 0; + + output[length++] = ASN_INTEGER; + length += SetLength(CTC_SERIAL_SIZE, &output[length]); + XMEMCPY(&output[length], serial, CTC_SERIAL_SIZE); + + return length + CTC_SERIAL_SIZE; +} + + +/* Write a public RSA key to output */ +static int SetPublicKey(byte* output, RsaKey* key) +{ + byte n[MAX_RSA_INT_SZ]; + byte e[MAX_RSA_E_SZ]; + byte algo[MAX_ALGO_SZ]; + byte seq[MAX_SEQ_SZ]; + byte len[MAX_LENGTH_SZ + 1]; /* trailing 0 */ + int nSz; + int eSz; + int algoSz; + int seqSz; + int lenSz; + int idx; + int rawLen; + + /* n */ + rawLen = mp_unsigned_bin_size(&key->n); + n[0] = ASN_INTEGER; + nSz = SetLength(rawLen, n + 1) + 1; /* int tag */ + + if ( (nSz + rawLen) < (int)sizeof(n)) { + int err = mp_to_unsigned_bin(&key->n, n + nSz); + if (err == MP_OKAY) + nSz += rawLen; + else + return MP_TO_E; + } + else + return BUFFER_E; + + /* e */ + rawLen = mp_unsigned_bin_size(&key->e); + e[0] = ASN_INTEGER; + eSz = SetLength(rawLen, e + 1) + 1; /* int tag */ + + if ( (eSz + rawLen) < (int)sizeof(e)) { + int err = mp_to_unsigned_bin(&key->e, e + eSz); + if (err == MP_OKAY) + eSz += rawLen; + else + return MP_TO_E; + } + else + return BUFFER_E; + + /* headers */ + algoSz = SetAlgoID(RSAk, algo, keyType); + seqSz = SetSequence(nSz + eSz, seq); + lenSz = SetLength(seqSz + nSz + eSz + 1, len); + len[lenSz++] = 0; /* trailing 0 */ + + /* write */ + idx = SetSequence(nSz + eSz + seqSz + lenSz + 1 + algoSz, output); + /* 1 is for ASN_BIT_STRING */ + /* algo */ + XMEMCPY(output + idx, algo, algoSz); + idx += algoSz; + /* bit string */ + output[idx++] = ASN_BIT_STRING; + /* length */ + XMEMCPY(output + idx, len, lenSz); + idx += lenSz; + /* seq */ + XMEMCPY(output + idx, seq, seqSz); + idx += seqSz; + /* n */ + XMEMCPY(output + idx, n, nSz); + idx += nSz; + /* e */ + XMEMCPY(output + idx, e, eSz); + idx += eSz; + + return idx; +} + + +static INLINE byte itob(int number) +{ + return (byte)number + 0x30; +} + + +/* write time to output, format */ +static void SetTime(struct tm* date, byte* output) +{ + int i = 0; + + output[i++] = itob((date->tm_year % 10000) / 1000); + output[i++] = itob((date->tm_year % 1000) / 100); + output[i++] = itob((date->tm_year % 100) / 10); + output[i++] = itob( date->tm_year % 10); + + output[i++] = itob(date->tm_mon / 10); + output[i++] = itob(date->tm_mon % 10); + + output[i++] = itob(date->tm_mday / 10); + output[i++] = itob(date->tm_mday % 10); + + output[i++] = itob(date->tm_hour / 10); + output[i++] = itob(date->tm_hour % 10); + + output[i++] = itob(date->tm_min / 10); + output[i++] = itob(date->tm_min % 10); + + output[i++] = itob(date->tm_sec / 10); + output[i++] = itob(date->tm_sec % 10); + + output[i] = 'Z'; /* Zulu profile */ +} + + +#ifdef CYASSL_ALT_NAMES + +/* Copy Dates from cert, return bytes written */ +static int CopyValidity(byte* output, Cert* cert) +{ + int seqSz; + + CYASSL_ENTER("CopyValidity"); + + /* headers and output */ + seqSz = SetSequence(cert->beforeDateSz + cert->afterDateSz, output); + XMEMCPY(output + seqSz, cert->beforeDate, cert->beforeDateSz); + XMEMCPY(output + seqSz + cert->beforeDateSz, cert->afterDate, + cert->afterDateSz); + return seqSz + cert->beforeDateSz + cert->afterDateSz; +} + +#endif + + +/* Set Date validity from now until now + daysValid */ +static int SetValidity(byte* output, int daysValid) +{ + byte before[MAX_DATE_SIZE]; + byte after[MAX_DATE_SIZE]; + + int beforeSz; + int afterSz; + int seqSz; + + time_t ticks; + struct tm* now; + struct tm local; + + ticks = XTIME(0); + now = XGMTIME(&ticks); + + /* before now */ + local = *now; + before[0] = ASN_GENERALIZED_TIME; + beforeSz = SetLength(ASN_GEN_TIME_SZ, before + 1) + 1; /* gen tag */ + + /* subtract 1 day for more compliance */ + local.tm_mday -= 1; + mktime(&local); + + /* adjust */ + local.tm_year += 1900; + local.tm_mon += 1; + + SetTime(&local, before + beforeSz); + beforeSz += ASN_GEN_TIME_SZ; + + /* after now + daysValid */ + local = *now; + after[0] = ASN_GENERALIZED_TIME; + afterSz = SetLength(ASN_GEN_TIME_SZ, after + 1) + 1; /* gen tag */ + + /* add daysValid */ + local.tm_mday += daysValid; + mktime(&local); + + /* adjust */ + local.tm_year += 1900; + local.tm_mon += 1; + + SetTime(&local, after + afterSz); + afterSz += ASN_GEN_TIME_SZ; + + /* headers and output */ + seqSz = SetSequence(beforeSz + afterSz, output); + XMEMCPY(output + seqSz, before, beforeSz); + XMEMCPY(output + seqSz + beforeSz, after, afterSz); + + return seqSz + beforeSz + afterSz; +} + + +/* ASN Encoded Name field */ +typedef struct EncodedName { + int nameLen; /* actual string value length */ + int totalLen; /* total encoded length */ + int type; /* type of name */ + int used; /* are we actually using this one */ + byte encoded[CTC_NAME_SIZE * 2]; /* encoding */ +} EncodedName; + + +/* Get Which Name from index */ +static const char* GetOneName(CertName* name, int idx) +{ + switch (idx) { + case 0: + return name->country; + break; + case 1: + return name->state; + break; + case 2: + return name->locality; + break; + case 3: + return name->sur; + break; + case 4: + return name->org; + break; + case 5: + return name->unit; + break; + case 6: + return name->commonName; + break; + case 7: + return name->email; + break; + default: + return 0; + } + + return 0; +} + + +/* Get ASN Name from index */ +static byte GetNameId(int idx) +{ + switch (idx) { + case 0: + return ASN_COUNTRY_NAME; + break; + case 1: + return ASN_STATE_NAME; + break; + case 2: + return ASN_LOCALITY_NAME; + break; + case 3: + return ASN_SUR_NAME; + break; + case 4: + return ASN_ORG_NAME; + break; + case 5: + return ASN_ORGUNIT_NAME; + break; + case 6: + return ASN_COMMON_NAME; + break; + case 7: + /* email uses different id type */ + return 0; + break; + default: + return 0; + } + + return 0; +} + + +/* encode all extensions, return total bytes written */ +static int SetExtensions(byte* output, const byte* ext, int extSz) +{ + byte sequence[MAX_SEQ_SZ]; + byte len[MAX_LENGTH_SZ]; + + int sz = 0; + int seqSz = SetSequence(extSz, sequence); + int lenSz = SetLength(seqSz + extSz, len); + + output[0] = ASN_EXTENSIONS; /* extensions id */ + sz++; + XMEMCPY(&output[sz], len, lenSz); /* length */ + sz += lenSz; + XMEMCPY(&output[sz], sequence, seqSz); /* sequence */ + sz += seqSz; + XMEMCPY(&output[sz], ext, extSz); /* extensions */ + sz += extSz; + + return sz; +} + + +/* encode CA basic constraint true, return total bytes written */ +static int SetCa(byte* output) +{ + static const byte ca[] = { 0x30, 0x0c, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x04, + 0x05, 0x30, 0x03, 0x01, 0x01, 0xff }; + + XMEMCPY(output, ca, sizeof(ca)); + + return (int)sizeof(ca); +} + + +/* encode CertName into output, return total bytes written */ +static int SetName(byte* output, CertName* name) +{ + int totalBytes = 0, i, idx; + EncodedName names[NAME_ENTRIES]; + + for (i = 0; i < NAME_ENTRIES; i++) { + const char* nameStr = GetOneName(name, i); + if (nameStr) { + /* bottom up */ + byte firstLen[MAX_LENGTH_SZ]; + byte secondLen[MAX_LENGTH_SZ]; + byte sequence[MAX_SEQ_SZ]; + byte set[MAX_SET_SZ]; + + int email = i == (NAME_ENTRIES - 1) ? 1 : 0; + int strLen = XSTRLEN(nameStr); + int thisLen = strLen; + int firstSz, secondSz, seqSz, setSz; + + if (strLen == 0) { /* no user data for this item */ + names[i].used = 0; + continue; + } + + secondSz = SetLength(strLen, secondLen); + thisLen += secondSz; + if (email) { + thisLen += EMAIL_JOINT_LEN; + thisLen ++; /* id type */ + firstSz = SetLength(EMAIL_JOINT_LEN, firstLen); + } + else { + thisLen++; /* str type */ + thisLen++; /* id type */ + thisLen += JOINT_LEN; + firstSz = SetLength(JOINT_LEN + 1, firstLen); + } + thisLen += firstSz; + thisLen++; /* object id */ + + seqSz = SetSequence(thisLen, sequence); + thisLen += seqSz; + setSz = SetSet(thisLen, set); + thisLen += setSz; + + if (thisLen > (int)sizeof(names[i].encoded)) + return BUFFER_E; + + /* store it */ + idx = 0; + /* set */ + XMEMCPY(names[i].encoded, set, setSz); + idx += setSz; + /* seq */ + XMEMCPY(names[i].encoded + idx, sequence, seqSz); + idx += seqSz; + /* asn object id */ + names[i].encoded[idx++] = ASN_OBJECT_ID; + /* first length */ + XMEMCPY(names[i].encoded + idx, firstLen, firstSz); + idx += firstSz; + if (email) { + const byte EMAIL_OID[] = { 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, + 0x01, 0x09, 0x01, 0x16 }; + /* email joint id */ + XMEMCPY(names[i].encoded + idx, EMAIL_OID, sizeof(EMAIL_OID)); + idx += sizeof(EMAIL_OID); + } + else { + /* joint id */ + names[i].encoded[idx++] = 0x55; + names[i].encoded[idx++] = 0x04; + /* id type */ + names[i].encoded[idx++] = GetNameId(i); + /* str type */ + names[i].encoded[idx++] = 0x13; + } + /* second length */ + XMEMCPY(names[i].encoded + idx, secondLen, secondSz); + idx += secondSz; + /* str value */ + XMEMCPY(names[i].encoded + idx, nameStr, strLen); + idx += strLen; + + totalBytes += idx; + names[i].totalLen = idx; + names[i].used = 1; + } + else + names[i].used = 0; + } + + /* header */ + idx = SetSequence(totalBytes, output); + totalBytes += idx; + if (totalBytes > ASN_NAME_MAX) + return BUFFER_E; + + for (i = 0; i < NAME_ENTRIES; i++) { + if (names[i].used) { + XMEMCPY(output + idx, names[i].encoded, names[i].totalLen); + idx += names[i].totalLen; + } + } + return totalBytes; +} + + +/* encode info from cert into DER enocder format */ +static int EncodeCert(Cert* cert, DerCert* der, RsaKey* rsaKey, RNG* rng, + const byte* ntruKey, word16 ntruSz) +{ + (void)ntruKey; + (void)ntruSz; + /* version */ + der->versionSz = SetMyVersion(cert->version, der->version, TRUE); + + /* serial number */ + RNG_GenerateBlock(rng, cert->serial, CTC_SERIAL_SIZE); + cert->serial[0] = 0x01; /* ensure positive */ + der->serialSz = SetSerial(cert->serial, der->serial); + + /* signature algo */ + der->sigAlgoSz = SetAlgoID(cert->sigType, der->sigAlgo, sigType); + if (der->sigAlgoSz == 0) + return ALGO_ID_E; + + /* public key */ + if (cert->keyType == RSA_KEY) { + der->publicKeySz = SetPublicKey(der->publicKey, rsaKey); + if (der->publicKeySz == 0) + return PUBLIC_KEY_E; + } + else { +#ifdef HAVE_NTRU + word32 rc; + word16 encodedSz; + + rc = crypto_ntru_encrypt_publicKey2SubjectPublicKeyInfo( ntruSz, + ntruKey, &encodedSz, NULL); + if (rc != NTRU_OK) + return PUBLIC_KEY_E; + if (encodedSz > MAX_PUBLIC_KEY_SZ) + return PUBLIC_KEY_E; + + rc = crypto_ntru_encrypt_publicKey2SubjectPublicKeyInfo( ntruSz, + ntruKey, &encodedSz, der->publicKey); + if (rc != NTRU_OK) + return PUBLIC_KEY_E; + + der->publicKeySz = encodedSz; +#endif + } + + der->validitySz = 0; +#ifdef CYASSL_ALT_NAMES + /* date validity copy ? */ + if (cert->beforeDateSz && cert->afterDateSz) { + der->validitySz = CopyValidity(der->validity, cert); + if (der->validitySz == 0) + return DATE_E; + } +#endif + + /* date validity */ + if (der->validitySz == 0) { + der->validitySz = SetValidity(der->validity, cert->daysValid); + if (der->validitySz == 0) + return DATE_E; + } + + /* subject name */ + der->subjectSz = SetName(der->subject, &cert->subject); + if (der->subjectSz == 0) + return SUBJECT_E; + + /* issuer name */ + der->issuerSz = SetName(der->issuer, cert->selfSigned ? + &cert->subject : &cert->issuer); + if (der->issuerSz == 0) + return ISSUER_E; + + /* CA */ + if (cert->isCA) { + der->caSz = SetCa(der->ca); + if (der->caSz == 0) + return CA_TRUE_E; + } + else + der->caSz = 0; + + /* extensions, just CA now */ + if (cert->isCA) { + der->extensionsSz = SetExtensions(der->extensions, der->ca, der->caSz); + if (der->extensionsSz == 0) + return EXTENSIONS_E; + } + else + der->extensionsSz = 0; + +#ifdef CYASSL_ALT_NAMES + if (der->extensionsSz == 0 && cert->altNamesSz) { + der->extensionsSz = SetExtensions(der->extensions, cert->altNames, + cert->altNamesSz); + if (der->extensionsSz == 0) + return EXTENSIONS_E; + } +#endif + + der->total = der->versionSz + der->serialSz + der->sigAlgoSz + + der->publicKeySz + der->validitySz + der->subjectSz + der->issuerSz + + der->extensionsSz; + + return 0; +} + + +/* write DER encoded cert to buffer, size already checked */ +static int WriteCertBody(DerCert* der, byte* buffer) +{ + int idx; + + /* signed part header */ + idx = SetSequence(der->total, buffer); + /* version */ + XMEMCPY(buffer + idx, der->version, der->versionSz); + idx += der->versionSz; + /* serial */ + XMEMCPY(buffer + idx, der->serial, der->serialSz); + idx += der->serialSz; + /* sig algo */ + XMEMCPY(buffer + idx, der->sigAlgo, der->sigAlgoSz); + idx += der->sigAlgoSz; + /* issuer */ + XMEMCPY(buffer + idx, der->issuer, der->issuerSz); + idx += der->issuerSz; + /* validity */ + XMEMCPY(buffer + idx, der->validity, der->validitySz); + idx += der->validitySz; + /* subject */ + XMEMCPY(buffer + idx, der->subject, der->subjectSz); + idx += der->subjectSz; + /* public key */ + XMEMCPY(buffer + idx, der->publicKey, der->publicKeySz); + idx += der->publicKeySz; + if (der->extensionsSz) { + /* extensions */ + XMEMCPY(buffer + idx, der->extensions, der->extensionsSz); + idx += der->extensionsSz; + } + + return idx; +} + + +/* Make RSA signature from buffer (sz), write to sig (sigSz) */ +static int MakeSignature(const byte* buffer, int sz, byte* sig, int sigSz, + RsaKey* key, RNG* rng, int sigAlgoType) +{ + byte digest[SHA256_DIGEST_SIZE]; /* max size */ + byte encSig[MAX_ENCODED_DIG_SZ + MAX_ALGO_SZ + MAX_SEQ_SZ]; + int encSigSz, digestSz, typeH; + + if (sigAlgoType == CTC_MD5wRSA) { + Md5 md5; + InitMd5(&md5); + Md5Update(&md5, buffer, sz); + Md5Final(&md5, digest); + digestSz = MD5_DIGEST_SIZE; + typeH = MD5h; + } + else if (sigAlgoType == CTC_SHAwRSA) { + Sha sha; + InitSha(&sha); + ShaUpdate(&sha, buffer, sz); + ShaFinal(&sha, digest); + digestSz = SHA_DIGEST_SIZE; + typeH = SHAh; + } + else if (sigAlgoType == CTC_SHA256wRSA) { + Sha256 sha256; + InitSha256(&sha256); + Sha256Update(&sha256, buffer, sz); + Sha256Final(&sha256, digest); + digestSz = SHA256_DIGEST_SIZE; + typeH = SHA256h; + } + else + return ALGO_ID_E; + + /* signature */ + encSigSz = EncodeSignature(encSig, digest, digestSz, typeH); + return RsaSSL_Sign(encSig, encSigSz, sig, sigSz, key, rng); +} + + +/* add signature to end of buffer, size of buffer assumed checked, return + new length */ +static int AddSignature(byte* buffer, int bodySz, const byte* sig, int sigSz, + int sigAlgoType) +{ + byte seq[MAX_SEQ_SZ]; + int idx = bodySz, seqSz; + + /* algo */ + idx += SetAlgoID(sigAlgoType, buffer + idx, sigType); + /* bit string */ + buffer[idx++] = ASN_BIT_STRING; + /* length */ + idx += SetLength(sigSz + 1, buffer + idx); + buffer[idx++] = 0; /* trailing 0 */ + /* signature */ + XMEMCPY(buffer + idx, sig, sigSz); + idx += sigSz; + + /* make room for overall header */ + seqSz = SetSequence(idx, seq); + XMEMMOVE(buffer + seqSz, buffer, idx); + XMEMCPY(buffer, seq, seqSz); + + return idx + seqSz; +} + + +/* Make an x509 Certificate v3 any key type from cert input, write to buffer */ +static int MakeAnyCert(Cert* cert, byte* derBuffer, word32 derSz, + RsaKey* rsaKey, RNG* rng, const byte* ntruKey, word16 ntruSz) +{ + DerCert der; + int ret; + + cert->keyType = rsaKey ? RSA_KEY : NTRU_KEY; + ret = EncodeCert(cert, &der, rsaKey, rng, ntruKey, ntruSz); + if (ret != 0) + return ret; + + if (der.total + MAX_SEQ_SZ * 2 > (int)derSz) + return BUFFER_E; + + return cert->bodySz = WriteCertBody(&der, derBuffer); +} + + +/* Make an x509 Certificate v3 RSA from cert input, write to buffer */ +int MakeCert(Cert* cert, byte* derBuffer, word32 derSz, RsaKey* rsaKey,RNG* rng) +{ + return MakeAnyCert(cert, derBuffer, derSz, rsaKey, rng, NULL, 0); +} + + +#ifdef HAVE_NTRU + +int MakeNtruCert(Cert* cert, byte* derBuffer, word32 derSz, + const byte* ntruKey, word16 keySz, RNG* rng) +{ + return MakeAnyCert(cert, derBuffer, derSz, NULL, rng, ntruKey, keySz); +} + +#endif /* HAVE_NTRU */ + + +int SignCert(Cert* cert, byte* buffer, word32 buffSz, RsaKey* key, RNG* rng) +{ + byte sig[MAX_ENCODED_SIG_SZ]; + int sigSz; + int bodySz = cert->bodySz; + + if (bodySz < 0) + return bodySz; + + sigSz = MakeSignature(buffer, bodySz, sig, sizeof(sig), key, rng, + cert->sigType); + if (sigSz < 0) + return sigSz; + + if (bodySz + MAX_SEQ_SZ * 2 + sigSz > (int)buffSz) + return BUFFER_E; + + return AddSignature(buffer, bodySz, sig, sigSz, cert->sigType); +} + + +int MakeSelfCert(Cert* cert, byte* buffer, word32 buffSz, RsaKey* key, RNG* rng) +{ + int ret = MakeCert(cert, buffer, buffSz, key, rng); + + if (ret < 0) + return ret; + + return SignCert(cert, buffer, buffSz, key, rng); +} + + +#ifdef CYASSL_ALT_NAMES + +/* Set Alt Names from der cert, return 0 on success */ +static int SetAltNamesFromCert(Cert* cert, const byte* der, int derSz) +{ + DecodedCert decoded; + int ret; + + if (derSz < 0) + return derSz; + + InitDecodedCert(&decoded, (byte*)der, derSz, 0); + ret = ParseCertRelative(&decoded, CA_TYPE, NO_VERIFY, 0); + + if (ret < 0) { + FreeDecodedCert(&decoded); + return ret; + } + + if (decoded.extensions) { + byte b; + int length; + word32 maxExtensionsIdx; + + decoded.srcIdx = decoded.extensionsIdx; + b = decoded.source[decoded.srcIdx++]; + if (b != ASN_EXTENSIONS) { + FreeDecodedCert(&decoded); + return ASN_PARSE_E; + } + + if (GetLength(decoded.source, &decoded.srcIdx, &length, + decoded.maxIdx) < 0) { + FreeDecodedCert(&decoded); + return ASN_PARSE_E; + } + + if (GetSequence(decoded.source, &decoded.srcIdx, &length, + decoded.maxIdx) < 0) { + FreeDecodedCert(&decoded); + return ASN_PARSE_E; + } + + maxExtensionsIdx = decoded.srcIdx + length; + + while (decoded.srcIdx < maxExtensionsIdx) { + word32 oid; + word32 startIdx = decoded.srcIdx; + word32 tmpIdx; + + if (GetSequence(decoded.source, &decoded.srcIdx, &length, + decoded.maxIdx) < 0) { + FreeDecodedCert(&decoded); + return ASN_PARSE_E; + } + + tmpIdx = decoded.srcIdx; + decoded.srcIdx = startIdx; + + if (GetAlgoId(decoded.source, &decoded.srcIdx, &oid, + decoded.maxIdx) < 0) { + FreeDecodedCert(&decoded); + return ASN_PARSE_E; + } + + if (oid == ALT_NAMES_OID) { + cert->altNamesSz = length + (tmpIdx - startIdx); + + if (cert->altNamesSz < (int)sizeof(cert->altNames)) + XMEMCPY(cert->altNames, &decoded.source[startIdx], + cert->altNamesSz); + else { + cert->altNamesSz = 0; + CYASSL_MSG("AltNames extensions too big"); + FreeDecodedCert(&decoded); + return ALT_NAME_E; + } + } + decoded.srcIdx = tmpIdx + length; + } + } + FreeDecodedCert(&decoded); + + return 0; +} + + +/* Set Dates from der cert, return 0 on success */ +static int SetDatesFromCert(Cert* cert, const byte* der, int derSz) +{ + DecodedCert decoded; + int ret; + + CYASSL_ENTER("SetDatesFromCert"); + if (derSz < 0) + return derSz; + + InitDecodedCert(&decoded, (byte*)der, derSz, 0); + ret = ParseCertRelative(&decoded, CA_TYPE, NO_VERIFY, 0); + + if (ret < 0) { + CYASSL_MSG("ParseCertRelative error"); + FreeDecodedCert(&decoded); + return ret; + } + + if (decoded.beforeDate == NULL || decoded.afterDate == NULL) { + CYASSL_MSG("Couldn't extract dates"); + FreeDecodedCert(&decoded); + return -1; + } + + if (decoded.beforeDateLen > MAX_DATE_SIZE || decoded.afterDateLen > + MAX_DATE_SIZE) { + CYASSL_MSG("Bad date size"); + FreeDecodedCert(&decoded); + return -1; + } + + XMEMCPY(cert->beforeDate, decoded.beforeDate, decoded.beforeDateLen); + XMEMCPY(cert->afterDate, decoded.afterDate, decoded.afterDateLen); + + cert->beforeDateSz = decoded.beforeDateLen; + cert->afterDateSz = decoded.afterDateLen; + + return 0; +} + + +#endif /* CYASSL_ALT_NAMES */ + + +/* Set cn name from der buffer, return 0 on success */ +static int SetNameFromCert(CertName* cn, const byte* der, int derSz) +{ + DecodedCert decoded; + int ret; + int sz; + + if (derSz < 0) + return derSz; + + InitDecodedCert(&decoded, (byte*)der, derSz, 0); + ret = ParseCertRelative(&decoded, CA_TYPE, NO_VERIFY, 0); + + if (ret < 0) + return ret; + + if (decoded.subjectCN) { + sz = (decoded.subjectCNLen < CTC_NAME_SIZE) ? decoded.subjectCNLen : + CTC_NAME_SIZE - 1; + strncpy(cn->commonName, decoded.subjectCN, CTC_NAME_SIZE); + cn->commonName[sz] = 0; + } + if (decoded.subjectC) { + sz = (decoded.subjectCLen < CTC_NAME_SIZE) ? decoded.subjectCLen : + CTC_NAME_SIZE - 1; + strncpy(cn->country, decoded.subjectC, CTC_NAME_SIZE); + cn->country[sz] = 0; + } + if (decoded.subjectST) { + sz = (decoded.subjectSTLen < CTC_NAME_SIZE) ? decoded.subjectSTLen : + CTC_NAME_SIZE - 1; + strncpy(cn->state, decoded.subjectST, CTC_NAME_SIZE); + cn->state[sz] = 0; + } + if (decoded.subjectL) { + sz = (decoded.subjectLLen < CTC_NAME_SIZE) ? decoded.subjectLLen : + CTC_NAME_SIZE - 1; + strncpy(cn->locality, decoded.subjectL, CTC_NAME_SIZE); + cn->locality[sz] = 0; + } + if (decoded.subjectO) { + sz = (decoded.subjectOLen < CTC_NAME_SIZE) ? decoded.subjectOLen : + CTC_NAME_SIZE - 1; + strncpy(cn->org, decoded.subjectO, CTC_NAME_SIZE); + cn->org[sz] = 0; + } + if (decoded.subjectOU) { + sz = (decoded.subjectOULen < CTC_NAME_SIZE) ? decoded.subjectOULen : + CTC_NAME_SIZE - 1; + strncpy(cn->unit, decoded.subjectOU, CTC_NAME_SIZE); + cn->unit[sz] = 0; + } + if (decoded.subjectSN) { + sz = (decoded.subjectSNLen < CTC_NAME_SIZE) ? decoded.subjectSNLen : + CTC_NAME_SIZE - 1; + strncpy(cn->sur, decoded.subjectSN, CTC_NAME_SIZE); + cn->sur[sz] = 0; + } + if (decoded.subjectEmail) { + sz = (decoded.subjectEmailLen < CTC_NAME_SIZE) ? + decoded.subjectEmailLen : CTC_NAME_SIZE - 1; + strncpy(cn->email, decoded.subjectEmail, CTC_NAME_SIZE); + cn->email[sz] = 0; + } + + FreeDecodedCert(&decoded); + + return 0; +} + + +#ifndef NO_FILESYSTEM + +/* forward from CyaSSL */ +int CyaSSL_PemCertToDer(const char* fileName, unsigned char* derBuf, int derSz); + +/* Set cert issuer from issuerFile in PEM */ +int SetIssuer(Cert* cert, const char* issuerFile) +{ + byte der[8192]; + int derSz = CyaSSL_PemCertToDer(issuerFile, der, sizeof(der)); + + cert->selfSigned = 0; + return SetNameFromCert(&cert->issuer, der, derSz); +} + + +/* Set cert subject from subjectFile in PEM */ +int SetSubject(Cert* cert, const char* subjectFile) +{ + byte der[8192]; + int derSz = CyaSSL_PemCertToDer(subjectFile, der, sizeof(der)); + + return SetNameFromCert(&cert->subject, der, derSz); +} + + +#ifdef CYASSL_ALT_NAMES + +/* Set atl names from file in PEM */ +int SetAltNames(Cert* cert, const char* file) +{ + byte der[8192]; + int derSz = CyaSSL_PemCertToDer(file, der, sizeof(der)); + + return SetAltNamesFromCert(cert, der, derSz); +} + +#endif /* CYASSL_ALT_NAMES */ + +#endif /* NO_FILESYSTEM */ + +/* Set cert issuer from DER buffer */ +int SetIssuerBuffer(Cert* cert, const byte* der, int derSz) +{ + cert->selfSigned = 0; + return SetNameFromCert(&cert->issuer, der, derSz); +} + + +/* Set cert subject from DER buffer */ +int SetSubjectBuffer(Cert* cert, const byte* der, int derSz) +{ + return SetNameFromCert(&cert->subject, der, derSz); +} + + +#ifdef CYASSL_ALT_NAMES + +/* Set cert alt names from DER buffer */ +int SetAltNamesBuffer(Cert* cert, const byte* der, int derSz) +{ + return SetAltNamesFromCert(cert, der, derSz); +} + +/* Set cert dates from DER buffer */ +int SetDatesBuffer(Cert* cert, const byte* der, int derSz) +{ + return SetDatesFromCert(cert, der, derSz); +} + +#endif /* CYASSL_ALT_NAMES */ + +#endif /* CYASSL_CERT_GEN */ + + +#ifdef HAVE_ECC + +/* Der Encode r & s ints into out, outLen is (in/out) size */ +int StoreECC_DSA_Sig(byte* out, word32* outLen, mp_int* r, mp_int* s) +{ + word32 idx = 0; + word32 rSz; /* encoding size */ + word32 sSz; + word32 headerSz = 4; /* 2*ASN_TAG + 2*LEN(ENUM) */ + + int rLen = mp_unsigned_bin_size(r); /* big int size */ + int sLen = mp_unsigned_bin_size(s); + int err; + + if (*outLen < (rLen + sLen + headerSz + 2)) /* SEQ_TAG + LEN(ENUM) */ + return BAD_FUNC_ARG; + + idx = SetSequence(rLen + sLen + headerSz, out); + + /* store r */ + out[idx++] = ASN_INTEGER; + rSz = SetLength(rLen, &out[idx]); + idx += rSz; + err = mp_to_unsigned_bin(r, &out[idx]); + if (err != MP_OKAY) return err; + idx += rLen; + + /* store s */ + out[idx++] = ASN_INTEGER; + sSz = SetLength(sLen, &out[idx]); + idx += sSz; + err = mp_to_unsigned_bin(s, &out[idx]); + if (err != MP_OKAY) return err; + idx += sLen; + + *outLen = idx; + + return 0; +} + + +/* Der Decode ECC-DSA Signautre, r & s stored as big ints */ +int DecodeECC_DSA_Sig(const byte* sig, word32 sigLen, mp_int* r, mp_int* s) +{ + word32 idx = 0; + int len = 0; + + if (GetSequence(sig, &idx, &len, sigLen) < 0) + return ASN_ECC_KEY_E; + + if ((word32)len > (sigLen - idx)) + return ASN_ECC_KEY_E; + + if (GetInt(r, sig, &idx, sigLen) < 0) + return ASN_ECC_KEY_E; + + if (GetInt(s, sig, &idx, sigLen) < 0) + return ASN_ECC_KEY_E; + + return 0; +} + + +int EccPrivateKeyDecode(const byte* input, word32* inOutIdx, ecc_key* key, + word32 inSz) +{ + word32 oid = 0; + int version, length; + int privSz, pubSz; + byte b; + byte priv[ECC_MAXSIZE]; + byte pub[ECC_MAXSIZE * 2 + 1]; /* public key has two parts plus header */ + + if (GetSequence(input, inOutIdx, &length, inSz) < 0) + return ASN_PARSE_E; + + if (GetMyVersion(input, inOutIdx, &version) < 0) + return ASN_PARSE_E; + + b = input[*inOutIdx]; + *inOutIdx += 1; + + /* priv type */ + if (b != 4 && b != 6 && b != 7) + return ASN_PARSE_E; + + if (GetLength(input, inOutIdx, &length, inSz) < 0) + return ASN_PARSE_E; + + /* priv key */ + privSz = length; + XMEMCPY(priv, &input[*inOutIdx], privSz); + *inOutIdx += length; + + /* prefix 0, may have */ + b = input[*inOutIdx]; + if (b == ECC_PREFIX_0) { + *inOutIdx += 1; + + if (GetLength(input, inOutIdx, &length, inSz) < 0) + return ASN_PARSE_E; + + /* object id */ + b = input[*inOutIdx]; + *inOutIdx += 1; + + if (b != ASN_OBJECT_ID) + return ASN_OBJECT_ID_E; + + if (GetLength(input, inOutIdx, &length, inSz) < 0) + return ASN_PARSE_E; + + while(length--) { + oid += input[*inOutIdx]; + *inOutIdx += 1; + } + if (CheckCurve(oid) < 0) + return ECC_CURVE_OID_E; + } + + /* prefix 1 */ + b = input[*inOutIdx]; + *inOutIdx += 1; + if (b != ECC_PREFIX_1) + return ASN_ECC_KEY_E; + + if (GetLength(input, inOutIdx, &length, inSz) < 0) + return ASN_PARSE_E; + + /* key header */ + b = input[*inOutIdx]; + *inOutIdx += 1; + if (b != ASN_BIT_STRING) + return ASN_BITSTR_E; + + if (GetLength(input, inOutIdx, &length, inSz) < 0) + return ASN_PARSE_E; + b = input[*inOutIdx]; + *inOutIdx += 1; + if (b != 0x00) + return ASN_EXPECT_0_E; + + pubSz = length - 1; /* null prefix */ + XMEMCPY(pub, &input[*inOutIdx], pubSz); + + *inOutIdx += length; + + return ecc_import_private_key(priv, privSz, pub, pubSz, key); +} + +#endif /* HAVE_ECC */ + + +#ifdef HAVE_OCSP + +static int GetEnumerated(const byte* input, word32* inOutIdx, int *value) +{ + word32 idx = *inOutIdx; + word32 len; + + *value = 0; + + if (input[idx++] != ASN_ENUMERATED) + return ASN_PARSE_E; + + len = input[idx++]; + if (len > 4) + return ASN_PARSE_E; + + while (len--) { + *value = *value << 8 | input[idx++]; + } + + *inOutIdx = idx; + + return *value; +} + + +static int DecodeSingleResponse(byte* source, + word32* ioIndex, OcspResponse* resp, word32 size) +{ + word32 index = *ioIndex, prevIndex, oid, mpi_len; + int length, remainder, qty = 0; + mp_int mpi; + byte serialTmp[EXTERNAL_SERIAL_SIZE]; + + /* Outer wrapper of the SEQUENCE OF Single Responses. */ + if (GetSequence(source, &index, &length, size) < 0) + return ASN_PARSE_E; + remainder = length; + + /* First Single Response */ + while (remainder != 0 && qty < STATUS_LIST_SIZE) + { + prevIndex = index; + /* Wrapper around the Single Response */ + if (GetSequence(source, &index, &length, size) < 0) + return ASN_PARSE_E; + + /* Wrapper around the CertID */ + if (GetSequence(source, &index, &length, size) < 0) + return ASN_PARSE_E; + /* Skip the hash algorithm */ + if (GetAlgoId(source, &index, &oid, size) < 0) + return ASN_PARSE_E; + /* Skip the hash of CN */ + if (source[index++] != ASN_OCTET_STRING) + return ASN_PARSE_E; + if (GetLength(source, &index, &length, size) < 0) + return ASN_PARSE_E; + index += length; + /* Skip the hash of the issuer public key */ + if (source[index++] != ASN_OCTET_STRING) + return ASN_PARSE_E; + if (GetLength(source, &index, &length, size) < 0) + return ASN_PARSE_E; + index += length; + + /* Read the serial number */ + if (GetInt(&mpi, source, &index, size) < 0) + return ASN_PARSE_E; + mpi_len = mp_unsigned_bin_size(&mpi); + if (mpi_len < (int)sizeof(serialTmp)) { + if (mp_to_unsigned_bin(&mpi, serialTmp) == MP_OKAY) { + if (mpi_len > EXTERNAL_SERIAL_SIZE) + mpi_len = EXTERNAL_SERIAL_SIZE; + XMEMCPY(resp->certSN[qty], serialTmp, mpi_len); + resp->certSNsz[qty] = mpi_len; + } + } + mp_clear(&mpi); + + /* CertStatus */ + switch (source[index++]) + { + case (ASN_CONTEXT_SPECIFIC | CERT_GOOD): + resp->certStatus[qty] = CERT_GOOD; + index++; + break; + case (ASN_CONTEXT_SPECIFIC | ASN_CONSTRUCTED | CERT_REVOKED): + resp->certStatus[qty] = CERT_REVOKED; + GetLength(source, &index, &length, size); + index += length; + break; + case (ASN_CONTEXT_SPECIFIC | ASN_CONSTRUCTED | CERT_UNKNOWN): + resp->certStatus[qty] = CERT_UNKNOWN; + index++; + break; + default: + return ASN_PARSE_E; + } + + if (source[index++] != ASN_GENERALIZED_TIME) + return ASN_PARSE_E; + + if (GetLength(source, &index, &length, size) < 0) + return ASN_PARSE_E; + index += length; + + remainder = remainder + prevIndex - index; + qty++; + } + resp->certStatusCount = qty; + + *ioIndex = index; + + return 0; +} + +static int DecodeResponseData(byte* source, + word32* ioIndex, OcspResponse* resp, word32 size) +{ + word32 index = *ioIndex; + int length, result; + int version; + word32 responderId = 0; + + if (GetSequence(source, &index, &length, size) < 0) + return ASN_PARSE_E; + resp->respBegin = index; + resp->respLength = length; + + /* Get version. It is an EXPLICIT[0] DEFAULT(0) value. If this + * item isn't an EXPLICIT[0], then set version to zero and move + * onto the next item. + */ + if (source[index] == (ASN_CONTEXT_SPECIFIC | ASN_CONSTRUCTED)) + { + index += 2; /* Eat the value and length */ + if (GetMyVersion(source, &index, &version) < 0) + return ASN_PARSE_E; + } else + version = 0; + + responderId = source[index++]; + if ((responderId == (ASN_CONTEXT_SPECIFIC | ASN_CONSTRUCTED | 1)) || + (responderId == (ASN_CONTEXT_SPECIFIC | ASN_CONSTRUCTED | 2))) + { + if (GetLength(source, &index, &length, size) < 0) + return ASN_PARSE_E; + index += length; + } + else + return ASN_PARSE_E; + + /* Skip GeneralizedTime */ + if (source[index++] != ASN_GENERALIZED_TIME) + return ASN_PARSE_E; + if (GetLength(source, &index, &length, size) < 0) + return ASN_PARSE_E; + index += length; + + if (DecodeSingleResponse(source, &index, resp, size) < 0) + return ASN_PARSE_E; + + /* Skip the extensions */ + if (source[index++] == (ASN_CONTEXT_SPECIFIC | ASN_CONSTRUCTED | 1)) + { + if (GetLength(source, &index, &length, size) < 0) + return ASN_PARSE_E; + index += length; + } + + *ioIndex = index; + return 0; +} + +static int DecodeCerts(byte* source, + word32* ioIndex, OcspResponse* resp, word32 size) +{ + word32 index = *ioIndex; + if (source[index++] == (ASN_CONSTRUCTED | ASN_CONTEXT_SPECIFIC)) + { + int length; + + if (GetLength(source, &index, &length, size) < 0) + return ASN_PARSE_E; + index += length; + } + *ioIndex = index; + return 0; +} + +static int DecodeBasicOcspResponse(byte* source, + word32* ioIndex, OcspResponse* resp, word32 size) +{ + int length; + word32 index = *ioIndex; + word32 end_index; + + if (GetSequence(source, &index, &length, size) < 0) + return ASN_PARSE_E; + + if (index + length > size) + return ASN_INPUT_E; + end_index = index + length; + + if (DecodeResponseData(source, &index, resp, size) < 0) + return ASN_PARSE_E; + + /* Get the signature algorithm */ + if (GetAlgoId(source, &index, &resp->sigOID, size) < 0) + return ASN_PARSE_E; + + /* Obtain pointer to the start of the signature, and save the size */ + if (source[index++] == ASN_BIT_STRING) + { + int sigLength = 0; + if (GetLength(source, &index, &sigLength, size) < 0) + return ASN_PARSE_E; + resp->sigLength = sigLength; + resp->sigIndex = index; + index += sigLength; + } + + /* + * Check the length of the BasicOcspResponse against the current index to + * see if there are certificates, they are optional. + */ + if (index < end_index) + return DecodeCerts(source, &index, resp, size); + + *ioIndex = index; + return 0; +} + + +void InitOcspResponse(OcspResponse* resp, byte* source, word32 inSz, void* heap) +{ + XMEMSET(resp, 0, sizeof(*resp)); + resp->source = source; + resp->maxIdx = inSz; + resp->heap = heap; +} + + +void FreeOcspResponse(OcspResponse* resp) {} + + +int OcspResponseDecode(OcspResponse* resp) +{ + int length = 0; + word32 index = 0; + byte* source = resp->source; + word32 size = resp->maxIdx; + word32 oid; + + /* peel the outer SEQUENCE wrapper */ + if (GetSequence(source, &index, &length, size) < 0) + return ASN_PARSE_E; + + /* First get the responseStatus, an ENUMERATED */ + if (GetEnumerated(source, &index, &resp->responseStatus) < 0) + return ASN_PARSE_E; + + if (resp->responseStatus != OCSP_SUCCESSFUL) + return 0; + + /* Next is an EXPLICIT record called ResponseBytes, OPTIONAL */ + if (index >= size) + return ASN_INPUT_E; + if (source[index++] != (ASN_CONSTRUCTED | ASN_CONTEXT_SPECIFIC)) + return ASN_PARSE_E; + if (GetLength(source, &index, &length, size) < 0) + return ASN_PARSE_E; + + /* Get the responseBytes SEQUENCE */ + if (GetSequence(source, &index, &length, size) < 0) + return ASN_PARSE_E; + + /* Check ObjectID for the resposeBytes */ + if (GetObjectId(source, &index, &oid, size) < 0) + return ASN_PARSE_E; + if (oid != OCSP_BASIC_OID) + return ASN_PARSE_E; + if (source[index++] != ASN_OCTET_STRING) + return ASN_PARSE_E; + + if (GetLength(source, &index, &length, size) < 0) + return ASN_PARSE_E; + + if (DecodeBasicOcspResponse(source, &index, resp, size) < 0) + return ASN_PARSE_E; + + return 0; +} + + +static int SetSerialNumber(const byte* sn, word32 snSz, byte* output) +{ + int result = 0; + + if (snSz <= EXTERNAL_SERIAL_SIZE) { + output[0] = ASN_INTEGER; + output[1] = snSz + 1; + output[2] = 0; + XMEMCPY(&output[3], sn, snSz); + result = snSz + 3; + } + return result; +} + + +int EncodeOcspRequest(DecodedCert* cert, byte* output, word32 outputSz) +{ + byte seqArray[5][MAX_SEQ_SZ]; + /* The ASN.1 of the OCSP Request is an onion of sequences */ + byte algoArray[MAX_ALGO_SZ]; + byte issuerArray[MAX_ENCODED_DIG_SZ]; + byte issuerKeyArray[MAX_ENCODED_DIG_SZ]; + byte snArray[MAX_SN_SZ]; + + word32 seqSz[5], algoSz, issuerSz, issuerKeySz, snSz, totalSz; + int i; + + algoSz = SetAlgoID(SHAh, algoArray, hashType); + issuerSz = SetDigest(cert->issuerHash, SHA_SIZE, issuerArray); + issuerKeySz = SetDigest(cert->issuerKeyHash, SHA_SIZE, issuerKeyArray); + snSz = SetSerialNumber(cert->serial, cert->serialSz, snArray); + + totalSz = algoSz + issuerSz + issuerKeySz + snSz; + + for (i = 4; i >= 0; i--) { + seqSz[i] = SetSequence(totalSz, seqArray[i]); + totalSz += seqSz[i]; + } + totalSz = 0; + for (i = 0; i < 5; i++) { + XMEMCPY(output + totalSz, seqArray[i], seqSz[i]); + totalSz += seqSz[i]; + } + XMEMCPY(output + totalSz, algoArray, algoSz); + totalSz += algoSz; + XMEMCPY(output + totalSz, issuerArray, issuerSz); + totalSz += issuerSz; + XMEMCPY(output + totalSz, issuerKeyArray, issuerKeySz); + totalSz += issuerKeySz; + XMEMCPY(output + totalSz, snArray, snSz); + totalSz += snSz; + + return totalSz; +} + +#endif + + +#ifdef HAVE_CRL + +/* initialize decoded CRL */ +void InitDecodedCRL(DecodedCRL* dcrl) +{ + CYASSL_MSG("InitDecodedCRL"); + + dcrl->certBegin = 0; + dcrl->sigIndex = 0; + dcrl->sigLength = 0; + dcrl->signatureOID = 0; + dcrl->certs = NULL; + dcrl->totalCerts = 0; +} + + +/* free decoded CRL resources */ +void FreeDecodedCRL(DecodedCRL* dcrl) +{ + RevokedCert* tmp = dcrl->certs; + + CYASSL_MSG("FreeDecodedCRL"); + + while(tmp) { + RevokedCert* next = tmp->next; + XFREE(tmp, NULL, DYNAMIC_TYPE_REVOKED); + tmp = next; + } +} + + +/* store SHA1 hash of NAME */ +static int GetNameHash(const byte* source, word32* idx, byte* hash, int maxIdx) +{ + Sha sha; + int length; /* length of all distinguished names */ + + CYASSL_ENTER("GetNameHash"); + + if (source[*idx] == ASN_OBJECT_ID) { + CYASSL_MSG("Trying optional prefix..."); + + if (GetLength(source, idx, &length, maxIdx) < 0) + return ASN_PARSE_E; + + *idx += length; + CYASSL_MSG("Got optional prefix"); + } + + if (GetSequence(source, idx, &length, maxIdx) < 0) + return ASN_PARSE_E; + + InitSha(&sha); + ShaUpdate(&sha, &source[*idx], length); + ShaFinal(&sha, hash); + + *idx += length; + + return 0; +} + + +/* Get raw Date only, no processing, 0 on success */ +static int GetBasicDate(const byte* source, word32* idx, byte* date, int maxIdx) +{ + int length; + byte b = source[*idx]; + + CYASSL_ENTER("GetBasicDate"); + + *idx += 1; + if (b != ASN_UTC_TIME && b != ASN_GENERALIZED_TIME) + return ASN_TIME_E; + + if (GetLength(source, idx, &length, maxIdx) < 0) + return ASN_PARSE_E; + + if (length > MAX_DATE_SIZE || length < MIN_DATE_SIZE) + return ASN_DATE_SZ_E; + + XMEMCPY(date, &source[*idx], length); + *idx += length; + + return 0; +} + + +/* Get Revoked Cert list, 0 on success */ +static int GetRevoked(const byte* buff, word32* idx, DecodedCRL* dcrl, + int maxIdx) +{ + int len; + word32 end; + byte b; + RevokedCert* rc; + + CYASSL_ENTER("GetRevoked"); + + if (GetSequence(buff, idx, &len, maxIdx) < 0) + return ASN_PARSE_E; + + end = *idx + len; + + /* get serial number */ + b = buff[*idx]; + *idx += 1; + + if (b != ASN_INTEGER) { + CYASSL_MSG("Expecting Integer"); + return ASN_PARSE_E; + } + + if (GetLength(buff, idx, &len, maxIdx) < 0) + return ASN_PARSE_E; + + if (len > EXTERNAL_SERIAL_SIZE) { + CYASSL_MSG("Serial Size too big"); + return ASN_PARSE_E; + } + + rc = XMALLOC(sizeof(RevokedCert), NULL, DYNAMIC_TYPE_CRL); + if (rc == NULL) { + CYASSL_MSG("Alloc Revoked Cert failed"); + return MEMORY_E; + } + + XMEMCPY(rc->serialNumber, &buff[*idx], len); + rc->serialSz = len; + + /* add to list */ + rc->next = dcrl->certs; + dcrl->certs = rc; + dcrl->totalCerts++; + + *idx += len; + + /* get date */ + b = buff[*idx]; + *idx += 1; + + if (b != ASN_UTC_TIME && b != ASN_GENERALIZED_TIME) { + CYASSL_MSG("Expecting Date"); + return ASN_PARSE_E; + } + + if (GetLength(buff, idx, &len, maxIdx) < 0) + return ASN_PARSE_E; + + /* skip for now */ + *idx += len; + + if (*idx != end) /* skip extensions */ + *idx = end; + + return 0; +} + + +/* Get CRL Signature, 0 on success */ +static int GetCRL_Signature(const byte* source, word32* idx, DecodedCRL* dcrl, + int maxIdx) +{ + int length; + byte b; + + CYASSL_ENTER("GetCRL_Signature"); + + b = source[*idx]; + *idx += 1; + if (b != ASN_BIT_STRING) + return ASN_BITSTR_E; + + if (GetLength(source, idx, &length, maxIdx) < 0) + return ASN_PARSE_E; + + dcrl->sigLength = length; + + b = source[*idx]; + *idx += 1; + if (b != 0x00) + return ASN_EXPECT_0_E; + + dcrl->sigLength--; + dcrl->signature = (byte*)&source[*idx]; + + *idx += dcrl->sigLength; + + return 0; +} + + +/* prase crl buffer into decoded state, 0 on success */ +int ParseCRL(DecodedCRL* dcrl, const byte* buff, long sz) +{ + int version, len; + word32 oid, idx = 0; + Md5 md5; + + CYASSL_MSG("ParseCRL"); + + /* raw crl hash */ + InitMd5(&md5); + Md5Update(&md5, buff, sz); + Md5Final(&md5, dcrl->crlHash); + + if (GetSequence(buff, &idx, &len, sz) < 0) + return ASN_PARSE_E; + + dcrl->certBegin = idx; + + if (GetSequence(buff, &idx, &len, sz) < 0) + return ASN_PARSE_E; + dcrl->sigIndex = len + idx; + + /* may have version */ + if (buff[idx] == ASN_INTEGER) { + if (GetMyVersion(buff, &idx, &version) < 0) + return ASN_PARSE_E; + } + + if (GetAlgoId(buff, &idx, &oid, sz) < 0) + return ASN_PARSE_E; + + if (GetNameHash(buff, &idx, dcrl->issuerHash, sz) < 0) + return ASN_PARSE_E; + + if (GetBasicDate(buff, &idx, dcrl->lastDate, sz) < 0) + return ASN_PARSE_E; + + if (GetBasicDate(buff, &idx, dcrl->nextDate, sz) < 0) + return ASN_PARSE_E; + + if (idx != dcrl->sigIndex && buff[idx] != CRL_EXTENSIONS) { + if (GetSequence(buff, &idx, &len, sz) < 0) + return ASN_PARSE_E; + + len += idx; + + while (idx < (word32)len) { + if (GetRevoked(buff, &idx, dcrl, sz) < 0) + return ASN_PARSE_E; + } + } + + if (idx != dcrl->sigIndex) + idx = dcrl->sigIndex; /* skip extensions */ + + if (GetAlgoId(buff, &idx, &dcrl->signatureOID, sz) < 0) + return ASN_PARSE_E; + + if (GetCRL_Signature(buff, &idx, dcrl, sz) < 0) + return ASN_PARSE_E; + + return 0; +} + +#endif /* HAVE_CRL */ diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/coding.c b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/coding.c new file mode 100644 index 000000000..f72a56467 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/coding.c @@ -0,0 +1,254 @@ +/* coding.c + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +#ifdef HAVE_CONFIG_H + #include +#endif + +#include +#include +#include + + +enum { + BAD = 0xFF, /* invalid encoding */ + PAD = '=', + PEM_LINE_SZ = 64 +}; + + +static +const byte base64Decode[] = { 62, BAD, BAD, BAD, 63, /* + starts at 0x2B */ + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + BAD, BAD, BAD, BAD, BAD, BAD, BAD, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, + BAD, BAD, BAD, BAD, BAD, BAD, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51 + }; + + +int Base64_Decode(const byte* in, word32 inLen, byte* out, word32* outLen) +{ + word32 i = 0; + word32 j = 0; + word32 plainSz = inLen - ((inLen + (PEM_LINE_SZ - 1)) / PEM_LINE_SZ ); + + plainSz = (plainSz * 3 + 3) / 4; + if (plainSz > *outLen) return BAD_FUNC_ARG; + + while (inLen > 3) { + byte b1, b2, b3; + byte e1 = in[j++]; + byte e2 = in[j++]; + byte e3 = in[j++]; + byte e4 = in[j++]; + + int pad3 = 0; + int pad4 = 0; + + if (e1 == 0) /* end file 0's */ + break; + if (e3 == PAD) + pad3 = 1; + if (e4 == PAD) + pad4 = 1; + + e1 = base64Decode[e1 - 0x2B]; + e2 = base64Decode[e2 - 0x2B]; + e3 = (e3 == PAD) ? 0 : base64Decode[e3 - 0x2B]; + e4 = (e4 == PAD) ? 0 : base64Decode[e4 - 0x2B]; + + b1 = (e1 << 2) | (e2 >> 4); + b2 = ((e2 & 0xF) << 4) | (e3 >> 2); + b3 = ((e3 & 0x3) << 6) | e4; + + out[i++] = b1; + if (!pad3) + out[i++] = b2; + if (!pad4) + out[i++] = b3; + else + break; + + inLen -= 4; + if (in[j] == ' ' || in[j] == '\r' || in[j] == '\n') { + byte endLine = in[j++]; + inLen--; + while (endLine == ' ') { /* allow trailing whitespace */ + endLine = in[j++]; + inLen--; + } + if (endLine == '\r') { + endLine = in[j++]; + inLen--; + } + if (endLine != '\n') { + CYASSL_MSG("Bad end of line in Base64 Decode"); + return ASN_INPUT_E; + } + } + } + *outLen = i; + + return 0; +} + + +#if defined(OPENSSL_EXTRA) || defined (SESSION_CERTS) || defined(CYASSL_KEY_GEN) || defined(CYASSL_CERT_GEN) || defined(HAVE_WEBSERVER) + +static +const byte base64Encode[] = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', + 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', + 'U', 'V', 'W', 'X', 'Y', 'Z', + 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', + 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', + 'u', 'v', 'w', 'x', 'y', 'z', + '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', + '+', '/' + }; + + +/* porting assistance from yaSSL by Raphael HUCK */ +int Base64_Encode(const byte* in, word32 inLen, byte* out, word32* outLen) +{ + word32 i = 0, + j = 0, + n = 0; /* new line counter */ + + word32 outSz = (inLen + 3 - 1) / 3 * 4; + outSz += (outSz + PEM_LINE_SZ - 1) / PEM_LINE_SZ; /* new lines */ + + if (outSz > *outLen) return BAD_FUNC_ARG; + + while (inLen > 2) { + byte b1 = in[j++]; + byte b2 = in[j++]; + byte b3 = in[j++]; + + /* encoded idx */ + byte e1 = b1 >> 2; + byte e2 = ((b1 & 0x3) << 4) | (b2 >> 4); + byte e3 = ((b2 & 0xF) << 2) | (b3 >> 6); + byte e4 = b3 & 0x3F; + + /* store */ + out[i++] = base64Encode[e1]; + out[i++] = base64Encode[e2]; + out[i++] = base64Encode[e3]; + out[i++] = base64Encode[e4]; + + inLen -= 3; + + if ((++n % (PEM_LINE_SZ / 4)) == 0 && inLen) + out[i++] = '\n'; + } + + /* last integral */ + if (inLen) { + int twoBytes = (inLen == 2); + + byte b1 = in[j++]; + byte b2 = (twoBytes) ? in[j++] : 0; + + byte e1 = b1 >> 2; + byte e2 = ((b1 & 0x3) << 4) | (b2 >> 4); + byte e3 = (b2 & 0xF) << 2; + + out[i++] = base64Encode[e1]; + out[i++] = base64Encode[e2]; + out[i++] = (twoBytes) ? base64Encode[e3] : PAD; + out[i++] = PAD; + } + + out[i++] = '\n'; + if (i != outSz) + return ASN_INPUT_E; + *outLen = outSz; + + return 0; +} + + +static +const byte hexDecode[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, + BAD, BAD, BAD, BAD, BAD, BAD, BAD, + 10, 11, 12, 13, 14, 15 + }; /* A starts at 0x41 not 0x3A */ + +int Base16_Decode(const byte* in, word32 inLen, byte* out, word32* outLen) +{ + word32 inIdx = 0; + word32 outIdx = 0; + + if (inLen == 1 && *outLen && in) { + byte b = in[inIdx++] - 0x30; /* 0 starts at 0x30 */ + + /* sanity check */ + if (b >= sizeof(hexDecode)/sizeof(hexDecode[0])) + return ASN_INPUT_E; + + b = hexDecode[b]; + + if (b == BAD) + return ASN_INPUT_E; + + out[outIdx++] = b; + + *outLen = outIdx; + return 0; + } + + if (inLen % 2) + return BAD_FUNC_ARG; + + if (*outLen < (inLen / 2)) + return BAD_FUNC_ARG; + + while (inLen) { + byte b = in[inIdx++] - 0x30; /* 0 starts at 0x30 */ + byte b2 = in[inIdx++] - 0x30; + + /* sanity checks */ + if (b >= sizeof(hexDecode)/sizeof(hexDecode[0])) + return ASN_INPUT_E; + if (b2 >= sizeof(hexDecode)/sizeof(hexDecode[0])) + return ASN_INPUT_E; + + b = hexDecode[b]; + b2 = hexDecode[b2]; + + if (b == BAD || b2 == BAD) + return ASN_INPUT_E; + + out[outIdx++] = (b << 4) | b2; + inLen -= 2; + } + + *outLen = outIdx; + return 0; +} + + +#endif /* OPENSSL_EXTRA */ diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/des3.c b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/des3.c new file mode 100644 index 000000000..77a20b022 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/des3.c @@ -0,0 +1,528 @@ +/* des3.c + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +#ifdef HAVE_CONFIG_H + #include +#endif + +#ifndef NO_DES3 + +#include + +#ifdef NO_INLINE + #include +#else + #include +#endif + + +/* permuted choice table (key) */ +static const byte pc1[] = { + 57, 49, 41, 33, 25, 17, 9, + 1, 58, 50, 42, 34, 26, 18, + 10, 2, 59, 51, 43, 35, 27, + 19, 11, 3, 60, 52, 44, 36, + + 63, 55, 47, 39, 31, 23, 15, + 7, 62, 54, 46, 38, 30, 22, + 14, 6, 61, 53, 45, 37, 29, + 21, 13, 5, 28, 20, 12, 4 +}; + +/* number left rotations of pc1 */ +static const byte totrot[] = { + 1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28 +}; + +/* permuted choice key (table) */ +static const byte pc2[] = { + 14, 17, 11, 24, 1, 5, + 3, 28, 15, 6, 21, 10, + 23, 19, 12, 4, 26, 8, + 16, 7, 27, 20, 13, 2, + 41, 52, 31, 37, 47, 55, + 30, 40, 51, 45, 33, 48, + 44, 49, 39, 56, 34, 53, + 46, 42, 50, 36, 29, 32 +}; + +/* End of DES-defined tables */ + +/* bit 0 is left-most in byte */ +static const int bytebit[] = { + 0200,0100,040,020,010,04,02,01 +}; + +const word32 Spbox[8][64] = { +{ +0x01010400,0x00000000,0x00010000,0x01010404, +0x01010004,0x00010404,0x00000004,0x00010000, +0x00000400,0x01010400,0x01010404,0x00000400, +0x01000404,0x01010004,0x01000000,0x00000004, +0x00000404,0x01000400,0x01000400,0x00010400, +0x00010400,0x01010000,0x01010000,0x01000404, +0x00010004,0x01000004,0x01000004,0x00010004, +0x00000000,0x00000404,0x00010404,0x01000000, +0x00010000,0x01010404,0x00000004,0x01010000, +0x01010400,0x01000000,0x01000000,0x00000400, +0x01010004,0x00010000,0x00010400,0x01000004, +0x00000400,0x00000004,0x01000404,0x00010404, +0x01010404,0x00010004,0x01010000,0x01000404, +0x01000004,0x00000404,0x00010404,0x01010400, +0x00000404,0x01000400,0x01000400,0x00000000, +0x00010004,0x00010400,0x00000000,0x01010004}, +{ +0x80108020,0x80008000,0x00008000,0x00108020, +0x00100000,0x00000020,0x80100020,0x80008020, +0x80000020,0x80108020,0x80108000,0x80000000, +0x80008000,0x00100000,0x00000020,0x80100020, +0x00108000,0x00100020,0x80008020,0x00000000, +0x80000000,0x00008000,0x00108020,0x80100000, +0x00100020,0x80000020,0x00000000,0x00108000, +0x00008020,0x80108000,0x80100000,0x00008020, +0x00000000,0x00108020,0x80100020,0x00100000, +0x80008020,0x80100000,0x80108000,0x00008000, +0x80100000,0x80008000,0x00000020,0x80108020, +0x00108020,0x00000020,0x00008000,0x80000000, +0x00008020,0x80108000,0x00100000,0x80000020, +0x00100020,0x80008020,0x80000020,0x00100020, +0x00108000,0x00000000,0x80008000,0x00008020, +0x80000000,0x80100020,0x80108020,0x00108000}, +{ +0x00000208,0x08020200,0x00000000,0x08020008, +0x08000200,0x00000000,0x00020208,0x08000200, +0x00020008,0x08000008,0x08000008,0x00020000, +0x08020208,0x00020008,0x08020000,0x00000208, +0x08000000,0x00000008,0x08020200,0x00000200, +0x00020200,0x08020000,0x08020008,0x00020208, +0x08000208,0x00020200,0x00020000,0x08000208, +0x00000008,0x08020208,0x00000200,0x08000000, +0x08020200,0x08000000,0x00020008,0x00000208, +0x00020000,0x08020200,0x08000200,0x00000000, +0x00000200,0x00020008,0x08020208,0x08000200, +0x08000008,0x00000200,0x00000000,0x08020008, +0x08000208,0x00020000,0x08000000,0x08020208, +0x00000008,0x00020208,0x00020200,0x08000008, +0x08020000,0x08000208,0x00000208,0x08020000, +0x00020208,0x00000008,0x08020008,0x00020200}, +{ +0x00802001,0x00002081,0x00002081,0x00000080, +0x00802080,0x00800081,0x00800001,0x00002001, +0x00000000,0x00802000,0x00802000,0x00802081, +0x00000081,0x00000000,0x00800080,0x00800001, +0x00000001,0x00002000,0x00800000,0x00802001, +0x00000080,0x00800000,0x00002001,0x00002080, +0x00800081,0x00000001,0x00002080,0x00800080, +0x00002000,0x00802080,0x00802081,0x00000081, +0x00800080,0x00800001,0x00802000,0x00802081, +0x00000081,0x00000000,0x00000000,0x00802000, +0x00002080,0x00800080,0x00800081,0x00000001, +0x00802001,0x00002081,0x00002081,0x00000080, +0x00802081,0x00000081,0x00000001,0x00002000, +0x00800001,0x00002001,0x00802080,0x00800081, +0x00002001,0x00002080,0x00800000,0x00802001, +0x00000080,0x00800000,0x00002000,0x00802080}, +{ +0x00000100,0x02080100,0x02080000,0x42000100, +0x00080000,0x00000100,0x40000000,0x02080000, +0x40080100,0x00080000,0x02000100,0x40080100, +0x42000100,0x42080000,0x00080100,0x40000000, +0x02000000,0x40080000,0x40080000,0x00000000, +0x40000100,0x42080100,0x42080100,0x02000100, +0x42080000,0x40000100,0x00000000,0x42000000, +0x02080100,0x02000000,0x42000000,0x00080100, +0x00080000,0x42000100,0x00000100,0x02000000, +0x40000000,0x02080000,0x42000100,0x40080100, +0x02000100,0x40000000,0x42080000,0x02080100, +0x40080100,0x00000100,0x02000000,0x42080000, +0x42080100,0x00080100,0x42000000,0x42080100, +0x02080000,0x00000000,0x40080000,0x42000000, +0x00080100,0x02000100,0x40000100,0x00080000, +0x00000000,0x40080000,0x02080100,0x40000100}, +{ +0x20000010,0x20400000,0x00004000,0x20404010, +0x20400000,0x00000010,0x20404010,0x00400000, +0x20004000,0x00404010,0x00400000,0x20000010, +0x00400010,0x20004000,0x20000000,0x00004010, +0x00000000,0x00400010,0x20004010,0x00004000, +0x00404000,0x20004010,0x00000010,0x20400010, +0x20400010,0x00000000,0x00404010,0x20404000, +0x00004010,0x00404000,0x20404000,0x20000000, +0x20004000,0x00000010,0x20400010,0x00404000, +0x20404010,0x00400000,0x00004010,0x20000010, +0x00400000,0x20004000,0x20000000,0x00004010, +0x20000010,0x20404010,0x00404000,0x20400000, +0x00404010,0x20404000,0x00000000,0x20400010, +0x00000010,0x00004000,0x20400000,0x00404010, +0x00004000,0x00400010,0x20004010,0x00000000, +0x20404000,0x20000000,0x00400010,0x20004010}, +{ +0x00200000,0x04200002,0x04000802,0x00000000, +0x00000800,0x04000802,0x00200802,0x04200800, +0x04200802,0x00200000,0x00000000,0x04000002, +0x00000002,0x04000000,0x04200002,0x00000802, +0x04000800,0x00200802,0x00200002,0x04000800, +0x04000002,0x04200000,0x04200800,0x00200002, +0x04200000,0x00000800,0x00000802,0x04200802, +0x00200800,0x00000002,0x04000000,0x00200800, +0x04000000,0x00200800,0x00200000,0x04000802, +0x04000802,0x04200002,0x04200002,0x00000002, +0x00200002,0x04000000,0x04000800,0x00200000, +0x04200800,0x00000802,0x00200802,0x04200800, +0x00000802,0x04000002,0x04200802,0x04200000, +0x00200800,0x00000000,0x00000002,0x04200802, +0x00000000,0x00200802,0x04200000,0x00000800, +0x04000002,0x04000800,0x00000800,0x00200002}, +{ +0x10001040,0x00001000,0x00040000,0x10041040, +0x10000000,0x10001040,0x00000040,0x10000000, +0x00040040,0x10040000,0x10041040,0x00041000, +0x10041000,0x00041040,0x00001000,0x00000040, +0x10040000,0x10000040,0x10001000,0x00001040, +0x00041000,0x00040040,0x10040040,0x10041000, +0x00001040,0x00000000,0x00000000,0x10040040, +0x10000040,0x10001000,0x00041040,0x00040000, +0x00041040,0x00040000,0x10041000,0x00001000, +0x00000040,0x10040040,0x00001000,0x00041040, +0x10001000,0x00000040,0x10000040,0x10040000, +0x10040040,0x10000000,0x00040000,0x10001040, +0x00000000,0x10041040,0x00040040,0x10000040, +0x10040000,0x10001000,0x10001040,0x00000000, +0x10041040,0x00041000,0x00041000,0x00001040, +0x00001040,0x00040040,0x10000000,0x10041000} +}; + + +static INLINE void IPERM(word32* left, word32* right) +{ + word32 work; + + *right = rotlFixed(*right, 4U); + work = (*left ^ *right) & 0xf0f0f0f0; + *left ^= work; + + *right = rotrFixed(*right^work, 20U); + work = (*left ^ *right) & 0xffff0000; + *left ^= work; + + *right = rotrFixed(*right^work, 18U); + work = (*left ^ *right) & 0x33333333; + *left ^= work; + + *right = rotrFixed(*right^work, 6U); + work = (*left ^ *right) & 0x00ff00ff; + *left ^= work; + + *right = rotlFixed(*right^work, 9U); + work = (*left ^ *right) & 0xaaaaaaaa; + *left = rotlFixed(*left^work, 1U); + *right ^= work; +} + + +static INLINE void FPERM(word32* left, word32* right) +{ + word32 work; + + *right = rotrFixed(*right, 1U); + work = (*left ^ *right) & 0xaaaaaaaa; + *right ^= work; + + *left = rotrFixed(*left^work, 9U); + work = (*left ^ *right) & 0x00ff00ff; + *right ^= work; + + *left = rotlFixed(*left^work, 6U); + work = (*left ^ *right) & 0x33333333; + *right ^= work; + + *left = rotlFixed(*left^work, 18U); + work = (*left ^ *right) & 0xffff0000; + *right ^= work; + + *left = rotlFixed(*left^work, 20U); + work = (*left ^ *right) & 0xf0f0f0f0; + *right ^= work; + + *left = rotrFixed(*left^work, 4U); +} + + +static void DesSetKey(const byte* key, int dir, word32* out) +{ + byte buffer[56+56+8]; + byte *const pc1m = buffer; /* place to modify pc1 into */ + byte *const pcr = pc1m + 56; /* place to rotate pc1 into */ + byte *const ks = pcr + 56; + register int i,j,l; + int m; + + for (j = 0; j < 56; j++) { /* convert pc1 to bits of key */ + l = pc1[j] - 1; /* integer bit location */ + m = l & 07; /* find bit */ + pc1m[j] = (key[l >> 3] & /* find which key byte l is in */ + bytebit[m]) /* and which bit of that byte */ + ? 1 : 0; /* and store 1-bit result */ + } + for (i = 0; i < 16; i++) { /* key chunk for each iteration */ + XMEMSET(ks, 0, 8); /* Clear key schedule */ + for (j = 0; j < 56; j++) /* rotate pc1 the right amount */ + pcr[j] = pc1m[(l = j + totrot[i]) < (j < 28 ? 28 : 56) ? l: l-28]; + /* rotate left and right halves independently */ + for (j = 0; j < 48; j++){ /* select bits individually */ + /* check bit that goes to ks[j] */ + if (pcr[pc2[j] - 1]){ + /* mask it in if it's there */ + l= j % 6; + ks[j/6] |= bytebit[l] >> 2; + } + } + /* Now convert to odd/even interleaved form for use in F */ + out[2*i] = ((word32)ks[0] << 24) + | ((word32)ks[2] << 16) + | ((word32)ks[4] << 8) + | ((word32)ks[6]); + out[2*i + 1] = ((word32)ks[1] << 24) + | ((word32)ks[3] << 16) + | ((word32)ks[5] << 8) + | ((word32)ks[7]); + } + + /* reverse key schedule order */ + if (dir == DES_DECRYPTION) + for (i = 0; i < 16; i += 2) { + word32 swap = out[i]; + out[i] = out[DES_KS_SIZE - 2 - i]; + out[DES_KS_SIZE - 2 - i] = swap; + + swap = out[i + 1]; + out[i + 1] = out[DES_KS_SIZE - 1 - i]; + out[DES_KS_SIZE - 1 - i] = swap; + } + +} + + +static INLINE int Reverse(int dir) +{ + return !dir; +} + + +void Des_SetIV(Des* des, const byte* iv) +{ + if (des && iv) + XMEMCPY(des->reg, iv, DES_BLOCK_SIZE); +} + + +void Des3_SetIV(Des3* des, const byte* iv) +{ + if (des && iv) + XMEMCPY(des->reg, iv, DES_BLOCK_SIZE); +} + + +void Des_SetKey(Des* des, const byte* key, const byte* iv, int dir) +{ + DesSetKey(key, dir, des->key); + + Des_SetIV(des, iv); +} + + +void Des3_SetKey(Des3* des, const byte* key, const byte* iv, int dir) +{ + DesSetKey(key + (dir == DES_ENCRYPTION ? 0 : 16), dir, des->key[0]); + DesSetKey(key + 8, Reverse(dir), des->key[1]); + DesSetKey(key + (dir == DES_DECRYPTION ? 0 : 16), dir, des->key[2]); + + Des3_SetIV(des, iv); +} + + +static void DesRawProcessBlock(word32* lIn, word32* rIn, const word32* kptr) +{ + word32 l = *lIn, r = *rIn, i; + + for (i=0; i<8; i++) + { + word32 work = rotrFixed(r, 4U) ^ kptr[4*i+0]; + l ^= Spbox[6][(work) & 0x3f] + ^ Spbox[4][(work >> 8) & 0x3f] + ^ Spbox[2][(work >> 16) & 0x3f] + ^ Spbox[0][(work >> 24) & 0x3f]; + work = r ^ kptr[4*i+1]; + l ^= Spbox[7][(work) & 0x3f] + ^ Spbox[5][(work >> 8) & 0x3f] + ^ Spbox[3][(work >> 16) & 0x3f] + ^ Spbox[1][(work >> 24) & 0x3f]; + + work = rotrFixed(l, 4U) ^ kptr[4*i+2]; + r ^= Spbox[6][(work) & 0x3f] + ^ Spbox[4][(work >> 8) & 0x3f] + ^ Spbox[2][(work >> 16) & 0x3f] + ^ Spbox[0][(work >> 24) & 0x3f]; + work = l ^ kptr[4*i+3]; + r ^= Spbox[7][(work) & 0x3f] + ^ Spbox[5][(work >> 8) & 0x3f] + ^ Spbox[3][(work >> 16) & 0x3f] + ^ Spbox[1][(work >> 24) & 0x3f]; + } + + *lIn = l; *rIn = r; +} + + +static void DesProcessBlock(Des* des, const byte* in, byte* out) +{ + word32 l, r; + + XMEMCPY(&l, in, sizeof(l)); + XMEMCPY(&r, in + sizeof(l), sizeof(r)); + #ifdef LITTLE_ENDIAN_ORDER + l = ByteReverseWord32(l); + r = ByteReverseWord32(r); + #endif + IPERM(&l,&r); + + DesRawProcessBlock(&l, &r, des->key); + + FPERM(&l,&r); + #ifdef LITTLE_ENDIAN_ORDER + l = ByteReverseWord32(l); + r = ByteReverseWord32(r); + #endif + XMEMCPY(out, &r, sizeof(r)); + XMEMCPY(out + sizeof(r), &l, sizeof(l)); +} + + +static void Des3ProcessBlock(Des3* des, const byte* in, byte* out) +{ + word32 l, r; + + XMEMCPY(&l, in, sizeof(l)); + XMEMCPY(&r, in + sizeof(l), sizeof(r)); + #ifdef LITTLE_ENDIAN_ORDER + l = ByteReverseWord32(l); + r = ByteReverseWord32(r); + #endif + IPERM(&l,&r); + + DesRawProcessBlock(&l, &r, des->key[0]); + DesRawProcessBlock(&r, &l, des->key[1]); + DesRawProcessBlock(&l, &r, des->key[2]); + + FPERM(&l,&r); + #ifdef LITTLE_ENDIAN_ORDER + l = ByteReverseWord32(l); + r = ByteReverseWord32(r); + #endif + XMEMCPY(out, &r, sizeof(r)); + XMEMCPY(out + sizeof(r), &l, sizeof(l)); +} + + +void Des_CbcEncrypt(Des* des, byte* out, const byte* in, word32 sz) +{ + word32 blocks = sz / DES_BLOCK_SIZE; + + while (blocks--) { + xorbuf((byte*)des->reg, in, DES_BLOCK_SIZE); + DesProcessBlock(des, (byte*)des->reg, (byte*)des->reg); + XMEMCPY(out, des->reg, DES_BLOCK_SIZE); + + out += DES_BLOCK_SIZE; + in += DES_BLOCK_SIZE; + } +} + + +void Des_CbcDecrypt(Des* des, byte* out, const byte* in, word32 sz) +{ + word32 blocks = sz / DES_BLOCK_SIZE; + byte hold[16]; + + while (blocks--) { + XMEMCPY(des->tmp, in, DES_BLOCK_SIZE); + DesProcessBlock(des, (byte*)des->tmp, out); + xorbuf(out, (byte*)des->reg, DES_BLOCK_SIZE); + + XMEMCPY(hold, des->reg, DES_BLOCK_SIZE); + XMEMCPY(des->reg, des->tmp, DES_BLOCK_SIZE); + XMEMCPY(des->tmp, hold, DES_BLOCK_SIZE); + + out += DES_BLOCK_SIZE; + in += DES_BLOCK_SIZE; + } +} + + +void Des3_CbcEncrypt(Des3* des, byte* out, const byte* in, word32 sz) +{ + word32 blocks = sz / DES_BLOCK_SIZE; + + while (blocks--) { + xorbuf((byte*)des->reg, in, DES_BLOCK_SIZE); + Des3ProcessBlock(des, (byte*)des->reg, (byte*)des->reg); + XMEMCPY(out, des->reg, DES_BLOCK_SIZE); + + out += DES_BLOCK_SIZE; + in += DES_BLOCK_SIZE; + } +} + + +void Des3_CbcDecrypt(Des3* des, byte* out, const byte* in, word32 sz) +{ + word32 blocks = sz / DES_BLOCK_SIZE; + + while (blocks--) { + XMEMCPY(des->tmp, in, DES_BLOCK_SIZE); + Des3ProcessBlock(des, (byte*)des->tmp, out); + xorbuf(out, (byte*)des->reg, DES_BLOCK_SIZE); + XMEMCPY(des->reg, des->tmp, DES_BLOCK_SIZE); + + out += DES_BLOCK_SIZE; + in += DES_BLOCK_SIZE; + } +} + +#ifdef CYASSL_DES_ECB + +/* One block, compatibility only */ +void Des_EcbEncrypt(Des* des, byte* out, const byte* in, word32 sz) +{ + word32 blocks = sz / DES_BLOCK_SIZE; + + while (blocks--) { + DesProcessBlock(des, in, out); + + out += DES_BLOCK_SIZE; + in += DES_BLOCK_SIZE; + } +} + +#endif /* CYASSL_DES_ECB */ + + +#endif /* NO_DES3 */ diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/dh.c b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/dh.c new file mode 100644 index 000000000..e7c6faa03 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/dh.c @@ -0,0 +1,169 @@ +/* dh.c + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +#ifdef HAVE_CONFIG_H + #include +#endif + +#ifndef NO_DH + +#include +#include + +#ifndef USER_MATH_LIB + #include + #define XPOW(x,y) pow((x),(y)) + #define XLOG(x) log((x)) +#else + /* user's own math lib */ +#endif + + +#ifndef min + + static INLINE word32 min(word32 a, word32 b) + { + return a > b ? b : a; + } + +#endif /* min */ + + +void InitDhKey(DhKey* key) +{ + (void)key; +/* TomsFastMath doesn't use memory allocation */ +#ifndef USE_FAST_MATH + key->p.dp = 0; + key->g.dp = 0; +#endif +} + + +void FreeDhKey(DhKey* key) +{ + (void)key; +/* TomsFastMath doesn't use memory allocation */ +#ifndef USE_FAST_MATH + mp_clear(&key->p); + mp_clear(&key->g); +#endif +} + + +static word32 DiscreteLogWorkFactor(word32 n) +{ + /* assuming discrete log takes about the same time as factoring */ + if (n<5) + return 0; + else + return (word32)(2.4 * XPOW((double)n, 1.0/3.0) * + XPOW(XLOG((double)n), 2.0/3.0) - 5); +} + + +static void GeneratePrivate(DhKey* key, RNG* rng, byte* priv, word32* privSz) +{ + word32 sz = mp_unsigned_bin_size(&key->p); + sz = min(sz, 2 * DiscreteLogWorkFactor(sz * BIT_SIZE) / BIT_SIZE + 1); + + RNG_GenerateBlock(rng, priv, sz); + priv[0] |= 0x0C; + + *privSz = sz; +} + + +static int GeneratePublic(DhKey* key, const byte* priv, word32 privSz, + byte* pub, word32* pubSz) +{ + int ret = 0; + + mp_int x; + mp_int y; + + if (mp_init_multi(&x, &y, 0, 0, 0, 0) != MP_OKAY) + return MP_INIT_E; + + if (mp_read_unsigned_bin(&x, priv, privSz) != MP_OKAY) + ret = MP_READ_E; + + if (ret == 0 && mp_exptmod(&key->g, &x, &key->p, &y) != MP_OKAY) + ret = MP_EXPTMOD_E; + + if (ret == 0 && mp_to_unsigned_bin(&y, pub) != MP_OKAY) + ret = MP_TO_E; + + if (ret == 0) + *pubSz = mp_unsigned_bin_size(&y); + + mp_clear(&y); + mp_clear(&x); + + return ret; +} + + +int DhGenerateKeyPair(DhKey* key, RNG* rng, byte* priv, word32* privSz, + byte* pub, word32* pubSz) +{ + GeneratePrivate(key, rng, priv, privSz); + return GeneratePublic(key, priv, *privSz, pub, pubSz); + +} + +int DhAgree(DhKey* key, byte* agree, word32* agreeSz, const byte* priv, + word32 privSz, const byte* otherPub, word32 pubSz) +{ + int ret = 0; + + mp_int x; + mp_int y; + mp_int z; + + if (mp_init_multi(&x, &y, &z, 0, 0, 0) != MP_OKAY) + return MP_INIT_E; + + if (mp_read_unsigned_bin(&x, priv, privSz) != MP_OKAY) + ret = MP_READ_E; + + if (ret == 0 && mp_read_unsigned_bin(&y, otherPub, pubSz) != MP_OKAY) + ret = MP_READ_E; + + if (ret == 0 && mp_exptmod(&y, &x, &key->p, &z) != MP_OKAY) + ret = MP_EXPTMOD_E; + + if (ret == 0 && mp_to_unsigned_bin(&z, agree) != MP_OKAY) + ret = MP_TO_E; + + if (ret == 0) + *agreeSz = mp_unsigned_bin_size(&z); + + mp_clear(&z); + mp_clear(&y); + mp_clear(&x); + + return ret; +} + + +#endif /* NO_DH */ + diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/dsa.c b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/dsa.c new file mode 100644 index 000000000..6aded3e3a --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/dsa.c @@ -0,0 +1,221 @@ +/* dsa.c + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +#ifdef HAVE_CONFIG_H + #include +#endif + +#ifndef NO_DSA + +#include +#include +#include +#include + + +enum { + DSA_HALF_SIZE = 20, /* r and s size */ + DSA_SIG_SIZE = 40 /* signature size */ +}; + + +#ifndef min + + static INLINE word32 min(word32 a, word32 b) + { + return a > b ? b : a; + } + +#endif /* min */ + + +void InitDsaKey(DsaKey* key) +{ + key->type = -1; /* haven't decided yet */ + +/* TomsFastMath doesn't use memory allocation */ +#ifndef USE_FAST_MATH + key->p.dp = 0; /* public alloc parts */ + key->q.dp = 0; + key->g.dp = 0; + key->y.dp = 0; + + key->x.dp = 0; /* private alloc parts */ +#endif +} + + +void FreeDsaKey(DsaKey* key) +{ + (void)key; +/* TomsFastMath doesn't use memory allocation */ +#ifndef USE_FAST_MATH + if (key->type == DSA_PRIVATE) + mp_clear(&key->x); + mp_clear(&key->y); + mp_clear(&key->g); + mp_clear(&key->q); + mp_clear(&key->p); +#endif +} + + +int DsaSign(const byte* digest, byte* out, DsaKey* key, RNG* rng) +{ + mp_int k, kInv, r, s, H; + int ret = 0, sz; + byte buffer[DSA_HALF_SIZE]; + + if (mp_init_multi(&k, &kInv, &r, &s, &H, 0) != MP_OKAY) + return MP_INIT_E; + + sz = min(sizeof(buffer), mp_unsigned_bin_size(&key->q)); + + /* generate k */ + RNG_GenerateBlock(rng, buffer, sz); + buffer[0] |= 0x0C; + + if (mp_read_unsigned_bin(&k, buffer, sz) != MP_OKAY) + ret = MP_READ_E; + + if (mp_cmp_d(&k, 1) != MP_GT) + ret = MP_CMP_E; + + /* inverse k mod q */ + if (ret == 0 && mp_invmod(&k, &key->q, &kInv) != MP_OKAY) + ret = MP_INVMOD_E; + + /* generate r, r = (g exp k mod p) mod q */ + if (ret == 0 && mp_exptmod(&key->g, &k, &key->p, &r) != MP_OKAY) + ret = MP_EXPTMOD_E; + + if (ret == 0 && mp_mod(&r, &key->q, &r) != MP_OKAY) + ret = MP_MOD_E; + + /* generate H from sha digest */ + if (ret == 0 && mp_read_unsigned_bin(&H, digest,SHA_DIGEST_SIZE) != MP_OKAY) + ret = MP_READ_E; + + /* generate s, s = (kInv * (H + x*r)) % q */ + if (ret == 0 && mp_mul(&key->x, &r, &s) != MP_OKAY) + ret = MP_MUL_E; + + if (ret == 0 && mp_add(&s, &H, &s) != MP_OKAY) + ret = MP_ADD_E; + + if (ret == 0 && mp_mulmod(&s, &kInv, &key->q, &s) != MP_OKAY) + ret = MP_MULMOD_E; + + /* write out */ + if (ret == 0) { + int rSz = mp_unsigned_bin_size(&r); + int sSz = mp_unsigned_bin_size(&s); + + if (rSz == DSA_HALF_SIZE - 1) { + out[0] = 0; + out++; + } + + if (mp_to_unsigned_bin(&r, out) != MP_OKAY) + ret = MP_TO_E; + else { + if (sSz == DSA_HALF_SIZE - 1) { + out[rSz] = 0; + out++; + } + ret = mp_to_unsigned_bin(&s, out + rSz); + } + } + + mp_clear(&H); + mp_clear(&s); + mp_clear(&r); + mp_clear(&kInv); + mp_clear(&k); + + return ret; +} + + +int DsaVerify(const byte* digest, const byte* sig, DsaKey* key, int* answer) +{ + mp_int w, u1, u2, v, r, s; + int ret = 0; + + if (mp_init_multi(&w, &u1, &u2, &v, &r, &s) != MP_OKAY) + return MP_INIT_E; + + /* set r and s from signature */ + if (mp_read_unsigned_bin(&r, sig, DSA_HALF_SIZE) != MP_OKAY || + mp_read_unsigned_bin(&s, sig + DSA_HALF_SIZE, DSA_HALF_SIZE) != MP_OKAY) + ret = MP_READ_E; + + /* sanity checks */ + + + /* put H into u1 from sha digest */ + if (ret == 0 && mp_read_unsigned_bin(&u1,digest,SHA_DIGEST_SIZE) != MP_OKAY) + ret = MP_READ_E; + + /* w = s invmod q */ + if (ret == 0 && mp_invmod(&s, &key->q, &w) != MP_OKAY) + ret = MP_INVMOD_E; + + /* u1 = (H * w) % q */ + if (ret == 0 && mp_mulmod(&u1, &w, &key->q, &u1) != MP_OKAY) + ret = MP_MULMOD_E; + + /* u2 = (r * w) % q */ + if (ret == 0 && mp_mulmod(&r, &w, &key->q, &u2) != MP_OKAY) + ret = MP_MULMOD_E; + + /* verify v = ((g^u1 * y^u2) mod p) mod q */ + if (ret == 0 && mp_exptmod(&key->g, &u1, &key->p, &u1) != MP_OKAY) + ret = MP_EXPTMOD_E; + + if (ret == 0 && mp_exptmod(&key->y, &u2, &key->p, &u2) != MP_OKAY) + ret = MP_EXPTMOD_E; + + if (ret == 0 && mp_mulmod(&u1, &u2, &key->p, &v) != MP_OKAY) + ret = MP_MULMOD_E; + + if (ret == 0 && mp_mod(&v, &key->q, &v) != MP_OKAY) + ret = MP_MULMOD_E; + + /* do they match */ + if (ret == 0 && mp_cmp(&r, &v) == MP_EQ) + *answer = 1; + else + *answer = 0; + + mp_clear(&s); + mp_clear(&r); + mp_clear(&u1); + mp_clear(&u2); + mp_clear(&w); + mp_clear(&v); + + return ret; +} + + +#endif /* NO_DSA */ + diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/ecc.c b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/ecc.c new file mode 100644 index 000000000..9f03ed2f2 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/ecc.c @@ -0,0 +1 @@ +/* dummy ecc.c for dist */ diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/ecc_fp.c b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/ecc_fp.c new file mode 100644 index 000000000..c8acf9387 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/ecc_fp.c @@ -0,0 +1 @@ +/* dummy ecc_fp.c for dist */ diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mont_small.i b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mont_small.i new file mode 100644 index 000000000..3b50d6b21 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mont_small.i @@ -0,0 +1,3860 @@ +/* fp_mont_small.i + * + * Copyright (C) 2006-2011 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifdef TFM_SMALL_MONT_SET +/* computes x/R == x (mod N) via Montgomery Reduction */ +void fp_montgomery_reduce_small(fp_int *a, fp_int *m, fp_digit mp) +{ + fp_digit c[FP_SIZE], *_c, *tmpm, mu, cy; + int oldused, x, y, pa; + +#if defined(USE_MEMSET) + /* now zero the buff */ + memset(c, 0, sizeof c); +#endif + pa = m->used; + + /* copy the input */ + oldused = a->used; + for (x = 0; x < oldused; x++) { + c[x] = a->dp[x]; + } +#if !defined(USE_MEMSET) + for (; x < 2*pa+3; x++) { + c[x] = 0; + } +#endif + MONT_START; + + switch (pa) { + case 1: + x = 0; cy = 0; + LOOP_START; + _c = c + 0; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL; ++_c; +#else + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + break; + case 2: + x = 0; cy = 0; + LOOP_START; + _c = c + 0; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 1; cy = 0; + LOOP_START; + _c = c + 1; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + break; + case 3: + x = 0; cy = 0; + LOOP_START; + _c = c + 0; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 1; cy = 0; + LOOP_START; + _c = c + 1; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 2; cy = 0; + LOOP_START; + _c = c + 2; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + break; + case 4: + x = 0; cy = 0; + LOOP_START; + _c = c + 0; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 1; cy = 0; + LOOP_START; + _c = c + 1; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 2; cy = 0; + LOOP_START; + _c = c + 2; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 3; cy = 0; + LOOP_START; + _c = c + 3; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + break; + case 5: + x = 0; cy = 0; + LOOP_START; + _c = c + 0; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 1; cy = 0; + LOOP_START; + _c = c + 1; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 2; cy = 0; + LOOP_START; + _c = c + 2; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 3; cy = 0; + LOOP_START; + _c = c + 3; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 4; cy = 0; + LOOP_START; + _c = c + 4; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + break; + case 6: + x = 0; cy = 0; + LOOP_START; + _c = c + 0; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 1; cy = 0; + LOOP_START; + _c = c + 1; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 2; cy = 0; + LOOP_START; + _c = c + 2; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 3; cy = 0; + LOOP_START; + _c = c + 3; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 4; cy = 0; + LOOP_START; + _c = c + 4; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 5; cy = 0; + LOOP_START; + _c = c + 5; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + break; + case 7: + x = 0; cy = 0; + LOOP_START; + _c = c + 0; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 1; cy = 0; + LOOP_START; + _c = c + 1; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 2; cy = 0; + LOOP_START; + _c = c + 2; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 3; cy = 0; + LOOP_START; + _c = c + 3; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 4; cy = 0; + LOOP_START; + _c = c + 4; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 5; cy = 0; + LOOP_START; + _c = c + 5; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 6; cy = 0; + LOOP_START; + _c = c + 6; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + break; + case 8: + x = 0; cy = 0; + LOOP_START; + _c = c + 0; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 1; cy = 0; + LOOP_START; + _c = c + 1; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 2; cy = 0; + LOOP_START; + _c = c + 2; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 3; cy = 0; + LOOP_START; + _c = c + 3; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 4; cy = 0; + LOOP_START; + _c = c + 4; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 5; cy = 0; + LOOP_START; + _c = c + 5; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 6; cy = 0; + LOOP_START; + _c = c + 6; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 7; cy = 0; + LOOP_START; + _c = c + 7; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + break; + case 9: + x = 0; cy = 0; + LOOP_START; + _c = c + 0; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 1; cy = 0; + LOOP_START; + _c = c + 1; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 2; cy = 0; + LOOP_START; + _c = c + 2; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 3; cy = 0; + LOOP_START; + _c = c + 3; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 4; cy = 0; + LOOP_START; + _c = c + 4; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 5; cy = 0; + LOOP_START; + _c = c + 5; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 6; cy = 0; + LOOP_START; + _c = c + 6; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 7; cy = 0; + LOOP_START; + _c = c + 7; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 8; cy = 0; + LOOP_START; + _c = c + 8; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + break; + case 10: + x = 0; cy = 0; + LOOP_START; + _c = c + 0; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 1; cy = 0; + LOOP_START; + _c = c + 1; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 2; cy = 0; + LOOP_START; + _c = c + 2; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 3; cy = 0; + LOOP_START; + _c = c + 3; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 4; cy = 0; + LOOP_START; + _c = c + 4; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 5; cy = 0; + LOOP_START; + _c = c + 5; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 6; cy = 0; + LOOP_START; + _c = c + 6; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 7; cy = 0; + LOOP_START; + _c = c + 7; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 8; cy = 0; + LOOP_START; + _c = c + 8; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 9; cy = 0; + LOOP_START; + _c = c + 9; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + break; + case 11: + x = 0; cy = 0; + LOOP_START; + _c = c + 0; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 1; cy = 0; + LOOP_START; + _c = c + 1; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 2; cy = 0; + LOOP_START; + _c = c + 2; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 3; cy = 0; + LOOP_START; + _c = c + 3; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 4; cy = 0; + LOOP_START; + _c = c + 4; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 5; cy = 0; + LOOP_START; + _c = c + 5; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 6; cy = 0; + LOOP_START; + _c = c + 6; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 7; cy = 0; + LOOP_START; + _c = c + 7; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 8; cy = 0; + LOOP_START; + _c = c + 8; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 9; cy = 0; + LOOP_START; + _c = c + 9; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 10; cy = 0; + LOOP_START; + _c = c + 10; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + break; + case 12: + x = 0; cy = 0; + LOOP_START; + _c = c + 0; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 1; cy = 0; + LOOP_START; + _c = c + 1; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 2; cy = 0; + LOOP_START; + _c = c + 2; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 3; cy = 0; + LOOP_START; + _c = c + 3; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 4; cy = 0; + LOOP_START; + _c = c + 4; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 5; cy = 0; + LOOP_START; + _c = c + 5; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 6; cy = 0; + LOOP_START; + _c = c + 6; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 7; cy = 0; + LOOP_START; + _c = c + 7; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 8; cy = 0; + LOOP_START; + _c = c + 8; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 9; cy = 0; + LOOP_START; + _c = c + 9; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 10; cy = 0; + LOOP_START; + _c = c + 10; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 11; cy = 0; + LOOP_START; + _c = c + 11; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + break; + case 13: + x = 0; cy = 0; + LOOP_START; + _c = c + 0; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 1; cy = 0; + LOOP_START; + _c = c + 1; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 2; cy = 0; + LOOP_START; + _c = c + 2; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 3; cy = 0; + LOOP_START; + _c = c + 3; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 4; cy = 0; + LOOP_START; + _c = c + 4; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 5; cy = 0; + LOOP_START; + _c = c + 5; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 6; cy = 0; + LOOP_START; + _c = c + 6; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 7; cy = 0; + LOOP_START; + _c = c + 7; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 8; cy = 0; + LOOP_START; + _c = c + 8; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 9; cy = 0; + LOOP_START; + _c = c + 9; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 10; cy = 0; + LOOP_START; + _c = c + 10; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 11; cy = 0; + LOOP_START; + _c = c + 11; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 12; cy = 0; + LOOP_START; + _c = c + 12; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + break; + case 14: + x = 0; cy = 0; + LOOP_START; + _c = c + 0; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 1; cy = 0; + LOOP_START; + _c = c + 1; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 2; cy = 0; + LOOP_START; + _c = c + 2; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 3; cy = 0; + LOOP_START; + _c = c + 3; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 4; cy = 0; + LOOP_START; + _c = c + 4; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 5; cy = 0; + LOOP_START; + _c = c + 5; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 6; cy = 0; + LOOP_START; + _c = c + 6; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 7; cy = 0; + LOOP_START; + _c = c + 7; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 8; cy = 0; + LOOP_START; + _c = c + 8; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 9; cy = 0; + LOOP_START; + _c = c + 9; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 10; cy = 0; + LOOP_START; + _c = c + 10; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 11; cy = 0; + LOOP_START; + _c = c + 11; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 12; cy = 0; + LOOP_START; + _c = c + 12; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 13; cy = 0; + LOOP_START; + _c = c + 13; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + break; + case 15: + x = 0; cy = 0; + LOOP_START; + _c = c + 0; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 1; cy = 0; + LOOP_START; + _c = c + 1; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 2; cy = 0; + LOOP_START; + _c = c + 2; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 3; cy = 0; + LOOP_START; + _c = c + 3; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 4; cy = 0; + LOOP_START; + _c = c + 4; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 5; cy = 0; + LOOP_START; + _c = c + 5; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 6; cy = 0; + LOOP_START; + _c = c + 6; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 7; cy = 0; + LOOP_START; + _c = c + 7; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 8; cy = 0; + LOOP_START; + _c = c + 8; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 9; cy = 0; + LOOP_START; + _c = c + 9; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 10; cy = 0; + LOOP_START; + _c = c + 10; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 11; cy = 0; + LOOP_START; + _c = c + 11; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 12; cy = 0; + LOOP_START; + _c = c + 12; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 13; cy = 0; + LOOP_START; + _c = c + 13; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 14; cy = 0; + LOOP_START; + _c = c + 14; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + break; + case 16: + x = 0; cy = 0; + LOOP_START; + _c = c + 0; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL8; _c += 8; tmpm += 8; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 1; cy = 0; + LOOP_START; + _c = c + 1; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL8; _c += 8; tmpm += 8; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 2; cy = 0; + LOOP_START; + _c = c + 2; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL8; _c += 8; tmpm += 8; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 3; cy = 0; + LOOP_START; + _c = c + 3; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL8; _c += 8; tmpm += 8; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 4; cy = 0; + LOOP_START; + _c = c + 4; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL8; _c += 8; tmpm += 8; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 5; cy = 0; + LOOP_START; + _c = c + 5; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL8; _c += 8; tmpm += 8; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 6; cy = 0; + LOOP_START; + _c = c + 6; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL8; _c += 8; tmpm += 8; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 7; cy = 0; + LOOP_START; + _c = c + 7; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL8; _c += 8; tmpm += 8; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 8; cy = 0; + LOOP_START; + _c = c + 8; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL8; _c += 8; tmpm += 8; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 9; cy = 0; + LOOP_START; + _c = c + 9; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL8; _c += 8; tmpm += 8; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 10; cy = 0; + LOOP_START; + _c = c + 10; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL8; _c += 8; tmpm += 8; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 11; cy = 0; + LOOP_START; + _c = c + 11; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL8; _c += 8; tmpm += 8; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 12; cy = 0; + LOOP_START; + _c = c + 12; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL8; _c += 8; tmpm += 8; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 13; cy = 0; + LOOP_START; + _c = c + 13; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL8; _c += 8; tmpm += 8; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 14; cy = 0; + LOOP_START; + _c = c + 14; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL8; _c += 8; tmpm += 8; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + x = 15; cy = 0; + LOOP_START; + _c = c + 15; + tmpm = m->dp; +#ifdef INNERMUL8 + INNERMUL8; _c += 8; tmpm += 8; + INNERMUL8; _c += 8; tmpm += 8; +#else + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; + INNERMUL; ++_c; +#endif + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + break; + } + /* now copy out */ + _c = c + pa; + tmpm = a->dp; + for (x = 0; x < pa+1; x++) { + *tmpm++ = *_c++; + } + + for (; x < oldused; x++) { + *tmpm++ = 0; + } + + MONT_FINI; + + a->used = pa+1; + fp_clamp(a); + + /* if A >= m then A = A - m */ + if (fp_cmp_mag (a, m) != FP_LT) { + s_fp_sub (a, m, a); + } +} + +#endif diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_12.i b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_12.i new file mode 100644 index 000000000..a7c5871bd --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_12.i @@ -0,0 +1,130 @@ +/* fp_mul_comba_12.i + * + * Copyright (C) 2006-2011 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifdef TFM_MUL12 +void fp_mul_comba12(fp_int *A, fp_int *B, fp_int *C) +{ + fp_digit c0, c1, c2, at[24]; + + memcpy(at, A->dp, 12 * sizeof(fp_digit)); + memcpy(at+12, B->dp, 12 * sizeof(fp_digit)); + COMBA_START; + + COMBA_CLEAR; + /* 0 */ + MULADD(at[0], at[12]); + COMBA_STORE(C->dp[0]); + /* 1 */ + COMBA_FORWARD; + MULADD(at[0], at[13]); MULADD(at[1], at[12]); + COMBA_STORE(C->dp[1]); + /* 2 */ + COMBA_FORWARD; + MULADD(at[0], at[14]); MULADD(at[1], at[13]); MULADD(at[2], at[12]); + COMBA_STORE(C->dp[2]); + /* 3 */ + COMBA_FORWARD; + MULADD(at[0], at[15]); MULADD(at[1], at[14]); MULADD(at[2], at[13]); MULADD(at[3], at[12]); + COMBA_STORE(C->dp[3]); + /* 4 */ + COMBA_FORWARD; + MULADD(at[0], at[16]); MULADD(at[1], at[15]); MULADD(at[2], at[14]); MULADD(at[3], at[13]); MULADD(at[4], at[12]); + COMBA_STORE(C->dp[4]); + /* 5 */ + COMBA_FORWARD; + MULADD(at[0], at[17]); MULADD(at[1], at[16]); MULADD(at[2], at[15]); MULADD(at[3], at[14]); MULADD(at[4], at[13]); MULADD(at[5], at[12]); + COMBA_STORE(C->dp[5]); + /* 6 */ + COMBA_FORWARD; + MULADD(at[0], at[18]); MULADD(at[1], at[17]); MULADD(at[2], at[16]); MULADD(at[3], at[15]); MULADD(at[4], at[14]); MULADD(at[5], at[13]); MULADD(at[6], at[12]); + COMBA_STORE(C->dp[6]); + /* 7 */ + COMBA_FORWARD; + MULADD(at[0], at[19]); MULADD(at[1], at[18]); MULADD(at[2], at[17]); MULADD(at[3], at[16]); MULADD(at[4], at[15]); MULADD(at[5], at[14]); MULADD(at[6], at[13]); MULADD(at[7], at[12]); + COMBA_STORE(C->dp[7]); + /* 8 */ + COMBA_FORWARD; + MULADD(at[0], at[20]); MULADD(at[1], at[19]); MULADD(at[2], at[18]); MULADD(at[3], at[17]); MULADD(at[4], at[16]); MULADD(at[5], at[15]); MULADD(at[6], at[14]); MULADD(at[7], at[13]); MULADD(at[8], at[12]); + COMBA_STORE(C->dp[8]); + /* 9 */ + COMBA_FORWARD; + MULADD(at[0], at[21]); MULADD(at[1], at[20]); MULADD(at[2], at[19]); MULADD(at[3], at[18]); MULADD(at[4], at[17]); MULADD(at[5], at[16]); MULADD(at[6], at[15]); MULADD(at[7], at[14]); MULADD(at[8], at[13]); MULADD(at[9], at[12]); + COMBA_STORE(C->dp[9]); + /* 10 */ + COMBA_FORWARD; + MULADD(at[0], at[22]); MULADD(at[1], at[21]); MULADD(at[2], at[20]); MULADD(at[3], at[19]); MULADD(at[4], at[18]); MULADD(at[5], at[17]); MULADD(at[6], at[16]); MULADD(at[7], at[15]); MULADD(at[8], at[14]); MULADD(at[9], at[13]); MULADD(at[10], at[12]); + COMBA_STORE(C->dp[10]); + /* 11 */ + COMBA_FORWARD; + MULADD(at[0], at[23]); MULADD(at[1], at[22]); MULADD(at[2], at[21]); MULADD(at[3], at[20]); MULADD(at[4], at[19]); MULADD(at[5], at[18]); MULADD(at[6], at[17]); MULADD(at[7], at[16]); MULADD(at[8], at[15]); MULADD(at[9], at[14]); MULADD(at[10], at[13]); MULADD(at[11], at[12]); + COMBA_STORE(C->dp[11]); + /* 12 */ + COMBA_FORWARD; + MULADD(at[1], at[23]); MULADD(at[2], at[22]); MULADD(at[3], at[21]); MULADD(at[4], at[20]); MULADD(at[5], at[19]); MULADD(at[6], at[18]); MULADD(at[7], at[17]); MULADD(at[8], at[16]); MULADD(at[9], at[15]); MULADD(at[10], at[14]); MULADD(at[11], at[13]); + COMBA_STORE(C->dp[12]); + /* 13 */ + COMBA_FORWARD; + MULADD(at[2], at[23]); MULADD(at[3], at[22]); MULADD(at[4], at[21]); MULADD(at[5], at[20]); MULADD(at[6], at[19]); MULADD(at[7], at[18]); MULADD(at[8], at[17]); MULADD(at[9], at[16]); MULADD(at[10], at[15]); MULADD(at[11], at[14]); + COMBA_STORE(C->dp[13]); + /* 14 */ + COMBA_FORWARD; + MULADD(at[3], at[23]); MULADD(at[4], at[22]); MULADD(at[5], at[21]); MULADD(at[6], at[20]); MULADD(at[7], at[19]); MULADD(at[8], at[18]); MULADD(at[9], at[17]); MULADD(at[10], at[16]); MULADD(at[11], at[15]); + COMBA_STORE(C->dp[14]); + /* 15 */ + COMBA_FORWARD; + MULADD(at[4], at[23]); MULADD(at[5], at[22]); MULADD(at[6], at[21]); MULADD(at[7], at[20]); MULADD(at[8], at[19]); MULADD(at[9], at[18]); MULADD(at[10], at[17]); MULADD(at[11], at[16]); + COMBA_STORE(C->dp[15]); + /* 16 */ + COMBA_FORWARD; + MULADD(at[5], at[23]); MULADD(at[6], at[22]); MULADD(at[7], at[21]); MULADD(at[8], at[20]); MULADD(at[9], at[19]); MULADD(at[10], at[18]); MULADD(at[11], at[17]); + COMBA_STORE(C->dp[16]); + /* 17 */ + COMBA_FORWARD; + MULADD(at[6], at[23]); MULADD(at[7], at[22]); MULADD(at[8], at[21]); MULADD(at[9], at[20]); MULADD(at[10], at[19]); MULADD(at[11], at[18]); + COMBA_STORE(C->dp[17]); + /* 18 */ + COMBA_FORWARD; + MULADD(at[7], at[23]); MULADD(at[8], at[22]); MULADD(at[9], at[21]); MULADD(at[10], at[20]); MULADD(at[11], at[19]); + COMBA_STORE(C->dp[18]); + /* 19 */ + COMBA_FORWARD; + MULADD(at[8], at[23]); MULADD(at[9], at[22]); MULADD(at[10], at[21]); MULADD(at[11], at[20]); + COMBA_STORE(C->dp[19]); + /* 20 */ + COMBA_FORWARD; + MULADD(at[9], at[23]); MULADD(at[10], at[22]); MULADD(at[11], at[21]); + COMBA_STORE(C->dp[20]); + /* 21 */ + COMBA_FORWARD; + MULADD(at[10], at[23]); MULADD(at[11], at[22]); + COMBA_STORE(C->dp[21]); + /* 22 */ + COMBA_FORWARD; + MULADD(at[11], at[23]); + COMBA_STORE(C->dp[22]); + COMBA_STORE2(C->dp[23]); + C->used = 24; + C->sign = A->sign ^ B->sign; + fp_clamp(C); + COMBA_FINI; +} +#endif diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_17.i b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_17.i new file mode 100644 index 000000000..3ad0716a6 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_17.i @@ -0,0 +1,170 @@ +/* fp_mul_comba_17.i + * + * Copyright (C) 2006-2011 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifdef TFM_MUL17 +void fp_mul_comba17(fp_int *A, fp_int *B, fp_int *C) +{ + fp_digit c0, c1, c2, at[34]; + + memcpy(at, A->dp, 17 * sizeof(fp_digit)); + memcpy(at+17, B->dp, 17 * sizeof(fp_digit)); + COMBA_START; + + COMBA_CLEAR; + /* 0 */ + MULADD(at[0], at[17]); + COMBA_STORE(C->dp[0]); + /* 1 */ + COMBA_FORWARD; + MULADD(at[0], at[18]); MULADD(at[1], at[17]); + COMBA_STORE(C->dp[1]); + /* 2 */ + COMBA_FORWARD; + MULADD(at[0], at[19]); MULADD(at[1], at[18]); MULADD(at[2], at[17]); + COMBA_STORE(C->dp[2]); + /* 3 */ + COMBA_FORWARD; + MULADD(at[0], at[20]); MULADD(at[1], at[19]); MULADD(at[2], at[18]); MULADD(at[3], at[17]); + COMBA_STORE(C->dp[3]); + /* 4 */ + COMBA_FORWARD; + MULADD(at[0], at[21]); MULADD(at[1], at[20]); MULADD(at[2], at[19]); MULADD(at[3], at[18]); MULADD(at[4], at[17]); + COMBA_STORE(C->dp[4]); + /* 5 */ + COMBA_FORWARD; + MULADD(at[0], at[22]); MULADD(at[1], at[21]); MULADD(at[2], at[20]); MULADD(at[3], at[19]); MULADD(at[4], at[18]); MULADD(at[5], at[17]); + COMBA_STORE(C->dp[5]); + /* 6 */ + COMBA_FORWARD; + MULADD(at[0], at[23]); MULADD(at[1], at[22]); MULADD(at[2], at[21]); MULADD(at[3], at[20]); MULADD(at[4], at[19]); MULADD(at[5], at[18]); MULADD(at[6], at[17]); + COMBA_STORE(C->dp[6]); + /* 7 */ + COMBA_FORWARD; + MULADD(at[0], at[24]); MULADD(at[1], at[23]); MULADD(at[2], at[22]); MULADD(at[3], at[21]); MULADD(at[4], at[20]); MULADD(at[5], at[19]); MULADD(at[6], at[18]); MULADD(at[7], at[17]); + COMBA_STORE(C->dp[7]); + /* 8 */ + COMBA_FORWARD; + MULADD(at[0], at[25]); MULADD(at[1], at[24]); MULADD(at[2], at[23]); MULADD(at[3], at[22]); MULADD(at[4], at[21]); MULADD(at[5], at[20]); MULADD(at[6], at[19]); MULADD(at[7], at[18]); MULADD(at[8], at[17]); + COMBA_STORE(C->dp[8]); + /* 9 */ + COMBA_FORWARD; + MULADD(at[0], at[26]); MULADD(at[1], at[25]); MULADD(at[2], at[24]); MULADD(at[3], at[23]); MULADD(at[4], at[22]); MULADD(at[5], at[21]); MULADD(at[6], at[20]); MULADD(at[7], at[19]); MULADD(at[8], at[18]); MULADD(at[9], at[17]); + COMBA_STORE(C->dp[9]); + /* 10 */ + COMBA_FORWARD; + MULADD(at[0], at[27]); MULADD(at[1], at[26]); MULADD(at[2], at[25]); MULADD(at[3], at[24]); MULADD(at[4], at[23]); MULADD(at[5], at[22]); MULADD(at[6], at[21]); MULADD(at[7], at[20]); MULADD(at[8], at[19]); MULADD(at[9], at[18]); MULADD(at[10], at[17]); + COMBA_STORE(C->dp[10]); + /* 11 */ + COMBA_FORWARD; + MULADD(at[0], at[28]); MULADD(at[1], at[27]); MULADD(at[2], at[26]); MULADD(at[3], at[25]); MULADD(at[4], at[24]); MULADD(at[5], at[23]); MULADD(at[6], at[22]); MULADD(at[7], at[21]); MULADD(at[8], at[20]); MULADD(at[9], at[19]); MULADD(at[10], at[18]); MULADD(at[11], at[17]); + COMBA_STORE(C->dp[11]); + /* 12 */ + COMBA_FORWARD; + MULADD(at[0], at[29]); MULADD(at[1], at[28]); MULADD(at[2], at[27]); MULADD(at[3], at[26]); MULADD(at[4], at[25]); MULADD(at[5], at[24]); MULADD(at[6], at[23]); MULADD(at[7], at[22]); MULADD(at[8], at[21]); MULADD(at[9], at[20]); MULADD(at[10], at[19]); MULADD(at[11], at[18]); MULADD(at[12], at[17]); + COMBA_STORE(C->dp[12]); + /* 13 */ + COMBA_FORWARD; + MULADD(at[0], at[30]); MULADD(at[1], at[29]); MULADD(at[2], at[28]); MULADD(at[3], at[27]); MULADD(at[4], at[26]); MULADD(at[5], at[25]); MULADD(at[6], at[24]); MULADD(at[7], at[23]); MULADD(at[8], at[22]); MULADD(at[9], at[21]); MULADD(at[10], at[20]); MULADD(at[11], at[19]); MULADD(at[12], at[18]); MULADD(at[13], at[17]); + COMBA_STORE(C->dp[13]); + /* 14 */ + COMBA_FORWARD; + MULADD(at[0], at[31]); MULADD(at[1], at[30]); MULADD(at[2], at[29]); MULADD(at[3], at[28]); MULADD(at[4], at[27]); MULADD(at[5], at[26]); MULADD(at[6], at[25]); MULADD(at[7], at[24]); MULADD(at[8], at[23]); MULADD(at[9], at[22]); MULADD(at[10], at[21]); MULADD(at[11], at[20]); MULADD(at[12], at[19]); MULADD(at[13], at[18]); MULADD(at[14], at[17]); + COMBA_STORE(C->dp[14]); + /* 15 */ + COMBA_FORWARD; + MULADD(at[0], at[32]); MULADD(at[1], at[31]); MULADD(at[2], at[30]); MULADD(at[3], at[29]); MULADD(at[4], at[28]); MULADD(at[5], at[27]); MULADD(at[6], at[26]); MULADD(at[7], at[25]); MULADD(at[8], at[24]); MULADD(at[9], at[23]); MULADD(at[10], at[22]); MULADD(at[11], at[21]); MULADD(at[12], at[20]); MULADD(at[13], at[19]); MULADD(at[14], at[18]); MULADD(at[15], at[17]); + COMBA_STORE(C->dp[15]); + /* 16 */ + COMBA_FORWARD; + MULADD(at[0], at[33]); MULADD(at[1], at[32]); MULADD(at[2], at[31]); MULADD(at[3], at[30]); MULADD(at[4], at[29]); MULADD(at[5], at[28]); MULADD(at[6], at[27]); MULADD(at[7], at[26]); MULADD(at[8], at[25]); MULADD(at[9], at[24]); MULADD(at[10], at[23]); MULADD(at[11], at[22]); MULADD(at[12], at[21]); MULADD(at[13], at[20]); MULADD(at[14], at[19]); MULADD(at[15], at[18]); MULADD(at[16], at[17]); + COMBA_STORE(C->dp[16]); + /* 17 */ + COMBA_FORWARD; + MULADD(at[1], at[33]); MULADD(at[2], at[32]); MULADD(at[3], at[31]); MULADD(at[4], at[30]); MULADD(at[5], at[29]); MULADD(at[6], at[28]); MULADD(at[7], at[27]); MULADD(at[8], at[26]); MULADD(at[9], at[25]); MULADD(at[10], at[24]); MULADD(at[11], at[23]); MULADD(at[12], at[22]); MULADD(at[13], at[21]); MULADD(at[14], at[20]); MULADD(at[15], at[19]); MULADD(at[16], at[18]); + COMBA_STORE(C->dp[17]); + /* 18 */ + COMBA_FORWARD; + MULADD(at[2], at[33]); MULADD(at[3], at[32]); MULADD(at[4], at[31]); MULADD(at[5], at[30]); MULADD(at[6], at[29]); MULADD(at[7], at[28]); MULADD(at[8], at[27]); MULADD(at[9], at[26]); MULADD(at[10], at[25]); MULADD(at[11], at[24]); MULADD(at[12], at[23]); MULADD(at[13], at[22]); MULADD(at[14], at[21]); MULADD(at[15], at[20]); MULADD(at[16], at[19]); + COMBA_STORE(C->dp[18]); + /* 19 */ + COMBA_FORWARD; + MULADD(at[3], at[33]); MULADD(at[4], at[32]); MULADD(at[5], at[31]); MULADD(at[6], at[30]); MULADD(at[7], at[29]); MULADD(at[8], at[28]); MULADD(at[9], at[27]); MULADD(at[10], at[26]); MULADD(at[11], at[25]); MULADD(at[12], at[24]); MULADD(at[13], at[23]); MULADD(at[14], at[22]); MULADD(at[15], at[21]); MULADD(at[16], at[20]); + COMBA_STORE(C->dp[19]); + /* 20 */ + COMBA_FORWARD; + MULADD(at[4], at[33]); MULADD(at[5], at[32]); MULADD(at[6], at[31]); MULADD(at[7], at[30]); MULADD(at[8], at[29]); MULADD(at[9], at[28]); MULADD(at[10], at[27]); MULADD(at[11], at[26]); MULADD(at[12], at[25]); MULADD(at[13], at[24]); MULADD(at[14], at[23]); MULADD(at[15], at[22]); MULADD(at[16], at[21]); + COMBA_STORE(C->dp[20]); + /* 21 */ + COMBA_FORWARD; + MULADD(at[5], at[33]); MULADD(at[6], at[32]); MULADD(at[7], at[31]); MULADD(at[8], at[30]); MULADD(at[9], at[29]); MULADD(at[10], at[28]); MULADD(at[11], at[27]); MULADD(at[12], at[26]); MULADD(at[13], at[25]); MULADD(at[14], at[24]); MULADD(at[15], at[23]); MULADD(at[16], at[22]); + COMBA_STORE(C->dp[21]); + /* 22 */ + COMBA_FORWARD; + MULADD(at[6], at[33]); MULADD(at[7], at[32]); MULADD(at[8], at[31]); MULADD(at[9], at[30]); MULADD(at[10], at[29]); MULADD(at[11], at[28]); MULADD(at[12], at[27]); MULADD(at[13], at[26]); MULADD(at[14], at[25]); MULADD(at[15], at[24]); MULADD(at[16], at[23]); + COMBA_STORE(C->dp[22]); + /* 23 */ + COMBA_FORWARD; + MULADD(at[7], at[33]); MULADD(at[8], at[32]); MULADD(at[9], at[31]); MULADD(at[10], at[30]); MULADD(at[11], at[29]); MULADD(at[12], at[28]); MULADD(at[13], at[27]); MULADD(at[14], at[26]); MULADD(at[15], at[25]); MULADD(at[16], at[24]); + COMBA_STORE(C->dp[23]); + /* 24 */ + COMBA_FORWARD; + MULADD(at[8], at[33]); MULADD(at[9], at[32]); MULADD(at[10], at[31]); MULADD(at[11], at[30]); MULADD(at[12], at[29]); MULADD(at[13], at[28]); MULADD(at[14], at[27]); MULADD(at[15], at[26]); MULADD(at[16], at[25]); + COMBA_STORE(C->dp[24]); + /* 25 */ + COMBA_FORWARD; + MULADD(at[9], at[33]); MULADD(at[10], at[32]); MULADD(at[11], at[31]); MULADD(at[12], at[30]); MULADD(at[13], at[29]); MULADD(at[14], at[28]); MULADD(at[15], at[27]); MULADD(at[16], at[26]); + COMBA_STORE(C->dp[25]); + /* 26 */ + COMBA_FORWARD; + MULADD(at[10], at[33]); MULADD(at[11], at[32]); MULADD(at[12], at[31]); MULADD(at[13], at[30]); MULADD(at[14], at[29]); MULADD(at[15], at[28]); MULADD(at[16], at[27]); + COMBA_STORE(C->dp[26]); + /* 27 */ + COMBA_FORWARD; + MULADD(at[11], at[33]); MULADD(at[12], at[32]); MULADD(at[13], at[31]); MULADD(at[14], at[30]); MULADD(at[15], at[29]); MULADD(at[16], at[28]); + COMBA_STORE(C->dp[27]); + /* 28 */ + COMBA_FORWARD; + MULADD(at[12], at[33]); MULADD(at[13], at[32]); MULADD(at[14], at[31]); MULADD(at[15], at[30]); MULADD(at[16], at[29]); + COMBA_STORE(C->dp[28]); + /* 29 */ + COMBA_FORWARD; + MULADD(at[13], at[33]); MULADD(at[14], at[32]); MULADD(at[15], at[31]); MULADD(at[16], at[30]); + COMBA_STORE(C->dp[29]); + /* 30 */ + COMBA_FORWARD; + MULADD(at[14], at[33]); MULADD(at[15], at[32]); MULADD(at[16], at[31]); + COMBA_STORE(C->dp[30]); + /* 31 */ + COMBA_FORWARD; + MULADD(at[15], at[33]); MULADD(at[16], at[32]); + COMBA_STORE(C->dp[31]); + /* 32 */ + COMBA_FORWARD; + MULADD(at[16], at[33]); + COMBA_STORE(C->dp[32]); + COMBA_STORE2(C->dp[33]); + C->used = 34; + C->sign = A->sign ^ B->sign; + fp_clamp(C); + COMBA_FINI; +} +#endif diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_20.i b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_20.i new file mode 100644 index 000000000..b82e77921 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_20.i @@ -0,0 +1,193 @@ +/* fp_mul_comba_20.i + * + * Copyright (C) 2006-2011 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +#ifdef TFM_MUL20 +void fp_mul_comba20(fp_int *A, fp_int *B, fp_int *C) +{ + fp_digit c0, c1, c2, at[40]; + + memcpy(at, A->dp, 20 * sizeof(fp_digit)); + memcpy(at+20, B->dp, 20 * sizeof(fp_digit)); + COMBA_START; + + COMBA_CLEAR; + /* 0 */ + MULADD(at[0], at[20]); + COMBA_STORE(C->dp[0]); + /* 1 */ + COMBA_FORWARD; + MULADD(at[0], at[21]); MULADD(at[1], at[20]); + COMBA_STORE(C->dp[1]); + /* 2 */ + COMBA_FORWARD; + MULADD(at[0], at[22]); MULADD(at[1], at[21]); MULADD(at[2], at[20]); + COMBA_STORE(C->dp[2]); + /* 3 */ + COMBA_FORWARD; + MULADD(at[0], at[23]); MULADD(at[1], at[22]); MULADD(at[2], at[21]); MULADD(at[3], at[20]); + COMBA_STORE(C->dp[3]); + /* 4 */ + COMBA_FORWARD; + MULADD(at[0], at[24]); MULADD(at[1], at[23]); MULADD(at[2], at[22]); MULADD(at[3], at[21]); MULADD(at[4], at[20]); + COMBA_STORE(C->dp[4]); + /* 5 */ + COMBA_FORWARD; + MULADD(at[0], at[25]); MULADD(at[1], at[24]); MULADD(at[2], at[23]); MULADD(at[3], at[22]); MULADD(at[4], at[21]); MULADD(at[5], at[20]); + COMBA_STORE(C->dp[5]); + /* 6 */ + COMBA_FORWARD; + MULADD(at[0], at[26]); MULADD(at[1], at[25]); MULADD(at[2], at[24]); MULADD(at[3], at[23]); MULADD(at[4], at[22]); MULADD(at[5], at[21]); MULADD(at[6], at[20]); + COMBA_STORE(C->dp[6]); + /* 7 */ + COMBA_FORWARD; + MULADD(at[0], at[27]); MULADD(at[1], at[26]); MULADD(at[2], at[25]); MULADD(at[3], at[24]); MULADD(at[4], at[23]); MULADD(at[5], at[22]); MULADD(at[6], at[21]); MULADD(at[7], at[20]); + COMBA_STORE(C->dp[7]); + /* 8 */ + COMBA_FORWARD; + MULADD(at[0], at[28]); MULADD(at[1], at[27]); MULADD(at[2], at[26]); MULADD(at[3], at[25]); MULADD(at[4], at[24]); MULADD(at[5], at[23]); MULADD(at[6], at[22]); MULADD(at[7], at[21]); MULADD(at[8], at[20]); + COMBA_STORE(C->dp[8]); + /* 9 */ + COMBA_FORWARD; + MULADD(at[0], at[29]); MULADD(at[1], at[28]); MULADD(at[2], at[27]); MULADD(at[3], at[26]); MULADD(at[4], at[25]); MULADD(at[5], at[24]); MULADD(at[6], at[23]); MULADD(at[7], at[22]); MULADD(at[8], at[21]); MULADD(at[9], at[20]); + COMBA_STORE(C->dp[9]); + /* 10 */ + COMBA_FORWARD; + MULADD(at[0], at[30]); MULADD(at[1], at[29]); MULADD(at[2], at[28]); MULADD(at[3], at[27]); MULADD(at[4], at[26]); MULADD(at[5], at[25]); MULADD(at[6], at[24]); MULADD(at[7], at[23]); MULADD(at[8], at[22]); MULADD(at[9], at[21]); MULADD(at[10], at[20]); + COMBA_STORE(C->dp[10]); + /* 11 */ + COMBA_FORWARD; + MULADD(at[0], at[31]); MULADD(at[1], at[30]); MULADD(at[2], at[29]); MULADD(at[3], at[28]); MULADD(at[4], at[27]); MULADD(at[5], at[26]); MULADD(at[6], at[25]); MULADD(at[7], at[24]); MULADD(at[8], at[23]); MULADD(at[9], at[22]); MULADD(at[10], at[21]); MULADD(at[11], at[20]); + COMBA_STORE(C->dp[11]); + /* 12 */ + COMBA_FORWARD; + MULADD(at[0], at[32]); MULADD(at[1], at[31]); MULADD(at[2], at[30]); MULADD(at[3], at[29]); MULADD(at[4], at[28]); MULADD(at[5], at[27]); MULADD(at[6], at[26]); MULADD(at[7], at[25]); MULADD(at[8], at[24]); MULADD(at[9], at[23]); MULADD(at[10], at[22]); MULADD(at[11], at[21]); MULADD(at[12], at[20]); + COMBA_STORE(C->dp[12]); + /* 13 */ + COMBA_FORWARD; + MULADD(at[0], at[33]); MULADD(at[1], at[32]); MULADD(at[2], at[31]); MULADD(at[3], at[30]); MULADD(at[4], at[29]); MULADD(at[5], at[28]); MULADD(at[6], at[27]); MULADD(at[7], at[26]); MULADD(at[8], at[25]); MULADD(at[9], at[24]); MULADD(at[10], at[23]); MULADD(at[11], at[22]); MULADD(at[12], at[21]); MULADD(at[13], at[20]); + COMBA_STORE(C->dp[13]); + /* 14 */ + COMBA_FORWARD; + MULADD(at[0], at[34]); MULADD(at[1], at[33]); MULADD(at[2], at[32]); MULADD(at[3], at[31]); MULADD(at[4], at[30]); MULADD(at[5], at[29]); MULADD(at[6], at[28]); MULADD(at[7], at[27]); MULADD(at[8], at[26]); MULADD(at[9], at[25]); MULADD(at[10], at[24]); MULADD(at[11], at[23]); MULADD(at[12], at[22]); MULADD(at[13], at[21]); MULADD(at[14], at[20]); + COMBA_STORE(C->dp[14]); + /* 15 */ + COMBA_FORWARD; + MULADD(at[0], at[35]); MULADD(at[1], at[34]); MULADD(at[2], at[33]); MULADD(at[3], at[32]); MULADD(at[4], at[31]); MULADD(at[5], at[30]); MULADD(at[6], at[29]); MULADD(at[7], at[28]); MULADD(at[8], at[27]); MULADD(at[9], at[26]); MULADD(at[10], at[25]); MULADD(at[11], at[24]); MULADD(at[12], at[23]); MULADD(at[13], at[22]); MULADD(at[14], at[21]); MULADD(at[15], at[20]); + COMBA_STORE(C->dp[15]); + /* 16 */ + COMBA_FORWARD; + MULADD(at[0], at[36]); MULADD(at[1], at[35]); MULADD(at[2], at[34]); MULADD(at[3], at[33]); MULADD(at[4], at[32]); MULADD(at[5], at[31]); MULADD(at[6], at[30]); MULADD(at[7], at[29]); MULADD(at[8], at[28]); MULADD(at[9], at[27]); MULADD(at[10], at[26]); MULADD(at[11], at[25]); MULADD(at[12], at[24]); MULADD(at[13], at[23]); MULADD(at[14], at[22]); MULADD(at[15], at[21]); MULADD(at[16], at[20]); + COMBA_STORE(C->dp[16]); + /* 17 */ + COMBA_FORWARD; + MULADD(at[0], at[37]); MULADD(at[1], at[36]); MULADD(at[2], at[35]); MULADD(at[3], at[34]); MULADD(at[4], at[33]); MULADD(at[5], at[32]); MULADD(at[6], at[31]); MULADD(at[7], at[30]); MULADD(at[8], at[29]); MULADD(at[9], at[28]); MULADD(at[10], at[27]); MULADD(at[11], at[26]); MULADD(at[12], at[25]); MULADD(at[13], at[24]); MULADD(at[14], at[23]); MULADD(at[15], at[22]); MULADD(at[16], at[21]); MULADD(at[17], at[20]); + COMBA_STORE(C->dp[17]); + /* 18 */ + COMBA_FORWARD; + MULADD(at[0], at[38]); MULADD(at[1], at[37]); MULADD(at[2], at[36]); MULADD(at[3], at[35]); MULADD(at[4], at[34]); MULADD(at[5], at[33]); MULADD(at[6], at[32]); MULADD(at[7], at[31]); MULADD(at[8], at[30]); MULADD(at[9], at[29]); MULADD(at[10], at[28]); MULADD(at[11], at[27]); MULADD(at[12], at[26]); MULADD(at[13], at[25]); MULADD(at[14], at[24]); MULADD(at[15], at[23]); MULADD(at[16], at[22]); MULADD(at[17], at[21]); MULADD(at[18], at[20]); + COMBA_STORE(C->dp[18]); + /* 19 */ + COMBA_FORWARD; + MULADD(at[0], at[39]); MULADD(at[1], at[38]); MULADD(at[2], at[37]); MULADD(at[3], at[36]); MULADD(at[4], at[35]); MULADD(at[5], at[34]); MULADD(at[6], at[33]); MULADD(at[7], at[32]); MULADD(at[8], at[31]); MULADD(at[9], at[30]); MULADD(at[10], at[29]); MULADD(at[11], at[28]); MULADD(at[12], at[27]); MULADD(at[13], at[26]); MULADD(at[14], at[25]); MULADD(at[15], at[24]); MULADD(at[16], at[23]); MULADD(at[17], at[22]); MULADD(at[18], at[21]); MULADD(at[19], at[20]); + COMBA_STORE(C->dp[19]); + /* 20 */ + COMBA_FORWARD; + MULADD(at[1], at[39]); MULADD(at[2], at[38]); MULADD(at[3], at[37]); MULADD(at[4], at[36]); MULADD(at[5], at[35]); MULADD(at[6], at[34]); MULADD(at[7], at[33]); MULADD(at[8], at[32]); MULADD(at[9], at[31]); MULADD(at[10], at[30]); MULADD(at[11], at[29]); MULADD(at[12], at[28]); MULADD(at[13], at[27]); MULADD(at[14], at[26]); MULADD(at[15], at[25]); MULADD(at[16], at[24]); MULADD(at[17], at[23]); MULADD(at[18], at[22]); MULADD(at[19], at[21]); + COMBA_STORE(C->dp[20]); + /* 21 */ + COMBA_FORWARD; + MULADD(at[2], at[39]); MULADD(at[3], at[38]); MULADD(at[4], at[37]); MULADD(at[5], at[36]); MULADD(at[6], at[35]); MULADD(at[7], at[34]); MULADD(at[8], at[33]); MULADD(at[9], at[32]); MULADD(at[10], at[31]); MULADD(at[11], at[30]); MULADD(at[12], at[29]); MULADD(at[13], at[28]); MULADD(at[14], at[27]); MULADD(at[15], at[26]); MULADD(at[16], at[25]); MULADD(at[17], at[24]); MULADD(at[18], at[23]); MULADD(at[19], at[22]); + COMBA_STORE(C->dp[21]); + /* 22 */ + COMBA_FORWARD; + MULADD(at[3], at[39]); MULADD(at[4], at[38]); MULADD(at[5], at[37]); MULADD(at[6], at[36]); MULADD(at[7], at[35]); MULADD(at[8], at[34]); MULADD(at[9], at[33]); MULADD(at[10], at[32]); MULADD(at[11], at[31]); MULADD(at[12], at[30]); MULADD(at[13], at[29]); MULADD(at[14], at[28]); MULADD(at[15], at[27]); MULADD(at[16], at[26]); MULADD(at[17], at[25]); MULADD(at[18], at[24]); MULADD(at[19], at[23]); + COMBA_STORE(C->dp[22]); + /* 23 */ + COMBA_FORWARD; + MULADD(at[4], at[39]); MULADD(at[5], at[38]); MULADD(at[6], at[37]); MULADD(at[7], at[36]); MULADD(at[8], at[35]); MULADD(at[9], at[34]); MULADD(at[10], at[33]); MULADD(at[11], at[32]); MULADD(at[12], at[31]); MULADD(at[13], at[30]); MULADD(at[14], at[29]); MULADD(at[15], at[28]); MULADD(at[16], at[27]); MULADD(at[17], at[26]); MULADD(at[18], at[25]); MULADD(at[19], at[24]); + COMBA_STORE(C->dp[23]); + /* 24 */ + COMBA_FORWARD; + MULADD(at[5], at[39]); MULADD(at[6], at[38]); MULADD(at[7], at[37]); MULADD(at[8], at[36]); MULADD(at[9], at[35]); MULADD(at[10], at[34]); MULADD(at[11], at[33]); MULADD(at[12], at[32]); MULADD(at[13], at[31]); MULADD(at[14], at[30]); MULADD(at[15], at[29]); MULADD(at[16], at[28]); MULADD(at[17], at[27]); MULADD(at[18], at[26]); MULADD(at[19], at[25]); + COMBA_STORE(C->dp[24]); + /* 25 */ + COMBA_FORWARD; + MULADD(at[6], at[39]); MULADD(at[7], at[38]); MULADD(at[8], at[37]); MULADD(at[9], at[36]); MULADD(at[10], at[35]); MULADD(at[11], at[34]); MULADD(at[12], at[33]); MULADD(at[13], at[32]); MULADD(at[14], at[31]); MULADD(at[15], at[30]); MULADD(at[16], at[29]); MULADD(at[17], at[28]); MULADD(at[18], at[27]); MULADD(at[19], at[26]); + COMBA_STORE(C->dp[25]); + /* 26 */ + COMBA_FORWARD; + MULADD(at[7], at[39]); MULADD(at[8], at[38]); MULADD(at[9], at[37]); MULADD(at[10], at[36]); MULADD(at[11], at[35]); MULADD(at[12], at[34]); MULADD(at[13], at[33]); MULADD(at[14], at[32]); MULADD(at[15], at[31]); MULADD(at[16], at[30]); MULADD(at[17], at[29]); MULADD(at[18], at[28]); MULADD(at[19], at[27]); + COMBA_STORE(C->dp[26]); + /* 27 */ + COMBA_FORWARD; + MULADD(at[8], at[39]); MULADD(at[9], at[38]); MULADD(at[10], at[37]); MULADD(at[11], at[36]); MULADD(at[12], at[35]); MULADD(at[13], at[34]); MULADD(at[14], at[33]); MULADD(at[15], at[32]); MULADD(at[16], at[31]); MULADD(at[17], at[30]); MULADD(at[18], at[29]); MULADD(at[19], at[28]); + COMBA_STORE(C->dp[27]); + /* 28 */ + COMBA_FORWARD; + MULADD(at[9], at[39]); MULADD(at[10], at[38]); MULADD(at[11], at[37]); MULADD(at[12], at[36]); MULADD(at[13], at[35]); MULADD(at[14], at[34]); MULADD(at[15], at[33]); MULADD(at[16], at[32]); MULADD(at[17], at[31]); MULADD(at[18], at[30]); MULADD(at[19], at[29]); + COMBA_STORE(C->dp[28]); + /* 29 */ + COMBA_FORWARD; + MULADD(at[10], at[39]); MULADD(at[11], at[38]); MULADD(at[12], at[37]); MULADD(at[13], at[36]); MULADD(at[14], at[35]); MULADD(at[15], at[34]); MULADD(at[16], at[33]); MULADD(at[17], at[32]); MULADD(at[18], at[31]); MULADD(at[19], at[30]); + COMBA_STORE(C->dp[29]); + /* 30 */ + COMBA_FORWARD; + MULADD(at[11], at[39]); MULADD(at[12], at[38]); MULADD(at[13], at[37]); MULADD(at[14], at[36]); MULADD(at[15], at[35]); MULADD(at[16], at[34]); MULADD(at[17], at[33]); MULADD(at[18], at[32]); MULADD(at[19], at[31]); + COMBA_STORE(C->dp[30]); + /* 31 */ + COMBA_FORWARD; + MULADD(at[12], at[39]); MULADD(at[13], at[38]); MULADD(at[14], at[37]); MULADD(at[15], at[36]); MULADD(at[16], at[35]); MULADD(at[17], at[34]); MULADD(at[18], at[33]); MULADD(at[19], at[32]); + COMBA_STORE(C->dp[31]); + /* 32 */ + COMBA_FORWARD; + MULADD(at[13], at[39]); MULADD(at[14], at[38]); MULADD(at[15], at[37]); MULADD(at[16], at[36]); MULADD(at[17], at[35]); MULADD(at[18], at[34]); MULADD(at[19], at[33]); + COMBA_STORE(C->dp[32]); + /* 33 */ + COMBA_FORWARD; + MULADD(at[14], at[39]); MULADD(at[15], at[38]); MULADD(at[16], at[37]); MULADD(at[17], at[36]); MULADD(at[18], at[35]); MULADD(at[19], at[34]); + COMBA_STORE(C->dp[33]); + /* 34 */ + COMBA_FORWARD; + MULADD(at[15], at[39]); MULADD(at[16], at[38]); MULADD(at[17], at[37]); MULADD(at[18], at[36]); MULADD(at[19], at[35]); + COMBA_STORE(C->dp[34]); + /* 35 */ + COMBA_FORWARD; + MULADD(at[16], at[39]); MULADD(at[17], at[38]); MULADD(at[18], at[37]); MULADD(at[19], at[36]); + COMBA_STORE(C->dp[35]); + /* 36 */ + COMBA_FORWARD; + MULADD(at[17], at[39]); MULADD(at[18], at[38]); MULADD(at[19], at[37]); + COMBA_STORE(C->dp[36]); + /* 37 */ + COMBA_FORWARD; + MULADD(at[18], at[39]); MULADD(at[19], at[38]); + COMBA_STORE(C->dp[37]); + /* 38 */ + COMBA_FORWARD; + MULADD(at[19], at[39]); + COMBA_STORE(C->dp[38]); + COMBA_STORE2(C->dp[39]); + C->used = 40; + C->sign = A->sign ^ B->sign; + fp_clamp(C); + COMBA_FINI; +} +#endif diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_24.i b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_24.i new file mode 100644 index 000000000..42f44b6ec --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_24.i @@ -0,0 +1,226 @@ +/* fp_mul_comba_24.i + * + * Copyright (C) 2006-2011 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifdef TFM_MUL24 +void fp_mul_comba24(fp_int *A, fp_int *B, fp_int *C) +{ + fp_digit c0, c1, c2, at[48]; + + memcpy(at, A->dp, 24 * sizeof(fp_digit)); + memcpy(at+24, B->dp, 24 * sizeof(fp_digit)); + COMBA_START; + + COMBA_CLEAR; + /* 0 */ + MULADD(at[0], at[24]); + COMBA_STORE(C->dp[0]); + /* 1 */ + COMBA_FORWARD; + MULADD(at[0], at[25]); MULADD(at[1], at[24]); + COMBA_STORE(C->dp[1]); + /* 2 */ + COMBA_FORWARD; + MULADD(at[0], at[26]); MULADD(at[1], at[25]); MULADD(at[2], at[24]); + COMBA_STORE(C->dp[2]); + /* 3 */ + COMBA_FORWARD; + MULADD(at[0], at[27]); MULADD(at[1], at[26]); MULADD(at[2], at[25]); MULADD(at[3], at[24]); + COMBA_STORE(C->dp[3]); + /* 4 */ + COMBA_FORWARD; + MULADD(at[0], at[28]); MULADD(at[1], at[27]); MULADD(at[2], at[26]); MULADD(at[3], at[25]); MULADD(at[4], at[24]); + COMBA_STORE(C->dp[4]); + /* 5 */ + COMBA_FORWARD; + MULADD(at[0], at[29]); MULADD(at[1], at[28]); MULADD(at[2], at[27]); MULADD(at[3], at[26]); MULADD(at[4], at[25]); MULADD(at[5], at[24]); + COMBA_STORE(C->dp[5]); + /* 6 */ + COMBA_FORWARD; + MULADD(at[0], at[30]); MULADD(at[1], at[29]); MULADD(at[2], at[28]); MULADD(at[3], at[27]); MULADD(at[4], at[26]); MULADD(at[5], at[25]); MULADD(at[6], at[24]); + COMBA_STORE(C->dp[6]); + /* 7 */ + COMBA_FORWARD; + MULADD(at[0], at[31]); MULADD(at[1], at[30]); MULADD(at[2], at[29]); MULADD(at[3], at[28]); MULADD(at[4], at[27]); MULADD(at[5], at[26]); MULADD(at[6], at[25]); MULADD(at[7], at[24]); + COMBA_STORE(C->dp[7]); + /* 8 */ + COMBA_FORWARD; + MULADD(at[0], at[32]); MULADD(at[1], at[31]); MULADD(at[2], at[30]); MULADD(at[3], at[29]); MULADD(at[4], at[28]); MULADD(at[5], at[27]); MULADD(at[6], at[26]); MULADD(at[7], at[25]); MULADD(at[8], at[24]); + COMBA_STORE(C->dp[8]); + /* 9 */ + COMBA_FORWARD; + MULADD(at[0], at[33]); MULADD(at[1], at[32]); MULADD(at[2], at[31]); MULADD(at[3], at[30]); MULADD(at[4], at[29]); MULADD(at[5], at[28]); MULADD(at[6], at[27]); MULADD(at[7], at[26]); MULADD(at[8], at[25]); MULADD(at[9], at[24]); + COMBA_STORE(C->dp[9]); + /* 10 */ + COMBA_FORWARD; + MULADD(at[0], at[34]); MULADD(at[1], at[33]); MULADD(at[2], at[32]); MULADD(at[3], at[31]); MULADD(at[4], at[30]); MULADD(at[5], at[29]); MULADD(at[6], at[28]); MULADD(at[7], at[27]); MULADD(at[8], at[26]); MULADD(at[9], at[25]); MULADD(at[10], at[24]); + COMBA_STORE(C->dp[10]); + /* 11 */ + COMBA_FORWARD; + MULADD(at[0], at[35]); MULADD(at[1], at[34]); MULADD(at[2], at[33]); MULADD(at[3], at[32]); MULADD(at[4], at[31]); MULADD(at[5], at[30]); MULADD(at[6], at[29]); MULADD(at[7], at[28]); MULADD(at[8], at[27]); MULADD(at[9], at[26]); MULADD(at[10], at[25]); MULADD(at[11], at[24]); + COMBA_STORE(C->dp[11]); + /* 12 */ + COMBA_FORWARD; + MULADD(at[0], at[36]); MULADD(at[1], at[35]); MULADD(at[2], at[34]); MULADD(at[3], at[33]); MULADD(at[4], at[32]); MULADD(at[5], at[31]); MULADD(at[6], at[30]); MULADD(at[7], at[29]); MULADD(at[8], at[28]); MULADD(at[9], at[27]); MULADD(at[10], at[26]); MULADD(at[11], at[25]); MULADD(at[12], at[24]); + COMBA_STORE(C->dp[12]); + /* 13 */ + COMBA_FORWARD; + MULADD(at[0], at[37]); MULADD(at[1], at[36]); MULADD(at[2], at[35]); MULADD(at[3], at[34]); MULADD(at[4], at[33]); MULADD(at[5], at[32]); MULADD(at[6], at[31]); MULADD(at[7], at[30]); MULADD(at[8], at[29]); MULADD(at[9], at[28]); MULADD(at[10], at[27]); MULADD(at[11], at[26]); MULADD(at[12], at[25]); MULADD(at[13], at[24]); + COMBA_STORE(C->dp[13]); + /* 14 */ + COMBA_FORWARD; + MULADD(at[0], at[38]); MULADD(at[1], at[37]); MULADD(at[2], at[36]); MULADD(at[3], at[35]); MULADD(at[4], at[34]); MULADD(at[5], at[33]); MULADD(at[6], at[32]); MULADD(at[7], at[31]); MULADD(at[8], at[30]); MULADD(at[9], at[29]); MULADD(at[10], at[28]); MULADD(at[11], at[27]); MULADD(at[12], at[26]); MULADD(at[13], at[25]); MULADD(at[14], at[24]); + COMBA_STORE(C->dp[14]); + /* 15 */ + COMBA_FORWARD; + MULADD(at[0], at[39]); MULADD(at[1], at[38]); MULADD(at[2], at[37]); MULADD(at[3], at[36]); MULADD(at[4], at[35]); MULADD(at[5], at[34]); MULADD(at[6], at[33]); MULADD(at[7], at[32]); MULADD(at[8], at[31]); MULADD(at[9], at[30]); MULADD(at[10], at[29]); MULADD(at[11], at[28]); MULADD(at[12], at[27]); MULADD(at[13], at[26]); MULADD(at[14], at[25]); MULADD(at[15], at[24]); + COMBA_STORE(C->dp[15]); + /* 16 */ + COMBA_FORWARD; + MULADD(at[0], at[40]); MULADD(at[1], at[39]); MULADD(at[2], at[38]); MULADD(at[3], at[37]); MULADD(at[4], at[36]); MULADD(at[5], at[35]); MULADD(at[6], at[34]); MULADD(at[7], at[33]); MULADD(at[8], at[32]); MULADD(at[9], at[31]); MULADD(at[10], at[30]); MULADD(at[11], at[29]); MULADD(at[12], at[28]); MULADD(at[13], at[27]); MULADD(at[14], at[26]); MULADD(at[15], at[25]); MULADD(at[16], at[24]); + COMBA_STORE(C->dp[16]); + /* 17 */ + COMBA_FORWARD; + MULADD(at[0], at[41]); MULADD(at[1], at[40]); MULADD(at[2], at[39]); MULADD(at[3], at[38]); MULADD(at[4], at[37]); MULADD(at[5], at[36]); MULADD(at[6], at[35]); MULADD(at[7], at[34]); MULADD(at[8], at[33]); MULADD(at[9], at[32]); MULADD(at[10], at[31]); MULADD(at[11], at[30]); MULADD(at[12], at[29]); MULADD(at[13], at[28]); MULADD(at[14], at[27]); MULADD(at[15], at[26]); MULADD(at[16], at[25]); MULADD(at[17], at[24]); + COMBA_STORE(C->dp[17]); + /* 18 */ + COMBA_FORWARD; + MULADD(at[0], at[42]); MULADD(at[1], at[41]); MULADD(at[2], at[40]); MULADD(at[3], at[39]); MULADD(at[4], at[38]); MULADD(at[5], at[37]); MULADD(at[6], at[36]); MULADD(at[7], at[35]); MULADD(at[8], at[34]); MULADD(at[9], at[33]); MULADD(at[10], at[32]); MULADD(at[11], at[31]); MULADD(at[12], at[30]); MULADD(at[13], at[29]); MULADD(at[14], at[28]); MULADD(at[15], at[27]); MULADD(at[16], at[26]); MULADD(at[17], at[25]); MULADD(at[18], at[24]); + COMBA_STORE(C->dp[18]); + /* 19 */ + COMBA_FORWARD; + MULADD(at[0], at[43]); MULADD(at[1], at[42]); MULADD(at[2], at[41]); MULADD(at[3], at[40]); MULADD(at[4], at[39]); MULADD(at[5], at[38]); MULADD(at[6], at[37]); MULADD(at[7], at[36]); MULADD(at[8], at[35]); MULADD(at[9], at[34]); MULADD(at[10], at[33]); MULADD(at[11], at[32]); MULADD(at[12], at[31]); MULADD(at[13], at[30]); MULADD(at[14], at[29]); MULADD(at[15], at[28]); MULADD(at[16], at[27]); MULADD(at[17], at[26]); MULADD(at[18], at[25]); MULADD(at[19], at[24]); + COMBA_STORE(C->dp[19]); + /* 20 */ + COMBA_FORWARD; + MULADD(at[0], at[44]); MULADD(at[1], at[43]); MULADD(at[2], at[42]); MULADD(at[3], at[41]); MULADD(at[4], at[40]); MULADD(at[5], at[39]); MULADD(at[6], at[38]); MULADD(at[7], at[37]); MULADD(at[8], at[36]); MULADD(at[9], at[35]); MULADD(at[10], at[34]); MULADD(at[11], at[33]); MULADD(at[12], at[32]); MULADD(at[13], at[31]); MULADD(at[14], at[30]); MULADD(at[15], at[29]); MULADD(at[16], at[28]); MULADD(at[17], at[27]); MULADD(at[18], at[26]); MULADD(at[19], at[25]); MULADD(at[20], at[24]); + COMBA_STORE(C->dp[20]); + /* 21 */ + COMBA_FORWARD; + MULADD(at[0], at[45]); MULADD(at[1], at[44]); MULADD(at[2], at[43]); MULADD(at[3], at[42]); MULADD(at[4], at[41]); MULADD(at[5], at[40]); MULADD(at[6], at[39]); MULADD(at[7], at[38]); MULADD(at[8], at[37]); MULADD(at[9], at[36]); MULADD(at[10], at[35]); MULADD(at[11], at[34]); MULADD(at[12], at[33]); MULADD(at[13], at[32]); MULADD(at[14], at[31]); MULADD(at[15], at[30]); MULADD(at[16], at[29]); MULADD(at[17], at[28]); MULADD(at[18], at[27]); MULADD(at[19], at[26]); MULADD(at[20], at[25]); MULADD(at[21], at[24]); + COMBA_STORE(C->dp[21]); + /* 22 */ + COMBA_FORWARD; + MULADD(at[0], at[46]); MULADD(at[1], at[45]); MULADD(at[2], at[44]); MULADD(at[3], at[43]); MULADD(at[4], at[42]); MULADD(at[5], at[41]); MULADD(at[6], at[40]); MULADD(at[7], at[39]); MULADD(at[8], at[38]); MULADD(at[9], at[37]); MULADD(at[10], at[36]); MULADD(at[11], at[35]); MULADD(at[12], at[34]); MULADD(at[13], at[33]); MULADD(at[14], at[32]); MULADD(at[15], at[31]); MULADD(at[16], at[30]); MULADD(at[17], at[29]); MULADD(at[18], at[28]); MULADD(at[19], at[27]); MULADD(at[20], at[26]); MULADD(at[21], at[25]); MULADD(at[22], at[24]); + COMBA_STORE(C->dp[22]); + /* 23 */ + COMBA_FORWARD; + MULADD(at[0], at[47]); MULADD(at[1], at[46]); MULADD(at[2], at[45]); MULADD(at[3], at[44]); MULADD(at[4], at[43]); MULADD(at[5], at[42]); MULADD(at[6], at[41]); MULADD(at[7], at[40]); MULADD(at[8], at[39]); MULADD(at[9], at[38]); MULADD(at[10], at[37]); MULADD(at[11], at[36]); MULADD(at[12], at[35]); MULADD(at[13], at[34]); MULADD(at[14], at[33]); MULADD(at[15], at[32]); MULADD(at[16], at[31]); MULADD(at[17], at[30]); MULADD(at[18], at[29]); MULADD(at[19], at[28]); MULADD(at[20], at[27]); MULADD(at[21], at[26]); MULADD(at[22], at[25]); MULADD(at[23], at[24]); + COMBA_STORE(C->dp[23]); + /* 24 */ + COMBA_FORWARD; + MULADD(at[1], at[47]); MULADD(at[2], at[46]); MULADD(at[3], at[45]); MULADD(at[4], at[44]); MULADD(at[5], at[43]); MULADD(at[6], at[42]); MULADD(at[7], at[41]); MULADD(at[8], at[40]); MULADD(at[9], at[39]); MULADD(at[10], at[38]); MULADD(at[11], at[37]); MULADD(at[12], at[36]); MULADD(at[13], at[35]); MULADD(at[14], at[34]); MULADD(at[15], at[33]); MULADD(at[16], at[32]); MULADD(at[17], at[31]); MULADD(at[18], at[30]); MULADD(at[19], at[29]); MULADD(at[20], at[28]); MULADD(at[21], at[27]); MULADD(at[22], at[26]); MULADD(at[23], at[25]); + COMBA_STORE(C->dp[24]); + /* 25 */ + COMBA_FORWARD; + MULADD(at[2], at[47]); MULADD(at[3], at[46]); MULADD(at[4], at[45]); MULADD(at[5], at[44]); MULADD(at[6], at[43]); MULADD(at[7], at[42]); MULADD(at[8], at[41]); MULADD(at[9], at[40]); MULADD(at[10], at[39]); MULADD(at[11], at[38]); MULADD(at[12], at[37]); MULADD(at[13], at[36]); MULADD(at[14], at[35]); MULADD(at[15], at[34]); MULADD(at[16], at[33]); MULADD(at[17], at[32]); MULADD(at[18], at[31]); MULADD(at[19], at[30]); MULADD(at[20], at[29]); MULADD(at[21], at[28]); MULADD(at[22], at[27]); MULADD(at[23], at[26]); + COMBA_STORE(C->dp[25]); + /* 26 */ + COMBA_FORWARD; + MULADD(at[3], at[47]); MULADD(at[4], at[46]); MULADD(at[5], at[45]); MULADD(at[6], at[44]); MULADD(at[7], at[43]); MULADD(at[8], at[42]); MULADD(at[9], at[41]); MULADD(at[10], at[40]); MULADD(at[11], at[39]); MULADD(at[12], at[38]); MULADD(at[13], at[37]); MULADD(at[14], at[36]); MULADD(at[15], at[35]); MULADD(at[16], at[34]); MULADD(at[17], at[33]); MULADD(at[18], at[32]); MULADD(at[19], at[31]); MULADD(at[20], at[30]); MULADD(at[21], at[29]); MULADD(at[22], at[28]); MULADD(at[23], at[27]); + COMBA_STORE(C->dp[26]); + /* 27 */ + COMBA_FORWARD; + MULADD(at[4], at[47]); MULADD(at[5], at[46]); MULADD(at[6], at[45]); MULADD(at[7], at[44]); MULADD(at[8], at[43]); MULADD(at[9], at[42]); MULADD(at[10], at[41]); MULADD(at[11], at[40]); MULADD(at[12], at[39]); MULADD(at[13], at[38]); MULADD(at[14], at[37]); MULADD(at[15], at[36]); MULADD(at[16], at[35]); MULADD(at[17], at[34]); MULADD(at[18], at[33]); MULADD(at[19], at[32]); MULADD(at[20], at[31]); MULADD(at[21], at[30]); MULADD(at[22], at[29]); MULADD(at[23], at[28]); + COMBA_STORE(C->dp[27]); + /* 28 */ + COMBA_FORWARD; + MULADD(at[5], at[47]); MULADD(at[6], at[46]); MULADD(at[7], at[45]); MULADD(at[8], at[44]); MULADD(at[9], at[43]); MULADD(at[10], at[42]); MULADD(at[11], at[41]); MULADD(at[12], at[40]); MULADD(at[13], at[39]); MULADD(at[14], at[38]); MULADD(at[15], at[37]); MULADD(at[16], at[36]); MULADD(at[17], at[35]); MULADD(at[18], at[34]); MULADD(at[19], at[33]); MULADD(at[20], at[32]); MULADD(at[21], at[31]); MULADD(at[22], at[30]); MULADD(at[23], at[29]); + COMBA_STORE(C->dp[28]); + /* 29 */ + COMBA_FORWARD; + MULADD(at[6], at[47]); MULADD(at[7], at[46]); MULADD(at[8], at[45]); MULADD(at[9], at[44]); MULADD(at[10], at[43]); MULADD(at[11], at[42]); MULADD(at[12], at[41]); MULADD(at[13], at[40]); MULADD(at[14], at[39]); MULADD(at[15], at[38]); MULADD(at[16], at[37]); MULADD(at[17], at[36]); MULADD(at[18], at[35]); MULADD(at[19], at[34]); MULADD(at[20], at[33]); MULADD(at[21], at[32]); MULADD(at[22], at[31]); MULADD(at[23], at[30]); + COMBA_STORE(C->dp[29]); + /* 30 */ + COMBA_FORWARD; + MULADD(at[7], at[47]); MULADD(at[8], at[46]); MULADD(at[9], at[45]); MULADD(at[10], at[44]); MULADD(at[11], at[43]); MULADD(at[12], at[42]); MULADD(at[13], at[41]); MULADD(at[14], at[40]); MULADD(at[15], at[39]); MULADD(at[16], at[38]); MULADD(at[17], at[37]); MULADD(at[18], at[36]); MULADD(at[19], at[35]); MULADD(at[20], at[34]); MULADD(at[21], at[33]); MULADD(at[22], at[32]); MULADD(at[23], at[31]); + COMBA_STORE(C->dp[30]); + /* 31 */ + COMBA_FORWARD; + MULADD(at[8], at[47]); MULADD(at[9], at[46]); MULADD(at[10], at[45]); MULADD(at[11], at[44]); MULADD(at[12], at[43]); MULADD(at[13], at[42]); MULADD(at[14], at[41]); MULADD(at[15], at[40]); MULADD(at[16], at[39]); MULADD(at[17], at[38]); MULADD(at[18], at[37]); MULADD(at[19], at[36]); MULADD(at[20], at[35]); MULADD(at[21], at[34]); MULADD(at[22], at[33]); MULADD(at[23], at[32]); + COMBA_STORE(C->dp[31]); + /* 32 */ + COMBA_FORWARD; + MULADD(at[9], at[47]); MULADD(at[10], at[46]); MULADD(at[11], at[45]); MULADD(at[12], at[44]); MULADD(at[13], at[43]); MULADD(at[14], at[42]); MULADD(at[15], at[41]); MULADD(at[16], at[40]); MULADD(at[17], at[39]); MULADD(at[18], at[38]); MULADD(at[19], at[37]); MULADD(at[20], at[36]); MULADD(at[21], at[35]); MULADD(at[22], at[34]); MULADD(at[23], at[33]); + COMBA_STORE(C->dp[32]); + /* 33 */ + COMBA_FORWARD; + MULADD(at[10], at[47]); MULADD(at[11], at[46]); MULADD(at[12], at[45]); MULADD(at[13], at[44]); MULADD(at[14], at[43]); MULADD(at[15], at[42]); MULADD(at[16], at[41]); MULADD(at[17], at[40]); MULADD(at[18], at[39]); MULADD(at[19], at[38]); MULADD(at[20], at[37]); MULADD(at[21], at[36]); MULADD(at[22], at[35]); MULADD(at[23], at[34]); + COMBA_STORE(C->dp[33]); + /* 34 */ + COMBA_FORWARD; + MULADD(at[11], at[47]); MULADD(at[12], at[46]); MULADD(at[13], at[45]); MULADD(at[14], at[44]); MULADD(at[15], at[43]); MULADD(at[16], at[42]); MULADD(at[17], at[41]); MULADD(at[18], at[40]); MULADD(at[19], at[39]); MULADD(at[20], at[38]); MULADD(at[21], at[37]); MULADD(at[22], at[36]); MULADD(at[23], at[35]); + COMBA_STORE(C->dp[34]); + /* 35 */ + COMBA_FORWARD; + MULADD(at[12], at[47]); MULADD(at[13], at[46]); MULADD(at[14], at[45]); MULADD(at[15], at[44]); MULADD(at[16], at[43]); MULADD(at[17], at[42]); MULADD(at[18], at[41]); MULADD(at[19], at[40]); MULADD(at[20], at[39]); MULADD(at[21], at[38]); MULADD(at[22], at[37]); MULADD(at[23], at[36]); + COMBA_STORE(C->dp[35]); + /* 36 */ + COMBA_FORWARD; + MULADD(at[13], at[47]); MULADD(at[14], at[46]); MULADD(at[15], at[45]); MULADD(at[16], at[44]); MULADD(at[17], at[43]); MULADD(at[18], at[42]); MULADD(at[19], at[41]); MULADD(at[20], at[40]); MULADD(at[21], at[39]); MULADD(at[22], at[38]); MULADD(at[23], at[37]); + COMBA_STORE(C->dp[36]); + /* 37 */ + COMBA_FORWARD; + MULADD(at[14], at[47]); MULADD(at[15], at[46]); MULADD(at[16], at[45]); MULADD(at[17], at[44]); MULADD(at[18], at[43]); MULADD(at[19], at[42]); MULADD(at[20], at[41]); MULADD(at[21], at[40]); MULADD(at[22], at[39]); MULADD(at[23], at[38]); + COMBA_STORE(C->dp[37]); + /* 38 */ + COMBA_FORWARD; + MULADD(at[15], at[47]); MULADD(at[16], at[46]); MULADD(at[17], at[45]); MULADD(at[18], at[44]); MULADD(at[19], at[43]); MULADD(at[20], at[42]); MULADD(at[21], at[41]); MULADD(at[22], at[40]); MULADD(at[23], at[39]); + COMBA_STORE(C->dp[38]); + /* 39 */ + COMBA_FORWARD; + MULADD(at[16], at[47]); MULADD(at[17], at[46]); MULADD(at[18], at[45]); MULADD(at[19], at[44]); MULADD(at[20], at[43]); MULADD(at[21], at[42]); MULADD(at[22], at[41]); MULADD(at[23], at[40]); + COMBA_STORE(C->dp[39]); + /* 40 */ + COMBA_FORWARD; + MULADD(at[17], at[47]); MULADD(at[18], at[46]); MULADD(at[19], at[45]); MULADD(at[20], at[44]); MULADD(at[21], at[43]); MULADD(at[22], at[42]); MULADD(at[23], at[41]); + COMBA_STORE(C->dp[40]); + /* 41 */ + COMBA_FORWARD; + MULADD(at[18], at[47]); MULADD(at[19], at[46]); MULADD(at[20], at[45]); MULADD(at[21], at[44]); MULADD(at[22], at[43]); MULADD(at[23], at[42]); + COMBA_STORE(C->dp[41]); + /* 42 */ + COMBA_FORWARD; + MULADD(at[19], at[47]); MULADD(at[20], at[46]); MULADD(at[21], at[45]); MULADD(at[22], at[44]); MULADD(at[23], at[43]); + COMBA_STORE(C->dp[42]); + /* 43 */ + COMBA_FORWARD; + MULADD(at[20], at[47]); MULADD(at[21], at[46]); MULADD(at[22], at[45]); MULADD(at[23], at[44]); + COMBA_STORE(C->dp[43]); + /* 44 */ + COMBA_FORWARD; + MULADD(at[21], at[47]); MULADD(at[22], at[46]); MULADD(at[23], at[45]); + COMBA_STORE(C->dp[44]); + /* 45 */ + COMBA_FORWARD; + MULADD(at[22], at[47]); MULADD(at[23], at[46]); + COMBA_STORE(C->dp[45]); + /* 46 */ + COMBA_FORWARD; + MULADD(at[23], at[47]); + COMBA_STORE(C->dp[46]); + COMBA_STORE2(C->dp[47]); + C->used = 48; + C->sign = A->sign ^ B->sign; + fp_clamp(C); + COMBA_FINI; +} +#endif diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_28.i b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_28.i new file mode 100644 index 000000000..060bb8a7e --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_28.i @@ -0,0 +1,258 @@ +/* fp_mul_comba_28.i + * + * Copyright (C) 2006-2011 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifdef TFM_MUL28 +void fp_mul_comba28(fp_int *A, fp_int *B, fp_int *C) +{ + fp_digit c0, c1, c2, at[56]; + + memcpy(at, A->dp, 28 * sizeof(fp_digit)); + memcpy(at+28, B->dp, 28 * sizeof(fp_digit)); + COMBA_START; + + COMBA_CLEAR; + /* 0 */ + MULADD(at[0], at[28]); + COMBA_STORE(C->dp[0]); + /* 1 */ + COMBA_FORWARD; + MULADD(at[0], at[29]); MULADD(at[1], at[28]); + COMBA_STORE(C->dp[1]); + /* 2 */ + COMBA_FORWARD; + MULADD(at[0], at[30]); MULADD(at[1], at[29]); MULADD(at[2], at[28]); + COMBA_STORE(C->dp[2]); + /* 3 */ + COMBA_FORWARD; + MULADD(at[0], at[31]); MULADD(at[1], at[30]); MULADD(at[2], at[29]); MULADD(at[3], at[28]); + COMBA_STORE(C->dp[3]); + /* 4 */ + COMBA_FORWARD; + MULADD(at[0], at[32]); MULADD(at[1], at[31]); MULADD(at[2], at[30]); MULADD(at[3], at[29]); MULADD(at[4], at[28]); + COMBA_STORE(C->dp[4]); + /* 5 */ + COMBA_FORWARD; + MULADD(at[0], at[33]); MULADD(at[1], at[32]); MULADD(at[2], at[31]); MULADD(at[3], at[30]); MULADD(at[4], at[29]); MULADD(at[5], at[28]); + COMBA_STORE(C->dp[5]); + /* 6 */ + COMBA_FORWARD; + MULADD(at[0], at[34]); MULADD(at[1], at[33]); MULADD(at[2], at[32]); MULADD(at[3], at[31]); MULADD(at[4], at[30]); MULADD(at[5], at[29]); MULADD(at[6], at[28]); + COMBA_STORE(C->dp[6]); + /* 7 */ + COMBA_FORWARD; + MULADD(at[0], at[35]); MULADD(at[1], at[34]); MULADD(at[2], at[33]); MULADD(at[3], at[32]); MULADD(at[4], at[31]); MULADD(at[5], at[30]); MULADD(at[6], at[29]); MULADD(at[7], at[28]); + COMBA_STORE(C->dp[7]); + /* 8 */ + COMBA_FORWARD; + MULADD(at[0], at[36]); MULADD(at[1], at[35]); MULADD(at[2], at[34]); MULADD(at[3], at[33]); MULADD(at[4], at[32]); MULADD(at[5], at[31]); MULADD(at[6], at[30]); MULADD(at[7], at[29]); MULADD(at[8], at[28]); + COMBA_STORE(C->dp[8]); + /* 9 */ + COMBA_FORWARD; + MULADD(at[0], at[37]); MULADD(at[1], at[36]); MULADD(at[2], at[35]); MULADD(at[3], at[34]); MULADD(at[4], at[33]); MULADD(at[5], at[32]); MULADD(at[6], at[31]); MULADD(at[7], at[30]); MULADD(at[8], at[29]); MULADD(at[9], at[28]); + COMBA_STORE(C->dp[9]); + /* 10 */ + COMBA_FORWARD; + MULADD(at[0], at[38]); MULADD(at[1], at[37]); MULADD(at[2], at[36]); MULADD(at[3], at[35]); MULADD(at[4], at[34]); MULADD(at[5], at[33]); MULADD(at[6], at[32]); MULADD(at[7], at[31]); MULADD(at[8], at[30]); MULADD(at[9], at[29]); MULADD(at[10], at[28]); + COMBA_STORE(C->dp[10]); + /* 11 */ + COMBA_FORWARD; + MULADD(at[0], at[39]); MULADD(at[1], at[38]); MULADD(at[2], at[37]); MULADD(at[3], at[36]); MULADD(at[4], at[35]); MULADD(at[5], at[34]); MULADD(at[6], at[33]); MULADD(at[7], at[32]); MULADD(at[8], at[31]); MULADD(at[9], at[30]); MULADD(at[10], at[29]); MULADD(at[11], at[28]); + COMBA_STORE(C->dp[11]); + /* 12 */ + COMBA_FORWARD; + MULADD(at[0], at[40]); MULADD(at[1], at[39]); MULADD(at[2], at[38]); MULADD(at[3], at[37]); MULADD(at[4], at[36]); MULADD(at[5], at[35]); MULADD(at[6], at[34]); MULADD(at[7], at[33]); MULADD(at[8], at[32]); MULADD(at[9], at[31]); MULADD(at[10], at[30]); MULADD(at[11], at[29]); MULADD(at[12], at[28]); + COMBA_STORE(C->dp[12]); + /* 13 */ + COMBA_FORWARD; + MULADD(at[0], at[41]); MULADD(at[1], at[40]); MULADD(at[2], at[39]); MULADD(at[3], at[38]); MULADD(at[4], at[37]); MULADD(at[5], at[36]); MULADD(at[6], at[35]); MULADD(at[7], at[34]); MULADD(at[8], at[33]); MULADD(at[9], at[32]); MULADD(at[10], at[31]); MULADD(at[11], at[30]); MULADD(at[12], at[29]); MULADD(at[13], at[28]); + COMBA_STORE(C->dp[13]); + /* 14 */ + COMBA_FORWARD; + MULADD(at[0], at[42]); MULADD(at[1], at[41]); MULADD(at[2], at[40]); MULADD(at[3], at[39]); MULADD(at[4], at[38]); MULADD(at[5], at[37]); MULADD(at[6], at[36]); MULADD(at[7], at[35]); MULADD(at[8], at[34]); MULADD(at[9], at[33]); MULADD(at[10], at[32]); MULADD(at[11], at[31]); MULADD(at[12], at[30]); MULADD(at[13], at[29]); MULADD(at[14], at[28]); + COMBA_STORE(C->dp[14]); + /* 15 */ + COMBA_FORWARD; + MULADD(at[0], at[43]); MULADD(at[1], at[42]); MULADD(at[2], at[41]); MULADD(at[3], at[40]); MULADD(at[4], at[39]); MULADD(at[5], at[38]); MULADD(at[6], at[37]); MULADD(at[7], at[36]); MULADD(at[8], at[35]); MULADD(at[9], at[34]); MULADD(at[10], at[33]); MULADD(at[11], at[32]); MULADD(at[12], at[31]); MULADD(at[13], at[30]); MULADD(at[14], at[29]); MULADD(at[15], at[28]); + COMBA_STORE(C->dp[15]); + /* 16 */ + COMBA_FORWARD; + MULADD(at[0], at[44]); MULADD(at[1], at[43]); MULADD(at[2], at[42]); MULADD(at[3], at[41]); MULADD(at[4], at[40]); MULADD(at[5], at[39]); MULADD(at[6], at[38]); MULADD(at[7], at[37]); MULADD(at[8], at[36]); MULADD(at[9], at[35]); MULADD(at[10], at[34]); MULADD(at[11], at[33]); MULADD(at[12], at[32]); MULADD(at[13], at[31]); MULADD(at[14], at[30]); MULADD(at[15], at[29]); MULADD(at[16], at[28]); + COMBA_STORE(C->dp[16]); + /* 17 */ + COMBA_FORWARD; + MULADD(at[0], at[45]); MULADD(at[1], at[44]); MULADD(at[2], at[43]); MULADD(at[3], at[42]); MULADD(at[4], at[41]); MULADD(at[5], at[40]); MULADD(at[6], at[39]); MULADD(at[7], at[38]); MULADD(at[8], at[37]); MULADD(at[9], at[36]); MULADD(at[10], at[35]); MULADD(at[11], at[34]); MULADD(at[12], at[33]); MULADD(at[13], at[32]); MULADD(at[14], at[31]); MULADD(at[15], at[30]); MULADD(at[16], at[29]); MULADD(at[17], at[28]); + COMBA_STORE(C->dp[17]); + /* 18 */ + COMBA_FORWARD; + MULADD(at[0], at[46]); MULADD(at[1], at[45]); MULADD(at[2], at[44]); MULADD(at[3], at[43]); MULADD(at[4], at[42]); MULADD(at[5], at[41]); MULADD(at[6], at[40]); MULADD(at[7], at[39]); MULADD(at[8], at[38]); MULADD(at[9], at[37]); MULADD(at[10], at[36]); MULADD(at[11], at[35]); MULADD(at[12], at[34]); MULADD(at[13], at[33]); MULADD(at[14], at[32]); MULADD(at[15], at[31]); MULADD(at[16], at[30]); MULADD(at[17], at[29]); MULADD(at[18], at[28]); + COMBA_STORE(C->dp[18]); + /* 19 */ + COMBA_FORWARD; + MULADD(at[0], at[47]); MULADD(at[1], at[46]); MULADD(at[2], at[45]); MULADD(at[3], at[44]); MULADD(at[4], at[43]); MULADD(at[5], at[42]); MULADD(at[6], at[41]); MULADD(at[7], at[40]); MULADD(at[8], at[39]); MULADD(at[9], at[38]); MULADD(at[10], at[37]); MULADD(at[11], at[36]); MULADD(at[12], at[35]); MULADD(at[13], at[34]); MULADD(at[14], at[33]); MULADD(at[15], at[32]); MULADD(at[16], at[31]); MULADD(at[17], at[30]); MULADD(at[18], at[29]); MULADD(at[19], at[28]); + COMBA_STORE(C->dp[19]); + /* 20 */ + COMBA_FORWARD; + MULADD(at[0], at[48]); MULADD(at[1], at[47]); MULADD(at[2], at[46]); MULADD(at[3], at[45]); MULADD(at[4], at[44]); MULADD(at[5], at[43]); MULADD(at[6], at[42]); MULADD(at[7], at[41]); MULADD(at[8], at[40]); MULADD(at[9], at[39]); MULADD(at[10], at[38]); MULADD(at[11], at[37]); MULADD(at[12], at[36]); MULADD(at[13], at[35]); MULADD(at[14], at[34]); MULADD(at[15], at[33]); MULADD(at[16], at[32]); MULADD(at[17], at[31]); MULADD(at[18], at[30]); MULADD(at[19], at[29]); MULADD(at[20], at[28]); + COMBA_STORE(C->dp[20]); + /* 21 */ + COMBA_FORWARD; + MULADD(at[0], at[49]); MULADD(at[1], at[48]); MULADD(at[2], at[47]); MULADD(at[3], at[46]); MULADD(at[4], at[45]); MULADD(at[5], at[44]); MULADD(at[6], at[43]); MULADD(at[7], at[42]); MULADD(at[8], at[41]); MULADD(at[9], at[40]); MULADD(at[10], at[39]); MULADD(at[11], at[38]); MULADD(at[12], at[37]); MULADD(at[13], at[36]); MULADD(at[14], at[35]); MULADD(at[15], at[34]); MULADD(at[16], at[33]); MULADD(at[17], at[32]); MULADD(at[18], at[31]); MULADD(at[19], at[30]); MULADD(at[20], at[29]); MULADD(at[21], at[28]); + COMBA_STORE(C->dp[21]); + /* 22 */ + COMBA_FORWARD; + MULADD(at[0], at[50]); MULADD(at[1], at[49]); MULADD(at[2], at[48]); MULADD(at[3], at[47]); MULADD(at[4], at[46]); MULADD(at[5], at[45]); MULADD(at[6], at[44]); MULADD(at[7], at[43]); MULADD(at[8], at[42]); MULADD(at[9], at[41]); MULADD(at[10], at[40]); MULADD(at[11], at[39]); MULADD(at[12], at[38]); MULADD(at[13], at[37]); MULADD(at[14], at[36]); MULADD(at[15], at[35]); MULADD(at[16], at[34]); MULADD(at[17], at[33]); MULADD(at[18], at[32]); MULADD(at[19], at[31]); MULADD(at[20], at[30]); MULADD(at[21], at[29]); MULADD(at[22], at[28]); + COMBA_STORE(C->dp[22]); + /* 23 */ + COMBA_FORWARD; + MULADD(at[0], at[51]); MULADD(at[1], at[50]); MULADD(at[2], at[49]); MULADD(at[3], at[48]); MULADD(at[4], at[47]); MULADD(at[5], at[46]); MULADD(at[6], at[45]); MULADD(at[7], at[44]); MULADD(at[8], at[43]); MULADD(at[9], at[42]); MULADD(at[10], at[41]); MULADD(at[11], at[40]); MULADD(at[12], at[39]); MULADD(at[13], at[38]); MULADD(at[14], at[37]); MULADD(at[15], at[36]); MULADD(at[16], at[35]); MULADD(at[17], at[34]); MULADD(at[18], at[33]); MULADD(at[19], at[32]); MULADD(at[20], at[31]); MULADD(at[21], at[30]); MULADD(at[22], at[29]); MULADD(at[23], at[28]); + COMBA_STORE(C->dp[23]); + /* 24 */ + COMBA_FORWARD; + MULADD(at[0], at[52]); MULADD(at[1], at[51]); MULADD(at[2], at[50]); MULADD(at[3], at[49]); MULADD(at[4], at[48]); MULADD(at[5], at[47]); MULADD(at[6], at[46]); MULADD(at[7], at[45]); MULADD(at[8], at[44]); MULADD(at[9], at[43]); MULADD(at[10], at[42]); MULADD(at[11], at[41]); MULADD(at[12], at[40]); MULADD(at[13], at[39]); MULADD(at[14], at[38]); MULADD(at[15], at[37]); MULADD(at[16], at[36]); MULADD(at[17], at[35]); MULADD(at[18], at[34]); MULADD(at[19], at[33]); MULADD(at[20], at[32]); MULADD(at[21], at[31]); MULADD(at[22], at[30]); MULADD(at[23], at[29]); MULADD(at[24], at[28]); + COMBA_STORE(C->dp[24]); + /* 25 */ + COMBA_FORWARD; + MULADD(at[0], at[53]); MULADD(at[1], at[52]); MULADD(at[2], at[51]); MULADD(at[3], at[50]); MULADD(at[4], at[49]); MULADD(at[5], at[48]); MULADD(at[6], at[47]); MULADD(at[7], at[46]); MULADD(at[8], at[45]); MULADD(at[9], at[44]); MULADD(at[10], at[43]); MULADD(at[11], at[42]); MULADD(at[12], at[41]); MULADD(at[13], at[40]); MULADD(at[14], at[39]); MULADD(at[15], at[38]); MULADD(at[16], at[37]); MULADD(at[17], at[36]); MULADD(at[18], at[35]); MULADD(at[19], at[34]); MULADD(at[20], at[33]); MULADD(at[21], at[32]); MULADD(at[22], at[31]); MULADD(at[23], at[30]); MULADD(at[24], at[29]); MULADD(at[25], at[28]); + COMBA_STORE(C->dp[25]); + /* 26 */ + COMBA_FORWARD; + MULADD(at[0], at[54]); MULADD(at[1], at[53]); MULADD(at[2], at[52]); MULADD(at[3], at[51]); MULADD(at[4], at[50]); MULADD(at[5], at[49]); MULADD(at[6], at[48]); MULADD(at[7], at[47]); MULADD(at[8], at[46]); MULADD(at[9], at[45]); MULADD(at[10], at[44]); MULADD(at[11], at[43]); MULADD(at[12], at[42]); MULADD(at[13], at[41]); MULADD(at[14], at[40]); MULADD(at[15], at[39]); MULADD(at[16], at[38]); MULADD(at[17], at[37]); MULADD(at[18], at[36]); MULADD(at[19], at[35]); MULADD(at[20], at[34]); MULADD(at[21], at[33]); MULADD(at[22], at[32]); MULADD(at[23], at[31]); MULADD(at[24], at[30]); MULADD(at[25], at[29]); MULADD(at[26], at[28]); + COMBA_STORE(C->dp[26]); + /* 27 */ + COMBA_FORWARD; + MULADD(at[0], at[55]); MULADD(at[1], at[54]); MULADD(at[2], at[53]); MULADD(at[3], at[52]); MULADD(at[4], at[51]); MULADD(at[5], at[50]); MULADD(at[6], at[49]); MULADD(at[7], at[48]); MULADD(at[8], at[47]); MULADD(at[9], at[46]); MULADD(at[10], at[45]); MULADD(at[11], at[44]); MULADD(at[12], at[43]); MULADD(at[13], at[42]); MULADD(at[14], at[41]); MULADD(at[15], at[40]); MULADD(at[16], at[39]); MULADD(at[17], at[38]); MULADD(at[18], at[37]); MULADD(at[19], at[36]); MULADD(at[20], at[35]); MULADD(at[21], at[34]); MULADD(at[22], at[33]); MULADD(at[23], at[32]); MULADD(at[24], at[31]); MULADD(at[25], at[30]); MULADD(at[26], at[29]); MULADD(at[27], at[28]); + COMBA_STORE(C->dp[27]); + /* 28 */ + COMBA_FORWARD; + MULADD(at[1], at[55]); MULADD(at[2], at[54]); MULADD(at[3], at[53]); MULADD(at[4], at[52]); MULADD(at[5], at[51]); MULADD(at[6], at[50]); MULADD(at[7], at[49]); MULADD(at[8], at[48]); MULADD(at[9], at[47]); MULADD(at[10], at[46]); MULADD(at[11], at[45]); MULADD(at[12], at[44]); MULADD(at[13], at[43]); MULADD(at[14], at[42]); MULADD(at[15], at[41]); MULADD(at[16], at[40]); MULADD(at[17], at[39]); MULADD(at[18], at[38]); MULADD(at[19], at[37]); MULADD(at[20], at[36]); MULADD(at[21], at[35]); MULADD(at[22], at[34]); MULADD(at[23], at[33]); MULADD(at[24], at[32]); MULADD(at[25], at[31]); MULADD(at[26], at[30]); MULADD(at[27], at[29]); + COMBA_STORE(C->dp[28]); + /* 29 */ + COMBA_FORWARD; + MULADD(at[2], at[55]); MULADD(at[3], at[54]); MULADD(at[4], at[53]); MULADD(at[5], at[52]); MULADD(at[6], at[51]); MULADD(at[7], at[50]); MULADD(at[8], at[49]); MULADD(at[9], at[48]); MULADD(at[10], at[47]); MULADD(at[11], at[46]); MULADD(at[12], at[45]); MULADD(at[13], at[44]); MULADD(at[14], at[43]); MULADD(at[15], at[42]); MULADD(at[16], at[41]); MULADD(at[17], at[40]); MULADD(at[18], at[39]); MULADD(at[19], at[38]); MULADD(at[20], at[37]); MULADD(at[21], at[36]); MULADD(at[22], at[35]); MULADD(at[23], at[34]); MULADD(at[24], at[33]); MULADD(at[25], at[32]); MULADD(at[26], at[31]); MULADD(at[27], at[30]); + COMBA_STORE(C->dp[29]); + /* 30 */ + COMBA_FORWARD; + MULADD(at[3], at[55]); MULADD(at[4], at[54]); MULADD(at[5], at[53]); MULADD(at[6], at[52]); MULADD(at[7], at[51]); MULADD(at[8], at[50]); MULADD(at[9], at[49]); MULADD(at[10], at[48]); MULADD(at[11], at[47]); MULADD(at[12], at[46]); MULADD(at[13], at[45]); MULADD(at[14], at[44]); MULADD(at[15], at[43]); MULADD(at[16], at[42]); MULADD(at[17], at[41]); MULADD(at[18], at[40]); MULADD(at[19], at[39]); MULADD(at[20], at[38]); MULADD(at[21], at[37]); MULADD(at[22], at[36]); MULADD(at[23], at[35]); MULADD(at[24], at[34]); MULADD(at[25], at[33]); MULADD(at[26], at[32]); MULADD(at[27], at[31]); + COMBA_STORE(C->dp[30]); + /* 31 */ + COMBA_FORWARD; + MULADD(at[4], at[55]); MULADD(at[5], at[54]); MULADD(at[6], at[53]); MULADD(at[7], at[52]); MULADD(at[8], at[51]); MULADD(at[9], at[50]); MULADD(at[10], at[49]); MULADD(at[11], at[48]); MULADD(at[12], at[47]); MULADD(at[13], at[46]); MULADD(at[14], at[45]); MULADD(at[15], at[44]); MULADD(at[16], at[43]); MULADD(at[17], at[42]); MULADD(at[18], at[41]); MULADD(at[19], at[40]); MULADD(at[20], at[39]); MULADD(at[21], at[38]); MULADD(at[22], at[37]); MULADD(at[23], at[36]); MULADD(at[24], at[35]); MULADD(at[25], at[34]); MULADD(at[26], at[33]); MULADD(at[27], at[32]); + COMBA_STORE(C->dp[31]); + /* 32 */ + COMBA_FORWARD; + MULADD(at[5], at[55]); MULADD(at[6], at[54]); MULADD(at[7], at[53]); MULADD(at[8], at[52]); MULADD(at[9], at[51]); MULADD(at[10], at[50]); MULADD(at[11], at[49]); MULADD(at[12], at[48]); MULADD(at[13], at[47]); MULADD(at[14], at[46]); MULADD(at[15], at[45]); MULADD(at[16], at[44]); MULADD(at[17], at[43]); MULADD(at[18], at[42]); MULADD(at[19], at[41]); MULADD(at[20], at[40]); MULADD(at[21], at[39]); MULADD(at[22], at[38]); MULADD(at[23], at[37]); MULADD(at[24], at[36]); MULADD(at[25], at[35]); MULADD(at[26], at[34]); MULADD(at[27], at[33]); + COMBA_STORE(C->dp[32]); + /* 33 */ + COMBA_FORWARD; + MULADD(at[6], at[55]); MULADD(at[7], at[54]); MULADD(at[8], at[53]); MULADD(at[9], at[52]); MULADD(at[10], at[51]); MULADD(at[11], at[50]); MULADD(at[12], at[49]); MULADD(at[13], at[48]); MULADD(at[14], at[47]); MULADD(at[15], at[46]); MULADD(at[16], at[45]); MULADD(at[17], at[44]); MULADD(at[18], at[43]); MULADD(at[19], at[42]); MULADD(at[20], at[41]); MULADD(at[21], at[40]); MULADD(at[22], at[39]); MULADD(at[23], at[38]); MULADD(at[24], at[37]); MULADD(at[25], at[36]); MULADD(at[26], at[35]); MULADD(at[27], at[34]); + COMBA_STORE(C->dp[33]); + /* 34 */ + COMBA_FORWARD; + MULADD(at[7], at[55]); MULADD(at[8], at[54]); MULADD(at[9], at[53]); MULADD(at[10], at[52]); MULADD(at[11], at[51]); MULADD(at[12], at[50]); MULADD(at[13], at[49]); MULADD(at[14], at[48]); MULADD(at[15], at[47]); MULADD(at[16], at[46]); MULADD(at[17], at[45]); MULADD(at[18], at[44]); MULADD(at[19], at[43]); MULADD(at[20], at[42]); MULADD(at[21], at[41]); MULADD(at[22], at[40]); MULADD(at[23], at[39]); MULADD(at[24], at[38]); MULADD(at[25], at[37]); MULADD(at[26], at[36]); MULADD(at[27], at[35]); + COMBA_STORE(C->dp[34]); + /* 35 */ + COMBA_FORWARD; + MULADD(at[8], at[55]); MULADD(at[9], at[54]); MULADD(at[10], at[53]); MULADD(at[11], at[52]); MULADD(at[12], at[51]); MULADD(at[13], at[50]); MULADD(at[14], at[49]); MULADD(at[15], at[48]); MULADD(at[16], at[47]); MULADD(at[17], at[46]); MULADD(at[18], at[45]); MULADD(at[19], at[44]); MULADD(at[20], at[43]); MULADD(at[21], at[42]); MULADD(at[22], at[41]); MULADD(at[23], at[40]); MULADD(at[24], at[39]); MULADD(at[25], at[38]); MULADD(at[26], at[37]); MULADD(at[27], at[36]); + COMBA_STORE(C->dp[35]); + /* 36 */ + COMBA_FORWARD; + MULADD(at[9], at[55]); MULADD(at[10], at[54]); MULADD(at[11], at[53]); MULADD(at[12], at[52]); MULADD(at[13], at[51]); MULADD(at[14], at[50]); MULADD(at[15], at[49]); MULADD(at[16], at[48]); MULADD(at[17], at[47]); MULADD(at[18], at[46]); MULADD(at[19], at[45]); MULADD(at[20], at[44]); MULADD(at[21], at[43]); MULADD(at[22], at[42]); MULADD(at[23], at[41]); MULADD(at[24], at[40]); MULADD(at[25], at[39]); MULADD(at[26], at[38]); MULADD(at[27], at[37]); + COMBA_STORE(C->dp[36]); + /* 37 */ + COMBA_FORWARD; + MULADD(at[10], at[55]); MULADD(at[11], at[54]); MULADD(at[12], at[53]); MULADD(at[13], at[52]); MULADD(at[14], at[51]); MULADD(at[15], at[50]); MULADD(at[16], at[49]); MULADD(at[17], at[48]); MULADD(at[18], at[47]); MULADD(at[19], at[46]); MULADD(at[20], at[45]); MULADD(at[21], at[44]); MULADD(at[22], at[43]); MULADD(at[23], at[42]); MULADD(at[24], at[41]); MULADD(at[25], at[40]); MULADD(at[26], at[39]); MULADD(at[27], at[38]); + COMBA_STORE(C->dp[37]); + /* 38 */ + COMBA_FORWARD; + MULADD(at[11], at[55]); MULADD(at[12], at[54]); MULADD(at[13], at[53]); MULADD(at[14], at[52]); MULADD(at[15], at[51]); MULADD(at[16], at[50]); MULADD(at[17], at[49]); MULADD(at[18], at[48]); MULADD(at[19], at[47]); MULADD(at[20], at[46]); MULADD(at[21], at[45]); MULADD(at[22], at[44]); MULADD(at[23], at[43]); MULADD(at[24], at[42]); MULADD(at[25], at[41]); MULADD(at[26], at[40]); MULADD(at[27], at[39]); + COMBA_STORE(C->dp[38]); + /* 39 */ + COMBA_FORWARD; + MULADD(at[12], at[55]); MULADD(at[13], at[54]); MULADD(at[14], at[53]); MULADD(at[15], at[52]); MULADD(at[16], at[51]); MULADD(at[17], at[50]); MULADD(at[18], at[49]); MULADD(at[19], at[48]); MULADD(at[20], at[47]); MULADD(at[21], at[46]); MULADD(at[22], at[45]); MULADD(at[23], at[44]); MULADD(at[24], at[43]); MULADD(at[25], at[42]); MULADD(at[26], at[41]); MULADD(at[27], at[40]); + COMBA_STORE(C->dp[39]); + /* 40 */ + COMBA_FORWARD; + MULADD(at[13], at[55]); MULADD(at[14], at[54]); MULADD(at[15], at[53]); MULADD(at[16], at[52]); MULADD(at[17], at[51]); MULADD(at[18], at[50]); MULADD(at[19], at[49]); MULADD(at[20], at[48]); MULADD(at[21], at[47]); MULADD(at[22], at[46]); MULADD(at[23], at[45]); MULADD(at[24], at[44]); MULADD(at[25], at[43]); MULADD(at[26], at[42]); MULADD(at[27], at[41]); + COMBA_STORE(C->dp[40]); + /* 41 */ + COMBA_FORWARD; + MULADD(at[14], at[55]); MULADD(at[15], at[54]); MULADD(at[16], at[53]); MULADD(at[17], at[52]); MULADD(at[18], at[51]); MULADD(at[19], at[50]); MULADD(at[20], at[49]); MULADD(at[21], at[48]); MULADD(at[22], at[47]); MULADD(at[23], at[46]); MULADD(at[24], at[45]); MULADD(at[25], at[44]); MULADD(at[26], at[43]); MULADD(at[27], at[42]); + COMBA_STORE(C->dp[41]); + /* 42 */ + COMBA_FORWARD; + MULADD(at[15], at[55]); MULADD(at[16], at[54]); MULADD(at[17], at[53]); MULADD(at[18], at[52]); MULADD(at[19], at[51]); MULADD(at[20], at[50]); MULADD(at[21], at[49]); MULADD(at[22], at[48]); MULADD(at[23], at[47]); MULADD(at[24], at[46]); MULADD(at[25], at[45]); MULADD(at[26], at[44]); MULADD(at[27], at[43]); + COMBA_STORE(C->dp[42]); + /* 43 */ + COMBA_FORWARD; + MULADD(at[16], at[55]); MULADD(at[17], at[54]); MULADD(at[18], at[53]); MULADD(at[19], at[52]); MULADD(at[20], at[51]); MULADD(at[21], at[50]); MULADD(at[22], at[49]); MULADD(at[23], at[48]); MULADD(at[24], at[47]); MULADD(at[25], at[46]); MULADD(at[26], at[45]); MULADD(at[27], at[44]); + COMBA_STORE(C->dp[43]); + /* 44 */ + COMBA_FORWARD; + MULADD(at[17], at[55]); MULADD(at[18], at[54]); MULADD(at[19], at[53]); MULADD(at[20], at[52]); MULADD(at[21], at[51]); MULADD(at[22], at[50]); MULADD(at[23], at[49]); MULADD(at[24], at[48]); MULADD(at[25], at[47]); MULADD(at[26], at[46]); MULADD(at[27], at[45]); + COMBA_STORE(C->dp[44]); + /* 45 */ + COMBA_FORWARD; + MULADD(at[18], at[55]); MULADD(at[19], at[54]); MULADD(at[20], at[53]); MULADD(at[21], at[52]); MULADD(at[22], at[51]); MULADD(at[23], at[50]); MULADD(at[24], at[49]); MULADD(at[25], at[48]); MULADD(at[26], at[47]); MULADD(at[27], at[46]); + COMBA_STORE(C->dp[45]); + /* 46 */ + COMBA_FORWARD; + MULADD(at[19], at[55]); MULADD(at[20], at[54]); MULADD(at[21], at[53]); MULADD(at[22], at[52]); MULADD(at[23], at[51]); MULADD(at[24], at[50]); MULADD(at[25], at[49]); MULADD(at[26], at[48]); MULADD(at[27], at[47]); + COMBA_STORE(C->dp[46]); + /* 47 */ + COMBA_FORWARD; + MULADD(at[20], at[55]); MULADD(at[21], at[54]); MULADD(at[22], at[53]); MULADD(at[23], at[52]); MULADD(at[24], at[51]); MULADD(at[25], at[50]); MULADD(at[26], at[49]); MULADD(at[27], at[48]); + COMBA_STORE(C->dp[47]); + /* 48 */ + COMBA_FORWARD; + MULADD(at[21], at[55]); MULADD(at[22], at[54]); MULADD(at[23], at[53]); MULADD(at[24], at[52]); MULADD(at[25], at[51]); MULADD(at[26], at[50]); MULADD(at[27], at[49]); + COMBA_STORE(C->dp[48]); + /* 49 */ + COMBA_FORWARD; + MULADD(at[22], at[55]); MULADD(at[23], at[54]); MULADD(at[24], at[53]); MULADD(at[25], at[52]); MULADD(at[26], at[51]); MULADD(at[27], at[50]); + COMBA_STORE(C->dp[49]); + /* 50 */ + COMBA_FORWARD; + MULADD(at[23], at[55]); MULADD(at[24], at[54]); MULADD(at[25], at[53]); MULADD(at[26], at[52]); MULADD(at[27], at[51]); + COMBA_STORE(C->dp[50]); + /* 51 */ + COMBA_FORWARD; + MULADD(at[24], at[55]); MULADD(at[25], at[54]); MULADD(at[26], at[53]); MULADD(at[27], at[52]); + COMBA_STORE(C->dp[51]); + /* 52 */ + COMBA_FORWARD; + MULADD(at[25], at[55]); MULADD(at[26], at[54]); MULADD(at[27], at[53]); + COMBA_STORE(C->dp[52]); + /* 53 */ + COMBA_FORWARD; + MULADD(at[26], at[55]); MULADD(at[27], at[54]); + COMBA_STORE(C->dp[53]); + /* 54 */ + COMBA_FORWARD; + MULADD(at[27], at[55]); + COMBA_STORE(C->dp[54]); + COMBA_STORE2(C->dp[55]); + C->used = 56; + C->sign = A->sign ^ B->sign; + fp_clamp(C); + COMBA_FINI; +} +#endif diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_3.i b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_3.i new file mode 100644 index 000000000..03499c954 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_3.i @@ -0,0 +1,58 @@ +/* fp_mul_comba_3.i + * + * Copyright (C) 2006-2011 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifdef TFM_MUL3 +void fp_mul_comba3(fp_int *A, fp_int *B, fp_int *C) +{ + fp_digit c0, c1, c2, at[6]; + + memcpy(at, A->dp, 3 * sizeof(fp_digit)); + memcpy(at+3, B->dp, 3 * sizeof(fp_digit)); + COMBA_START; + + COMBA_CLEAR; + /* 0 */ + MULADD(at[0], at[3]); + COMBA_STORE(C->dp[0]); + /* 1 */ + COMBA_FORWARD; + MULADD(at[0], at[4]); MULADD(at[1], at[3]); + COMBA_STORE(C->dp[1]); + /* 2 */ + COMBA_FORWARD; + MULADD(at[0], at[5]); MULADD(at[1], at[4]); MULADD(at[2], at[3]); + COMBA_STORE(C->dp[2]); + /* 3 */ + COMBA_FORWARD; + MULADD(at[1], at[5]); MULADD(at[2], at[4]); + COMBA_STORE(C->dp[3]); + /* 4 */ + COMBA_FORWARD; + MULADD(at[2], at[5]); + COMBA_STORE(C->dp[4]); + COMBA_STORE2(C->dp[5]); + C->used = 6; + C->sign = A->sign ^ B->sign; + fp_clamp(C); + COMBA_FINI; +} +#endif diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_32.i b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_32.i new file mode 100644 index 000000000..3ca1fdbb3 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_32.i @@ -0,0 +1,304 @@ +/* fp_mul_comba_32.i + * + * Copyright (C) 2006-2011 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifdef TFM_MUL32 +void fp_mul_comba32(fp_int *A, fp_int *B, fp_int *C) +{ + fp_digit c0, c1, c2, at[64]; + int out_size; + + out_size = A->used + B->used; + memcpy(at, A->dp, 32 * sizeof(fp_digit)); + memcpy(at+32, B->dp, 32 * sizeof(fp_digit)); + COMBA_START; + + COMBA_CLEAR; + /* 0 */ + MULADD(at[0], at[32]); + COMBA_STORE(C->dp[0]); + /* 1 */ + COMBA_FORWARD; + MULADD(at[0], at[33]); MULADD(at[1], at[32]); + COMBA_STORE(C->dp[1]); + /* 2 */ + COMBA_FORWARD; + MULADD(at[0], at[34]); MULADD(at[1], at[33]); MULADD(at[2], at[32]); + COMBA_STORE(C->dp[2]); + /* 3 */ + COMBA_FORWARD; + MULADD(at[0], at[35]); MULADD(at[1], at[34]); MULADD(at[2], at[33]); MULADD(at[3], at[32]); + COMBA_STORE(C->dp[3]); + /* 4 */ + COMBA_FORWARD; + MULADD(at[0], at[36]); MULADD(at[1], at[35]); MULADD(at[2], at[34]); MULADD(at[3], at[33]); MULADD(at[4], at[32]); + COMBA_STORE(C->dp[4]); + /* 5 */ + COMBA_FORWARD; + MULADD(at[0], at[37]); MULADD(at[1], at[36]); MULADD(at[2], at[35]); MULADD(at[3], at[34]); MULADD(at[4], at[33]); MULADD(at[5], at[32]); + COMBA_STORE(C->dp[5]); + /* 6 */ + COMBA_FORWARD; + MULADD(at[0], at[38]); MULADD(at[1], at[37]); MULADD(at[2], at[36]); MULADD(at[3], at[35]); MULADD(at[4], at[34]); MULADD(at[5], at[33]); MULADD(at[6], at[32]); + COMBA_STORE(C->dp[6]); + /* 7 */ + COMBA_FORWARD; + MULADD(at[0], at[39]); MULADD(at[1], at[38]); MULADD(at[2], at[37]); MULADD(at[3], at[36]); MULADD(at[4], at[35]); MULADD(at[5], at[34]); MULADD(at[6], at[33]); MULADD(at[7], at[32]); + COMBA_STORE(C->dp[7]); + /* 8 */ + COMBA_FORWARD; + MULADD(at[0], at[40]); MULADD(at[1], at[39]); MULADD(at[2], at[38]); MULADD(at[3], at[37]); MULADD(at[4], at[36]); MULADD(at[5], at[35]); MULADD(at[6], at[34]); MULADD(at[7], at[33]); MULADD(at[8], at[32]); + COMBA_STORE(C->dp[8]); + /* 9 */ + COMBA_FORWARD; + MULADD(at[0], at[41]); MULADD(at[1], at[40]); MULADD(at[2], at[39]); MULADD(at[3], at[38]); MULADD(at[4], at[37]); MULADD(at[5], at[36]); MULADD(at[6], at[35]); MULADD(at[7], at[34]); MULADD(at[8], at[33]); MULADD(at[9], at[32]); + COMBA_STORE(C->dp[9]); + /* 10 */ + COMBA_FORWARD; + MULADD(at[0], at[42]); MULADD(at[1], at[41]); MULADD(at[2], at[40]); MULADD(at[3], at[39]); MULADD(at[4], at[38]); MULADD(at[5], at[37]); MULADD(at[6], at[36]); MULADD(at[7], at[35]); MULADD(at[8], at[34]); MULADD(at[9], at[33]); MULADD(at[10], at[32]); + COMBA_STORE(C->dp[10]); + /* 11 */ + COMBA_FORWARD; + MULADD(at[0], at[43]); MULADD(at[1], at[42]); MULADD(at[2], at[41]); MULADD(at[3], at[40]); MULADD(at[4], at[39]); MULADD(at[5], at[38]); MULADD(at[6], at[37]); MULADD(at[7], at[36]); MULADD(at[8], at[35]); MULADD(at[9], at[34]); MULADD(at[10], at[33]); MULADD(at[11], at[32]); + COMBA_STORE(C->dp[11]); + /* 12 */ + COMBA_FORWARD; + MULADD(at[0], at[44]); MULADD(at[1], at[43]); MULADD(at[2], at[42]); MULADD(at[3], at[41]); MULADD(at[4], at[40]); MULADD(at[5], at[39]); MULADD(at[6], at[38]); MULADD(at[7], at[37]); MULADD(at[8], at[36]); MULADD(at[9], at[35]); MULADD(at[10], at[34]); MULADD(at[11], at[33]); MULADD(at[12], at[32]); + COMBA_STORE(C->dp[12]); + /* 13 */ + COMBA_FORWARD; + MULADD(at[0], at[45]); MULADD(at[1], at[44]); MULADD(at[2], at[43]); MULADD(at[3], at[42]); MULADD(at[4], at[41]); MULADD(at[5], at[40]); MULADD(at[6], at[39]); MULADD(at[7], at[38]); MULADD(at[8], at[37]); MULADD(at[9], at[36]); MULADD(at[10], at[35]); MULADD(at[11], at[34]); MULADD(at[12], at[33]); MULADD(at[13], at[32]); + COMBA_STORE(C->dp[13]); + /* 14 */ + COMBA_FORWARD; + MULADD(at[0], at[46]); MULADD(at[1], at[45]); MULADD(at[2], at[44]); MULADD(at[3], at[43]); MULADD(at[4], at[42]); MULADD(at[5], at[41]); MULADD(at[6], at[40]); MULADD(at[7], at[39]); MULADD(at[8], at[38]); MULADD(at[9], at[37]); MULADD(at[10], at[36]); MULADD(at[11], at[35]); MULADD(at[12], at[34]); MULADD(at[13], at[33]); MULADD(at[14], at[32]); + COMBA_STORE(C->dp[14]); + /* 15 */ + COMBA_FORWARD; + MULADD(at[0], at[47]); MULADD(at[1], at[46]); MULADD(at[2], at[45]); MULADD(at[3], at[44]); MULADD(at[4], at[43]); MULADD(at[5], at[42]); MULADD(at[6], at[41]); MULADD(at[7], at[40]); MULADD(at[8], at[39]); MULADD(at[9], at[38]); MULADD(at[10], at[37]); MULADD(at[11], at[36]); MULADD(at[12], at[35]); MULADD(at[13], at[34]); MULADD(at[14], at[33]); MULADD(at[15], at[32]); + COMBA_STORE(C->dp[15]); + /* 16 */ + COMBA_FORWARD; + MULADD(at[0], at[48]); MULADD(at[1], at[47]); MULADD(at[2], at[46]); MULADD(at[3], at[45]); MULADD(at[4], at[44]); MULADD(at[5], at[43]); MULADD(at[6], at[42]); MULADD(at[7], at[41]); MULADD(at[8], at[40]); MULADD(at[9], at[39]); MULADD(at[10], at[38]); MULADD(at[11], at[37]); MULADD(at[12], at[36]); MULADD(at[13], at[35]); MULADD(at[14], at[34]); MULADD(at[15], at[33]); MULADD(at[16], at[32]); + COMBA_STORE(C->dp[16]); + /* 17 */ + COMBA_FORWARD; + MULADD(at[0], at[49]); MULADD(at[1], at[48]); MULADD(at[2], at[47]); MULADD(at[3], at[46]); MULADD(at[4], at[45]); MULADD(at[5], at[44]); MULADD(at[6], at[43]); MULADD(at[7], at[42]); MULADD(at[8], at[41]); MULADD(at[9], at[40]); MULADD(at[10], at[39]); MULADD(at[11], at[38]); MULADD(at[12], at[37]); MULADD(at[13], at[36]); MULADD(at[14], at[35]); MULADD(at[15], at[34]); MULADD(at[16], at[33]); MULADD(at[17], at[32]); + COMBA_STORE(C->dp[17]); + /* 18 */ + COMBA_FORWARD; + MULADD(at[0], at[50]); MULADD(at[1], at[49]); MULADD(at[2], at[48]); MULADD(at[3], at[47]); MULADD(at[4], at[46]); MULADD(at[5], at[45]); MULADD(at[6], at[44]); MULADD(at[7], at[43]); MULADD(at[8], at[42]); MULADD(at[9], at[41]); MULADD(at[10], at[40]); MULADD(at[11], at[39]); MULADD(at[12], at[38]); MULADD(at[13], at[37]); MULADD(at[14], at[36]); MULADD(at[15], at[35]); MULADD(at[16], at[34]); MULADD(at[17], at[33]); MULADD(at[18], at[32]); + COMBA_STORE(C->dp[18]); + /* 19 */ + COMBA_FORWARD; + MULADD(at[0], at[51]); MULADD(at[1], at[50]); MULADD(at[2], at[49]); MULADD(at[3], at[48]); MULADD(at[4], at[47]); MULADD(at[5], at[46]); MULADD(at[6], at[45]); MULADD(at[7], at[44]); MULADD(at[8], at[43]); MULADD(at[9], at[42]); MULADD(at[10], at[41]); MULADD(at[11], at[40]); MULADD(at[12], at[39]); MULADD(at[13], at[38]); MULADD(at[14], at[37]); MULADD(at[15], at[36]); MULADD(at[16], at[35]); MULADD(at[17], at[34]); MULADD(at[18], at[33]); MULADD(at[19], at[32]); + COMBA_STORE(C->dp[19]); + /* 20 */ + COMBA_FORWARD; + MULADD(at[0], at[52]); MULADD(at[1], at[51]); MULADD(at[2], at[50]); MULADD(at[3], at[49]); MULADD(at[4], at[48]); MULADD(at[5], at[47]); MULADD(at[6], at[46]); MULADD(at[7], at[45]); MULADD(at[8], at[44]); MULADD(at[9], at[43]); MULADD(at[10], at[42]); MULADD(at[11], at[41]); MULADD(at[12], at[40]); MULADD(at[13], at[39]); MULADD(at[14], at[38]); MULADD(at[15], at[37]); MULADD(at[16], at[36]); MULADD(at[17], at[35]); MULADD(at[18], at[34]); MULADD(at[19], at[33]); MULADD(at[20], at[32]); + COMBA_STORE(C->dp[20]); + /* 21 */ + COMBA_FORWARD; + MULADD(at[0], at[53]); MULADD(at[1], at[52]); MULADD(at[2], at[51]); MULADD(at[3], at[50]); MULADD(at[4], at[49]); MULADD(at[5], at[48]); MULADD(at[6], at[47]); MULADD(at[7], at[46]); MULADD(at[8], at[45]); MULADD(at[9], at[44]); MULADD(at[10], at[43]); MULADD(at[11], at[42]); MULADD(at[12], at[41]); MULADD(at[13], at[40]); MULADD(at[14], at[39]); MULADD(at[15], at[38]); MULADD(at[16], at[37]); MULADD(at[17], at[36]); MULADD(at[18], at[35]); MULADD(at[19], at[34]); MULADD(at[20], at[33]); MULADD(at[21], at[32]); + COMBA_STORE(C->dp[21]); + /* 22 */ + COMBA_FORWARD; + MULADD(at[0], at[54]); MULADD(at[1], at[53]); MULADD(at[2], at[52]); MULADD(at[3], at[51]); MULADD(at[4], at[50]); MULADD(at[5], at[49]); MULADD(at[6], at[48]); MULADD(at[7], at[47]); MULADD(at[8], at[46]); MULADD(at[9], at[45]); MULADD(at[10], at[44]); MULADD(at[11], at[43]); MULADD(at[12], at[42]); MULADD(at[13], at[41]); MULADD(at[14], at[40]); MULADD(at[15], at[39]); MULADD(at[16], at[38]); MULADD(at[17], at[37]); MULADD(at[18], at[36]); MULADD(at[19], at[35]); MULADD(at[20], at[34]); MULADD(at[21], at[33]); MULADD(at[22], at[32]); + COMBA_STORE(C->dp[22]); + /* 23 */ + COMBA_FORWARD; + MULADD(at[0], at[55]); MULADD(at[1], at[54]); MULADD(at[2], at[53]); MULADD(at[3], at[52]); MULADD(at[4], at[51]); MULADD(at[5], at[50]); MULADD(at[6], at[49]); MULADD(at[7], at[48]); MULADD(at[8], at[47]); MULADD(at[9], at[46]); MULADD(at[10], at[45]); MULADD(at[11], at[44]); MULADD(at[12], at[43]); MULADD(at[13], at[42]); MULADD(at[14], at[41]); MULADD(at[15], at[40]); MULADD(at[16], at[39]); MULADD(at[17], at[38]); MULADD(at[18], at[37]); MULADD(at[19], at[36]); MULADD(at[20], at[35]); MULADD(at[21], at[34]); MULADD(at[22], at[33]); MULADD(at[23], at[32]); + COMBA_STORE(C->dp[23]); + /* 24 */ + COMBA_FORWARD; + MULADD(at[0], at[56]); MULADD(at[1], at[55]); MULADD(at[2], at[54]); MULADD(at[3], at[53]); MULADD(at[4], at[52]); MULADD(at[5], at[51]); MULADD(at[6], at[50]); MULADD(at[7], at[49]); MULADD(at[8], at[48]); MULADD(at[9], at[47]); MULADD(at[10], at[46]); MULADD(at[11], at[45]); MULADD(at[12], at[44]); MULADD(at[13], at[43]); MULADD(at[14], at[42]); MULADD(at[15], at[41]); MULADD(at[16], at[40]); MULADD(at[17], at[39]); MULADD(at[18], at[38]); MULADD(at[19], at[37]); MULADD(at[20], at[36]); MULADD(at[21], at[35]); MULADD(at[22], at[34]); MULADD(at[23], at[33]); MULADD(at[24], at[32]); + COMBA_STORE(C->dp[24]); + /* 25 */ + COMBA_FORWARD; + MULADD(at[0], at[57]); MULADD(at[1], at[56]); MULADD(at[2], at[55]); MULADD(at[3], at[54]); MULADD(at[4], at[53]); MULADD(at[5], at[52]); MULADD(at[6], at[51]); MULADD(at[7], at[50]); MULADD(at[8], at[49]); MULADD(at[9], at[48]); MULADD(at[10], at[47]); MULADD(at[11], at[46]); MULADD(at[12], at[45]); MULADD(at[13], at[44]); MULADD(at[14], at[43]); MULADD(at[15], at[42]); MULADD(at[16], at[41]); MULADD(at[17], at[40]); MULADD(at[18], at[39]); MULADD(at[19], at[38]); MULADD(at[20], at[37]); MULADD(at[21], at[36]); MULADD(at[22], at[35]); MULADD(at[23], at[34]); MULADD(at[24], at[33]); MULADD(at[25], at[32]); + COMBA_STORE(C->dp[25]); + /* 26 */ + COMBA_FORWARD; + MULADD(at[0], at[58]); MULADD(at[1], at[57]); MULADD(at[2], at[56]); MULADD(at[3], at[55]); MULADD(at[4], at[54]); MULADD(at[5], at[53]); MULADD(at[6], at[52]); MULADD(at[7], at[51]); MULADD(at[8], at[50]); MULADD(at[9], at[49]); MULADD(at[10], at[48]); MULADD(at[11], at[47]); MULADD(at[12], at[46]); MULADD(at[13], at[45]); MULADD(at[14], at[44]); MULADD(at[15], at[43]); MULADD(at[16], at[42]); MULADD(at[17], at[41]); MULADD(at[18], at[40]); MULADD(at[19], at[39]); MULADD(at[20], at[38]); MULADD(at[21], at[37]); MULADD(at[22], at[36]); MULADD(at[23], at[35]); MULADD(at[24], at[34]); MULADD(at[25], at[33]); MULADD(at[26], at[32]); + COMBA_STORE(C->dp[26]); + /* 27 */ + COMBA_FORWARD; + MULADD(at[0], at[59]); MULADD(at[1], at[58]); MULADD(at[2], at[57]); MULADD(at[3], at[56]); MULADD(at[4], at[55]); MULADD(at[5], at[54]); MULADD(at[6], at[53]); MULADD(at[7], at[52]); MULADD(at[8], at[51]); MULADD(at[9], at[50]); MULADD(at[10], at[49]); MULADD(at[11], at[48]); MULADD(at[12], at[47]); MULADD(at[13], at[46]); MULADD(at[14], at[45]); MULADD(at[15], at[44]); MULADD(at[16], at[43]); MULADD(at[17], at[42]); MULADD(at[18], at[41]); MULADD(at[19], at[40]); MULADD(at[20], at[39]); MULADD(at[21], at[38]); MULADD(at[22], at[37]); MULADD(at[23], at[36]); MULADD(at[24], at[35]); MULADD(at[25], at[34]); MULADD(at[26], at[33]); MULADD(at[27], at[32]); + COMBA_STORE(C->dp[27]); + /* 28 */ + COMBA_FORWARD; + MULADD(at[0], at[60]); MULADD(at[1], at[59]); MULADD(at[2], at[58]); MULADD(at[3], at[57]); MULADD(at[4], at[56]); MULADD(at[5], at[55]); MULADD(at[6], at[54]); MULADD(at[7], at[53]); MULADD(at[8], at[52]); MULADD(at[9], at[51]); MULADD(at[10], at[50]); MULADD(at[11], at[49]); MULADD(at[12], at[48]); MULADD(at[13], at[47]); MULADD(at[14], at[46]); MULADD(at[15], at[45]); MULADD(at[16], at[44]); MULADD(at[17], at[43]); MULADD(at[18], at[42]); MULADD(at[19], at[41]); MULADD(at[20], at[40]); MULADD(at[21], at[39]); MULADD(at[22], at[38]); MULADD(at[23], at[37]); MULADD(at[24], at[36]); MULADD(at[25], at[35]); MULADD(at[26], at[34]); MULADD(at[27], at[33]); MULADD(at[28], at[32]); + COMBA_STORE(C->dp[28]); + /* 29 */ + COMBA_FORWARD; + MULADD(at[0], at[61]); MULADD(at[1], at[60]); MULADD(at[2], at[59]); MULADD(at[3], at[58]); MULADD(at[4], at[57]); MULADD(at[5], at[56]); MULADD(at[6], at[55]); MULADD(at[7], at[54]); MULADD(at[8], at[53]); MULADD(at[9], at[52]); MULADD(at[10], at[51]); MULADD(at[11], at[50]); MULADD(at[12], at[49]); MULADD(at[13], at[48]); MULADD(at[14], at[47]); MULADD(at[15], at[46]); MULADD(at[16], at[45]); MULADD(at[17], at[44]); MULADD(at[18], at[43]); MULADD(at[19], at[42]); MULADD(at[20], at[41]); MULADD(at[21], at[40]); MULADD(at[22], at[39]); MULADD(at[23], at[38]); MULADD(at[24], at[37]); MULADD(at[25], at[36]); MULADD(at[26], at[35]); MULADD(at[27], at[34]); MULADD(at[28], at[33]); MULADD(at[29], at[32]); + COMBA_STORE(C->dp[29]); + /* 30 */ + COMBA_FORWARD; + MULADD(at[0], at[62]); MULADD(at[1], at[61]); MULADD(at[2], at[60]); MULADD(at[3], at[59]); MULADD(at[4], at[58]); MULADD(at[5], at[57]); MULADD(at[6], at[56]); MULADD(at[7], at[55]); MULADD(at[8], at[54]); MULADD(at[9], at[53]); MULADD(at[10], at[52]); MULADD(at[11], at[51]); MULADD(at[12], at[50]); MULADD(at[13], at[49]); MULADD(at[14], at[48]); MULADD(at[15], at[47]); MULADD(at[16], at[46]); MULADD(at[17], at[45]); MULADD(at[18], at[44]); MULADD(at[19], at[43]); MULADD(at[20], at[42]); MULADD(at[21], at[41]); MULADD(at[22], at[40]); MULADD(at[23], at[39]); MULADD(at[24], at[38]); MULADD(at[25], at[37]); MULADD(at[26], at[36]); MULADD(at[27], at[35]); MULADD(at[28], at[34]); MULADD(at[29], at[33]); MULADD(at[30], at[32]); + COMBA_STORE(C->dp[30]); + /* 31 */ + COMBA_FORWARD; + MULADD(at[0], at[63]); MULADD(at[1], at[62]); MULADD(at[2], at[61]); MULADD(at[3], at[60]); MULADD(at[4], at[59]); MULADD(at[5], at[58]); MULADD(at[6], at[57]); MULADD(at[7], at[56]); MULADD(at[8], at[55]); MULADD(at[9], at[54]); MULADD(at[10], at[53]); MULADD(at[11], at[52]); MULADD(at[12], at[51]); MULADD(at[13], at[50]); MULADD(at[14], at[49]); MULADD(at[15], at[48]); MULADD(at[16], at[47]); MULADD(at[17], at[46]); MULADD(at[18], at[45]); MULADD(at[19], at[44]); MULADD(at[20], at[43]); MULADD(at[21], at[42]); MULADD(at[22], at[41]); MULADD(at[23], at[40]); MULADD(at[24], at[39]); MULADD(at[25], at[38]); MULADD(at[26], at[37]); MULADD(at[27], at[36]); MULADD(at[28], at[35]); MULADD(at[29], at[34]); MULADD(at[30], at[33]); MULADD(at[31], at[32]); + COMBA_STORE(C->dp[31]); + /* 32 */ + COMBA_FORWARD; + MULADD(at[1], at[63]); MULADD(at[2], at[62]); MULADD(at[3], at[61]); MULADD(at[4], at[60]); MULADD(at[5], at[59]); MULADD(at[6], at[58]); MULADD(at[7], at[57]); MULADD(at[8], at[56]); MULADD(at[9], at[55]); MULADD(at[10], at[54]); MULADD(at[11], at[53]); MULADD(at[12], at[52]); MULADD(at[13], at[51]); MULADD(at[14], at[50]); MULADD(at[15], at[49]); MULADD(at[16], at[48]); MULADD(at[17], at[47]); MULADD(at[18], at[46]); MULADD(at[19], at[45]); MULADD(at[20], at[44]); MULADD(at[21], at[43]); MULADD(at[22], at[42]); MULADD(at[23], at[41]); MULADD(at[24], at[40]); MULADD(at[25], at[39]); MULADD(at[26], at[38]); MULADD(at[27], at[37]); MULADD(at[28], at[36]); MULADD(at[29], at[35]); MULADD(at[30], at[34]); MULADD(at[31], at[33]); + COMBA_STORE(C->dp[32]); + /* 33 */ + COMBA_FORWARD; + MULADD(at[2], at[63]); MULADD(at[3], at[62]); MULADD(at[4], at[61]); MULADD(at[5], at[60]); MULADD(at[6], at[59]); MULADD(at[7], at[58]); MULADD(at[8], at[57]); MULADD(at[9], at[56]); MULADD(at[10], at[55]); MULADD(at[11], at[54]); MULADD(at[12], at[53]); MULADD(at[13], at[52]); MULADD(at[14], at[51]); MULADD(at[15], at[50]); MULADD(at[16], at[49]); MULADD(at[17], at[48]); MULADD(at[18], at[47]); MULADD(at[19], at[46]); MULADD(at[20], at[45]); MULADD(at[21], at[44]); MULADD(at[22], at[43]); MULADD(at[23], at[42]); MULADD(at[24], at[41]); MULADD(at[25], at[40]); MULADD(at[26], at[39]); MULADD(at[27], at[38]); MULADD(at[28], at[37]); MULADD(at[29], at[36]); MULADD(at[30], at[35]); MULADD(at[31], at[34]); + COMBA_STORE(C->dp[33]); + /* 34 */ + COMBA_FORWARD; + MULADD(at[3], at[63]); MULADD(at[4], at[62]); MULADD(at[5], at[61]); MULADD(at[6], at[60]); MULADD(at[7], at[59]); MULADD(at[8], at[58]); MULADD(at[9], at[57]); MULADD(at[10], at[56]); MULADD(at[11], at[55]); MULADD(at[12], at[54]); MULADD(at[13], at[53]); MULADD(at[14], at[52]); MULADD(at[15], at[51]); MULADD(at[16], at[50]); MULADD(at[17], at[49]); MULADD(at[18], at[48]); MULADD(at[19], at[47]); MULADD(at[20], at[46]); MULADD(at[21], at[45]); MULADD(at[22], at[44]); MULADD(at[23], at[43]); MULADD(at[24], at[42]); MULADD(at[25], at[41]); MULADD(at[26], at[40]); MULADD(at[27], at[39]); MULADD(at[28], at[38]); MULADD(at[29], at[37]); MULADD(at[30], at[36]); MULADD(at[31], at[35]); + COMBA_STORE(C->dp[34]); + /* 35 */ + COMBA_FORWARD; + MULADD(at[4], at[63]); MULADD(at[5], at[62]); MULADD(at[6], at[61]); MULADD(at[7], at[60]); MULADD(at[8], at[59]); MULADD(at[9], at[58]); MULADD(at[10], at[57]); MULADD(at[11], at[56]); MULADD(at[12], at[55]); MULADD(at[13], at[54]); MULADD(at[14], at[53]); MULADD(at[15], at[52]); MULADD(at[16], at[51]); MULADD(at[17], at[50]); MULADD(at[18], at[49]); MULADD(at[19], at[48]); MULADD(at[20], at[47]); MULADD(at[21], at[46]); MULADD(at[22], at[45]); MULADD(at[23], at[44]); MULADD(at[24], at[43]); MULADD(at[25], at[42]); MULADD(at[26], at[41]); MULADD(at[27], at[40]); MULADD(at[28], at[39]); MULADD(at[29], at[38]); MULADD(at[30], at[37]); MULADD(at[31], at[36]); + COMBA_STORE(C->dp[35]); + /* 36 */ + COMBA_FORWARD; + MULADD(at[5], at[63]); MULADD(at[6], at[62]); MULADD(at[7], at[61]); MULADD(at[8], at[60]); MULADD(at[9], at[59]); MULADD(at[10], at[58]); MULADD(at[11], at[57]); MULADD(at[12], at[56]); MULADD(at[13], at[55]); MULADD(at[14], at[54]); MULADD(at[15], at[53]); MULADD(at[16], at[52]); MULADD(at[17], at[51]); MULADD(at[18], at[50]); MULADD(at[19], at[49]); MULADD(at[20], at[48]); MULADD(at[21], at[47]); MULADD(at[22], at[46]); MULADD(at[23], at[45]); MULADD(at[24], at[44]); MULADD(at[25], at[43]); MULADD(at[26], at[42]); MULADD(at[27], at[41]); MULADD(at[28], at[40]); MULADD(at[29], at[39]); MULADD(at[30], at[38]); MULADD(at[31], at[37]); + COMBA_STORE(C->dp[36]); + /* 37 */ + COMBA_FORWARD; + MULADD(at[6], at[63]); MULADD(at[7], at[62]); MULADD(at[8], at[61]); MULADD(at[9], at[60]); MULADD(at[10], at[59]); MULADD(at[11], at[58]); MULADD(at[12], at[57]); MULADD(at[13], at[56]); MULADD(at[14], at[55]); MULADD(at[15], at[54]); MULADD(at[16], at[53]); MULADD(at[17], at[52]); MULADD(at[18], at[51]); MULADD(at[19], at[50]); MULADD(at[20], at[49]); MULADD(at[21], at[48]); MULADD(at[22], at[47]); MULADD(at[23], at[46]); MULADD(at[24], at[45]); MULADD(at[25], at[44]); MULADD(at[26], at[43]); MULADD(at[27], at[42]); MULADD(at[28], at[41]); MULADD(at[29], at[40]); MULADD(at[30], at[39]); MULADD(at[31], at[38]); + COMBA_STORE(C->dp[37]); + /* 38 */ + COMBA_FORWARD; + MULADD(at[7], at[63]); MULADD(at[8], at[62]); MULADD(at[9], at[61]); MULADD(at[10], at[60]); MULADD(at[11], at[59]); MULADD(at[12], at[58]); MULADD(at[13], at[57]); MULADD(at[14], at[56]); MULADD(at[15], at[55]); MULADD(at[16], at[54]); MULADD(at[17], at[53]); MULADD(at[18], at[52]); MULADD(at[19], at[51]); MULADD(at[20], at[50]); MULADD(at[21], at[49]); MULADD(at[22], at[48]); MULADD(at[23], at[47]); MULADD(at[24], at[46]); MULADD(at[25], at[45]); MULADD(at[26], at[44]); MULADD(at[27], at[43]); MULADD(at[28], at[42]); MULADD(at[29], at[41]); MULADD(at[30], at[40]); MULADD(at[31], at[39]); + COMBA_STORE(C->dp[38]); + + /* early out at 40 digits, 40*32==1280, or two 640 bit operands */ + if (out_size <= 40) { COMBA_STORE2(C->dp[39]); C->used = 40; C->sign = A->sign ^ B->sign; fp_clamp(C); COMBA_FINI; return; } + + /* 39 */ + COMBA_FORWARD; + MULADD(at[8], at[63]); MULADD(at[9], at[62]); MULADD(at[10], at[61]); MULADD(at[11], at[60]); MULADD(at[12], at[59]); MULADD(at[13], at[58]); MULADD(at[14], at[57]); MULADD(at[15], at[56]); MULADD(at[16], at[55]); MULADD(at[17], at[54]); MULADD(at[18], at[53]); MULADD(at[19], at[52]); MULADD(at[20], at[51]); MULADD(at[21], at[50]); MULADD(at[22], at[49]); MULADD(at[23], at[48]); MULADD(at[24], at[47]); MULADD(at[25], at[46]); MULADD(at[26], at[45]); MULADD(at[27], at[44]); MULADD(at[28], at[43]); MULADD(at[29], at[42]); MULADD(at[30], at[41]); MULADD(at[31], at[40]); + COMBA_STORE(C->dp[39]); + /* 40 */ + COMBA_FORWARD; + MULADD(at[9], at[63]); MULADD(at[10], at[62]); MULADD(at[11], at[61]); MULADD(at[12], at[60]); MULADD(at[13], at[59]); MULADD(at[14], at[58]); MULADD(at[15], at[57]); MULADD(at[16], at[56]); MULADD(at[17], at[55]); MULADD(at[18], at[54]); MULADD(at[19], at[53]); MULADD(at[20], at[52]); MULADD(at[21], at[51]); MULADD(at[22], at[50]); MULADD(at[23], at[49]); MULADD(at[24], at[48]); MULADD(at[25], at[47]); MULADD(at[26], at[46]); MULADD(at[27], at[45]); MULADD(at[28], at[44]); MULADD(at[29], at[43]); MULADD(at[30], at[42]); MULADD(at[31], at[41]); + COMBA_STORE(C->dp[40]); + /* 41 */ + COMBA_FORWARD; + MULADD(at[10], at[63]); MULADD(at[11], at[62]); MULADD(at[12], at[61]); MULADD(at[13], at[60]); MULADD(at[14], at[59]); MULADD(at[15], at[58]); MULADD(at[16], at[57]); MULADD(at[17], at[56]); MULADD(at[18], at[55]); MULADD(at[19], at[54]); MULADD(at[20], at[53]); MULADD(at[21], at[52]); MULADD(at[22], at[51]); MULADD(at[23], at[50]); MULADD(at[24], at[49]); MULADD(at[25], at[48]); MULADD(at[26], at[47]); MULADD(at[27], at[46]); MULADD(at[28], at[45]); MULADD(at[29], at[44]); MULADD(at[30], at[43]); MULADD(at[31], at[42]); + COMBA_STORE(C->dp[41]); + /* 42 */ + COMBA_FORWARD; + MULADD(at[11], at[63]); MULADD(at[12], at[62]); MULADD(at[13], at[61]); MULADD(at[14], at[60]); MULADD(at[15], at[59]); MULADD(at[16], at[58]); MULADD(at[17], at[57]); MULADD(at[18], at[56]); MULADD(at[19], at[55]); MULADD(at[20], at[54]); MULADD(at[21], at[53]); MULADD(at[22], at[52]); MULADD(at[23], at[51]); MULADD(at[24], at[50]); MULADD(at[25], at[49]); MULADD(at[26], at[48]); MULADD(at[27], at[47]); MULADD(at[28], at[46]); MULADD(at[29], at[45]); MULADD(at[30], at[44]); MULADD(at[31], at[43]); + COMBA_STORE(C->dp[42]); + /* 43 */ + COMBA_FORWARD; + MULADD(at[12], at[63]); MULADD(at[13], at[62]); MULADD(at[14], at[61]); MULADD(at[15], at[60]); MULADD(at[16], at[59]); MULADD(at[17], at[58]); MULADD(at[18], at[57]); MULADD(at[19], at[56]); MULADD(at[20], at[55]); MULADD(at[21], at[54]); MULADD(at[22], at[53]); MULADD(at[23], at[52]); MULADD(at[24], at[51]); MULADD(at[25], at[50]); MULADD(at[26], at[49]); MULADD(at[27], at[48]); MULADD(at[28], at[47]); MULADD(at[29], at[46]); MULADD(at[30], at[45]); MULADD(at[31], at[44]); + COMBA_STORE(C->dp[43]); + /* 44 */ + COMBA_FORWARD; + MULADD(at[13], at[63]); MULADD(at[14], at[62]); MULADD(at[15], at[61]); MULADD(at[16], at[60]); MULADD(at[17], at[59]); MULADD(at[18], at[58]); MULADD(at[19], at[57]); MULADD(at[20], at[56]); MULADD(at[21], at[55]); MULADD(at[22], at[54]); MULADD(at[23], at[53]); MULADD(at[24], at[52]); MULADD(at[25], at[51]); MULADD(at[26], at[50]); MULADD(at[27], at[49]); MULADD(at[28], at[48]); MULADD(at[29], at[47]); MULADD(at[30], at[46]); MULADD(at[31], at[45]); + COMBA_STORE(C->dp[44]); + /* 45 */ + COMBA_FORWARD; + MULADD(at[14], at[63]); MULADD(at[15], at[62]); MULADD(at[16], at[61]); MULADD(at[17], at[60]); MULADD(at[18], at[59]); MULADD(at[19], at[58]); MULADD(at[20], at[57]); MULADD(at[21], at[56]); MULADD(at[22], at[55]); MULADD(at[23], at[54]); MULADD(at[24], at[53]); MULADD(at[25], at[52]); MULADD(at[26], at[51]); MULADD(at[27], at[50]); MULADD(at[28], at[49]); MULADD(at[29], at[48]); MULADD(at[30], at[47]); MULADD(at[31], at[46]); + COMBA_STORE(C->dp[45]); + /* 46 */ + COMBA_FORWARD; + MULADD(at[15], at[63]); MULADD(at[16], at[62]); MULADD(at[17], at[61]); MULADD(at[18], at[60]); MULADD(at[19], at[59]); MULADD(at[20], at[58]); MULADD(at[21], at[57]); MULADD(at[22], at[56]); MULADD(at[23], at[55]); MULADD(at[24], at[54]); MULADD(at[25], at[53]); MULADD(at[26], at[52]); MULADD(at[27], at[51]); MULADD(at[28], at[50]); MULADD(at[29], at[49]); MULADD(at[30], at[48]); MULADD(at[31], at[47]); + COMBA_STORE(C->dp[46]); + + /* early out at 48 digits, 48*32==1536, or two 768 bit operands */ + if (out_size <= 48) { COMBA_STORE2(C->dp[47]); C->used = 48; C->sign = A->sign ^ B->sign; fp_clamp(C); COMBA_FINI; return; } + + /* 47 */ + COMBA_FORWARD; + MULADD(at[16], at[63]); MULADD(at[17], at[62]); MULADD(at[18], at[61]); MULADD(at[19], at[60]); MULADD(at[20], at[59]); MULADD(at[21], at[58]); MULADD(at[22], at[57]); MULADD(at[23], at[56]); MULADD(at[24], at[55]); MULADD(at[25], at[54]); MULADD(at[26], at[53]); MULADD(at[27], at[52]); MULADD(at[28], at[51]); MULADD(at[29], at[50]); MULADD(at[30], at[49]); MULADD(at[31], at[48]); + COMBA_STORE(C->dp[47]); + /* 48 */ + COMBA_FORWARD; + MULADD(at[17], at[63]); MULADD(at[18], at[62]); MULADD(at[19], at[61]); MULADD(at[20], at[60]); MULADD(at[21], at[59]); MULADD(at[22], at[58]); MULADD(at[23], at[57]); MULADD(at[24], at[56]); MULADD(at[25], at[55]); MULADD(at[26], at[54]); MULADD(at[27], at[53]); MULADD(at[28], at[52]); MULADD(at[29], at[51]); MULADD(at[30], at[50]); MULADD(at[31], at[49]); + COMBA_STORE(C->dp[48]); + /* 49 */ + COMBA_FORWARD; + MULADD(at[18], at[63]); MULADD(at[19], at[62]); MULADD(at[20], at[61]); MULADD(at[21], at[60]); MULADD(at[22], at[59]); MULADD(at[23], at[58]); MULADD(at[24], at[57]); MULADD(at[25], at[56]); MULADD(at[26], at[55]); MULADD(at[27], at[54]); MULADD(at[28], at[53]); MULADD(at[29], at[52]); MULADD(at[30], at[51]); MULADD(at[31], at[50]); + COMBA_STORE(C->dp[49]); + /* 50 */ + COMBA_FORWARD; + MULADD(at[19], at[63]); MULADD(at[20], at[62]); MULADD(at[21], at[61]); MULADD(at[22], at[60]); MULADD(at[23], at[59]); MULADD(at[24], at[58]); MULADD(at[25], at[57]); MULADD(at[26], at[56]); MULADD(at[27], at[55]); MULADD(at[28], at[54]); MULADD(at[29], at[53]); MULADD(at[30], at[52]); MULADD(at[31], at[51]); + COMBA_STORE(C->dp[50]); + /* 51 */ + COMBA_FORWARD; + MULADD(at[20], at[63]); MULADD(at[21], at[62]); MULADD(at[22], at[61]); MULADD(at[23], at[60]); MULADD(at[24], at[59]); MULADD(at[25], at[58]); MULADD(at[26], at[57]); MULADD(at[27], at[56]); MULADD(at[28], at[55]); MULADD(at[29], at[54]); MULADD(at[30], at[53]); MULADD(at[31], at[52]); + COMBA_STORE(C->dp[51]); + /* 52 */ + COMBA_FORWARD; + MULADD(at[21], at[63]); MULADD(at[22], at[62]); MULADD(at[23], at[61]); MULADD(at[24], at[60]); MULADD(at[25], at[59]); MULADD(at[26], at[58]); MULADD(at[27], at[57]); MULADD(at[28], at[56]); MULADD(at[29], at[55]); MULADD(at[30], at[54]); MULADD(at[31], at[53]); + COMBA_STORE(C->dp[52]); + /* 53 */ + COMBA_FORWARD; + MULADD(at[22], at[63]); MULADD(at[23], at[62]); MULADD(at[24], at[61]); MULADD(at[25], at[60]); MULADD(at[26], at[59]); MULADD(at[27], at[58]); MULADD(at[28], at[57]); MULADD(at[29], at[56]); MULADD(at[30], at[55]); MULADD(at[31], at[54]); + COMBA_STORE(C->dp[53]); + /* 54 */ + COMBA_FORWARD; + MULADD(at[23], at[63]); MULADD(at[24], at[62]); MULADD(at[25], at[61]); MULADD(at[26], at[60]); MULADD(at[27], at[59]); MULADD(at[28], at[58]); MULADD(at[29], at[57]); MULADD(at[30], at[56]); MULADD(at[31], at[55]); + COMBA_STORE(C->dp[54]); + + /* early out at 56 digits, 56*32==1792, or two 896 bit operands */ + if (out_size <= 56) { COMBA_STORE2(C->dp[55]); C->used = 56; C->sign = A->sign ^ B->sign; fp_clamp(C); COMBA_FINI; return; } + + /* 55 */ + COMBA_FORWARD; + MULADD(at[24], at[63]); MULADD(at[25], at[62]); MULADD(at[26], at[61]); MULADD(at[27], at[60]); MULADD(at[28], at[59]); MULADD(at[29], at[58]); MULADD(at[30], at[57]); MULADD(at[31], at[56]); + COMBA_STORE(C->dp[55]); + /* 56 */ + COMBA_FORWARD; + MULADD(at[25], at[63]); MULADD(at[26], at[62]); MULADD(at[27], at[61]); MULADD(at[28], at[60]); MULADD(at[29], at[59]); MULADD(at[30], at[58]); MULADD(at[31], at[57]); + COMBA_STORE(C->dp[56]); + /* 57 */ + COMBA_FORWARD; + MULADD(at[26], at[63]); MULADD(at[27], at[62]); MULADD(at[28], at[61]); MULADD(at[29], at[60]); MULADD(at[30], at[59]); MULADD(at[31], at[58]); + COMBA_STORE(C->dp[57]); + /* 58 */ + COMBA_FORWARD; + MULADD(at[27], at[63]); MULADD(at[28], at[62]); MULADD(at[29], at[61]); MULADD(at[30], at[60]); MULADD(at[31], at[59]); + COMBA_STORE(C->dp[58]); + /* 59 */ + COMBA_FORWARD; + MULADD(at[28], at[63]); MULADD(at[29], at[62]); MULADD(at[30], at[61]); MULADD(at[31], at[60]); + COMBA_STORE(C->dp[59]); + /* 60 */ + COMBA_FORWARD; + MULADD(at[29], at[63]); MULADD(at[30], at[62]); MULADD(at[31], at[61]); + COMBA_STORE(C->dp[60]); + /* 61 */ + COMBA_FORWARD; + MULADD(at[30], at[63]); MULADD(at[31], at[62]); + COMBA_STORE(C->dp[61]); + /* 62 */ + COMBA_FORWARD; + MULADD(at[31], at[63]); + COMBA_STORE(C->dp[62]); + COMBA_STORE2(C->dp[63]); + C->used = 64; + C->sign = A->sign ^ B->sign; + fp_clamp(C); + COMBA_FINI; +} +#endif diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_4.i b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_4.i new file mode 100644 index 000000000..d715937d0 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_4.i @@ -0,0 +1,66 @@ +/* fp_mul_comba_4.i + * + * Copyright (C) 2006-2011 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifdef TFM_MUL4 +void fp_mul_comba4(fp_int *A, fp_int *B, fp_int *C) +{ + fp_digit c0, c1, c2, at[8]; + + memcpy(at, A->dp, 4 * sizeof(fp_digit)); + memcpy(at+4, B->dp, 4 * sizeof(fp_digit)); + COMBA_START; + + COMBA_CLEAR; + /* 0 */ + MULADD(at[0], at[4]); + COMBA_STORE(C->dp[0]); + /* 1 */ + COMBA_FORWARD; + MULADD(at[0], at[5]); MULADD(at[1], at[4]); + COMBA_STORE(C->dp[1]); + /* 2 */ + COMBA_FORWARD; + MULADD(at[0], at[6]); MULADD(at[1], at[5]); MULADD(at[2], at[4]); + COMBA_STORE(C->dp[2]); + /* 3 */ + COMBA_FORWARD; + MULADD(at[0], at[7]); MULADD(at[1], at[6]); MULADD(at[2], at[5]); MULADD(at[3], at[4]); + COMBA_STORE(C->dp[3]); + /* 4 */ + COMBA_FORWARD; + MULADD(at[1], at[7]); MULADD(at[2], at[6]); MULADD(at[3], at[5]); + COMBA_STORE(C->dp[4]); + /* 5 */ + COMBA_FORWARD; + MULADD(at[2], at[7]); MULADD(at[3], at[6]); + COMBA_STORE(C->dp[5]); + /* 6 */ + COMBA_FORWARD; + MULADD(at[3], at[7]); + COMBA_STORE(C->dp[6]); + COMBA_STORE2(C->dp[7]); + C->used = 8; + C->sign = A->sign ^ B->sign; + fp_clamp(C); + COMBA_FINI; +} +#endif diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_48.i b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_48.i new file mode 100644 index 000000000..4c185698f --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_48.i @@ -0,0 +1,418 @@ +/* fp_mul_comba_48.i + * + * Copyright (C) 2006-2011 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifdef TFM_MUL48 +void fp_mul_comba48(fp_int *A, fp_int *B, fp_int *C) +{ + fp_digit c0, c1, c2, at[96]; + + memcpy(at, A->dp, 48 * sizeof(fp_digit)); + memcpy(at+48, B->dp, 48 * sizeof(fp_digit)); + COMBA_START; + + COMBA_CLEAR; + /* 0 */ + MULADD(at[0], at[48]); + COMBA_STORE(C->dp[0]); + /* 1 */ + COMBA_FORWARD; + MULADD(at[0], at[49]); MULADD(at[1], at[48]); + COMBA_STORE(C->dp[1]); + /* 2 */ + COMBA_FORWARD; + MULADD(at[0], at[50]); MULADD(at[1], at[49]); MULADD(at[2], at[48]); + COMBA_STORE(C->dp[2]); + /* 3 */ + COMBA_FORWARD; + MULADD(at[0], at[51]); MULADD(at[1], at[50]); MULADD(at[2], at[49]); MULADD(at[3], at[48]); + COMBA_STORE(C->dp[3]); + /* 4 */ + COMBA_FORWARD; + MULADD(at[0], at[52]); MULADD(at[1], at[51]); MULADD(at[2], at[50]); MULADD(at[3], at[49]); MULADD(at[4], at[48]); + COMBA_STORE(C->dp[4]); + /* 5 */ + COMBA_FORWARD; + MULADD(at[0], at[53]); MULADD(at[1], at[52]); MULADD(at[2], at[51]); MULADD(at[3], at[50]); MULADD(at[4], at[49]); MULADD(at[5], at[48]); + COMBA_STORE(C->dp[5]); + /* 6 */ + COMBA_FORWARD; + MULADD(at[0], at[54]); MULADD(at[1], at[53]); MULADD(at[2], at[52]); MULADD(at[3], at[51]); MULADD(at[4], at[50]); MULADD(at[5], at[49]); MULADD(at[6], at[48]); + COMBA_STORE(C->dp[6]); + /* 7 */ + COMBA_FORWARD; + MULADD(at[0], at[55]); MULADD(at[1], at[54]); MULADD(at[2], at[53]); MULADD(at[3], at[52]); MULADD(at[4], at[51]); MULADD(at[5], at[50]); MULADD(at[6], at[49]); MULADD(at[7], at[48]); + COMBA_STORE(C->dp[7]); + /* 8 */ + COMBA_FORWARD; + MULADD(at[0], at[56]); MULADD(at[1], at[55]); MULADD(at[2], at[54]); MULADD(at[3], at[53]); MULADD(at[4], at[52]); MULADD(at[5], at[51]); MULADD(at[6], at[50]); MULADD(at[7], at[49]); MULADD(at[8], at[48]); + COMBA_STORE(C->dp[8]); + /* 9 */ + COMBA_FORWARD; + MULADD(at[0], at[57]); MULADD(at[1], at[56]); MULADD(at[2], at[55]); MULADD(at[3], at[54]); MULADD(at[4], at[53]); MULADD(at[5], at[52]); MULADD(at[6], at[51]); MULADD(at[7], at[50]); MULADD(at[8], at[49]); MULADD(at[9], at[48]); + COMBA_STORE(C->dp[9]); + /* 10 */ + COMBA_FORWARD; + MULADD(at[0], at[58]); MULADD(at[1], at[57]); MULADD(at[2], at[56]); MULADD(at[3], at[55]); MULADD(at[4], at[54]); MULADD(at[5], at[53]); MULADD(at[6], at[52]); MULADD(at[7], at[51]); MULADD(at[8], at[50]); MULADD(at[9], at[49]); MULADD(at[10], at[48]); + COMBA_STORE(C->dp[10]); + /* 11 */ + COMBA_FORWARD; + MULADD(at[0], at[59]); MULADD(at[1], at[58]); MULADD(at[2], at[57]); MULADD(at[3], at[56]); MULADD(at[4], at[55]); MULADD(at[5], at[54]); MULADD(at[6], at[53]); MULADD(at[7], at[52]); MULADD(at[8], at[51]); MULADD(at[9], at[50]); MULADD(at[10], at[49]); MULADD(at[11], at[48]); + COMBA_STORE(C->dp[11]); + /* 12 */ + COMBA_FORWARD; + MULADD(at[0], at[60]); MULADD(at[1], at[59]); MULADD(at[2], at[58]); MULADD(at[3], at[57]); MULADD(at[4], at[56]); MULADD(at[5], at[55]); MULADD(at[6], at[54]); MULADD(at[7], at[53]); MULADD(at[8], at[52]); MULADD(at[9], at[51]); MULADD(at[10], at[50]); MULADD(at[11], at[49]); MULADD(at[12], at[48]); + COMBA_STORE(C->dp[12]); + /* 13 */ + COMBA_FORWARD; + MULADD(at[0], at[61]); MULADD(at[1], at[60]); MULADD(at[2], at[59]); MULADD(at[3], at[58]); MULADD(at[4], at[57]); MULADD(at[5], at[56]); MULADD(at[6], at[55]); MULADD(at[7], at[54]); MULADD(at[8], at[53]); MULADD(at[9], at[52]); MULADD(at[10], at[51]); MULADD(at[11], at[50]); MULADD(at[12], at[49]); MULADD(at[13], at[48]); + COMBA_STORE(C->dp[13]); + /* 14 */ + COMBA_FORWARD; + MULADD(at[0], at[62]); MULADD(at[1], at[61]); MULADD(at[2], at[60]); MULADD(at[3], at[59]); MULADD(at[4], at[58]); MULADD(at[5], at[57]); MULADD(at[6], at[56]); MULADD(at[7], at[55]); MULADD(at[8], at[54]); MULADD(at[9], at[53]); MULADD(at[10], at[52]); MULADD(at[11], at[51]); MULADD(at[12], at[50]); MULADD(at[13], at[49]); MULADD(at[14], at[48]); + COMBA_STORE(C->dp[14]); + /* 15 */ + COMBA_FORWARD; + MULADD(at[0], at[63]); MULADD(at[1], at[62]); MULADD(at[2], at[61]); MULADD(at[3], at[60]); MULADD(at[4], at[59]); MULADD(at[5], at[58]); MULADD(at[6], at[57]); MULADD(at[7], at[56]); MULADD(at[8], at[55]); MULADD(at[9], at[54]); MULADD(at[10], at[53]); MULADD(at[11], at[52]); MULADD(at[12], at[51]); MULADD(at[13], at[50]); MULADD(at[14], at[49]); MULADD(at[15], at[48]); + COMBA_STORE(C->dp[15]); + /* 16 */ + COMBA_FORWARD; + MULADD(at[0], at[64]); MULADD(at[1], at[63]); MULADD(at[2], at[62]); MULADD(at[3], at[61]); MULADD(at[4], at[60]); MULADD(at[5], at[59]); MULADD(at[6], at[58]); MULADD(at[7], at[57]); MULADD(at[8], at[56]); MULADD(at[9], at[55]); MULADD(at[10], at[54]); MULADD(at[11], at[53]); MULADD(at[12], at[52]); MULADD(at[13], at[51]); MULADD(at[14], at[50]); MULADD(at[15], at[49]); MULADD(at[16], at[48]); + COMBA_STORE(C->dp[16]); + /* 17 */ + COMBA_FORWARD; + MULADD(at[0], at[65]); MULADD(at[1], at[64]); MULADD(at[2], at[63]); MULADD(at[3], at[62]); MULADD(at[4], at[61]); MULADD(at[5], at[60]); MULADD(at[6], at[59]); MULADD(at[7], at[58]); MULADD(at[8], at[57]); MULADD(at[9], at[56]); MULADD(at[10], at[55]); MULADD(at[11], at[54]); MULADD(at[12], at[53]); MULADD(at[13], at[52]); MULADD(at[14], at[51]); MULADD(at[15], at[50]); MULADD(at[16], at[49]); MULADD(at[17], at[48]); + COMBA_STORE(C->dp[17]); + /* 18 */ + COMBA_FORWARD; + MULADD(at[0], at[66]); MULADD(at[1], at[65]); MULADD(at[2], at[64]); MULADD(at[3], at[63]); MULADD(at[4], at[62]); MULADD(at[5], at[61]); MULADD(at[6], at[60]); MULADD(at[7], at[59]); MULADD(at[8], at[58]); MULADD(at[9], at[57]); MULADD(at[10], at[56]); MULADD(at[11], at[55]); MULADD(at[12], at[54]); MULADD(at[13], at[53]); MULADD(at[14], at[52]); MULADD(at[15], at[51]); MULADD(at[16], at[50]); MULADD(at[17], at[49]); MULADD(at[18], at[48]); + COMBA_STORE(C->dp[18]); + /* 19 */ + COMBA_FORWARD; + MULADD(at[0], at[67]); MULADD(at[1], at[66]); MULADD(at[2], at[65]); MULADD(at[3], at[64]); MULADD(at[4], at[63]); MULADD(at[5], at[62]); MULADD(at[6], at[61]); MULADD(at[7], at[60]); MULADD(at[8], at[59]); MULADD(at[9], at[58]); MULADD(at[10], at[57]); MULADD(at[11], at[56]); MULADD(at[12], at[55]); MULADD(at[13], at[54]); MULADD(at[14], at[53]); MULADD(at[15], at[52]); MULADD(at[16], at[51]); MULADD(at[17], at[50]); MULADD(at[18], at[49]); MULADD(at[19], at[48]); + COMBA_STORE(C->dp[19]); + /* 20 */ + COMBA_FORWARD; + MULADD(at[0], at[68]); MULADD(at[1], at[67]); MULADD(at[2], at[66]); MULADD(at[3], at[65]); MULADD(at[4], at[64]); MULADD(at[5], at[63]); MULADD(at[6], at[62]); MULADD(at[7], at[61]); MULADD(at[8], at[60]); MULADD(at[9], at[59]); MULADD(at[10], at[58]); MULADD(at[11], at[57]); MULADD(at[12], at[56]); MULADD(at[13], at[55]); MULADD(at[14], at[54]); MULADD(at[15], at[53]); MULADD(at[16], at[52]); MULADD(at[17], at[51]); MULADD(at[18], at[50]); MULADD(at[19], at[49]); MULADD(at[20], at[48]); + COMBA_STORE(C->dp[20]); + /* 21 */ + COMBA_FORWARD; + MULADD(at[0], at[69]); MULADD(at[1], at[68]); MULADD(at[2], at[67]); MULADD(at[3], at[66]); MULADD(at[4], at[65]); MULADD(at[5], at[64]); MULADD(at[6], at[63]); MULADD(at[7], at[62]); MULADD(at[8], at[61]); MULADD(at[9], at[60]); MULADD(at[10], at[59]); MULADD(at[11], at[58]); MULADD(at[12], at[57]); MULADD(at[13], at[56]); MULADD(at[14], at[55]); MULADD(at[15], at[54]); MULADD(at[16], at[53]); MULADD(at[17], at[52]); MULADD(at[18], at[51]); MULADD(at[19], at[50]); MULADD(at[20], at[49]); MULADD(at[21], at[48]); + COMBA_STORE(C->dp[21]); + /* 22 */ + COMBA_FORWARD; + MULADD(at[0], at[70]); MULADD(at[1], at[69]); MULADD(at[2], at[68]); MULADD(at[3], at[67]); MULADD(at[4], at[66]); MULADD(at[5], at[65]); MULADD(at[6], at[64]); MULADD(at[7], at[63]); MULADD(at[8], at[62]); MULADD(at[9], at[61]); MULADD(at[10], at[60]); MULADD(at[11], at[59]); MULADD(at[12], at[58]); MULADD(at[13], at[57]); MULADD(at[14], at[56]); MULADD(at[15], at[55]); MULADD(at[16], at[54]); MULADD(at[17], at[53]); MULADD(at[18], at[52]); MULADD(at[19], at[51]); MULADD(at[20], at[50]); MULADD(at[21], at[49]); MULADD(at[22], at[48]); + COMBA_STORE(C->dp[22]); + /* 23 */ + COMBA_FORWARD; + MULADD(at[0], at[71]); MULADD(at[1], at[70]); MULADD(at[2], at[69]); MULADD(at[3], at[68]); MULADD(at[4], at[67]); MULADD(at[5], at[66]); MULADD(at[6], at[65]); MULADD(at[7], at[64]); MULADD(at[8], at[63]); MULADD(at[9], at[62]); MULADD(at[10], at[61]); MULADD(at[11], at[60]); MULADD(at[12], at[59]); MULADD(at[13], at[58]); MULADD(at[14], at[57]); MULADD(at[15], at[56]); MULADD(at[16], at[55]); MULADD(at[17], at[54]); MULADD(at[18], at[53]); MULADD(at[19], at[52]); MULADD(at[20], at[51]); MULADD(at[21], at[50]); MULADD(at[22], at[49]); MULADD(at[23], at[48]); + COMBA_STORE(C->dp[23]); + /* 24 */ + COMBA_FORWARD; + MULADD(at[0], at[72]); MULADD(at[1], at[71]); MULADD(at[2], at[70]); MULADD(at[3], at[69]); MULADD(at[4], at[68]); MULADD(at[5], at[67]); MULADD(at[6], at[66]); MULADD(at[7], at[65]); MULADD(at[8], at[64]); MULADD(at[9], at[63]); MULADD(at[10], at[62]); MULADD(at[11], at[61]); MULADD(at[12], at[60]); MULADD(at[13], at[59]); MULADD(at[14], at[58]); MULADD(at[15], at[57]); MULADD(at[16], at[56]); MULADD(at[17], at[55]); MULADD(at[18], at[54]); MULADD(at[19], at[53]); MULADD(at[20], at[52]); MULADD(at[21], at[51]); MULADD(at[22], at[50]); MULADD(at[23], at[49]); MULADD(at[24], at[48]); + COMBA_STORE(C->dp[24]); + /* 25 */ + COMBA_FORWARD; + MULADD(at[0], at[73]); MULADD(at[1], at[72]); MULADD(at[2], at[71]); MULADD(at[3], at[70]); MULADD(at[4], at[69]); MULADD(at[5], at[68]); MULADD(at[6], at[67]); MULADD(at[7], at[66]); MULADD(at[8], at[65]); MULADD(at[9], at[64]); MULADD(at[10], at[63]); MULADD(at[11], at[62]); MULADD(at[12], at[61]); MULADD(at[13], at[60]); MULADD(at[14], at[59]); MULADD(at[15], at[58]); MULADD(at[16], at[57]); MULADD(at[17], at[56]); MULADD(at[18], at[55]); MULADD(at[19], at[54]); MULADD(at[20], at[53]); MULADD(at[21], at[52]); MULADD(at[22], at[51]); MULADD(at[23], at[50]); MULADD(at[24], at[49]); MULADD(at[25], at[48]); + COMBA_STORE(C->dp[25]); + /* 26 */ + COMBA_FORWARD; + MULADD(at[0], at[74]); MULADD(at[1], at[73]); MULADD(at[2], at[72]); MULADD(at[3], at[71]); MULADD(at[4], at[70]); MULADD(at[5], at[69]); MULADD(at[6], at[68]); MULADD(at[7], at[67]); MULADD(at[8], at[66]); MULADD(at[9], at[65]); MULADD(at[10], at[64]); MULADD(at[11], at[63]); MULADD(at[12], at[62]); MULADD(at[13], at[61]); MULADD(at[14], at[60]); MULADD(at[15], at[59]); MULADD(at[16], at[58]); MULADD(at[17], at[57]); MULADD(at[18], at[56]); MULADD(at[19], at[55]); MULADD(at[20], at[54]); MULADD(at[21], at[53]); MULADD(at[22], at[52]); MULADD(at[23], at[51]); MULADD(at[24], at[50]); MULADD(at[25], at[49]); MULADD(at[26], at[48]); + COMBA_STORE(C->dp[26]); + /* 27 */ + COMBA_FORWARD; + MULADD(at[0], at[75]); MULADD(at[1], at[74]); MULADD(at[2], at[73]); MULADD(at[3], at[72]); MULADD(at[4], at[71]); MULADD(at[5], at[70]); MULADD(at[6], at[69]); MULADD(at[7], at[68]); MULADD(at[8], at[67]); MULADD(at[9], at[66]); MULADD(at[10], at[65]); MULADD(at[11], at[64]); MULADD(at[12], at[63]); MULADD(at[13], at[62]); MULADD(at[14], at[61]); MULADD(at[15], at[60]); MULADD(at[16], at[59]); MULADD(at[17], at[58]); MULADD(at[18], at[57]); MULADD(at[19], at[56]); MULADD(at[20], at[55]); MULADD(at[21], at[54]); MULADD(at[22], at[53]); MULADD(at[23], at[52]); MULADD(at[24], at[51]); MULADD(at[25], at[50]); MULADD(at[26], at[49]); MULADD(at[27], at[48]); + COMBA_STORE(C->dp[27]); + /* 28 */ + COMBA_FORWARD; + MULADD(at[0], at[76]); MULADD(at[1], at[75]); MULADD(at[2], at[74]); MULADD(at[3], at[73]); MULADD(at[4], at[72]); MULADD(at[5], at[71]); MULADD(at[6], at[70]); MULADD(at[7], at[69]); MULADD(at[8], at[68]); MULADD(at[9], at[67]); MULADD(at[10], at[66]); MULADD(at[11], at[65]); MULADD(at[12], at[64]); MULADD(at[13], at[63]); MULADD(at[14], at[62]); MULADD(at[15], at[61]); MULADD(at[16], at[60]); MULADD(at[17], at[59]); MULADD(at[18], at[58]); MULADD(at[19], at[57]); MULADD(at[20], at[56]); MULADD(at[21], at[55]); MULADD(at[22], at[54]); MULADD(at[23], at[53]); MULADD(at[24], at[52]); MULADD(at[25], at[51]); MULADD(at[26], at[50]); MULADD(at[27], at[49]); MULADD(at[28], at[48]); + COMBA_STORE(C->dp[28]); + /* 29 */ + COMBA_FORWARD; + MULADD(at[0], at[77]); MULADD(at[1], at[76]); MULADD(at[2], at[75]); MULADD(at[3], at[74]); MULADD(at[4], at[73]); MULADD(at[5], at[72]); MULADD(at[6], at[71]); MULADD(at[7], at[70]); MULADD(at[8], at[69]); MULADD(at[9], at[68]); MULADD(at[10], at[67]); MULADD(at[11], at[66]); MULADD(at[12], at[65]); MULADD(at[13], at[64]); MULADD(at[14], at[63]); MULADD(at[15], at[62]); MULADD(at[16], at[61]); MULADD(at[17], at[60]); MULADD(at[18], at[59]); MULADD(at[19], at[58]); MULADD(at[20], at[57]); MULADD(at[21], at[56]); MULADD(at[22], at[55]); MULADD(at[23], at[54]); MULADD(at[24], at[53]); MULADD(at[25], at[52]); MULADD(at[26], at[51]); MULADD(at[27], at[50]); MULADD(at[28], at[49]); MULADD(at[29], at[48]); + COMBA_STORE(C->dp[29]); + /* 30 */ + COMBA_FORWARD; + MULADD(at[0], at[78]); MULADD(at[1], at[77]); MULADD(at[2], at[76]); MULADD(at[3], at[75]); MULADD(at[4], at[74]); MULADD(at[5], at[73]); MULADD(at[6], at[72]); MULADD(at[7], at[71]); MULADD(at[8], at[70]); MULADD(at[9], at[69]); MULADD(at[10], at[68]); MULADD(at[11], at[67]); MULADD(at[12], at[66]); MULADD(at[13], at[65]); MULADD(at[14], at[64]); MULADD(at[15], at[63]); MULADD(at[16], at[62]); MULADD(at[17], at[61]); MULADD(at[18], at[60]); MULADD(at[19], at[59]); MULADD(at[20], at[58]); MULADD(at[21], at[57]); MULADD(at[22], at[56]); MULADD(at[23], at[55]); MULADD(at[24], at[54]); MULADD(at[25], at[53]); MULADD(at[26], at[52]); MULADD(at[27], at[51]); MULADD(at[28], at[50]); MULADD(at[29], at[49]); MULADD(at[30], at[48]); + COMBA_STORE(C->dp[30]); + /* 31 */ + COMBA_FORWARD; + MULADD(at[0], at[79]); MULADD(at[1], at[78]); MULADD(at[2], at[77]); MULADD(at[3], at[76]); MULADD(at[4], at[75]); MULADD(at[5], at[74]); MULADD(at[6], at[73]); MULADD(at[7], at[72]); MULADD(at[8], at[71]); MULADD(at[9], at[70]); MULADD(at[10], at[69]); MULADD(at[11], at[68]); MULADD(at[12], at[67]); MULADD(at[13], at[66]); MULADD(at[14], at[65]); MULADD(at[15], at[64]); MULADD(at[16], at[63]); MULADD(at[17], at[62]); MULADD(at[18], at[61]); MULADD(at[19], at[60]); MULADD(at[20], at[59]); MULADD(at[21], at[58]); MULADD(at[22], at[57]); MULADD(at[23], at[56]); MULADD(at[24], at[55]); MULADD(at[25], at[54]); MULADD(at[26], at[53]); MULADD(at[27], at[52]); MULADD(at[28], at[51]); MULADD(at[29], at[50]); MULADD(at[30], at[49]); MULADD(at[31], at[48]); + COMBA_STORE(C->dp[31]); + /* 32 */ + COMBA_FORWARD; + MULADD(at[0], at[80]); MULADD(at[1], at[79]); MULADD(at[2], at[78]); MULADD(at[3], at[77]); MULADD(at[4], at[76]); MULADD(at[5], at[75]); MULADD(at[6], at[74]); MULADD(at[7], at[73]); MULADD(at[8], at[72]); MULADD(at[9], at[71]); MULADD(at[10], at[70]); MULADD(at[11], at[69]); MULADD(at[12], at[68]); MULADD(at[13], at[67]); MULADD(at[14], at[66]); MULADD(at[15], at[65]); MULADD(at[16], at[64]); MULADD(at[17], at[63]); MULADD(at[18], at[62]); MULADD(at[19], at[61]); MULADD(at[20], at[60]); MULADD(at[21], at[59]); MULADD(at[22], at[58]); MULADD(at[23], at[57]); MULADD(at[24], at[56]); MULADD(at[25], at[55]); MULADD(at[26], at[54]); MULADD(at[27], at[53]); MULADD(at[28], at[52]); MULADD(at[29], at[51]); MULADD(at[30], at[50]); MULADD(at[31], at[49]); MULADD(at[32], at[48]); + COMBA_STORE(C->dp[32]); + /* 33 */ + COMBA_FORWARD; + MULADD(at[0], at[81]); MULADD(at[1], at[80]); MULADD(at[2], at[79]); MULADD(at[3], at[78]); MULADD(at[4], at[77]); MULADD(at[5], at[76]); MULADD(at[6], at[75]); MULADD(at[7], at[74]); MULADD(at[8], at[73]); MULADD(at[9], at[72]); MULADD(at[10], at[71]); MULADD(at[11], at[70]); MULADD(at[12], at[69]); MULADD(at[13], at[68]); MULADD(at[14], at[67]); MULADD(at[15], at[66]); MULADD(at[16], at[65]); MULADD(at[17], at[64]); MULADD(at[18], at[63]); MULADD(at[19], at[62]); MULADD(at[20], at[61]); MULADD(at[21], at[60]); MULADD(at[22], at[59]); MULADD(at[23], at[58]); MULADD(at[24], at[57]); MULADD(at[25], at[56]); MULADD(at[26], at[55]); MULADD(at[27], at[54]); MULADD(at[28], at[53]); MULADD(at[29], at[52]); MULADD(at[30], at[51]); MULADD(at[31], at[50]); MULADD(at[32], at[49]); MULADD(at[33], at[48]); + COMBA_STORE(C->dp[33]); + /* 34 */ + COMBA_FORWARD; + MULADD(at[0], at[82]); MULADD(at[1], at[81]); MULADD(at[2], at[80]); MULADD(at[3], at[79]); MULADD(at[4], at[78]); MULADD(at[5], at[77]); MULADD(at[6], at[76]); MULADD(at[7], at[75]); MULADD(at[8], at[74]); MULADD(at[9], at[73]); MULADD(at[10], at[72]); MULADD(at[11], at[71]); MULADD(at[12], at[70]); MULADD(at[13], at[69]); MULADD(at[14], at[68]); MULADD(at[15], at[67]); MULADD(at[16], at[66]); MULADD(at[17], at[65]); MULADD(at[18], at[64]); MULADD(at[19], at[63]); MULADD(at[20], at[62]); MULADD(at[21], at[61]); MULADD(at[22], at[60]); MULADD(at[23], at[59]); MULADD(at[24], at[58]); MULADD(at[25], at[57]); MULADD(at[26], at[56]); MULADD(at[27], at[55]); MULADD(at[28], at[54]); MULADD(at[29], at[53]); MULADD(at[30], at[52]); MULADD(at[31], at[51]); MULADD(at[32], at[50]); MULADD(at[33], at[49]); MULADD(at[34], at[48]); + COMBA_STORE(C->dp[34]); + /* 35 */ + COMBA_FORWARD; + MULADD(at[0], at[83]); MULADD(at[1], at[82]); MULADD(at[2], at[81]); MULADD(at[3], at[80]); MULADD(at[4], at[79]); MULADD(at[5], at[78]); MULADD(at[6], at[77]); MULADD(at[7], at[76]); MULADD(at[8], at[75]); MULADD(at[9], at[74]); MULADD(at[10], at[73]); MULADD(at[11], at[72]); MULADD(at[12], at[71]); MULADD(at[13], at[70]); MULADD(at[14], at[69]); MULADD(at[15], at[68]); MULADD(at[16], at[67]); MULADD(at[17], at[66]); MULADD(at[18], at[65]); MULADD(at[19], at[64]); MULADD(at[20], at[63]); MULADD(at[21], at[62]); MULADD(at[22], at[61]); MULADD(at[23], at[60]); MULADD(at[24], at[59]); MULADD(at[25], at[58]); MULADD(at[26], at[57]); MULADD(at[27], at[56]); MULADD(at[28], at[55]); MULADD(at[29], at[54]); MULADD(at[30], at[53]); MULADD(at[31], at[52]); MULADD(at[32], at[51]); MULADD(at[33], at[50]); MULADD(at[34], at[49]); MULADD(at[35], at[48]); + COMBA_STORE(C->dp[35]); + /* 36 */ + COMBA_FORWARD; + MULADD(at[0], at[84]); MULADD(at[1], at[83]); MULADD(at[2], at[82]); MULADD(at[3], at[81]); MULADD(at[4], at[80]); MULADD(at[5], at[79]); MULADD(at[6], at[78]); MULADD(at[7], at[77]); MULADD(at[8], at[76]); MULADD(at[9], at[75]); MULADD(at[10], at[74]); MULADD(at[11], at[73]); MULADD(at[12], at[72]); MULADD(at[13], at[71]); MULADD(at[14], at[70]); MULADD(at[15], at[69]); MULADD(at[16], at[68]); MULADD(at[17], at[67]); MULADD(at[18], at[66]); MULADD(at[19], at[65]); MULADD(at[20], at[64]); MULADD(at[21], at[63]); MULADD(at[22], at[62]); MULADD(at[23], at[61]); MULADD(at[24], at[60]); MULADD(at[25], at[59]); MULADD(at[26], at[58]); MULADD(at[27], at[57]); MULADD(at[28], at[56]); MULADD(at[29], at[55]); MULADD(at[30], at[54]); MULADD(at[31], at[53]); MULADD(at[32], at[52]); MULADD(at[33], at[51]); MULADD(at[34], at[50]); MULADD(at[35], at[49]); MULADD(at[36], at[48]); + COMBA_STORE(C->dp[36]); + /* 37 */ + COMBA_FORWARD; + MULADD(at[0], at[85]); MULADD(at[1], at[84]); MULADD(at[2], at[83]); MULADD(at[3], at[82]); MULADD(at[4], at[81]); MULADD(at[5], at[80]); MULADD(at[6], at[79]); MULADD(at[7], at[78]); MULADD(at[8], at[77]); MULADD(at[9], at[76]); MULADD(at[10], at[75]); MULADD(at[11], at[74]); MULADD(at[12], at[73]); MULADD(at[13], at[72]); MULADD(at[14], at[71]); MULADD(at[15], at[70]); MULADD(at[16], at[69]); MULADD(at[17], at[68]); MULADD(at[18], at[67]); MULADD(at[19], at[66]); MULADD(at[20], at[65]); MULADD(at[21], at[64]); MULADD(at[22], at[63]); MULADD(at[23], at[62]); MULADD(at[24], at[61]); MULADD(at[25], at[60]); MULADD(at[26], at[59]); MULADD(at[27], at[58]); MULADD(at[28], at[57]); MULADD(at[29], at[56]); MULADD(at[30], at[55]); MULADD(at[31], at[54]); MULADD(at[32], at[53]); MULADD(at[33], at[52]); MULADD(at[34], at[51]); MULADD(at[35], at[50]); MULADD(at[36], at[49]); MULADD(at[37], at[48]); + COMBA_STORE(C->dp[37]); + /* 38 */ + COMBA_FORWARD; + MULADD(at[0], at[86]); MULADD(at[1], at[85]); MULADD(at[2], at[84]); MULADD(at[3], at[83]); MULADD(at[4], at[82]); MULADD(at[5], at[81]); MULADD(at[6], at[80]); MULADD(at[7], at[79]); MULADD(at[8], at[78]); MULADD(at[9], at[77]); MULADD(at[10], at[76]); MULADD(at[11], at[75]); MULADD(at[12], at[74]); MULADD(at[13], at[73]); MULADD(at[14], at[72]); MULADD(at[15], at[71]); MULADD(at[16], at[70]); MULADD(at[17], at[69]); MULADD(at[18], at[68]); MULADD(at[19], at[67]); MULADD(at[20], at[66]); MULADD(at[21], at[65]); MULADD(at[22], at[64]); MULADD(at[23], at[63]); MULADD(at[24], at[62]); MULADD(at[25], at[61]); MULADD(at[26], at[60]); MULADD(at[27], at[59]); MULADD(at[28], at[58]); MULADD(at[29], at[57]); MULADD(at[30], at[56]); MULADD(at[31], at[55]); MULADD(at[32], at[54]); MULADD(at[33], at[53]); MULADD(at[34], at[52]); MULADD(at[35], at[51]); MULADD(at[36], at[50]); MULADD(at[37], at[49]); MULADD(at[38], at[48]); + COMBA_STORE(C->dp[38]); + /* 39 */ + COMBA_FORWARD; + MULADD(at[0], at[87]); MULADD(at[1], at[86]); MULADD(at[2], at[85]); MULADD(at[3], at[84]); MULADD(at[4], at[83]); MULADD(at[5], at[82]); MULADD(at[6], at[81]); MULADD(at[7], at[80]); MULADD(at[8], at[79]); MULADD(at[9], at[78]); MULADD(at[10], at[77]); MULADD(at[11], at[76]); MULADD(at[12], at[75]); MULADD(at[13], at[74]); MULADD(at[14], at[73]); MULADD(at[15], at[72]); MULADD(at[16], at[71]); MULADD(at[17], at[70]); MULADD(at[18], at[69]); MULADD(at[19], at[68]); MULADD(at[20], at[67]); MULADD(at[21], at[66]); MULADD(at[22], at[65]); MULADD(at[23], at[64]); MULADD(at[24], at[63]); MULADD(at[25], at[62]); MULADD(at[26], at[61]); MULADD(at[27], at[60]); MULADD(at[28], at[59]); MULADD(at[29], at[58]); MULADD(at[30], at[57]); MULADD(at[31], at[56]); MULADD(at[32], at[55]); MULADD(at[33], at[54]); MULADD(at[34], at[53]); MULADD(at[35], at[52]); MULADD(at[36], at[51]); MULADD(at[37], at[50]); MULADD(at[38], at[49]); MULADD(at[39], at[48]); + COMBA_STORE(C->dp[39]); + /* 40 */ + COMBA_FORWARD; + MULADD(at[0], at[88]); MULADD(at[1], at[87]); MULADD(at[2], at[86]); MULADD(at[3], at[85]); MULADD(at[4], at[84]); MULADD(at[5], at[83]); MULADD(at[6], at[82]); MULADD(at[7], at[81]); MULADD(at[8], at[80]); MULADD(at[9], at[79]); MULADD(at[10], at[78]); MULADD(at[11], at[77]); MULADD(at[12], at[76]); MULADD(at[13], at[75]); MULADD(at[14], at[74]); MULADD(at[15], at[73]); MULADD(at[16], at[72]); MULADD(at[17], at[71]); MULADD(at[18], at[70]); MULADD(at[19], at[69]); MULADD(at[20], at[68]); MULADD(at[21], at[67]); MULADD(at[22], at[66]); MULADD(at[23], at[65]); MULADD(at[24], at[64]); MULADD(at[25], at[63]); MULADD(at[26], at[62]); MULADD(at[27], at[61]); MULADD(at[28], at[60]); MULADD(at[29], at[59]); MULADD(at[30], at[58]); MULADD(at[31], at[57]); MULADD(at[32], at[56]); MULADD(at[33], at[55]); MULADD(at[34], at[54]); MULADD(at[35], at[53]); MULADD(at[36], at[52]); MULADD(at[37], at[51]); MULADD(at[38], at[50]); MULADD(at[39], at[49]); MULADD(at[40], at[48]); + COMBA_STORE(C->dp[40]); + /* 41 */ + COMBA_FORWARD; + MULADD(at[0], at[89]); MULADD(at[1], at[88]); MULADD(at[2], at[87]); MULADD(at[3], at[86]); MULADD(at[4], at[85]); MULADD(at[5], at[84]); MULADD(at[6], at[83]); MULADD(at[7], at[82]); MULADD(at[8], at[81]); MULADD(at[9], at[80]); MULADD(at[10], at[79]); MULADD(at[11], at[78]); MULADD(at[12], at[77]); MULADD(at[13], at[76]); MULADD(at[14], at[75]); MULADD(at[15], at[74]); MULADD(at[16], at[73]); MULADD(at[17], at[72]); MULADD(at[18], at[71]); MULADD(at[19], at[70]); MULADD(at[20], at[69]); MULADD(at[21], at[68]); MULADD(at[22], at[67]); MULADD(at[23], at[66]); MULADD(at[24], at[65]); MULADD(at[25], at[64]); MULADD(at[26], at[63]); MULADD(at[27], at[62]); MULADD(at[28], at[61]); MULADD(at[29], at[60]); MULADD(at[30], at[59]); MULADD(at[31], at[58]); MULADD(at[32], at[57]); MULADD(at[33], at[56]); MULADD(at[34], at[55]); MULADD(at[35], at[54]); MULADD(at[36], at[53]); MULADD(at[37], at[52]); MULADD(at[38], at[51]); MULADD(at[39], at[50]); MULADD(at[40], at[49]); MULADD(at[41], at[48]); + COMBA_STORE(C->dp[41]); + /* 42 */ + COMBA_FORWARD; + MULADD(at[0], at[90]); MULADD(at[1], at[89]); MULADD(at[2], at[88]); MULADD(at[3], at[87]); MULADD(at[4], at[86]); MULADD(at[5], at[85]); MULADD(at[6], at[84]); MULADD(at[7], at[83]); MULADD(at[8], at[82]); MULADD(at[9], at[81]); MULADD(at[10], at[80]); MULADD(at[11], at[79]); MULADD(at[12], at[78]); MULADD(at[13], at[77]); MULADD(at[14], at[76]); MULADD(at[15], at[75]); MULADD(at[16], at[74]); MULADD(at[17], at[73]); MULADD(at[18], at[72]); MULADD(at[19], at[71]); MULADD(at[20], at[70]); MULADD(at[21], at[69]); MULADD(at[22], at[68]); MULADD(at[23], at[67]); MULADD(at[24], at[66]); MULADD(at[25], at[65]); MULADD(at[26], at[64]); MULADD(at[27], at[63]); MULADD(at[28], at[62]); MULADD(at[29], at[61]); MULADD(at[30], at[60]); MULADD(at[31], at[59]); MULADD(at[32], at[58]); MULADD(at[33], at[57]); MULADD(at[34], at[56]); MULADD(at[35], at[55]); MULADD(at[36], at[54]); MULADD(at[37], at[53]); MULADD(at[38], at[52]); MULADD(at[39], at[51]); MULADD(at[40], at[50]); MULADD(at[41], at[49]); MULADD(at[42], at[48]); + COMBA_STORE(C->dp[42]); + /* 43 */ + COMBA_FORWARD; + MULADD(at[0], at[91]); MULADD(at[1], at[90]); MULADD(at[2], at[89]); MULADD(at[3], at[88]); MULADD(at[4], at[87]); MULADD(at[5], at[86]); MULADD(at[6], at[85]); MULADD(at[7], at[84]); MULADD(at[8], at[83]); MULADD(at[9], at[82]); MULADD(at[10], at[81]); MULADD(at[11], at[80]); MULADD(at[12], at[79]); MULADD(at[13], at[78]); MULADD(at[14], at[77]); MULADD(at[15], at[76]); MULADD(at[16], at[75]); MULADD(at[17], at[74]); MULADD(at[18], at[73]); MULADD(at[19], at[72]); MULADD(at[20], at[71]); MULADD(at[21], at[70]); MULADD(at[22], at[69]); MULADD(at[23], at[68]); MULADD(at[24], at[67]); MULADD(at[25], at[66]); MULADD(at[26], at[65]); MULADD(at[27], at[64]); MULADD(at[28], at[63]); MULADD(at[29], at[62]); MULADD(at[30], at[61]); MULADD(at[31], at[60]); MULADD(at[32], at[59]); MULADD(at[33], at[58]); MULADD(at[34], at[57]); MULADD(at[35], at[56]); MULADD(at[36], at[55]); MULADD(at[37], at[54]); MULADD(at[38], at[53]); MULADD(at[39], at[52]); MULADD(at[40], at[51]); MULADD(at[41], at[50]); MULADD(at[42], at[49]); MULADD(at[43], at[48]); + COMBA_STORE(C->dp[43]); + /* 44 */ + COMBA_FORWARD; + MULADD(at[0], at[92]); MULADD(at[1], at[91]); MULADD(at[2], at[90]); MULADD(at[3], at[89]); MULADD(at[4], at[88]); MULADD(at[5], at[87]); MULADD(at[6], at[86]); MULADD(at[7], at[85]); MULADD(at[8], at[84]); MULADD(at[9], at[83]); MULADD(at[10], at[82]); MULADD(at[11], at[81]); MULADD(at[12], at[80]); MULADD(at[13], at[79]); MULADD(at[14], at[78]); MULADD(at[15], at[77]); MULADD(at[16], at[76]); MULADD(at[17], at[75]); MULADD(at[18], at[74]); MULADD(at[19], at[73]); MULADD(at[20], at[72]); MULADD(at[21], at[71]); MULADD(at[22], at[70]); MULADD(at[23], at[69]); MULADD(at[24], at[68]); MULADD(at[25], at[67]); MULADD(at[26], at[66]); MULADD(at[27], at[65]); MULADD(at[28], at[64]); MULADD(at[29], at[63]); MULADD(at[30], at[62]); MULADD(at[31], at[61]); MULADD(at[32], at[60]); MULADD(at[33], at[59]); MULADD(at[34], at[58]); MULADD(at[35], at[57]); MULADD(at[36], at[56]); MULADD(at[37], at[55]); MULADD(at[38], at[54]); MULADD(at[39], at[53]); MULADD(at[40], at[52]); MULADD(at[41], at[51]); MULADD(at[42], at[50]); MULADD(at[43], at[49]); MULADD(at[44], at[48]); + COMBA_STORE(C->dp[44]); + /* 45 */ + COMBA_FORWARD; + MULADD(at[0], at[93]); MULADD(at[1], at[92]); MULADD(at[2], at[91]); MULADD(at[3], at[90]); MULADD(at[4], at[89]); MULADD(at[5], at[88]); MULADD(at[6], at[87]); MULADD(at[7], at[86]); MULADD(at[8], at[85]); MULADD(at[9], at[84]); MULADD(at[10], at[83]); MULADD(at[11], at[82]); MULADD(at[12], at[81]); MULADD(at[13], at[80]); MULADD(at[14], at[79]); MULADD(at[15], at[78]); MULADD(at[16], at[77]); MULADD(at[17], at[76]); MULADD(at[18], at[75]); MULADD(at[19], at[74]); MULADD(at[20], at[73]); MULADD(at[21], at[72]); MULADD(at[22], at[71]); MULADD(at[23], at[70]); MULADD(at[24], at[69]); MULADD(at[25], at[68]); MULADD(at[26], at[67]); MULADD(at[27], at[66]); MULADD(at[28], at[65]); MULADD(at[29], at[64]); MULADD(at[30], at[63]); MULADD(at[31], at[62]); MULADD(at[32], at[61]); MULADD(at[33], at[60]); MULADD(at[34], at[59]); MULADD(at[35], at[58]); MULADD(at[36], at[57]); MULADD(at[37], at[56]); MULADD(at[38], at[55]); MULADD(at[39], at[54]); MULADD(at[40], at[53]); MULADD(at[41], at[52]); MULADD(at[42], at[51]); MULADD(at[43], at[50]); MULADD(at[44], at[49]); MULADD(at[45], at[48]); + COMBA_STORE(C->dp[45]); + /* 46 */ + COMBA_FORWARD; + MULADD(at[0], at[94]); MULADD(at[1], at[93]); MULADD(at[2], at[92]); MULADD(at[3], at[91]); MULADD(at[4], at[90]); MULADD(at[5], at[89]); MULADD(at[6], at[88]); MULADD(at[7], at[87]); MULADD(at[8], at[86]); MULADD(at[9], at[85]); MULADD(at[10], at[84]); MULADD(at[11], at[83]); MULADD(at[12], at[82]); MULADD(at[13], at[81]); MULADD(at[14], at[80]); MULADD(at[15], at[79]); MULADD(at[16], at[78]); MULADD(at[17], at[77]); MULADD(at[18], at[76]); MULADD(at[19], at[75]); MULADD(at[20], at[74]); MULADD(at[21], at[73]); MULADD(at[22], at[72]); MULADD(at[23], at[71]); MULADD(at[24], at[70]); MULADD(at[25], at[69]); MULADD(at[26], at[68]); MULADD(at[27], at[67]); MULADD(at[28], at[66]); MULADD(at[29], at[65]); MULADD(at[30], at[64]); MULADD(at[31], at[63]); MULADD(at[32], at[62]); MULADD(at[33], at[61]); MULADD(at[34], at[60]); MULADD(at[35], at[59]); MULADD(at[36], at[58]); MULADD(at[37], at[57]); MULADD(at[38], at[56]); MULADD(at[39], at[55]); MULADD(at[40], at[54]); MULADD(at[41], at[53]); MULADD(at[42], at[52]); MULADD(at[43], at[51]); MULADD(at[44], at[50]); MULADD(at[45], at[49]); MULADD(at[46], at[48]); + COMBA_STORE(C->dp[46]); + /* 47 */ + COMBA_FORWARD; + MULADD(at[0], at[95]); MULADD(at[1], at[94]); MULADD(at[2], at[93]); MULADD(at[3], at[92]); MULADD(at[4], at[91]); MULADD(at[5], at[90]); MULADD(at[6], at[89]); MULADD(at[7], at[88]); MULADD(at[8], at[87]); MULADD(at[9], at[86]); MULADD(at[10], at[85]); MULADD(at[11], at[84]); MULADD(at[12], at[83]); MULADD(at[13], at[82]); MULADD(at[14], at[81]); MULADD(at[15], at[80]); MULADD(at[16], at[79]); MULADD(at[17], at[78]); MULADD(at[18], at[77]); MULADD(at[19], at[76]); MULADD(at[20], at[75]); MULADD(at[21], at[74]); MULADD(at[22], at[73]); MULADD(at[23], at[72]); MULADD(at[24], at[71]); MULADD(at[25], at[70]); MULADD(at[26], at[69]); MULADD(at[27], at[68]); MULADD(at[28], at[67]); MULADD(at[29], at[66]); MULADD(at[30], at[65]); MULADD(at[31], at[64]); MULADD(at[32], at[63]); MULADD(at[33], at[62]); MULADD(at[34], at[61]); MULADD(at[35], at[60]); MULADD(at[36], at[59]); MULADD(at[37], at[58]); MULADD(at[38], at[57]); MULADD(at[39], at[56]); MULADD(at[40], at[55]); MULADD(at[41], at[54]); MULADD(at[42], at[53]); MULADD(at[43], at[52]); MULADD(at[44], at[51]); MULADD(at[45], at[50]); MULADD(at[46], at[49]); MULADD(at[47], at[48]); + COMBA_STORE(C->dp[47]); + /* 48 */ + COMBA_FORWARD; + MULADD(at[1], at[95]); MULADD(at[2], at[94]); MULADD(at[3], at[93]); MULADD(at[4], at[92]); MULADD(at[5], at[91]); MULADD(at[6], at[90]); MULADD(at[7], at[89]); MULADD(at[8], at[88]); MULADD(at[9], at[87]); MULADD(at[10], at[86]); MULADD(at[11], at[85]); MULADD(at[12], at[84]); MULADD(at[13], at[83]); MULADD(at[14], at[82]); MULADD(at[15], at[81]); MULADD(at[16], at[80]); MULADD(at[17], at[79]); MULADD(at[18], at[78]); MULADD(at[19], at[77]); MULADD(at[20], at[76]); MULADD(at[21], at[75]); MULADD(at[22], at[74]); MULADD(at[23], at[73]); MULADD(at[24], at[72]); MULADD(at[25], at[71]); MULADD(at[26], at[70]); MULADD(at[27], at[69]); MULADD(at[28], at[68]); MULADD(at[29], at[67]); MULADD(at[30], at[66]); MULADD(at[31], at[65]); MULADD(at[32], at[64]); MULADD(at[33], at[63]); MULADD(at[34], at[62]); MULADD(at[35], at[61]); MULADD(at[36], at[60]); MULADD(at[37], at[59]); MULADD(at[38], at[58]); MULADD(at[39], at[57]); MULADD(at[40], at[56]); MULADD(at[41], at[55]); MULADD(at[42], at[54]); MULADD(at[43], at[53]); MULADD(at[44], at[52]); MULADD(at[45], at[51]); MULADD(at[46], at[50]); MULADD(at[47], at[49]); + COMBA_STORE(C->dp[48]); + /* 49 */ + COMBA_FORWARD; + MULADD(at[2], at[95]); MULADD(at[3], at[94]); MULADD(at[4], at[93]); MULADD(at[5], at[92]); MULADD(at[6], at[91]); MULADD(at[7], at[90]); MULADD(at[8], at[89]); MULADD(at[9], at[88]); MULADD(at[10], at[87]); MULADD(at[11], at[86]); MULADD(at[12], at[85]); MULADD(at[13], at[84]); MULADD(at[14], at[83]); MULADD(at[15], at[82]); MULADD(at[16], at[81]); MULADD(at[17], at[80]); MULADD(at[18], at[79]); MULADD(at[19], at[78]); MULADD(at[20], at[77]); MULADD(at[21], at[76]); MULADD(at[22], at[75]); MULADD(at[23], at[74]); MULADD(at[24], at[73]); MULADD(at[25], at[72]); MULADD(at[26], at[71]); MULADD(at[27], at[70]); MULADD(at[28], at[69]); MULADD(at[29], at[68]); MULADD(at[30], at[67]); MULADD(at[31], at[66]); MULADD(at[32], at[65]); MULADD(at[33], at[64]); MULADD(at[34], at[63]); MULADD(at[35], at[62]); MULADD(at[36], at[61]); MULADD(at[37], at[60]); MULADD(at[38], at[59]); MULADD(at[39], at[58]); MULADD(at[40], at[57]); MULADD(at[41], at[56]); MULADD(at[42], at[55]); MULADD(at[43], at[54]); MULADD(at[44], at[53]); MULADD(at[45], at[52]); MULADD(at[46], at[51]); MULADD(at[47], at[50]); + COMBA_STORE(C->dp[49]); + /* 50 */ + COMBA_FORWARD; + MULADD(at[3], at[95]); MULADD(at[4], at[94]); MULADD(at[5], at[93]); MULADD(at[6], at[92]); MULADD(at[7], at[91]); MULADD(at[8], at[90]); MULADD(at[9], at[89]); MULADD(at[10], at[88]); MULADD(at[11], at[87]); MULADD(at[12], at[86]); MULADD(at[13], at[85]); MULADD(at[14], at[84]); MULADD(at[15], at[83]); MULADD(at[16], at[82]); MULADD(at[17], at[81]); MULADD(at[18], at[80]); MULADD(at[19], at[79]); MULADD(at[20], at[78]); MULADD(at[21], at[77]); MULADD(at[22], at[76]); MULADD(at[23], at[75]); MULADD(at[24], at[74]); MULADD(at[25], at[73]); MULADD(at[26], at[72]); MULADD(at[27], at[71]); MULADD(at[28], at[70]); MULADD(at[29], at[69]); MULADD(at[30], at[68]); MULADD(at[31], at[67]); MULADD(at[32], at[66]); MULADD(at[33], at[65]); MULADD(at[34], at[64]); MULADD(at[35], at[63]); MULADD(at[36], at[62]); MULADD(at[37], at[61]); MULADD(at[38], at[60]); MULADD(at[39], at[59]); MULADD(at[40], at[58]); MULADD(at[41], at[57]); MULADD(at[42], at[56]); MULADD(at[43], at[55]); MULADD(at[44], at[54]); MULADD(at[45], at[53]); MULADD(at[46], at[52]); MULADD(at[47], at[51]); + COMBA_STORE(C->dp[50]); + /* 51 */ + COMBA_FORWARD; + MULADD(at[4], at[95]); MULADD(at[5], at[94]); MULADD(at[6], at[93]); MULADD(at[7], at[92]); MULADD(at[8], at[91]); MULADD(at[9], at[90]); MULADD(at[10], at[89]); MULADD(at[11], at[88]); MULADD(at[12], at[87]); MULADD(at[13], at[86]); MULADD(at[14], at[85]); MULADD(at[15], at[84]); MULADD(at[16], at[83]); MULADD(at[17], at[82]); MULADD(at[18], at[81]); MULADD(at[19], at[80]); MULADD(at[20], at[79]); MULADD(at[21], at[78]); MULADD(at[22], at[77]); MULADD(at[23], at[76]); MULADD(at[24], at[75]); MULADD(at[25], at[74]); MULADD(at[26], at[73]); MULADD(at[27], at[72]); MULADD(at[28], at[71]); MULADD(at[29], at[70]); MULADD(at[30], at[69]); MULADD(at[31], at[68]); MULADD(at[32], at[67]); MULADD(at[33], at[66]); MULADD(at[34], at[65]); MULADD(at[35], at[64]); MULADD(at[36], at[63]); MULADD(at[37], at[62]); MULADD(at[38], at[61]); MULADD(at[39], at[60]); MULADD(at[40], at[59]); MULADD(at[41], at[58]); MULADD(at[42], at[57]); MULADD(at[43], at[56]); MULADD(at[44], at[55]); MULADD(at[45], at[54]); MULADD(at[46], at[53]); MULADD(at[47], at[52]); + COMBA_STORE(C->dp[51]); + /* 52 */ + COMBA_FORWARD; + MULADD(at[5], at[95]); MULADD(at[6], at[94]); MULADD(at[7], at[93]); MULADD(at[8], at[92]); MULADD(at[9], at[91]); MULADD(at[10], at[90]); MULADD(at[11], at[89]); MULADD(at[12], at[88]); MULADD(at[13], at[87]); MULADD(at[14], at[86]); MULADD(at[15], at[85]); MULADD(at[16], at[84]); MULADD(at[17], at[83]); MULADD(at[18], at[82]); MULADD(at[19], at[81]); MULADD(at[20], at[80]); MULADD(at[21], at[79]); MULADD(at[22], at[78]); MULADD(at[23], at[77]); MULADD(at[24], at[76]); MULADD(at[25], at[75]); MULADD(at[26], at[74]); MULADD(at[27], at[73]); MULADD(at[28], at[72]); MULADD(at[29], at[71]); MULADD(at[30], at[70]); MULADD(at[31], at[69]); MULADD(at[32], at[68]); MULADD(at[33], at[67]); MULADD(at[34], at[66]); MULADD(at[35], at[65]); MULADD(at[36], at[64]); MULADD(at[37], at[63]); MULADD(at[38], at[62]); MULADD(at[39], at[61]); MULADD(at[40], at[60]); MULADD(at[41], at[59]); MULADD(at[42], at[58]); MULADD(at[43], at[57]); MULADD(at[44], at[56]); MULADD(at[45], at[55]); MULADD(at[46], at[54]); MULADD(at[47], at[53]); + COMBA_STORE(C->dp[52]); + /* 53 */ + COMBA_FORWARD; + MULADD(at[6], at[95]); MULADD(at[7], at[94]); MULADD(at[8], at[93]); MULADD(at[9], at[92]); MULADD(at[10], at[91]); MULADD(at[11], at[90]); MULADD(at[12], at[89]); MULADD(at[13], at[88]); MULADD(at[14], at[87]); MULADD(at[15], at[86]); MULADD(at[16], at[85]); MULADD(at[17], at[84]); MULADD(at[18], at[83]); MULADD(at[19], at[82]); MULADD(at[20], at[81]); MULADD(at[21], at[80]); MULADD(at[22], at[79]); MULADD(at[23], at[78]); MULADD(at[24], at[77]); MULADD(at[25], at[76]); MULADD(at[26], at[75]); MULADD(at[27], at[74]); MULADD(at[28], at[73]); MULADD(at[29], at[72]); MULADD(at[30], at[71]); MULADD(at[31], at[70]); MULADD(at[32], at[69]); MULADD(at[33], at[68]); MULADD(at[34], at[67]); MULADD(at[35], at[66]); MULADD(at[36], at[65]); MULADD(at[37], at[64]); MULADD(at[38], at[63]); MULADD(at[39], at[62]); MULADD(at[40], at[61]); MULADD(at[41], at[60]); MULADD(at[42], at[59]); MULADD(at[43], at[58]); MULADD(at[44], at[57]); MULADD(at[45], at[56]); MULADD(at[46], at[55]); MULADD(at[47], at[54]); + COMBA_STORE(C->dp[53]); + /* 54 */ + COMBA_FORWARD; + MULADD(at[7], at[95]); MULADD(at[8], at[94]); MULADD(at[9], at[93]); MULADD(at[10], at[92]); MULADD(at[11], at[91]); MULADD(at[12], at[90]); MULADD(at[13], at[89]); MULADD(at[14], at[88]); MULADD(at[15], at[87]); MULADD(at[16], at[86]); MULADD(at[17], at[85]); MULADD(at[18], at[84]); MULADD(at[19], at[83]); MULADD(at[20], at[82]); MULADD(at[21], at[81]); MULADD(at[22], at[80]); MULADD(at[23], at[79]); MULADD(at[24], at[78]); MULADD(at[25], at[77]); MULADD(at[26], at[76]); MULADD(at[27], at[75]); MULADD(at[28], at[74]); MULADD(at[29], at[73]); MULADD(at[30], at[72]); MULADD(at[31], at[71]); MULADD(at[32], at[70]); MULADD(at[33], at[69]); MULADD(at[34], at[68]); MULADD(at[35], at[67]); MULADD(at[36], at[66]); MULADD(at[37], at[65]); MULADD(at[38], at[64]); MULADD(at[39], at[63]); MULADD(at[40], at[62]); MULADD(at[41], at[61]); MULADD(at[42], at[60]); MULADD(at[43], at[59]); MULADD(at[44], at[58]); MULADD(at[45], at[57]); MULADD(at[46], at[56]); MULADD(at[47], at[55]); + COMBA_STORE(C->dp[54]); + /* 55 */ + COMBA_FORWARD; + MULADD(at[8], at[95]); MULADD(at[9], at[94]); MULADD(at[10], at[93]); MULADD(at[11], at[92]); MULADD(at[12], at[91]); MULADD(at[13], at[90]); MULADD(at[14], at[89]); MULADD(at[15], at[88]); MULADD(at[16], at[87]); MULADD(at[17], at[86]); MULADD(at[18], at[85]); MULADD(at[19], at[84]); MULADD(at[20], at[83]); MULADD(at[21], at[82]); MULADD(at[22], at[81]); MULADD(at[23], at[80]); MULADD(at[24], at[79]); MULADD(at[25], at[78]); MULADD(at[26], at[77]); MULADD(at[27], at[76]); MULADD(at[28], at[75]); MULADD(at[29], at[74]); MULADD(at[30], at[73]); MULADD(at[31], at[72]); MULADD(at[32], at[71]); MULADD(at[33], at[70]); MULADD(at[34], at[69]); MULADD(at[35], at[68]); MULADD(at[36], at[67]); MULADD(at[37], at[66]); MULADD(at[38], at[65]); MULADD(at[39], at[64]); MULADD(at[40], at[63]); MULADD(at[41], at[62]); MULADD(at[42], at[61]); MULADD(at[43], at[60]); MULADD(at[44], at[59]); MULADD(at[45], at[58]); MULADD(at[46], at[57]); MULADD(at[47], at[56]); + COMBA_STORE(C->dp[55]); + /* 56 */ + COMBA_FORWARD; + MULADD(at[9], at[95]); MULADD(at[10], at[94]); MULADD(at[11], at[93]); MULADD(at[12], at[92]); MULADD(at[13], at[91]); MULADD(at[14], at[90]); MULADD(at[15], at[89]); MULADD(at[16], at[88]); MULADD(at[17], at[87]); MULADD(at[18], at[86]); MULADD(at[19], at[85]); MULADD(at[20], at[84]); MULADD(at[21], at[83]); MULADD(at[22], at[82]); MULADD(at[23], at[81]); MULADD(at[24], at[80]); MULADD(at[25], at[79]); MULADD(at[26], at[78]); MULADD(at[27], at[77]); MULADD(at[28], at[76]); MULADD(at[29], at[75]); MULADD(at[30], at[74]); MULADD(at[31], at[73]); MULADD(at[32], at[72]); MULADD(at[33], at[71]); MULADD(at[34], at[70]); MULADD(at[35], at[69]); MULADD(at[36], at[68]); MULADD(at[37], at[67]); MULADD(at[38], at[66]); MULADD(at[39], at[65]); MULADD(at[40], at[64]); MULADD(at[41], at[63]); MULADD(at[42], at[62]); MULADD(at[43], at[61]); MULADD(at[44], at[60]); MULADD(at[45], at[59]); MULADD(at[46], at[58]); MULADD(at[47], at[57]); + COMBA_STORE(C->dp[56]); + /* 57 */ + COMBA_FORWARD; + MULADD(at[10], at[95]); MULADD(at[11], at[94]); MULADD(at[12], at[93]); MULADD(at[13], at[92]); MULADD(at[14], at[91]); MULADD(at[15], at[90]); MULADD(at[16], at[89]); MULADD(at[17], at[88]); MULADD(at[18], at[87]); MULADD(at[19], at[86]); MULADD(at[20], at[85]); MULADD(at[21], at[84]); MULADD(at[22], at[83]); MULADD(at[23], at[82]); MULADD(at[24], at[81]); MULADD(at[25], at[80]); MULADD(at[26], at[79]); MULADD(at[27], at[78]); MULADD(at[28], at[77]); MULADD(at[29], at[76]); MULADD(at[30], at[75]); MULADD(at[31], at[74]); MULADD(at[32], at[73]); MULADD(at[33], at[72]); MULADD(at[34], at[71]); MULADD(at[35], at[70]); MULADD(at[36], at[69]); MULADD(at[37], at[68]); MULADD(at[38], at[67]); MULADD(at[39], at[66]); MULADD(at[40], at[65]); MULADD(at[41], at[64]); MULADD(at[42], at[63]); MULADD(at[43], at[62]); MULADD(at[44], at[61]); MULADD(at[45], at[60]); MULADD(at[46], at[59]); MULADD(at[47], at[58]); + COMBA_STORE(C->dp[57]); + /* 58 */ + COMBA_FORWARD; + MULADD(at[11], at[95]); MULADD(at[12], at[94]); MULADD(at[13], at[93]); MULADD(at[14], at[92]); MULADD(at[15], at[91]); MULADD(at[16], at[90]); MULADD(at[17], at[89]); MULADD(at[18], at[88]); MULADD(at[19], at[87]); MULADD(at[20], at[86]); MULADD(at[21], at[85]); MULADD(at[22], at[84]); MULADD(at[23], at[83]); MULADD(at[24], at[82]); MULADD(at[25], at[81]); MULADD(at[26], at[80]); MULADD(at[27], at[79]); MULADD(at[28], at[78]); MULADD(at[29], at[77]); MULADD(at[30], at[76]); MULADD(at[31], at[75]); MULADD(at[32], at[74]); MULADD(at[33], at[73]); MULADD(at[34], at[72]); MULADD(at[35], at[71]); MULADD(at[36], at[70]); MULADD(at[37], at[69]); MULADD(at[38], at[68]); MULADD(at[39], at[67]); MULADD(at[40], at[66]); MULADD(at[41], at[65]); MULADD(at[42], at[64]); MULADD(at[43], at[63]); MULADD(at[44], at[62]); MULADD(at[45], at[61]); MULADD(at[46], at[60]); MULADD(at[47], at[59]); + COMBA_STORE(C->dp[58]); + /* 59 */ + COMBA_FORWARD; + MULADD(at[12], at[95]); MULADD(at[13], at[94]); MULADD(at[14], at[93]); MULADD(at[15], at[92]); MULADD(at[16], at[91]); MULADD(at[17], at[90]); MULADD(at[18], at[89]); MULADD(at[19], at[88]); MULADD(at[20], at[87]); MULADD(at[21], at[86]); MULADD(at[22], at[85]); MULADD(at[23], at[84]); MULADD(at[24], at[83]); MULADD(at[25], at[82]); MULADD(at[26], at[81]); MULADD(at[27], at[80]); MULADD(at[28], at[79]); MULADD(at[29], at[78]); MULADD(at[30], at[77]); MULADD(at[31], at[76]); MULADD(at[32], at[75]); MULADD(at[33], at[74]); MULADD(at[34], at[73]); MULADD(at[35], at[72]); MULADD(at[36], at[71]); MULADD(at[37], at[70]); MULADD(at[38], at[69]); MULADD(at[39], at[68]); MULADD(at[40], at[67]); MULADD(at[41], at[66]); MULADD(at[42], at[65]); MULADD(at[43], at[64]); MULADD(at[44], at[63]); MULADD(at[45], at[62]); MULADD(at[46], at[61]); MULADD(at[47], at[60]); + COMBA_STORE(C->dp[59]); + /* 60 */ + COMBA_FORWARD; + MULADD(at[13], at[95]); MULADD(at[14], at[94]); MULADD(at[15], at[93]); MULADD(at[16], at[92]); MULADD(at[17], at[91]); MULADD(at[18], at[90]); MULADD(at[19], at[89]); MULADD(at[20], at[88]); MULADD(at[21], at[87]); MULADD(at[22], at[86]); MULADD(at[23], at[85]); MULADD(at[24], at[84]); MULADD(at[25], at[83]); MULADD(at[26], at[82]); MULADD(at[27], at[81]); MULADD(at[28], at[80]); MULADD(at[29], at[79]); MULADD(at[30], at[78]); MULADD(at[31], at[77]); MULADD(at[32], at[76]); MULADD(at[33], at[75]); MULADD(at[34], at[74]); MULADD(at[35], at[73]); MULADD(at[36], at[72]); MULADD(at[37], at[71]); MULADD(at[38], at[70]); MULADD(at[39], at[69]); MULADD(at[40], at[68]); MULADD(at[41], at[67]); MULADD(at[42], at[66]); MULADD(at[43], at[65]); MULADD(at[44], at[64]); MULADD(at[45], at[63]); MULADD(at[46], at[62]); MULADD(at[47], at[61]); + COMBA_STORE(C->dp[60]); + /* 61 */ + COMBA_FORWARD; + MULADD(at[14], at[95]); MULADD(at[15], at[94]); MULADD(at[16], at[93]); MULADD(at[17], at[92]); MULADD(at[18], at[91]); MULADD(at[19], at[90]); MULADD(at[20], at[89]); MULADD(at[21], at[88]); MULADD(at[22], at[87]); MULADD(at[23], at[86]); MULADD(at[24], at[85]); MULADD(at[25], at[84]); MULADD(at[26], at[83]); MULADD(at[27], at[82]); MULADD(at[28], at[81]); MULADD(at[29], at[80]); MULADD(at[30], at[79]); MULADD(at[31], at[78]); MULADD(at[32], at[77]); MULADD(at[33], at[76]); MULADD(at[34], at[75]); MULADD(at[35], at[74]); MULADD(at[36], at[73]); MULADD(at[37], at[72]); MULADD(at[38], at[71]); MULADD(at[39], at[70]); MULADD(at[40], at[69]); MULADD(at[41], at[68]); MULADD(at[42], at[67]); MULADD(at[43], at[66]); MULADD(at[44], at[65]); MULADD(at[45], at[64]); MULADD(at[46], at[63]); MULADD(at[47], at[62]); + COMBA_STORE(C->dp[61]); + /* 62 */ + COMBA_FORWARD; + MULADD(at[15], at[95]); MULADD(at[16], at[94]); MULADD(at[17], at[93]); MULADD(at[18], at[92]); MULADD(at[19], at[91]); MULADD(at[20], at[90]); MULADD(at[21], at[89]); MULADD(at[22], at[88]); MULADD(at[23], at[87]); MULADD(at[24], at[86]); MULADD(at[25], at[85]); MULADD(at[26], at[84]); MULADD(at[27], at[83]); MULADD(at[28], at[82]); MULADD(at[29], at[81]); MULADD(at[30], at[80]); MULADD(at[31], at[79]); MULADD(at[32], at[78]); MULADD(at[33], at[77]); MULADD(at[34], at[76]); MULADD(at[35], at[75]); MULADD(at[36], at[74]); MULADD(at[37], at[73]); MULADD(at[38], at[72]); MULADD(at[39], at[71]); MULADD(at[40], at[70]); MULADD(at[41], at[69]); MULADD(at[42], at[68]); MULADD(at[43], at[67]); MULADD(at[44], at[66]); MULADD(at[45], at[65]); MULADD(at[46], at[64]); MULADD(at[47], at[63]); + COMBA_STORE(C->dp[62]); + /* 63 */ + COMBA_FORWARD; + MULADD(at[16], at[95]); MULADD(at[17], at[94]); MULADD(at[18], at[93]); MULADD(at[19], at[92]); MULADD(at[20], at[91]); MULADD(at[21], at[90]); MULADD(at[22], at[89]); MULADD(at[23], at[88]); MULADD(at[24], at[87]); MULADD(at[25], at[86]); MULADD(at[26], at[85]); MULADD(at[27], at[84]); MULADD(at[28], at[83]); MULADD(at[29], at[82]); MULADD(at[30], at[81]); MULADD(at[31], at[80]); MULADD(at[32], at[79]); MULADD(at[33], at[78]); MULADD(at[34], at[77]); MULADD(at[35], at[76]); MULADD(at[36], at[75]); MULADD(at[37], at[74]); MULADD(at[38], at[73]); MULADD(at[39], at[72]); MULADD(at[40], at[71]); MULADD(at[41], at[70]); MULADD(at[42], at[69]); MULADD(at[43], at[68]); MULADD(at[44], at[67]); MULADD(at[45], at[66]); MULADD(at[46], at[65]); MULADD(at[47], at[64]); + COMBA_STORE(C->dp[63]); + /* 64 */ + COMBA_FORWARD; + MULADD(at[17], at[95]); MULADD(at[18], at[94]); MULADD(at[19], at[93]); MULADD(at[20], at[92]); MULADD(at[21], at[91]); MULADD(at[22], at[90]); MULADD(at[23], at[89]); MULADD(at[24], at[88]); MULADD(at[25], at[87]); MULADD(at[26], at[86]); MULADD(at[27], at[85]); MULADD(at[28], at[84]); MULADD(at[29], at[83]); MULADD(at[30], at[82]); MULADD(at[31], at[81]); MULADD(at[32], at[80]); MULADD(at[33], at[79]); MULADD(at[34], at[78]); MULADD(at[35], at[77]); MULADD(at[36], at[76]); MULADD(at[37], at[75]); MULADD(at[38], at[74]); MULADD(at[39], at[73]); MULADD(at[40], at[72]); MULADD(at[41], at[71]); MULADD(at[42], at[70]); MULADD(at[43], at[69]); MULADD(at[44], at[68]); MULADD(at[45], at[67]); MULADD(at[46], at[66]); MULADD(at[47], at[65]); + COMBA_STORE(C->dp[64]); + /* 65 */ + COMBA_FORWARD; + MULADD(at[18], at[95]); MULADD(at[19], at[94]); MULADD(at[20], at[93]); MULADD(at[21], at[92]); MULADD(at[22], at[91]); MULADD(at[23], at[90]); MULADD(at[24], at[89]); MULADD(at[25], at[88]); MULADD(at[26], at[87]); MULADD(at[27], at[86]); MULADD(at[28], at[85]); MULADD(at[29], at[84]); MULADD(at[30], at[83]); MULADD(at[31], at[82]); MULADD(at[32], at[81]); MULADD(at[33], at[80]); MULADD(at[34], at[79]); MULADD(at[35], at[78]); MULADD(at[36], at[77]); MULADD(at[37], at[76]); MULADD(at[38], at[75]); MULADD(at[39], at[74]); MULADD(at[40], at[73]); MULADD(at[41], at[72]); MULADD(at[42], at[71]); MULADD(at[43], at[70]); MULADD(at[44], at[69]); MULADD(at[45], at[68]); MULADD(at[46], at[67]); MULADD(at[47], at[66]); + COMBA_STORE(C->dp[65]); + /* 66 */ + COMBA_FORWARD; + MULADD(at[19], at[95]); MULADD(at[20], at[94]); MULADD(at[21], at[93]); MULADD(at[22], at[92]); MULADD(at[23], at[91]); MULADD(at[24], at[90]); MULADD(at[25], at[89]); MULADD(at[26], at[88]); MULADD(at[27], at[87]); MULADD(at[28], at[86]); MULADD(at[29], at[85]); MULADD(at[30], at[84]); MULADD(at[31], at[83]); MULADD(at[32], at[82]); MULADD(at[33], at[81]); MULADD(at[34], at[80]); MULADD(at[35], at[79]); MULADD(at[36], at[78]); MULADD(at[37], at[77]); MULADD(at[38], at[76]); MULADD(at[39], at[75]); MULADD(at[40], at[74]); MULADD(at[41], at[73]); MULADD(at[42], at[72]); MULADD(at[43], at[71]); MULADD(at[44], at[70]); MULADD(at[45], at[69]); MULADD(at[46], at[68]); MULADD(at[47], at[67]); + COMBA_STORE(C->dp[66]); + /* 67 */ + COMBA_FORWARD; + MULADD(at[20], at[95]); MULADD(at[21], at[94]); MULADD(at[22], at[93]); MULADD(at[23], at[92]); MULADD(at[24], at[91]); MULADD(at[25], at[90]); MULADD(at[26], at[89]); MULADD(at[27], at[88]); MULADD(at[28], at[87]); MULADD(at[29], at[86]); MULADD(at[30], at[85]); MULADD(at[31], at[84]); MULADD(at[32], at[83]); MULADD(at[33], at[82]); MULADD(at[34], at[81]); MULADD(at[35], at[80]); MULADD(at[36], at[79]); MULADD(at[37], at[78]); MULADD(at[38], at[77]); MULADD(at[39], at[76]); MULADD(at[40], at[75]); MULADD(at[41], at[74]); MULADD(at[42], at[73]); MULADD(at[43], at[72]); MULADD(at[44], at[71]); MULADD(at[45], at[70]); MULADD(at[46], at[69]); MULADD(at[47], at[68]); + COMBA_STORE(C->dp[67]); + /* 68 */ + COMBA_FORWARD; + MULADD(at[21], at[95]); MULADD(at[22], at[94]); MULADD(at[23], at[93]); MULADD(at[24], at[92]); MULADD(at[25], at[91]); MULADD(at[26], at[90]); MULADD(at[27], at[89]); MULADD(at[28], at[88]); MULADD(at[29], at[87]); MULADD(at[30], at[86]); MULADD(at[31], at[85]); MULADD(at[32], at[84]); MULADD(at[33], at[83]); MULADD(at[34], at[82]); MULADD(at[35], at[81]); MULADD(at[36], at[80]); MULADD(at[37], at[79]); MULADD(at[38], at[78]); MULADD(at[39], at[77]); MULADD(at[40], at[76]); MULADD(at[41], at[75]); MULADD(at[42], at[74]); MULADD(at[43], at[73]); MULADD(at[44], at[72]); MULADD(at[45], at[71]); MULADD(at[46], at[70]); MULADD(at[47], at[69]); + COMBA_STORE(C->dp[68]); + /* 69 */ + COMBA_FORWARD; + MULADD(at[22], at[95]); MULADD(at[23], at[94]); MULADD(at[24], at[93]); MULADD(at[25], at[92]); MULADD(at[26], at[91]); MULADD(at[27], at[90]); MULADD(at[28], at[89]); MULADD(at[29], at[88]); MULADD(at[30], at[87]); MULADD(at[31], at[86]); MULADD(at[32], at[85]); MULADD(at[33], at[84]); MULADD(at[34], at[83]); MULADD(at[35], at[82]); MULADD(at[36], at[81]); MULADD(at[37], at[80]); MULADD(at[38], at[79]); MULADD(at[39], at[78]); MULADD(at[40], at[77]); MULADD(at[41], at[76]); MULADD(at[42], at[75]); MULADD(at[43], at[74]); MULADD(at[44], at[73]); MULADD(at[45], at[72]); MULADD(at[46], at[71]); MULADD(at[47], at[70]); + COMBA_STORE(C->dp[69]); + /* 70 */ + COMBA_FORWARD; + MULADD(at[23], at[95]); MULADD(at[24], at[94]); MULADD(at[25], at[93]); MULADD(at[26], at[92]); MULADD(at[27], at[91]); MULADD(at[28], at[90]); MULADD(at[29], at[89]); MULADD(at[30], at[88]); MULADD(at[31], at[87]); MULADD(at[32], at[86]); MULADD(at[33], at[85]); MULADD(at[34], at[84]); MULADD(at[35], at[83]); MULADD(at[36], at[82]); MULADD(at[37], at[81]); MULADD(at[38], at[80]); MULADD(at[39], at[79]); MULADD(at[40], at[78]); MULADD(at[41], at[77]); MULADD(at[42], at[76]); MULADD(at[43], at[75]); MULADD(at[44], at[74]); MULADD(at[45], at[73]); MULADD(at[46], at[72]); MULADD(at[47], at[71]); + COMBA_STORE(C->dp[70]); + /* 71 */ + COMBA_FORWARD; + MULADD(at[24], at[95]); MULADD(at[25], at[94]); MULADD(at[26], at[93]); MULADD(at[27], at[92]); MULADD(at[28], at[91]); MULADD(at[29], at[90]); MULADD(at[30], at[89]); MULADD(at[31], at[88]); MULADD(at[32], at[87]); MULADD(at[33], at[86]); MULADD(at[34], at[85]); MULADD(at[35], at[84]); MULADD(at[36], at[83]); MULADD(at[37], at[82]); MULADD(at[38], at[81]); MULADD(at[39], at[80]); MULADD(at[40], at[79]); MULADD(at[41], at[78]); MULADD(at[42], at[77]); MULADD(at[43], at[76]); MULADD(at[44], at[75]); MULADD(at[45], at[74]); MULADD(at[46], at[73]); MULADD(at[47], at[72]); + COMBA_STORE(C->dp[71]); + /* 72 */ + COMBA_FORWARD; + MULADD(at[25], at[95]); MULADD(at[26], at[94]); MULADD(at[27], at[93]); MULADD(at[28], at[92]); MULADD(at[29], at[91]); MULADD(at[30], at[90]); MULADD(at[31], at[89]); MULADD(at[32], at[88]); MULADD(at[33], at[87]); MULADD(at[34], at[86]); MULADD(at[35], at[85]); MULADD(at[36], at[84]); MULADD(at[37], at[83]); MULADD(at[38], at[82]); MULADD(at[39], at[81]); MULADD(at[40], at[80]); MULADD(at[41], at[79]); MULADD(at[42], at[78]); MULADD(at[43], at[77]); MULADD(at[44], at[76]); MULADD(at[45], at[75]); MULADD(at[46], at[74]); MULADD(at[47], at[73]); + COMBA_STORE(C->dp[72]); + /* 73 */ + COMBA_FORWARD; + MULADD(at[26], at[95]); MULADD(at[27], at[94]); MULADD(at[28], at[93]); MULADD(at[29], at[92]); MULADD(at[30], at[91]); MULADD(at[31], at[90]); MULADD(at[32], at[89]); MULADD(at[33], at[88]); MULADD(at[34], at[87]); MULADD(at[35], at[86]); MULADD(at[36], at[85]); MULADD(at[37], at[84]); MULADD(at[38], at[83]); MULADD(at[39], at[82]); MULADD(at[40], at[81]); MULADD(at[41], at[80]); MULADD(at[42], at[79]); MULADD(at[43], at[78]); MULADD(at[44], at[77]); MULADD(at[45], at[76]); MULADD(at[46], at[75]); MULADD(at[47], at[74]); + COMBA_STORE(C->dp[73]); + /* 74 */ + COMBA_FORWARD; + MULADD(at[27], at[95]); MULADD(at[28], at[94]); MULADD(at[29], at[93]); MULADD(at[30], at[92]); MULADD(at[31], at[91]); MULADD(at[32], at[90]); MULADD(at[33], at[89]); MULADD(at[34], at[88]); MULADD(at[35], at[87]); MULADD(at[36], at[86]); MULADD(at[37], at[85]); MULADD(at[38], at[84]); MULADD(at[39], at[83]); MULADD(at[40], at[82]); MULADD(at[41], at[81]); MULADD(at[42], at[80]); MULADD(at[43], at[79]); MULADD(at[44], at[78]); MULADD(at[45], at[77]); MULADD(at[46], at[76]); MULADD(at[47], at[75]); + COMBA_STORE(C->dp[74]); + /* 75 */ + COMBA_FORWARD; + MULADD(at[28], at[95]); MULADD(at[29], at[94]); MULADD(at[30], at[93]); MULADD(at[31], at[92]); MULADD(at[32], at[91]); MULADD(at[33], at[90]); MULADD(at[34], at[89]); MULADD(at[35], at[88]); MULADD(at[36], at[87]); MULADD(at[37], at[86]); MULADD(at[38], at[85]); MULADD(at[39], at[84]); MULADD(at[40], at[83]); MULADD(at[41], at[82]); MULADD(at[42], at[81]); MULADD(at[43], at[80]); MULADD(at[44], at[79]); MULADD(at[45], at[78]); MULADD(at[46], at[77]); MULADD(at[47], at[76]); + COMBA_STORE(C->dp[75]); + /* 76 */ + COMBA_FORWARD; + MULADD(at[29], at[95]); MULADD(at[30], at[94]); MULADD(at[31], at[93]); MULADD(at[32], at[92]); MULADD(at[33], at[91]); MULADD(at[34], at[90]); MULADD(at[35], at[89]); MULADD(at[36], at[88]); MULADD(at[37], at[87]); MULADD(at[38], at[86]); MULADD(at[39], at[85]); MULADD(at[40], at[84]); MULADD(at[41], at[83]); MULADD(at[42], at[82]); MULADD(at[43], at[81]); MULADD(at[44], at[80]); MULADD(at[45], at[79]); MULADD(at[46], at[78]); MULADD(at[47], at[77]); + COMBA_STORE(C->dp[76]); + /* 77 */ + COMBA_FORWARD; + MULADD(at[30], at[95]); MULADD(at[31], at[94]); MULADD(at[32], at[93]); MULADD(at[33], at[92]); MULADD(at[34], at[91]); MULADD(at[35], at[90]); MULADD(at[36], at[89]); MULADD(at[37], at[88]); MULADD(at[38], at[87]); MULADD(at[39], at[86]); MULADD(at[40], at[85]); MULADD(at[41], at[84]); MULADD(at[42], at[83]); MULADD(at[43], at[82]); MULADD(at[44], at[81]); MULADD(at[45], at[80]); MULADD(at[46], at[79]); MULADD(at[47], at[78]); + COMBA_STORE(C->dp[77]); + /* 78 */ + COMBA_FORWARD; + MULADD(at[31], at[95]); MULADD(at[32], at[94]); MULADD(at[33], at[93]); MULADD(at[34], at[92]); MULADD(at[35], at[91]); MULADD(at[36], at[90]); MULADD(at[37], at[89]); MULADD(at[38], at[88]); MULADD(at[39], at[87]); MULADD(at[40], at[86]); MULADD(at[41], at[85]); MULADD(at[42], at[84]); MULADD(at[43], at[83]); MULADD(at[44], at[82]); MULADD(at[45], at[81]); MULADD(at[46], at[80]); MULADD(at[47], at[79]); + COMBA_STORE(C->dp[78]); + /* 79 */ + COMBA_FORWARD; + MULADD(at[32], at[95]); MULADD(at[33], at[94]); MULADD(at[34], at[93]); MULADD(at[35], at[92]); MULADD(at[36], at[91]); MULADD(at[37], at[90]); MULADD(at[38], at[89]); MULADD(at[39], at[88]); MULADD(at[40], at[87]); MULADD(at[41], at[86]); MULADD(at[42], at[85]); MULADD(at[43], at[84]); MULADD(at[44], at[83]); MULADD(at[45], at[82]); MULADD(at[46], at[81]); MULADD(at[47], at[80]); + COMBA_STORE(C->dp[79]); + /* 80 */ + COMBA_FORWARD; + MULADD(at[33], at[95]); MULADD(at[34], at[94]); MULADD(at[35], at[93]); MULADD(at[36], at[92]); MULADD(at[37], at[91]); MULADD(at[38], at[90]); MULADD(at[39], at[89]); MULADD(at[40], at[88]); MULADD(at[41], at[87]); MULADD(at[42], at[86]); MULADD(at[43], at[85]); MULADD(at[44], at[84]); MULADD(at[45], at[83]); MULADD(at[46], at[82]); MULADD(at[47], at[81]); + COMBA_STORE(C->dp[80]); + /* 81 */ + COMBA_FORWARD; + MULADD(at[34], at[95]); MULADD(at[35], at[94]); MULADD(at[36], at[93]); MULADD(at[37], at[92]); MULADD(at[38], at[91]); MULADD(at[39], at[90]); MULADD(at[40], at[89]); MULADD(at[41], at[88]); MULADD(at[42], at[87]); MULADD(at[43], at[86]); MULADD(at[44], at[85]); MULADD(at[45], at[84]); MULADD(at[46], at[83]); MULADD(at[47], at[82]); + COMBA_STORE(C->dp[81]); + /* 82 */ + COMBA_FORWARD; + MULADD(at[35], at[95]); MULADD(at[36], at[94]); MULADD(at[37], at[93]); MULADD(at[38], at[92]); MULADD(at[39], at[91]); MULADD(at[40], at[90]); MULADD(at[41], at[89]); MULADD(at[42], at[88]); MULADD(at[43], at[87]); MULADD(at[44], at[86]); MULADD(at[45], at[85]); MULADD(at[46], at[84]); MULADD(at[47], at[83]); + COMBA_STORE(C->dp[82]); + /* 83 */ + COMBA_FORWARD; + MULADD(at[36], at[95]); MULADD(at[37], at[94]); MULADD(at[38], at[93]); MULADD(at[39], at[92]); MULADD(at[40], at[91]); MULADD(at[41], at[90]); MULADD(at[42], at[89]); MULADD(at[43], at[88]); MULADD(at[44], at[87]); MULADD(at[45], at[86]); MULADD(at[46], at[85]); MULADD(at[47], at[84]); + COMBA_STORE(C->dp[83]); + /* 84 */ + COMBA_FORWARD; + MULADD(at[37], at[95]); MULADD(at[38], at[94]); MULADD(at[39], at[93]); MULADD(at[40], at[92]); MULADD(at[41], at[91]); MULADD(at[42], at[90]); MULADD(at[43], at[89]); MULADD(at[44], at[88]); MULADD(at[45], at[87]); MULADD(at[46], at[86]); MULADD(at[47], at[85]); + COMBA_STORE(C->dp[84]); + /* 85 */ + COMBA_FORWARD; + MULADD(at[38], at[95]); MULADD(at[39], at[94]); MULADD(at[40], at[93]); MULADD(at[41], at[92]); MULADD(at[42], at[91]); MULADD(at[43], at[90]); MULADD(at[44], at[89]); MULADD(at[45], at[88]); MULADD(at[46], at[87]); MULADD(at[47], at[86]); + COMBA_STORE(C->dp[85]); + /* 86 */ + COMBA_FORWARD; + MULADD(at[39], at[95]); MULADD(at[40], at[94]); MULADD(at[41], at[93]); MULADD(at[42], at[92]); MULADD(at[43], at[91]); MULADD(at[44], at[90]); MULADD(at[45], at[89]); MULADD(at[46], at[88]); MULADD(at[47], at[87]); + COMBA_STORE(C->dp[86]); + /* 87 */ + COMBA_FORWARD; + MULADD(at[40], at[95]); MULADD(at[41], at[94]); MULADD(at[42], at[93]); MULADD(at[43], at[92]); MULADD(at[44], at[91]); MULADD(at[45], at[90]); MULADD(at[46], at[89]); MULADD(at[47], at[88]); + COMBA_STORE(C->dp[87]); + /* 88 */ + COMBA_FORWARD; + MULADD(at[41], at[95]); MULADD(at[42], at[94]); MULADD(at[43], at[93]); MULADD(at[44], at[92]); MULADD(at[45], at[91]); MULADD(at[46], at[90]); MULADD(at[47], at[89]); + COMBA_STORE(C->dp[88]); + /* 89 */ + COMBA_FORWARD; + MULADD(at[42], at[95]); MULADD(at[43], at[94]); MULADD(at[44], at[93]); MULADD(at[45], at[92]); MULADD(at[46], at[91]); MULADD(at[47], at[90]); + COMBA_STORE(C->dp[89]); + /* 90 */ + COMBA_FORWARD; + MULADD(at[43], at[95]); MULADD(at[44], at[94]); MULADD(at[45], at[93]); MULADD(at[46], at[92]); MULADD(at[47], at[91]); + COMBA_STORE(C->dp[90]); + /* 91 */ + COMBA_FORWARD; + MULADD(at[44], at[95]); MULADD(at[45], at[94]); MULADD(at[46], at[93]); MULADD(at[47], at[92]); + COMBA_STORE(C->dp[91]); + /* 92 */ + COMBA_FORWARD; + MULADD(at[45], at[95]); MULADD(at[46], at[94]); MULADD(at[47], at[93]); + COMBA_STORE(C->dp[92]); + /* 93 */ + COMBA_FORWARD; + MULADD(at[46], at[95]); MULADD(at[47], at[94]); + COMBA_STORE(C->dp[93]); + /* 94 */ + COMBA_FORWARD; + MULADD(at[47], at[95]); + COMBA_STORE(C->dp[94]); + COMBA_STORE2(C->dp[95]); + C->used = 96; + C->sign = A->sign ^ B->sign; + fp_clamp(C); + COMBA_FINI; +} +#endif diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_6.i b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_6.i new file mode 100644 index 000000000..e691e9813 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_6.i @@ -0,0 +1,82 @@ +/* fp_mul_comba_6.i + * + * Copyright (C) 2006-2011 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifdef TFM_MUL6 +void fp_mul_comba6(fp_int *A, fp_int *B, fp_int *C) +{ + fp_digit c0, c1, c2, at[12]; + + memcpy(at, A->dp, 6 * sizeof(fp_digit)); + memcpy(at+6, B->dp, 6 * sizeof(fp_digit)); + COMBA_START; + + COMBA_CLEAR; + /* 0 */ + MULADD(at[0], at[6]); + COMBA_STORE(C->dp[0]); + /* 1 */ + COMBA_FORWARD; + MULADD(at[0], at[7]); MULADD(at[1], at[6]); + COMBA_STORE(C->dp[1]); + /* 2 */ + COMBA_FORWARD; + MULADD(at[0], at[8]); MULADD(at[1], at[7]); MULADD(at[2], at[6]); + COMBA_STORE(C->dp[2]); + /* 3 */ + COMBA_FORWARD; + MULADD(at[0], at[9]); MULADD(at[1], at[8]); MULADD(at[2], at[7]); MULADD(at[3], at[6]); + COMBA_STORE(C->dp[3]); + /* 4 */ + COMBA_FORWARD; + MULADD(at[0], at[10]); MULADD(at[1], at[9]); MULADD(at[2], at[8]); MULADD(at[3], at[7]); MULADD(at[4], at[6]); + COMBA_STORE(C->dp[4]); + /* 5 */ + COMBA_FORWARD; + MULADD(at[0], at[11]); MULADD(at[1], at[10]); MULADD(at[2], at[9]); MULADD(at[3], at[8]); MULADD(at[4], at[7]); MULADD(at[5], at[6]); + COMBA_STORE(C->dp[5]); + /* 6 */ + COMBA_FORWARD; + MULADD(at[1], at[11]); MULADD(at[2], at[10]); MULADD(at[3], at[9]); MULADD(at[4], at[8]); MULADD(at[5], at[7]); + COMBA_STORE(C->dp[6]); + /* 7 */ + COMBA_FORWARD; + MULADD(at[2], at[11]); MULADD(at[3], at[10]); MULADD(at[4], at[9]); MULADD(at[5], at[8]); + COMBA_STORE(C->dp[7]); + /* 8 */ + COMBA_FORWARD; + MULADD(at[3], at[11]); MULADD(at[4], at[10]); MULADD(at[5], at[9]); + COMBA_STORE(C->dp[8]); + /* 9 */ + COMBA_FORWARD; + MULADD(at[4], at[11]); MULADD(at[5], at[10]); + COMBA_STORE(C->dp[9]); + /* 10 */ + COMBA_FORWARD; + MULADD(at[5], at[11]); + COMBA_STORE(C->dp[10]); + COMBA_STORE2(C->dp[11]); + C->used = 12; + C->sign = A->sign ^ B->sign; + fp_clamp(C); + COMBA_FINI; +} +#endif diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_64.i b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_64.i new file mode 100644 index 000000000..ba0517b13 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_64.i @@ -0,0 +1,546 @@ +/* fp_mul_comba_64.i + * + * Copyright (C) 2006-2011 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifdef TFM_MUL64 +void fp_mul_comba64(fp_int *A, fp_int *B, fp_int *C) +{ + fp_digit c0, c1, c2, at[128]; + + memcpy(at, A->dp, 64 * sizeof(fp_digit)); + memcpy(at+64, B->dp, 64 * sizeof(fp_digit)); + COMBA_START; + + COMBA_CLEAR; + /* 0 */ + MULADD(at[0], at[64]); + COMBA_STORE(C->dp[0]); + /* 1 */ + COMBA_FORWARD; + MULADD(at[0], at[65]); MULADD(at[1], at[64]); + COMBA_STORE(C->dp[1]); + /* 2 */ + COMBA_FORWARD; + MULADD(at[0], at[66]); MULADD(at[1], at[65]); MULADD(at[2], at[64]); + COMBA_STORE(C->dp[2]); + /* 3 */ + COMBA_FORWARD; + MULADD(at[0], at[67]); MULADD(at[1], at[66]); MULADD(at[2], at[65]); MULADD(at[3], at[64]); + COMBA_STORE(C->dp[3]); + /* 4 */ + COMBA_FORWARD; + MULADD(at[0], at[68]); MULADD(at[1], at[67]); MULADD(at[2], at[66]); MULADD(at[3], at[65]); MULADD(at[4], at[64]); + COMBA_STORE(C->dp[4]); + /* 5 */ + COMBA_FORWARD; + MULADD(at[0], at[69]); MULADD(at[1], at[68]); MULADD(at[2], at[67]); MULADD(at[3], at[66]); MULADD(at[4], at[65]); MULADD(at[5], at[64]); + COMBA_STORE(C->dp[5]); + /* 6 */ + COMBA_FORWARD; + MULADD(at[0], at[70]); MULADD(at[1], at[69]); MULADD(at[2], at[68]); MULADD(at[3], at[67]); MULADD(at[4], at[66]); MULADD(at[5], at[65]); MULADD(at[6], at[64]); + COMBA_STORE(C->dp[6]); + /* 7 */ + COMBA_FORWARD; + MULADD(at[0], at[71]); MULADD(at[1], at[70]); MULADD(at[2], at[69]); MULADD(at[3], at[68]); MULADD(at[4], at[67]); MULADD(at[5], at[66]); MULADD(at[6], at[65]); MULADD(at[7], at[64]); + COMBA_STORE(C->dp[7]); + /* 8 */ + COMBA_FORWARD; + MULADD(at[0], at[72]); MULADD(at[1], at[71]); MULADD(at[2], at[70]); MULADD(at[3], at[69]); MULADD(at[4], at[68]); MULADD(at[5], at[67]); MULADD(at[6], at[66]); MULADD(at[7], at[65]); MULADD(at[8], at[64]); + COMBA_STORE(C->dp[8]); + /* 9 */ + COMBA_FORWARD; + MULADD(at[0], at[73]); MULADD(at[1], at[72]); MULADD(at[2], at[71]); MULADD(at[3], at[70]); MULADD(at[4], at[69]); MULADD(at[5], at[68]); MULADD(at[6], at[67]); MULADD(at[7], at[66]); MULADD(at[8], at[65]); MULADD(at[9], at[64]); + COMBA_STORE(C->dp[9]); + /* 10 */ + COMBA_FORWARD; + MULADD(at[0], at[74]); MULADD(at[1], at[73]); MULADD(at[2], at[72]); MULADD(at[3], at[71]); MULADD(at[4], at[70]); MULADD(at[5], at[69]); MULADD(at[6], at[68]); MULADD(at[7], at[67]); MULADD(at[8], at[66]); MULADD(at[9], at[65]); MULADD(at[10], at[64]); + COMBA_STORE(C->dp[10]); + /* 11 */ + COMBA_FORWARD; + MULADD(at[0], at[75]); MULADD(at[1], at[74]); MULADD(at[2], at[73]); MULADD(at[3], at[72]); MULADD(at[4], at[71]); MULADD(at[5], at[70]); MULADD(at[6], at[69]); MULADD(at[7], at[68]); MULADD(at[8], at[67]); MULADD(at[9], at[66]); MULADD(at[10], at[65]); MULADD(at[11], at[64]); + COMBA_STORE(C->dp[11]); + /* 12 */ + COMBA_FORWARD; + MULADD(at[0], at[76]); MULADD(at[1], at[75]); MULADD(at[2], at[74]); MULADD(at[3], at[73]); MULADD(at[4], at[72]); MULADD(at[5], at[71]); MULADD(at[6], at[70]); MULADD(at[7], at[69]); MULADD(at[8], at[68]); MULADD(at[9], at[67]); MULADD(at[10], at[66]); MULADD(at[11], at[65]); MULADD(at[12], at[64]); + COMBA_STORE(C->dp[12]); + /* 13 */ + COMBA_FORWARD; + MULADD(at[0], at[77]); MULADD(at[1], at[76]); MULADD(at[2], at[75]); MULADD(at[3], at[74]); MULADD(at[4], at[73]); MULADD(at[5], at[72]); MULADD(at[6], at[71]); MULADD(at[7], at[70]); MULADD(at[8], at[69]); MULADD(at[9], at[68]); MULADD(at[10], at[67]); MULADD(at[11], at[66]); MULADD(at[12], at[65]); MULADD(at[13], at[64]); + COMBA_STORE(C->dp[13]); + /* 14 */ + COMBA_FORWARD; + MULADD(at[0], at[78]); MULADD(at[1], at[77]); MULADD(at[2], at[76]); MULADD(at[3], at[75]); MULADD(at[4], at[74]); MULADD(at[5], at[73]); MULADD(at[6], at[72]); MULADD(at[7], at[71]); MULADD(at[8], at[70]); MULADD(at[9], at[69]); MULADD(at[10], at[68]); MULADD(at[11], at[67]); MULADD(at[12], at[66]); MULADD(at[13], at[65]); MULADD(at[14], at[64]); + COMBA_STORE(C->dp[14]); + /* 15 */ + COMBA_FORWARD; + MULADD(at[0], at[79]); MULADD(at[1], at[78]); MULADD(at[2], at[77]); MULADD(at[3], at[76]); MULADD(at[4], at[75]); MULADD(at[5], at[74]); MULADD(at[6], at[73]); MULADD(at[7], at[72]); MULADD(at[8], at[71]); MULADD(at[9], at[70]); MULADD(at[10], at[69]); MULADD(at[11], at[68]); MULADD(at[12], at[67]); MULADD(at[13], at[66]); MULADD(at[14], at[65]); MULADD(at[15], at[64]); + COMBA_STORE(C->dp[15]); + /* 16 */ + COMBA_FORWARD; + MULADD(at[0], at[80]); MULADD(at[1], at[79]); MULADD(at[2], at[78]); MULADD(at[3], at[77]); MULADD(at[4], at[76]); MULADD(at[5], at[75]); MULADD(at[6], at[74]); MULADD(at[7], at[73]); MULADD(at[8], at[72]); MULADD(at[9], at[71]); MULADD(at[10], at[70]); MULADD(at[11], at[69]); MULADD(at[12], at[68]); MULADD(at[13], at[67]); MULADD(at[14], at[66]); MULADD(at[15], at[65]); MULADD(at[16], at[64]); + COMBA_STORE(C->dp[16]); + /* 17 */ + COMBA_FORWARD; + MULADD(at[0], at[81]); MULADD(at[1], at[80]); MULADD(at[2], at[79]); MULADD(at[3], at[78]); MULADD(at[4], at[77]); MULADD(at[5], at[76]); MULADD(at[6], at[75]); MULADD(at[7], at[74]); MULADD(at[8], at[73]); MULADD(at[9], at[72]); MULADD(at[10], at[71]); MULADD(at[11], at[70]); MULADD(at[12], at[69]); MULADD(at[13], at[68]); MULADD(at[14], at[67]); MULADD(at[15], at[66]); MULADD(at[16], at[65]); MULADD(at[17], at[64]); + COMBA_STORE(C->dp[17]); + /* 18 */ + COMBA_FORWARD; + MULADD(at[0], at[82]); MULADD(at[1], at[81]); MULADD(at[2], at[80]); MULADD(at[3], at[79]); MULADD(at[4], at[78]); MULADD(at[5], at[77]); MULADD(at[6], at[76]); MULADD(at[7], at[75]); MULADD(at[8], at[74]); MULADD(at[9], at[73]); MULADD(at[10], at[72]); MULADD(at[11], at[71]); MULADD(at[12], at[70]); MULADD(at[13], at[69]); MULADD(at[14], at[68]); MULADD(at[15], at[67]); MULADD(at[16], at[66]); MULADD(at[17], at[65]); MULADD(at[18], at[64]); + COMBA_STORE(C->dp[18]); + /* 19 */ + COMBA_FORWARD; + MULADD(at[0], at[83]); MULADD(at[1], at[82]); MULADD(at[2], at[81]); MULADD(at[3], at[80]); MULADD(at[4], at[79]); MULADD(at[5], at[78]); MULADD(at[6], at[77]); MULADD(at[7], at[76]); MULADD(at[8], at[75]); MULADD(at[9], at[74]); MULADD(at[10], at[73]); MULADD(at[11], at[72]); MULADD(at[12], at[71]); MULADD(at[13], at[70]); MULADD(at[14], at[69]); MULADD(at[15], at[68]); MULADD(at[16], at[67]); MULADD(at[17], at[66]); MULADD(at[18], at[65]); MULADD(at[19], at[64]); + COMBA_STORE(C->dp[19]); + /* 20 */ + COMBA_FORWARD; + MULADD(at[0], at[84]); MULADD(at[1], at[83]); MULADD(at[2], at[82]); MULADD(at[3], at[81]); MULADD(at[4], at[80]); MULADD(at[5], at[79]); MULADD(at[6], at[78]); MULADD(at[7], at[77]); MULADD(at[8], at[76]); MULADD(at[9], at[75]); MULADD(at[10], at[74]); MULADD(at[11], at[73]); MULADD(at[12], at[72]); MULADD(at[13], at[71]); MULADD(at[14], at[70]); MULADD(at[15], at[69]); MULADD(at[16], at[68]); MULADD(at[17], at[67]); MULADD(at[18], at[66]); MULADD(at[19], at[65]); MULADD(at[20], at[64]); + COMBA_STORE(C->dp[20]); + /* 21 */ + COMBA_FORWARD; + MULADD(at[0], at[85]); MULADD(at[1], at[84]); MULADD(at[2], at[83]); MULADD(at[3], at[82]); MULADD(at[4], at[81]); MULADD(at[5], at[80]); MULADD(at[6], at[79]); MULADD(at[7], at[78]); MULADD(at[8], at[77]); MULADD(at[9], at[76]); MULADD(at[10], at[75]); MULADD(at[11], at[74]); MULADD(at[12], at[73]); MULADD(at[13], at[72]); MULADD(at[14], at[71]); MULADD(at[15], at[70]); MULADD(at[16], at[69]); MULADD(at[17], at[68]); MULADD(at[18], at[67]); MULADD(at[19], at[66]); MULADD(at[20], at[65]); MULADD(at[21], at[64]); + COMBA_STORE(C->dp[21]); + /* 22 */ + COMBA_FORWARD; + MULADD(at[0], at[86]); MULADD(at[1], at[85]); MULADD(at[2], at[84]); MULADD(at[3], at[83]); MULADD(at[4], at[82]); MULADD(at[5], at[81]); MULADD(at[6], at[80]); MULADD(at[7], at[79]); MULADD(at[8], at[78]); MULADD(at[9], at[77]); MULADD(at[10], at[76]); MULADD(at[11], at[75]); MULADD(at[12], at[74]); MULADD(at[13], at[73]); MULADD(at[14], at[72]); MULADD(at[15], at[71]); MULADD(at[16], at[70]); MULADD(at[17], at[69]); MULADD(at[18], at[68]); MULADD(at[19], at[67]); MULADD(at[20], at[66]); MULADD(at[21], at[65]); MULADD(at[22], at[64]); + COMBA_STORE(C->dp[22]); + /* 23 */ + COMBA_FORWARD; + MULADD(at[0], at[87]); MULADD(at[1], at[86]); MULADD(at[2], at[85]); MULADD(at[3], at[84]); MULADD(at[4], at[83]); MULADD(at[5], at[82]); MULADD(at[6], at[81]); MULADD(at[7], at[80]); MULADD(at[8], at[79]); MULADD(at[9], at[78]); MULADD(at[10], at[77]); MULADD(at[11], at[76]); MULADD(at[12], at[75]); MULADD(at[13], at[74]); MULADD(at[14], at[73]); MULADD(at[15], at[72]); MULADD(at[16], at[71]); MULADD(at[17], at[70]); MULADD(at[18], at[69]); MULADD(at[19], at[68]); MULADD(at[20], at[67]); MULADD(at[21], at[66]); MULADD(at[22], at[65]); MULADD(at[23], at[64]); + COMBA_STORE(C->dp[23]); + /* 24 */ + COMBA_FORWARD; + MULADD(at[0], at[88]); MULADD(at[1], at[87]); MULADD(at[2], at[86]); MULADD(at[3], at[85]); MULADD(at[4], at[84]); MULADD(at[5], at[83]); MULADD(at[6], at[82]); MULADD(at[7], at[81]); MULADD(at[8], at[80]); MULADD(at[9], at[79]); MULADD(at[10], at[78]); MULADD(at[11], at[77]); MULADD(at[12], at[76]); MULADD(at[13], at[75]); MULADD(at[14], at[74]); MULADD(at[15], at[73]); MULADD(at[16], at[72]); MULADD(at[17], at[71]); MULADD(at[18], at[70]); MULADD(at[19], at[69]); MULADD(at[20], at[68]); MULADD(at[21], at[67]); MULADD(at[22], at[66]); MULADD(at[23], at[65]); MULADD(at[24], at[64]); + COMBA_STORE(C->dp[24]); + /* 25 */ + COMBA_FORWARD; + MULADD(at[0], at[89]); MULADD(at[1], at[88]); MULADD(at[2], at[87]); MULADD(at[3], at[86]); MULADD(at[4], at[85]); MULADD(at[5], at[84]); MULADD(at[6], at[83]); MULADD(at[7], at[82]); MULADD(at[8], at[81]); MULADD(at[9], at[80]); MULADD(at[10], at[79]); MULADD(at[11], at[78]); MULADD(at[12], at[77]); MULADD(at[13], at[76]); MULADD(at[14], at[75]); MULADD(at[15], at[74]); MULADD(at[16], at[73]); MULADD(at[17], at[72]); MULADD(at[18], at[71]); MULADD(at[19], at[70]); MULADD(at[20], at[69]); MULADD(at[21], at[68]); MULADD(at[22], at[67]); MULADD(at[23], at[66]); MULADD(at[24], at[65]); MULADD(at[25], at[64]); + COMBA_STORE(C->dp[25]); + /* 26 */ + COMBA_FORWARD; + MULADD(at[0], at[90]); MULADD(at[1], at[89]); MULADD(at[2], at[88]); MULADD(at[3], at[87]); MULADD(at[4], at[86]); MULADD(at[5], at[85]); MULADD(at[6], at[84]); MULADD(at[7], at[83]); MULADD(at[8], at[82]); MULADD(at[9], at[81]); MULADD(at[10], at[80]); MULADD(at[11], at[79]); MULADD(at[12], at[78]); MULADD(at[13], at[77]); MULADD(at[14], at[76]); MULADD(at[15], at[75]); MULADD(at[16], at[74]); MULADD(at[17], at[73]); MULADD(at[18], at[72]); MULADD(at[19], at[71]); MULADD(at[20], at[70]); MULADD(at[21], at[69]); MULADD(at[22], at[68]); MULADD(at[23], at[67]); MULADD(at[24], at[66]); MULADD(at[25], at[65]); MULADD(at[26], at[64]); + COMBA_STORE(C->dp[26]); + /* 27 */ + COMBA_FORWARD; + MULADD(at[0], at[91]); MULADD(at[1], at[90]); MULADD(at[2], at[89]); MULADD(at[3], at[88]); MULADD(at[4], at[87]); MULADD(at[5], at[86]); MULADD(at[6], at[85]); MULADD(at[7], at[84]); MULADD(at[8], at[83]); MULADD(at[9], at[82]); MULADD(at[10], at[81]); MULADD(at[11], at[80]); MULADD(at[12], at[79]); MULADD(at[13], at[78]); MULADD(at[14], at[77]); MULADD(at[15], at[76]); MULADD(at[16], at[75]); MULADD(at[17], at[74]); MULADD(at[18], at[73]); MULADD(at[19], at[72]); MULADD(at[20], at[71]); MULADD(at[21], at[70]); MULADD(at[22], at[69]); MULADD(at[23], at[68]); MULADD(at[24], at[67]); MULADD(at[25], at[66]); MULADD(at[26], at[65]); MULADD(at[27], at[64]); + COMBA_STORE(C->dp[27]); + /* 28 */ + COMBA_FORWARD; + MULADD(at[0], at[92]); MULADD(at[1], at[91]); MULADD(at[2], at[90]); MULADD(at[3], at[89]); MULADD(at[4], at[88]); MULADD(at[5], at[87]); MULADD(at[6], at[86]); MULADD(at[7], at[85]); MULADD(at[8], at[84]); MULADD(at[9], at[83]); MULADD(at[10], at[82]); MULADD(at[11], at[81]); MULADD(at[12], at[80]); MULADD(at[13], at[79]); MULADD(at[14], at[78]); MULADD(at[15], at[77]); MULADD(at[16], at[76]); MULADD(at[17], at[75]); MULADD(at[18], at[74]); MULADD(at[19], at[73]); MULADD(at[20], at[72]); MULADD(at[21], at[71]); MULADD(at[22], at[70]); MULADD(at[23], at[69]); MULADD(at[24], at[68]); MULADD(at[25], at[67]); MULADD(at[26], at[66]); MULADD(at[27], at[65]); MULADD(at[28], at[64]); + COMBA_STORE(C->dp[28]); + /* 29 */ + COMBA_FORWARD; + MULADD(at[0], at[93]); MULADD(at[1], at[92]); MULADD(at[2], at[91]); MULADD(at[3], at[90]); MULADD(at[4], at[89]); MULADD(at[5], at[88]); MULADD(at[6], at[87]); MULADD(at[7], at[86]); MULADD(at[8], at[85]); MULADD(at[9], at[84]); MULADD(at[10], at[83]); MULADD(at[11], at[82]); MULADD(at[12], at[81]); MULADD(at[13], at[80]); MULADD(at[14], at[79]); MULADD(at[15], at[78]); MULADD(at[16], at[77]); MULADD(at[17], at[76]); MULADD(at[18], at[75]); MULADD(at[19], at[74]); MULADD(at[20], at[73]); MULADD(at[21], at[72]); MULADD(at[22], at[71]); MULADD(at[23], at[70]); MULADD(at[24], at[69]); MULADD(at[25], at[68]); MULADD(at[26], at[67]); MULADD(at[27], at[66]); MULADD(at[28], at[65]); MULADD(at[29], at[64]); + COMBA_STORE(C->dp[29]); + /* 30 */ + COMBA_FORWARD; + MULADD(at[0], at[94]); MULADD(at[1], at[93]); MULADD(at[2], at[92]); MULADD(at[3], at[91]); MULADD(at[4], at[90]); MULADD(at[5], at[89]); MULADD(at[6], at[88]); MULADD(at[7], at[87]); MULADD(at[8], at[86]); MULADD(at[9], at[85]); MULADD(at[10], at[84]); MULADD(at[11], at[83]); MULADD(at[12], at[82]); MULADD(at[13], at[81]); MULADD(at[14], at[80]); MULADD(at[15], at[79]); MULADD(at[16], at[78]); MULADD(at[17], at[77]); MULADD(at[18], at[76]); MULADD(at[19], at[75]); MULADD(at[20], at[74]); MULADD(at[21], at[73]); MULADD(at[22], at[72]); MULADD(at[23], at[71]); MULADD(at[24], at[70]); MULADD(at[25], at[69]); MULADD(at[26], at[68]); MULADD(at[27], at[67]); MULADD(at[28], at[66]); MULADD(at[29], at[65]); MULADD(at[30], at[64]); + COMBA_STORE(C->dp[30]); + /* 31 */ + COMBA_FORWARD; + MULADD(at[0], at[95]); MULADD(at[1], at[94]); MULADD(at[2], at[93]); MULADD(at[3], at[92]); MULADD(at[4], at[91]); MULADD(at[5], at[90]); MULADD(at[6], at[89]); MULADD(at[7], at[88]); MULADD(at[8], at[87]); MULADD(at[9], at[86]); MULADD(at[10], at[85]); MULADD(at[11], at[84]); MULADD(at[12], at[83]); MULADD(at[13], at[82]); MULADD(at[14], at[81]); MULADD(at[15], at[80]); MULADD(at[16], at[79]); MULADD(at[17], at[78]); MULADD(at[18], at[77]); MULADD(at[19], at[76]); MULADD(at[20], at[75]); MULADD(at[21], at[74]); MULADD(at[22], at[73]); MULADD(at[23], at[72]); MULADD(at[24], at[71]); MULADD(at[25], at[70]); MULADD(at[26], at[69]); MULADD(at[27], at[68]); MULADD(at[28], at[67]); MULADD(at[29], at[66]); MULADD(at[30], at[65]); MULADD(at[31], at[64]); + COMBA_STORE(C->dp[31]); + /* 32 */ + COMBA_FORWARD; + MULADD(at[0], at[96]); MULADD(at[1], at[95]); MULADD(at[2], at[94]); MULADD(at[3], at[93]); MULADD(at[4], at[92]); MULADD(at[5], at[91]); MULADD(at[6], at[90]); MULADD(at[7], at[89]); MULADD(at[8], at[88]); MULADD(at[9], at[87]); MULADD(at[10], at[86]); MULADD(at[11], at[85]); MULADD(at[12], at[84]); MULADD(at[13], at[83]); MULADD(at[14], at[82]); MULADD(at[15], at[81]); MULADD(at[16], at[80]); MULADD(at[17], at[79]); MULADD(at[18], at[78]); MULADD(at[19], at[77]); MULADD(at[20], at[76]); MULADD(at[21], at[75]); MULADD(at[22], at[74]); MULADD(at[23], at[73]); MULADD(at[24], at[72]); MULADD(at[25], at[71]); MULADD(at[26], at[70]); MULADD(at[27], at[69]); MULADD(at[28], at[68]); MULADD(at[29], at[67]); MULADD(at[30], at[66]); MULADD(at[31], at[65]); MULADD(at[32], at[64]); + COMBA_STORE(C->dp[32]); + /* 33 */ + COMBA_FORWARD; + MULADD(at[0], at[97]); MULADD(at[1], at[96]); MULADD(at[2], at[95]); MULADD(at[3], at[94]); MULADD(at[4], at[93]); MULADD(at[5], at[92]); MULADD(at[6], at[91]); MULADD(at[7], at[90]); MULADD(at[8], at[89]); MULADD(at[9], at[88]); MULADD(at[10], at[87]); MULADD(at[11], at[86]); MULADD(at[12], at[85]); MULADD(at[13], at[84]); MULADD(at[14], at[83]); MULADD(at[15], at[82]); MULADD(at[16], at[81]); MULADD(at[17], at[80]); MULADD(at[18], at[79]); MULADD(at[19], at[78]); MULADD(at[20], at[77]); MULADD(at[21], at[76]); MULADD(at[22], at[75]); MULADD(at[23], at[74]); MULADD(at[24], at[73]); MULADD(at[25], at[72]); MULADD(at[26], at[71]); MULADD(at[27], at[70]); MULADD(at[28], at[69]); MULADD(at[29], at[68]); MULADD(at[30], at[67]); MULADD(at[31], at[66]); MULADD(at[32], at[65]); MULADD(at[33], at[64]); + COMBA_STORE(C->dp[33]); + /* 34 */ + COMBA_FORWARD; + MULADD(at[0], at[98]); MULADD(at[1], at[97]); MULADD(at[2], at[96]); MULADD(at[3], at[95]); MULADD(at[4], at[94]); MULADD(at[5], at[93]); MULADD(at[6], at[92]); MULADD(at[7], at[91]); MULADD(at[8], at[90]); MULADD(at[9], at[89]); MULADD(at[10], at[88]); MULADD(at[11], at[87]); MULADD(at[12], at[86]); MULADD(at[13], at[85]); MULADD(at[14], at[84]); MULADD(at[15], at[83]); MULADD(at[16], at[82]); MULADD(at[17], at[81]); MULADD(at[18], at[80]); MULADD(at[19], at[79]); MULADD(at[20], at[78]); MULADD(at[21], at[77]); MULADD(at[22], at[76]); MULADD(at[23], at[75]); MULADD(at[24], at[74]); MULADD(at[25], at[73]); MULADD(at[26], at[72]); MULADD(at[27], at[71]); MULADD(at[28], at[70]); MULADD(at[29], at[69]); MULADD(at[30], at[68]); MULADD(at[31], at[67]); MULADD(at[32], at[66]); MULADD(at[33], at[65]); MULADD(at[34], at[64]); + COMBA_STORE(C->dp[34]); + /* 35 */ + COMBA_FORWARD; + MULADD(at[0], at[99]); MULADD(at[1], at[98]); MULADD(at[2], at[97]); MULADD(at[3], at[96]); MULADD(at[4], at[95]); MULADD(at[5], at[94]); MULADD(at[6], at[93]); MULADD(at[7], at[92]); MULADD(at[8], at[91]); MULADD(at[9], at[90]); MULADD(at[10], at[89]); MULADD(at[11], at[88]); MULADD(at[12], at[87]); MULADD(at[13], at[86]); MULADD(at[14], at[85]); MULADD(at[15], at[84]); MULADD(at[16], at[83]); MULADD(at[17], at[82]); MULADD(at[18], at[81]); MULADD(at[19], at[80]); MULADD(at[20], at[79]); MULADD(at[21], at[78]); MULADD(at[22], at[77]); MULADD(at[23], at[76]); MULADD(at[24], at[75]); MULADD(at[25], at[74]); MULADD(at[26], at[73]); MULADD(at[27], at[72]); MULADD(at[28], at[71]); MULADD(at[29], at[70]); MULADD(at[30], at[69]); MULADD(at[31], at[68]); MULADD(at[32], at[67]); MULADD(at[33], at[66]); MULADD(at[34], at[65]); MULADD(at[35], at[64]); + COMBA_STORE(C->dp[35]); + /* 36 */ + COMBA_FORWARD; + MULADD(at[0], at[100]); MULADD(at[1], at[99]); MULADD(at[2], at[98]); MULADD(at[3], at[97]); MULADD(at[4], at[96]); MULADD(at[5], at[95]); MULADD(at[6], at[94]); MULADD(at[7], at[93]); MULADD(at[8], at[92]); MULADD(at[9], at[91]); MULADD(at[10], at[90]); MULADD(at[11], at[89]); MULADD(at[12], at[88]); MULADD(at[13], at[87]); MULADD(at[14], at[86]); MULADD(at[15], at[85]); MULADD(at[16], at[84]); MULADD(at[17], at[83]); MULADD(at[18], at[82]); MULADD(at[19], at[81]); MULADD(at[20], at[80]); MULADD(at[21], at[79]); MULADD(at[22], at[78]); MULADD(at[23], at[77]); MULADD(at[24], at[76]); MULADD(at[25], at[75]); MULADD(at[26], at[74]); MULADD(at[27], at[73]); MULADD(at[28], at[72]); MULADD(at[29], at[71]); MULADD(at[30], at[70]); MULADD(at[31], at[69]); MULADD(at[32], at[68]); MULADD(at[33], at[67]); MULADD(at[34], at[66]); MULADD(at[35], at[65]); MULADD(at[36], at[64]); + COMBA_STORE(C->dp[36]); + /* 37 */ + COMBA_FORWARD; + MULADD(at[0], at[101]); MULADD(at[1], at[100]); MULADD(at[2], at[99]); MULADD(at[3], at[98]); MULADD(at[4], at[97]); MULADD(at[5], at[96]); MULADD(at[6], at[95]); MULADD(at[7], at[94]); MULADD(at[8], at[93]); MULADD(at[9], at[92]); MULADD(at[10], at[91]); MULADD(at[11], at[90]); MULADD(at[12], at[89]); MULADD(at[13], at[88]); MULADD(at[14], at[87]); MULADD(at[15], at[86]); MULADD(at[16], at[85]); MULADD(at[17], at[84]); MULADD(at[18], at[83]); MULADD(at[19], at[82]); MULADD(at[20], at[81]); MULADD(at[21], at[80]); MULADD(at[22], at[79]); MULADD(at[23], at[78]); MULADD(at[24], at[77]); MULADD(at[25], at[76]); MULADD(at[26], at[75]); MULADD(at[27], at[74]); MULADD(at[28], at[73]); MULADD(at[29], at[72]); MULADD(at[30], at[71]); MULADD(at[31], at[70]); MULADD(at[32], at[69]); MULADD(at[33], at[68]); MULADD(at[34], at[67]); MULADD(at[35], at[66]); MULADD(at[36], at[65]); MULADD(at[37], at[64]); + COMBA_STORE(C->dp[37]); + /* 38 */ + COMBA_FORWARD; + MULADD(at[0], at[102]); MULADD(at[1], at[101]); MULADD(at[2], at[100]); MULADD(at[3], at[99]); MULADD(at[4], at[98]); MULADD(at[5], at[97]); MULADD(at[6], at[96]); MULADD(at[7], at[95]); MULADD(at[8], at[94]); MULADD(at[9], at[93]); MULADD(at[10], at[92]); MULADD(at[11], at[91]); MULADD(at[12], at[90]); MULADD(at[13], at[89]); MULADD(at[14], at[88]); MULADD(at[15], at[87]); MULADD(at[16], at[86]); MULADD(at[17], at[85]); MULADD(at[18], at[84]); MULADD(at[19], at[83]); MULADD(at[20], at[82]); MULADD(at[21], at[81]); MULADD(at[22], at[80]); MULADD(at[23], at[79]); MULADD(at[24], at[78]); MULADD(at[25], at[77]); MULADD(at[26], at[76]); MULADD(at[27], at[75]); MULADD(at[28], at[74]); MULADD(at[29], at[73]); MULADD(at[30], at[72]); MULADD(at[31], at[71]); MULADD(at[32], at[70]); MULADD(at[33], at[69]); MULADD(at[34], at[68]); MULADD(at[35], at[67]); MULADD(at[36], at[66]); MULADD(at[37], at[65]); MULADD(at[38], at[64]); + COMBA_STORE(C->dp[38]); + /* 39 */ + COMBA_FORWARD; + MULADD(at[0], at[103]); MULADD(at[1], at[102]); MULADD(at[2], at[101]); MULADD(at[3], at[100]); MULADD(at[4], at[99]); MULADD(at[5], at[98]); MULADD(at[6], at[97]); MULADD(at[7], at[96]); MULADD(at[8], at[95]); MULADD(at[9], at[94]); MULADD(at[10], at[93]); MULADD(at[11], at[92]); MULADD(at[12], at[91]); MULADD(at[13], at[90]); MULADD(at[14], at[89]); MULADD(at[15], at[88]); MULADD(at[16], at[87]); MULADD(at[17], at[86]); MULADD(at[18], at[85]); MULADD(at[19], at[84]); MULADD(at[20], at[83]); MULADD(at[21], at[82]); MULADD(at[22], at[81]); MULADD(at[23], at[80]); MULADD(at[24], at[79]); MULADD(at[25], at[78]); MULADD(at[26], at[77]); MULADD(at[27], at[76]); MULADD(at[28], at[75]); MULADD(at[29], at[74]); MULADD(at[30], at[73]); MULADD(at[31], at[72]); MULADD(at[32], at[71]); MULADD(at[33], at[70]); MULADD(at[34], at[69]); MULADD(at[35], at[68]); MULADD(at[36], at[67]); MULADD(at[37], at[66]); MULADD(at[38], at[65]); MULADD(at[39], at[64]); + COMBA_STORE(C->dp[39]); + /* 40 */ + COMBA_FORWARD; + MULADD(at[0], at[104]); MULADD(at[1], at[103]); MULADD(at[2], at[102]); MULADD(at[3], at[101]); MULADD(at[4], at[100]); MULADD(at[5], at[99]); MULADD(at[6], at[98]); MULADD(at[7], at[97]); MULADD(at[8], at[96]); MULADD(at[9], at[95]); MULADD(at[10], at[94]); MULADD(at[11], at[93]); MULADD(at[12], at[92]); MULADD(at[13], at[91]); MULADD(at[14], at[90]); MULADD(at[15], at[89]); MULADD(at[16], at[88]); MULADD(at[17], at[87]); MULADD(at[18], at[86]); MULADD(at[19], at[85]); MULADD(at[20], at[84]); MULADD(at[21], at[83]); MULADD(at[22], at[82]); MULADD(at[23], at[81]); MULADD(at[24], at[80]); MULADD(at[25], at[79]); MULADD(at[26], at[78]); MULADD(at[27], at[77]); MULADD(at[28], at[76]); MULADD(at[29], at[75]); MULADD(at[30], at[74]); MULADD(at[31], at[73]); MULADD(at[32], at[72]); MULADD(at[33], at[71]); MULADD(at[34], at[70]); MULADD(at[35], at[69]); MULADD(at[36], at[68]); MULADD(at[37], at[67]); MULADD(at[38], at[66]); MULADD(at[39], at[65]); MULADD(at[40], at[64]); + COMBA_STORE(C->dp[40]); + /* 41 */ + COMBA_FORWARD; + MULADD(at[0], at[105]); MULADD(at[1], at[104]); MULADD(at[2], at[103]); MULADD(at[3], at[102]); MULADD(at[4], at[101]); MULADD(at[5], at[100]); MULADD(at[6], at[99]); MULADD(at[7], at[98]); MULADD(at[8], at[97]); MULADD(at[9], at[96]); MULADD(at[10], at[95]); MULADD(at[11], at[94]); MULADD(at[12], at[93]); MULADD(at[13], at[92]); MULADD(at[14], at[91]); MULADD(at[15], at[90]); MULADD(at[16], at[89]); MULADD(at[17], at[88]); MULADD(at[18], at[87]); MULADD(at[19], at[86]); MULADD(at[20], at[85]); MULADD(at[21], at[84]); MULADD(at[22], at[83]); MULADD(at[23], at[82]); MULADD(at[24], at[81]); MULADD(at[25], at[80]); MULADD(at[26], at[79]); MULADD(at[27], at[78]); MULADD(at[28], at[77]); MULADD(at[29], at[76]); MULADD(at[30], at[75]); MULADD(at[31], at[74]); MULADD(at[32], at[73]); MULADD(at[33], at[72]); MULADD(at[34], at[71]); MULADD(at[35], at[70]); MULADD(at[36], at[69]); MULADD(at[37], at[68]); MULADD(at[38], at[67]); MULADD(at[39], at[66]); MULADD(at[40], at[65]); MULADD(at[41], at[64]); + COMBA_STORE(C->dp[41]); + /* 42 */ + COMBA_FORWARD; + MULADD(at[0], at[106]); MULADD(at[1], at[105]); MULADD(at[2], at[104]); MULADD(at[3], at[103]); MULADD(at[4], at[102]); MULADD(at[5], at[101]); MULADD(at[6], at[100]); MULADD(at[7], at[99]); MULADD(at[8], at[98]); MULADD(at[9], at[97]); MULADD(at[10], at[96]); MULADD(at[11], at[95]); MULADD(at[12], at[94]); MULADD(at[13], at[93]); MULADD(at[14], at[92]); MULADD(at[15], at[91]); MULADD(at[16], at[90]); MULADD(at[17], at[89]); MULADD(at[18], at[88]); MULADD(at[19], at[87]); MULADD(at[20], at[86]); MULADD(at[21], at[85]); MULADD(at[22], at[84]); MULADD(at[23], at[83]); MULADD(at[24], at[82]); MULADD(at[25], at[81]); MULADD(at[26], at[80]); MULADD(at[27], at[79]); MULADD(at[28], at[78]); MULADD(at[29], at[77]); MULADD(at[30], at[76]); MULADD(at[31], at[75]); MULADD(at[32], at[74]); MULADD(at[33], at[73]); MULADD(at[34], at[72]); MULADD(at[35], at[71]); MULADD(at[36], at[70]); MULADD(at[37], at[69]); MULADD(at[38], at[68]); MULADD(at[39], at[67]); MULADD(at[40], at[66]); MULADD(at[41], at[65]); MULADD(at[42], at[64]); + COMBA_STORE(C->dp[42]); + /* 43 */ + COMBA_FORWARD; + MULADD(at[0], at[107]); MULADD(at[1], at[106]); MULADD(at[2], at[105]); MULADD(at[3], at[104]); MULADD(at[4], at[103]); MULADD(at[5], at[102]); MULADD(at[6], at[101]); MULADD(at[7], at[100]); MULADD(at[8], at[99]); MULADD(at[9], at[98]); MULADD(at[10], at[97]); MULADD(at[11], at[96]); MULADD(at[12], at[95]); MULADD(at[13], at[94]); MULADD(at[14], at[93]); MULADD(at[15], at[92]); MULADD(at[16], at[91]); MULADD(at[17], at[90]); MULADD(at[18], at[89]); MULADD(at[19], at[88]); MULADD(at[20], at[87]); MULADD(at[21], at[86]); MULADD(at[22], at[85]); MULADD(at[23], at[84]); MULADD(at[24], at[83]); MULADD(at[25], at[82]); MULADD(at[26], at[81]); MULADD(at[27], at[80]); MULADD(at[28], at[79]); MULADD(at[29], at[78]); MULADD(at[30], at[77]); MULADD(at[31], at[76]); MULADD(at[32], at[75]); MULADD(at[33], at[74]); MULADD(at[34], at[73]); MULADD(at[35], at[72]); MULADD(at[36], at[71]); MULADD(at[37], at[70]); MULADD(at[38], at[69]); MULADD(at[39], at[68]); MULADD(at[40], at[67]); MULADD(at[41], at[66]); MULADD(at[42], at[65]); MULADD(at[43], at[64]); + COMBA_STORE(C->dp[43]); + /* 44 */ + COMBA_FORWARD; + MULADD(at[0], at[108]); MULADD(at[1], at[107]); MULADD(at[2], at[106]); MULADD(at[3], at[105]); MULADD(at[4], at[104]); MULADD(at[5], at[103]); MULADD(at[6], at[102]); MULADD(at[7], at[101]); MULADD(at[8], at[100]); MULADD(at[9], at[99]); MULADD(at[10], at[98]); MULADD(at[11], at[97]); MULADD(at[12], at[96]); MULADD(at[13], at[95]); MULADD(at[14], at[94]); MULADD(at[15], at[93]); MULADD(at[16], at[92]); MULADD(at[17], at[91]); MULADD(at[18], at[90]); MULADD(at[19], at[89]); MULADD(at[20], at[88]); MULADD(at[21], at[87]); MULADD(at[22], at[86]); MULADD(at[23], at[85]); MULADD(at[24], at[84]); MULADD(at[25], at[83]); MULADD(at[26], at[82]); MULADD(at[27], at[81]); MULADD(at[28], at[80]); MULADD(at[29], at[79]); MULADD(at[30], at[78]); MULADD(at[31], at[77]); MULADD(at[32], at[76]); MULADD(at[33], at[75]); MULADD(at[34], at[74]); MULADD(at[35], at[73]); MULADD(at[36], at[72]); MULADD(at[37], at[71]); MULADD(at[38], at[70]); MULADD(at[39], at[69]); MULADD(at[40], at[68]); MULADD(at[41], at[67]); MULADD(at[42], at[66]); MULADD(at[43], at[65]); MULADD(at[44], at[64]); + COMBA_STORE(C->dp[44]); + /* 45 */ + COMBA_FORWARD; + MULADD(at[0], at[109]); MULADD(at[1], at[108]); MULADD(at[2], at[107]); MULADD(at[3], at[106]); MULADD(at[4], at[105]); MULADD(at[5], at[104]); MULADD(at[6], at[103]); MULADD(at[7], at[102]); MULADD(at[8], at[101]); MULADD(at[9], at[100]); MULADD(at[10], at[99]); MULADD(at[11], at[98]); MULADD(at[12], at[97]); MULADD(at[13], at[96]); MULADD(at[14], at[95]); MULADD(at[15], at[94]); MULADD(at[16], at[93]); MULADD(at[17], at[92]); MULADD(at[18], at[91]); MULADD(at[19], at[90]); MULADD(at[20], at[89]); MULADD(at[21], at[88]); MULADD(at[22], at[87]); MULADD(at[23], at[86]); MULADD(at[24], at[85]); MULADD(at[25], at[84]); MULADD(at[26], at[83]); MULADD(at[27], at[82]); MULADD(at[28], at[81]); MULADD(at[29], at[80]); MULADD(at[30], at[79]); MULADD(at[31], at[78]); MULADD(at[32], at[77]); MULADD(at[33], at[76]); MULADD(at[34], at[75]); MULADD(at[35], at[74]); MULADD(at[36], at[73]); MULADD(at[37], at[72]); MULADD(at[38], at[71]); MULADD(at[39], at[70]); MULADD(at[40], at[69]); MULADD(at[41], at[68]); MULADD(at[42], at[67]); MULADD(at[43], at[66]); MULADD(at[44], at[65]); MULADD(at[45], at[64]); + COMBA_STORE(C->dp[45]); + /* 46 */ + COMBA_FORWARD; + MULADD(at[0], at[110]); MULADD(at[1], at[109]); MULADD(at[2], at[108]); MULADD(at[3], at[107]); MULADD(at[4], at[106]); MULADD(at[5], at[105]); MULADD(at[6], at[104]); MULADD(at[7], at[103]); MULADD(at[8], at[102]); MULADD(at[9], at[101]); MULADD(at[10], at[100]); MULADD(at[11], at[99]); MULADD(at[12], at[98]); MULADD(at[13], at[97]); MULADD(at[14], at[96]); MULADD(at[15], at[95]); MULADD(at[16], at[94]); MULADD(at[17], at[93]); MULADD(at[18], at[92]); MULADD(at[19], at[91]); MULADD(at[20], at[90]); MULADD(at[21], at[89]); MULADD(at[22], at[88]); MULADD(at[23], at[87]); MULADD(at[24], at[86]); MULADD(at[25], at[85]); MULADD(at[26], at[84]); MULADD(at[27], at[83]); MULADD(at[28], at[82]); MULADD(at[29], at[81]); MULADD(at[30], at[80]); MULADD(at[31], at[79]); MULADD(at[32], at[78]); MULADD(at[33], at[77]); MULADD(at[34], at[76]); MULADD(at[35], at[75]); MULADD(at[36], at[74]); MULADD(at[37], at[73]); MULADD(at[38], at[72]); MULADD(at[39], at[71]); MULADD(at[40], at[70]); MULADD(at[41], at[69]); MULADD(at[42], at[68]); MULADD(at[43], at[67]); MULADD(at[44], at[66]); MULADD(at[45], at[65]); MULADD(at[46], at[64]); + COMBA_STORE(C->dp[46]); + /* 47 */ + COMBA_FORWARD; + MULADD(at[0], at[111]); MULADD(at[1], at[110]); MULADD(at[2], at[109]); MULADD(at[3], at[108]); MULADD(at[4], at[107]); MULADD(at[5], at[106]); MULADD(at[6], at[105]); MULADD(at[7], at[104]); MULADD(at[8], at[103]); MULADD(at[9], at[102]); MULADD(at[10], at[101]); MULADD(at[11], at[100]); MULADD(at[12], at[99]); MULADD(at[13], at[98]); MULADD(at[14], at[97]); MULADD(at[15], at[96]); MULADD(at[16], at[95]); MULADD(at[17], at[94]); MULADD(at[18], at[93]); MULADD(at[19], at[92]); MULADD(at[20], at[91]); MULADD(at[21], at[90]); MULADD(at[22], at[89]); MULADD(at[23], at[88]); MULADD(at[24], at[87]); MULADD(at[25], at[86]); MULADD(at[26], at[85]); MULADD(at[27], at[84]); MULADD(at[28], at[83]); MULADD(at[29], at[82]); MULADD(at[30], at[81]); MULADD(at[31], at[80]); MULADD(at[32], at[79]); MULADD(at[33], at[78]); MULADD(at[34], at[77]); MULADD(at[35], at[76]); MULADD(at[36], at[75]); MULADD(at[37], at[74]); MULADD(at[38], at[73]); MULADD(at[39], at[72]); MULADD(at[40], at[71]); MULADD(at[41], at[70]); MULADD(at[42], at[69]); MULADD(at[43], at[68]); MULADD(at[44], at[67]); MULADD(at[45], at[66]); MULADD(at[46], at[65]); MULADD(at[47], at[64]); + COMBA_STORE(C->dp[47]); + /* 48 */ + COMBA_FORWARD; + MULADD(at[0], at[112]); MULADD(at[1], at[111]); MULADD(at[2], at[110]); MULADD(at[3], at[109]); MULADD(at[4], at[108]); MULADD(at[5], at[107]); MULADD(at[6], at[106]); MULADD(at[7], at[105]); MULADD(at[8], at[104]); MULADD(at[9], at[103]); MULADD(at[10], at[102]); MULADD(at[11], at[101]); MULADD(at[12], at[100]); MULADD(at[13], at[99]); MULADD(at[14], at[98]); MULADD(at[15], at[97]); MULADD(at[16], at[96]); MULADD(at[17], at[95]); MULADD(at[18], at[94]); MULADD(at[19], at[93]); MULADD(at[20], at[92]); MULADD(at[21], at[91]); MULADD(at[22], at[90]); MULADD(at[23], at[89]); MULADD(at[24], at[88]); MULADD(at[25], at[87]); MULADD(at[26], at[86]); MULADD(at[27], at[85]); MULADD(at[28], at[84]); MULADD(at[29], at[83]); MULADD(at[30], at[82]); MULADD(at[31], at[81]); MULADD(at[32], at[80]); MULADD(at[33], at[79]); MULADD(at[34], at[78]); MULADD(at[35], at[77]); MULADD(at[36], at[76]); MULADD(at[37], at[75]); MULADD(at[38], at[74]); MULADD(at[39], at[73]); MULADD(at[40], at[72]); MULADD(at[41], at[71]); MULADD(at[42], at[70]); MULADD(at[43], at[69]); MULADD(at[44], at[68]); MULADD(at[45], at[67]); MULADD(at[46], at[66]); MULADD(at[47], at[65]); MULADD(at[48], at[64]); + COMBA_STORE(C->dp[48]); + /* 49 */ + COMBA_FORWARD; + MULADD(at[0], at[113]); MULADD(at[1], at[112]); MULADD(at[2], at[111]); MULADD(at[3], at[110]); MULADD(at[4], at[109]); MULADD(at[5], at[108]); MULADD(at[6], at[107]); MULADD(at[7], at[106]); MULADD(at[8], at[105]); MULADD(at[9], at[104]); MULADD(at[10], at[103]); MULADD(at[11], at[102]); MULADD(at[12], at[101]); MULADD(at[13], at[100]); MULADD(at[14], at[99]); MULADD(at[15], at[98]); MULADD(at[16], at[97]); MULADD(at[17], at[96]); MULADD(at[18], at[95]); MULADD(at[19], at[94]); MULADD(at[20], at[93]); MULADD(at[21], at[92]); MULADD(at[22], at[91]); MULADD(at[23], at[90]); MULADD(at[24], at[89]); MULADD(at[25], at[88]); MULADD(at[26], at[87]); MULADD(at[27], at[86]); MULADD(at[28], at[85]); MULADD(at[29], at[84]); MULADD(at[30], at[83]); MULADD(at[31], at[82]); MULADD(at[32], at[81]); MULADD(at[33], at[80]); MULADD(at[34], at[79]); MULADD(at[35], at[78]); MULADD(at[36], at[77]); MULADD(at[37], at[76]); MULADD(at[38], at[75]); MULADD(at[39], at[74]); MULADD(at[40], at[73]); MULADD(at[41], at[72]); MULADD(at[42], at[71]); MULADD(at[43], at[70]); MULADD(at[44], at[69]); MULADD(at[45], at[68]); MULADD(at[46], at[67]); MULADD(at[47], at[66]); MULADD(at[48], at[65]); MULADD(at[49], at[64]); + COMBA_STORE(C->dp[49]); + /* 50 */ + COMBA_FORWARD; + MULADD(at[0], at[114]); MULADD(at[1], at[113]); MULADD(at[2], at[112]); MULADD(at[3], at[111]); MULADD(at[4], at[110]); MULADD(at[5], at[109]); MULADD(at[6], at[108]); MULADD(at[7], at[107]); MULADD(at[8], at[106]); MULADD(at[9], at[105]); MULADD(at[10], at[104]); MULADD(at[11], at[103]); MULADD(at[12], at[102]); MULADD(at[13], at[101]); MULADD(at[14], at[100]); MULADD(at[15], at[99]); MULADD(at[16], at[98]); MULADD(at[17], at[97]); MULADD(at[18], at[96]); MULADD(at[19], at[95]); MULADD(at[20], at[94]); MULADD(at[21], at[93]); MULADD(at[22], at[92]); MULADD(at[23], at[91]); MULADD(at[24], at[90]); MULADD(at[25], at[89]); MULADD(at[26], at[88]); MULADD(at[27], at[87]); MULADD(at[28], at[86]); MULADD(at[29], at[85]); MULADD(at[30], at[84]); MULADD(at[31], at[83]); MULADD(at[32], at[82]); MULADD(at[33], at[81]); MULADD(at[34], at[80]); MULADD(at[35], at[79]); MULADD(at[36], at[78]); MULADD(at[37], at[77]); MULADD(at[38], at[76]); MULADD(at[39], at[75]); MULADD(at[40], at[74]); MULADD(at[41], at[73]); MULADD(at[42], at[72]); MULADD(at[43], at[71]); MULADD(at[44], at[70]); MULADD(at[45], at[69]); MULADD(at[46], at[68]); MULADD(at[47], at[67]); MULADD(at[48], at[66]); MULADD(at[49], at[65]); MULADD(at[50], at[64]); + COMBA_STORE(C->dp[50]); + /* 51 */ + COMBA_FORWARD; + MULADD(at[0], at[115]); MULADD(at[1], at[114]); MULADD(at[2], at[113]); MULADD(at[3], at[112]); MULADD(at[4], at[111]); MULADD(at[5], at[110]); MULADD(at[6], at[109]); MULADD(at[7], at[108]); MULADD(at[8], at[107]); MULADD(at[9], at[106]); MULADD(at[10], at[105]); MULADD(at[11], at[104]); MULADD(at[12], at[103]); MULADD(at[13], at[102]); MULADD(at[14], at[101]); MULADD(at[15], at[100]); MULADD(at[16], at[99]); MULADD(at[17], at[98]); MULADD(at[18], at[97]); MULADD(at[19], at[96]); MULADD(at[20], at[95]); MULADD(at[21], at[94]); MULADD(at[22], at[93]); MULADD(at[23], at[92]); MULADD(at[24], at[91]); MULADD(at[25], at[90]); MULADD(at[26], at[89]); MULADD(at[27], at[88]); MULADD(at[28], at[87]); MULADD(at[29], at[86]); MULADD(at[30], at[85]); MULADD(at[31], at[84]); MULADD(at[32], at[83]); MULADD(at[33], at[82]); MULADD(at[34], at[81]); MULADD(at[35], at[80]); MULADD(at[36], at[79]); MULADD(at[37], at[78]); MULADD(at[38], at[77]); MULADD(at[39], at[76]); MULADD(at[40], at[75]); MULADD(at[41], at[74]); MULADD(at[42], at[73]); MULADD(at[43], at[72]); MULADD(at[44], at[71]); MULADD(at[45], at[70]); MULADD(at[46], at[69]); MULADD(at[47], at[68]); MULADD(at[48], at[67]); MULADD(at[49], at[66]); MULADD(at[50], at[65]); MULADD(at[51], at[64]); + COMBA_STORE(C->dp[51]); + /* 52 */ + COMBA_FORWARD; + MULADD(at[0], at[116]); MULADD(at[1], at[115]); MULADD(at[2], at[114]); MULADD(at[3], at[113]); MULADD(at[4], at[112]); MULADD(at[5], at[111]); MULADD(at[6], at[110]); MULADD(at[7], at[109]); MULADD(at[8], at[108]); MULADD(at[9], at[107]); MULADD(at[10], at[106]); MULADD(at[11], at[105]); MULADD(at[12], at[104]); MULADD(at[13], at[103]); MULADD(at[14], at[102]); MULADD(at[15], at[101]); MULADD(at[16], at[100]); MULADD(at[17], at[99]); MULADD(at[18], at[98]); MULADD(at[19], at[97]); MULADD(at[20], at[96]); MULADD(at[21], at[95]); MULADD(at[22], at[94]); MULADD(at[23], at[93]); MULADD(at[24], at[92]); MULADD(at[25], at[91]); MULADD(at[26], at[90]); MULADD(at[27], at[89]); MULADD(at[28], at[88]); MULADD(at[29], at[87]); MULADD(at[30], at[86]); MULADD(at[31], at[85]); MULADD(at[32], at[84]); MULADD(at[33], at[83]); MULADD(at[34], at[82]); MULADD(at[35], at[81]); MULADD(at[36], at[80]); MULADD(at[37], at[79]); MULADD(at[38], at[78]); MULADD(at[39], at[77]); MULADD(at[40], at[76]); MULADD(at[41], at[75]); MULADD(at[42], at[74]); MULADD(at[43], at[73]); MULADD(at[44], at[72]); MULADD(at[45], at[71]); MULADD(at[46], at[70]); MULADD(at[47], at[69]); MULADD(at[48], at[68]); MULADD(at[49], at[67]); MULADD(at[50], at[66]); MULADD(at[51], at[65]); MULADD(at[52], at[64]); + COMBA_STORE(C->dp[52]); + /* 53 */ + COMBA_FORWARD; + MULADD(at[0], at[117]); MULADD(at[1], at[116]); MULADD(at[2], at[115]); MULADD(at[3], at[114]); MULADD(at[4], at[113]); MULADD(at[5], at[112]); MULADD(at[6], at[111]); MULADD(at[7], at[110]); MULADD(at[8], at[109]); MULADD(at[9], at[108]); MULADD(at[10], at[107]); MULADD(at[11], at[106]); MULADD(at[12], at[105]); MULADD(at[13], at[104]); MULADD(at[14], at[103]); MULADD(at[15], at[102]); MULADD(at[16], at[101]); MULADD(at[17], at[100]); MULADD(at[18], at[99]); MULADD(at[19], at[98]); MULADD(at[20], at[97]); MULADD(at[21], at[96]); MULADD(at[22], at[95]); MULADD(at[23], at[94]); MULADD(at[24], at[93]); MULADD(at[25], at[92]); MULADD(at[26], at[91]); MULADD(at[27], at[90]); MULADD(at[28], at[89]); MULADD(at[29], at[88]); MULADD(at[30], at[87]); MULADD(at[31], at[86]); MULADD(at[32], at[85]); MULADD(at[33], at[84]); MULADD(at[34], at[83]); MULADD(at[35], at[82]); MULADD(at[36], at[81]); MULADD(at[37], at[80]); MULADD(at[38], at[79]); MULADD(at[39], at[78]); MULADD(at[40], at[77]); MULADD(at[41], at[76]); MULADD(at[42], at[75]); MULADD(at[43], at[74]); MULADD(at[44], at[73]); MULADD(at[45], at[72]); MULADD(at[46], at[71]); MULADD(at[47], at[70]); MULADD(at[48], at[69]); MULADD(at[49], at[68]); MULADD(at[50], at[67]); MULADD(at[51], at[66]); MULADD(at[52], at[65]); MULADD(at[53], at[64]); + COMBA_STORE(C->dp[53]); + /* 54 */ + COMBA_FORWARD; + MULADD(at[0], at[118]); MULADD(at[1], at[117]); MULADD(at[2], at[116]); MULADD(at[3], at[115]); MULADD(at[4], at[114]); MULADD(at[5], at[113]); MULADD(at[6], at[112]); MULADD(at[7], at[111]); MULADD(at[8], at[110]); MULADD(at[9], at[109]); MULADD(at[10], at[108]); MULADD(at[11], at[107]); MULADD(at[12], at[106]); MULADD(at[13], at[105]); MULADD(at[14], at[104]); MULADD(at[15], at[103]); MULADD(at[16], at[102]); MULADD(at[17], at[101]); MULADD(at[18], at[100]); MULADD(at[19], at[99]); MULADD(at[20], at[98]); MULADD(at[21], at[97]); MULADD(at[22], at[96]); MULADD(at[23], at[95]); MULADD(at[24], at[94]); MULADD(at[25], at[93]); MULADD(at[26], at[92]); MULADD(at[27], at[91]); MULADD(at[28], at[90]); MULADD(at[29], at[89]); MULADD(at[30], at[88]); MULADD(at[31], at[87]); MULADD(at[32], at[86]); MULADD(at[33], at[85]); MULADD(at[34], at[84]); MULADD(at[35], at[83]); MULADD(at[36], at[82]); MULADD(at[37], at[81]); MULADD(at[38], at[80]); MULADD(at[39], at[79]); MULADD(at[40], at[78]); MULADD(at[41], at[77]); MULADD(at[42], at[76]); MULADD(at[43], at[75]); MULADD(at[44], at[74]); MULADD(at[45], at[73]); MULADD(at[46], at[72]); MULADD(at[47], at[71]); MULADD(at[48], at[70]); MULADD(at[49], at[69]); MULADD(at[50], at[68]); MULADD(at[51], at[67]); MULADD(at[52], at[66]); MULADD(at[53], at[65]); MULADD(at[54], at[64]); + COMBA_STORE(C->dp[54]); + /* 55 */ + COMBA_FORWARD; + MULADD(at[0], at[119]); MULADD(at[1], at[118]); MULADD(at[2], at[117]); MULADD(at[3], at[116]); MULADD(at[4], at[115]); MULADD(at[5], at[114]); MULADD(at[6], at[113]); MULADD(at[7], at[112]); MULADD(at[8], at[111]); MULADD(at[9], at[110]); MULADD(at[10], at[109]); MULADD(at[11], at[108]); MULADD(at[12], at[107]); MULADD(at[13], at[106]); MULADD(at[14], at[105]); MULADD(at[15], at[104]); MULADD(at[16], at[103]); MULADD(at[17], at[102]); MULADD(at[18], at[101]); MULADD(at[19], at[100]); MULADD(at[20], at[99]); MULADD(at[21], at[98]); MULADD(at[22], at[97]); MULADD(at[23], at[96]); MULADD(at[24], at[95]); MULADD(at[25], at[94]); MULADD(at[26], at[93]); MULADD(at[27], at[92]); MULADD(at[28], at[91]); MULADD(at[29], at[90]); MULADD(at[30], at[89]); MULADD(at[31], at[88]); MULADD(at[32], at[87]); MULADD(at[33], at[86]); MULADD(at[34], at[85]); MULADD(at[35], at[84]); MULADD(at[36], at[83]); MULADD(at[37], at[82]); MULADD(at[38], at[81]); MULADD(at[39], at[80]); MULADD(at[40], at[79]); MULADD(at[41], at[78]); MULADD(at[42], at[77]); MULADD(at[43], at[76]); MULADD(at[44], at[75]); MULADD(at[45], at[74]); MULADD(at[46], at[73]); MULADD(at[47], at[72]); MULADD(at[48], at[71]); MULADD(at[49], at[70]); MULADD(at[50], at[69]); MULADD(at[51], at[68]); MULADD(at[52], at[67]); MULADD(at[53], at[66]); MULADD(at[54], at[65]); MULADD(at[55], at[64]); + COMBA_STORE(C->dp[55]); + /* 56 */ + COMBA_FORWARD; + MULADD(at[0], at[120]); MULADD(at[1], at[119]); MULADD(at[2], at[118]); MULADD(at[3], at[117]); MULADD(at[4], at[116]); MULADD(at[5], at[115]); MULADD(at[6], at[114]); MULADD(at[7], at[113]); MULADD(at[8], at[112]); MULADD(at[9], at[111]); MULADD(at[10], at[110]); MULADD(at[11], at[109]); MULADD(at[12], at[108]); MULADD(at[13], at[107]); MULADD(at[14], at[106]); MULADD(at[15], at[105]); MULADD(at[16], at[104]); MULADD(at[17], at[103]); MULADD(at[18], at[102]); MULADD(at[19], at[101]); MULADD(at[20], at[100]); MULADD(at[21], at[99]); MULADD(at[22], at[98]); MULADD(at[23], at[97]); MULADD(at[24], at[96]); MULADD(at[25], at[95]); MULADD(at[26], at[94]); MULADD(at[27], at[93]); MULADD(at[28], at[92]); MULADD(at[29], at[91]); MULADD(at[30], at[90]); MULADD(at[31], at[89]); MULADD(at[32], at[88]); MULADD(at[33], at[87]); MULADD(at[34], at[86]); MULADD(at[35], at[85]); MULADD(at[36], at[84]); MULADD(at[37], at[83]); MULADD(at[38], at[82]); MULADD(at[39], at[81]); MULADD(at[40], at[80]); MULADD(at[41], at[79]); MULADD(at[42], at[78]); MULADD(at[43], at[77]); MULADD(at[44], at[76]); MULADD(at[45], at[75]); MULADD(at[46], at[74]); MULADD(at[47], at[73]); MULADD(at[48], at[72]); MULADD(at[49], at[71]); MULADD(at[50], at[70]); MULADD(at[51], at[69]); MULADD(at[52], at[68]); MULADD(at[53], at[67]); MULADD(at[54], at[66]); MULADD(at[55], at[65]); MULADD(at[56], at[64]); + COMBA_STORE(C->dp[56]); + /* 57 */ + COMBA_FORWARD; + MULADD(at[0], at[121]); MULADD(at[1], at[120]); MULADD(at[2], at[119]); MULADD(at[3], at[118]); MULADD(at[4], at[117]); MULADD(at[5], at[116]); MULADD(at[6], at[115]); MULADD(at[7], at[114]); MULADD(at[8], at[113]); MULADD(at[9], at[112]); MULADD(at[10], at[111]); MULADD(at[11], at[110]); MULADD(at[12], at[109]); MULADD(at[13], at[108]); MULADD(at[14], at[107]); MULADD(at[15], at[106]); MULADD(at[16], at[105]); MULADD(at[17], at[104]); MULADD(at[18], at[103]); MULADD(at[19], at[102]); MULADD(at[20], at[101]); MULADD(at[21], at[100]); MULADD(at[22], at[99]); MULADD(at[23], at[98]); MULADD(at[24], at[97]); MULADD(at[25], at[96]); MULADD(at[26], at[95]); MULADD(at[27], at[94]); MULADD(at[28], at[93]); MULADD(at[29], at[92]); MULADD(at[30], at[91]); MULADD(at[31], at[90]); MULADD(at[32], at[89]); MULADD(at[33], at[88]); MULADD(at[34], at[87]); MULADD(at[35], at[86]); MULADD(at[36], at[85]); MULADD(at[37], at[84]); MULADD(at[38], at[83]); MULADD(at[39], at[82]); MULADD(at[40], at[81]); MULADD(at[41], at[80]); MULADD(at[42], at[79]); MULADD(at[43], at[78]); MULADD(at[44], at[77]); MULADD(at[45], at[76]); MULADD(at[46], at[75]); MULADD(at[47], at[74]); MULADD(at[48], at[73]); MULADD(at[49], at[72]); MULADD(at[50], at[71]); MULADD(at[51], at[70]); MULADD(at[52], at[69]); MULADD(at[53], at[68]); MULADD(at[54], at[67]); MULADD(at[55], at[66]); MULADD(at[56], at[65]); MULADD(at[57], at[64]); + COMBA_STORE(C->dp[57]); + /* 58 */ + COMBA_FORWARD; + MULADD(at[0], at[122]); MULADD(at[1], at[121]); MULADD(at[2], at[120]); MULADD(at[3], at[119]); MULADD(at[4], at[118]); MULADD(at[5], at[117]); MULADD(at[6], at[116]); MULADD(at[7], at[115]); MULADD(at[8], at[114]); MULADD(at[9], at[113]); MULADD(at[10], at[112]); MULADD(at[11], at[111]); MULADD(at[12], at[110]); MULADD(at[13], at[109]); MULADD(at[14], at[108]); MULADD(at[15], at[107]); MULADD(at[16], at[106]); MULADD(at[17], at[105]); MULADD(at[18], at[104]); MULADD(at[19], at[103]); MULADD(at[20], at[102]); MULADD(at[21], at[101]); MULADD(at[22], at[100]); MULADD(at[23], at[99]); MULADD(at[24], at[98]); MULADD(at[25], at[97]); MULADD(at[26], at[96]); MULADD(at[27], at[95]); MULADD(at[28], at[94]); MULADD(at[29], at[93]); MULADD(at[30], at[92]); MULADD(at[31], at[91]); MULADD(at[32], at[90]); MULADD(at[33], at[89]); MULADD(at[34], at[88]); MULADD(at[35], at[87]); MULADD(at[36], at[86]); MULADD(at[37], at[85]); MULADD(at[38], at[84]); MULADD(at[39], at[83]); MULADD(at[40], at[82]); MULADD(at[41], at[81]); MULADD(at[42], at[80]); MULADD(at[43], at[79]); MULADD(at[44], at[78]); MULADD(at[45], at[77]); MULADD(at[46], at[76]); MULADD(at[47], at[75]); MULADD(at[48], at[74]); MULADD(at[49], at[73]); MULADD(at[50], at[72]); MULADD(at[51], at[71]); MULADD(at[52], at[70]); MULADD(at[53], at[69]); MULADD(at[54], at[68]); MULADD(at[55], at[67]); MULADD(at[56], at[66]); MULADD(at[57], at[65]); MULADD(at[58], at[64]); + COMBA_STORE(C->dp[58]); + /* 59 */ + COMBA_FORWARD; + MULADD(at[0], at[123]); MULADD(at[1], at[122]); MULADD(at[2], at[121]); MULADD(at[3], at[120]); MULADD(at[4], at[119]); MULADD(at[5], at[118]); MULADD(at[6], at[117]); MULADD(at[7], at[116]); MULADD(at[8], at[115]); MULADD(at[9], at[114]); MULADD(at[10], at[113]); MULADD(at[11], at[112]); MULADD(at[12], at[111]); MULADD(at[13], at[110]); MULADD(at[14], at[109]); MULADD(at[15], at[108]); MULADD(at[16], at[107]); MULADD(at[17], at[106]); MULADD(at[18], at[105]); MULADD(at[19], at[104]); MULADD(at[20], at[103]); MULADD(at[21], at[102]); MULADD(at[22], at[101]); MULADD(at[23], at[100]); MULADD(at[24], at[99]); MULADD(at[25], at[98]); MULADD(at[26], at[97]); MULADD(at[27], at[96]); MULADD(at[28], at[95]); MULADD(at[29], at[94]); MULADD(at[30], at[93]); MULADD(at[31], at[92]); MULADD(at[32], at[91]); MULADD(at[33], at[90]); MULADD(at[34], at[89]); MULADD(at[35], at[88]); MULADD(at[36], at[87]); MULADD(at[37], at[86]); MULADD(at[38], at[85]); MULADD(at[39], at[84]); MULADD(at[40], at[83]); MULADD(at[41], at[82]); MULADD(at[42], at[81]); MULADD(at[43], at[80]); MULADD(at[44], at[79]); MULADD(at[45], at[78]); MULADD(at[46], at[77]); MULADD(at[47], at[76]); MULADD(at[48], at[75]); MULADD(at[49], at[74]); MULADD(at[50], at[73]); MULADD(at[51], at[72]); MULADD(at[52], at[71]); MULADD(at[53], at[70]); MULADD(at[54], at[69]); MULADD(at[55], at[68]); MULADD(at[56], at[67]); MULADD(at[57], at[66]); MULADD(at[58], at[65]); MULADD(at[59], at[64]); + COMBA_STORE(C->dp[59]); + /* 60 */ + COMBA_FORWARD; + MULADD(at[0], at[124]); MULADD(at[1], at[123]); MULADD(at[2], at[122]); MULADD(at[3], at[121]); MULADD(at[4], at[120]); MULADD(at[5], at[119]); MULADD(at[6], at[118]); MULADD(at[7], at[117]); MULADD(at[8], at[116]); MULADD(at[9], at[115]); MULADD(at[10], at[114]); MULADD(at[11], at[113]); MULADD(at[12], at[112]); MULADD(at[13], at[111]); MULADD(at[14], at[110]); MULADD(at[15], at[109]); MULADD(at[16], at[108]); MULADD(at[17], at[107]); MULADD(at[18], at[106]); MULADD(at[19], at[105]); MULADD(at[20], at[104]); MULADD(at[21], at[103]); MULADD(at[22], at[102]); MULADD(at[23], at[101]); MULADD(at[24], at[100]); MULADD(at[25], at[99]); MULADD(at[26], at[98]); MULADD(at[27], at[97]); MULADD(at[28], at[96]); MULADD(at[29], at[95]); MULADD(at[30], at[94]); MULADD(at[31], at[93]); MULADD(at[32], at[92]); MULADD(at[33], at[91]); MULADD(at[34], at[90]); MULADD(at[35], at[89]); MULADD(at[36], at[88]); MULADD(at[37], at[87]); MULADD(at[38], at[86]); MULADD(at[39], at[85]); MULADD(at[40], at[84]); MULADD(at[41], at[83]); MULADD(at[42], at[82]); MULADD(at[43], at[81]); MULADD(at[44], at[80]); MULADD(at[45], at[79]); MULADD(at[46], at[78]); MULADD(at[47], at[77]); MULADD(at[48], at[76]); MULADD(at[49], at[75]); MULADD(at[50], at[74]); MULADD(at[51], at[73]); MULADD(at[52], at[72]); MULADD(at[53], at[71]); MULADD(at[54], at[70]); MULADD(at[55], at[69]); MULADD(at[56], at[68]); MULADD(at[57], at[67]); MULADD(at[58], at[66]); MULADD(at[59], at[65]); MULADD(at[60], at[64]); + COMBA_STORE(C->dp[60]); + /* 61 */ + COMBA_FORWARD; + MULADD(at[0], at[125]); MULADD(at[1], at[124]); MULADD(at[2], at[123]); MULADD(at[3], at[122]); MULADD(at[4], at[121]); MULADD(at[5], at[120]); MULADD(at[6], at[119]); MULADD(at[7], at[118]); MULADD(at[8], at[117]); MULADD(at[9], at[116]); MULADD(at[10], at[115]); MULADD(at[11], at[114]); MULADD(at[12], at[113]); MULADD(at[13], at[112]); MULADD(at[14], at[111]); MULADD(at[15], at[110]); MULADD(at[16], at[109]); MULADD(at[17], at[108]); MULADD(at[18], at[107]); MULADD(at[19], at[106]); MULADD(at[20], at[105]); MULADD(at[21], at[104]); MULADD(at[22], at[103]); MULADD(at[23], at[102]); MULADD(at[24], at[101]); MULADD(at[25], at[100]); MULADD(at[26], at[99]); MULADD(at[27], at[98]); MULADD(at[28], at[97]); MULADD(at[29], at[96]); MULADD(at[30], at[95]); MULADD(at[31], at[94]); MULADD(at[32], at[93]); MULADD(at[33], at[92]); MULADD(at[34], at[91]); MULADD(at[35], at[90]); MULADD(at[36], at[89]); MULADD(at[37], at[88]); MULADD(at[38], at[87]); MULADD(at[39], at[86]); MULADD(at[40], at[85]); MULADD(at[41], at[84]); MULADD(at[42], at[83]); MULADD(at[43], at[82]); MULADD(at[44], at[81]); MULADD(at[45], at[80]); MULADD(at[46], at[79]); MULADD(at[47], at[78]); MULADD(at[48], at[77]); MULADD(at[49], at[76]); MULADD(at[50], at[75]); MULADD(at[51], at[74]); MULADD(at[52], at[73]); MULADD(at[53], at[72]); MULADD(at[54], at[71]); MULADD(at[55], at[70]); MULADD(at[56], at[69]); MULADD(at[57], at[68]); MULADD(at[58], at[67]); MULADD(at[59], at[66]); MULADD(at[60], at[65]); MULADD(at[61], at[64]); + COMBA_STORE(C->dp[61]); + /* 62 */ + COMBA_FORWARD; + MULADD(at[0], at[126]); MULADD(at[1], at[125]); MULADD(at[2], at[124]); MULADD(at[3], at[123]); MULADD(at[4], at[122]); MULADD(at[5], at[121]); MULADD(at[6], at[120]); MULADD(at[7], at[119]); MULADD(at[8], at[118]); MULADD(at[9], at[117]); MULADD(at[10], at[116]); MULADD(at[11], at[115]); MULADD(at[12], at[114]); MULADD(at[13], at[113]); MULADD(at[14], at[112]); MULADD(at[15], at[111]); MULADD(at[16], at[110]); MULADD(at[17], at[109]); MULADD(at[18], at[108]); MULADD(at[19], at[107]); MULADD(at[20], at[106]); MULADD(at[21], at[105]); MULADD(at[22], at[104]); MULADD(at[23], at[103]); MULADD(at[24], at[102]); MULADD(at[25], at[101]); MULADD(at[26], at[100]); MULADD(at[27], at[99]); MULADD(at[28], at[98]); MULADD(at[29], at[97]); MULADD(at[30], at[96]); MULADD(at[31], at[95]); MULADD(at[32], at[94]); MULADD(at[33], at[93]); MULADD(at[34], at[92]); MULADD(at[35], at[91]); MULADD(at[36], at[90]); MULADD(at[37], at[89]); MULADD(at[38], at[88]); MULADD(at[39], at[87]); MULADD(at[40], at[86]); MULADD(at[41], at[85]); MULADD(at[42], at[84]); MULADD(at[43], at[83]); MULADD(at[44], at[82]); MULADD(at[45], at[81]); MULADD(at[46], at[80]); MULADD(at[47], at[79]); MULADD(at[48], at[78]); MULADD(at[49], at[77]); MULADD(at[50], at[76]); MULADD(at[51], at[75]); MULADD(at[52], at[74]); MULADD(at[53], at[73]); MULADD(at[54], at[72]); MULADD(at[55], at[71]); MULADD(at[56], at[70]); MULADD(at[57], at[69]); MULADD(at[58], at[68]); MULADD(at[59], at[67]); MULADD(at[60], at[66]); MULADD(at[61], at[65]); MULADD(at[62], at[64]); + COMBA_STORE(C->dp[62]); + /* 63 */ + COMBA_FORWARD; + MULADD(at[0], at[127]); MULADD(at[1], at[126]); MULADD(at[2], at[125]); MULADD(at[3], at[124]); MULADD(at[4], at[123]); MULADD(at[5], at[122]); MULADD(at[6], at[121]); MULADD(at[7], at[120]); MULADD(at[8], at[119]); MULADD(at[9], at[118]); MULADD(at[10], at[117]); MULADD(at[11], at[116]); MULADD(at[12], at[115]); MULADD(at[13], at[114]); MULADD(at[14], at[113]); MULADD(at[15], at[112]); MULADD(at[16], at[111]); MULADD(at[17], at[110]); MULADD(at[18], at[109]); MULADD(at[19], at[108]); MULADD(at[20], at[107]); MULADD(at[21], at[106]); MULADD(at[22], at[105]); MULADD(at[23], at[104]); MULADD(at[24], at[103]); MULADD(at[25], at[102]); MULADD(at[26], at[101]); MULADD(at[27], at[100]); MULADD(at[28], at[99]); MULADD(at[29], at[98]); MULADD(at[30], at[97]); MULADD(at[31], at[96]); MULADD(at[32], at[95]); MULADD(at[33], at[94]); MULADD(at[34], at[93]); MULADD(at[35], at[92]); MULADD(at[36], at[91]); MULADD(at[37], at[90]); MULADD(at[38], at[89]); MULADD(at[39], at[88]); MULADD(at[40], at[87]); MULADD(at[41], at[86]); MULADD(at[42], at[85]); MULADD(at[43], at[84]); MULADD(at[44], at[83]); MULADD(at[45], at[82]); MULADD(at[46], at[81]); MULADD(at[47], at[80]); MULADD(at[48], at[79]); MULADD(at[49], at[78]); MULADD(at[50], at[77]); MULADD(at[51], at[76]); MULADD(at[52], at[75]); MULADD(at[53], at[74]); MULADD(at[54], at[73]); MULADD(at[55], at[72]); MULADD(at[56], at[71]); MULADD(at[57], at[70]); MULADD(at[58], at[69]); MULADD(at[59], at[68]); MULADD(at[60], at[67]); MULADD(at[61], at[66]); MULADD(at[62], at[65]); MULADD(at[63], at[64]); + COMBA_STORE(C->dp[63]); + /* 64 */ + COMBA_FORWARD; + MULADD(at[1], at[127]); MULADD(at[2], at[126]); MULADD(at[3], at[125]); MULADD(at[4], at[124]); MULADD(at[5], at[123]); MULADD(at[6], at[122]); MULADD(at[7], at[121]); MULADD(at[8], at[120]); MULADD(at[9], at[119]); MULADD(at[10], at[118]); MULADD(at[11], at[117]); MULADD(at[12], at[116]); MULADD(at[13], at[115]); MULADD(at[14], at[114]); MULADD(at[15], at[113]); MULADD(at[16], at[112]); MULADD(at[17], at[111]); MULADD(at[18], at[110]); MULADD(at[19], at[109]); MULADD(at[20], at[108]); MULADD(at[21], at[107]); MULADD(at[22], at[106]); MULADD(at[23], at[105]); MULADD(at[24], at[104]); MULADD(at[25], at[103]); MULADD(at[26], at[102]); MULADD(at[27], at[101]); MULADD(at[28], at[100]); MULADD(at[29], at[99]); MULADD(at[30], at[98]); MULADD(at[31], at[97]); MULADD(at[32], at[96]); MULADD(at[33], at[95]); MULADD(at[34], at[94]); MULADD(at[35], at[93]); MULADD(at[36], at[92]); MULADD(at[37], at[91]); MULADD(at[38], at[90]); MULADD(at[39], at[89]); MULADD(at[40], at[88]); MULADD(at[41], at[87]); MULADD(at[42], at[86]); MULADD(at[43], at[85]); MULADD(at[44], at[84]); MULADD(at[45], at[83]); MULADD(at[46], at[82]); MULADD(at[47], at[81]); MULADD(at[48], at[80]); MULADD(at[49], at[79]); MULADD(at[50], at[78]); MULADD(at[51], at[77]); MULADD(at[52], at[76]); MULADD(at[53], at[75]); MULADD(at[54], at[74]); MULADD(at[55], at[73]); MULADD(at[56], at[72]); MULADD(at[57], at[71]); MULADD(at[58], at[70]); MULADD(at[59], at[69]); MULADD(at[60], at[68]); MULADD(at[61], at[67]); MULADD(at[62], at[66]); MULADD(at[63], at[65]); + COMBA_STORE(C->dp[64]); + /* 65 */ + COMBA_FORWARD; + MULADD(at[2], at[127]); MULADD(at[3], at[126]); MULADD(at[4], at[125]); MULADD(at[5], at[124]); MULADD(at[6], at[123]); MULADD(at[7], at[122]); MULADD(at[8], at[121]); MULADD(at[9], at[120]); MULADD(at[10], at[119]); MULADD(at[11], at[118]); MULADD(at[12], at[117]); MULADD(at[13], at[116]); MULADD(at[14], at[115]); MULADD(at[15], at[114]); MULADD(at[16], at[113]); MULADD(at[17], at[112]); MULADD(at[18], at[111]); MULADD(at[19], at[110]); MULADD(at[20], at[109]); MULADD(at[21], at[108]); MULADD(at[22], at[107]); MULADD(at[23], at[106]); MULADD(at[24], at[105]); MULADD(at[25], at[104]); MULADD(at[26], at[103]); MULADD(at[27], at[102]); MULADD(at[28], at[101]); MULADD(at[29], at[100]); MULADD(at[30], at[99]); MULADD(at[31], at[98]); MULADD(at[32], at[97]); MULADD(at[33], at[96]); MULADD(at[34], at[95]); MULADD(at[35], at[94]); MULADD(at[36], at[93]); MULADD(at[37], at[92]); MULADD(at[38], at[91]); MULADD(at[39], at[90]); MULADD(at[40], at[89]); MULADD(at[41], at[88]); MULADD(at[42], at[87]); MULADD(at[43], at[86]); MULADD(at[44], at[85]); MULADD(at[45], at[84]); MULADD(at[46], at[83]); MULADD(at[47], at[82]); MULADD(at[48], at[81]); MULADD(at[49], at[80]); MULADD(at[50], at[79]); MULADD(at[51], at[78]); MULADD(at[52], at[77]); MULADD(at[53], at[76]); MULADD(at[54], at[75]); MULADD(at[55], at[74]); MULADD(at[56], at[73]); MULADD(at[57], at[72]); MULADD(at[58], at[71]); MULADD(at[59], at[70]); MULADD(at[60], at[69]); MULADD(at[61], at[68]); MULADD(at[62], at[67]); MULADD(at[63], at[66]); + COMBA_STORE(C->dp[65]); + /* 66 */ + COMBA_FORWARD; + MULADD(at[3], at[127]); MULADD(at[4], at[126]); MULADD(at[5], at[125]); MULADD(at[6], at[124]); MULADD(at[7], at[123]); MULADD(at[8], at[122]); MULADD(at[9], at[121]); MULADD(at[10], at[120]); MULADD(at[11], at[119]); MULADD(at[12], at[118]); MULADD(at[13], at[117]); MULADD(at[14], at[116]); MULADD(at[15], at[115]); MULADD(at[16], at[114]); MULADD(at[17], at[113]); MULADD(at[18], at[112]); MULADD(at[19], at[111]); MULADD(at[20], at[110]); MULADD(at[21], at[109]); MULADD(at[22], at[108]); MULADD(at[23], at[107]); MULADD(at[24], at[106]); MULADD(at[25], at[105]); MULADD(at[26], at[104]); MULADD(at[27], at[103]); MULADD(at[28], at[102]); MULADD(at[29], at[101]); MULADD(at[30], at[100]); MULADD(at[31], at[99]); MULADD(at[32], at[98]); MULADD(at[33], at[97]); MULADD(at[34], at[96]); MULADD(at[35], at[95]); MULADD(at[36], at[94]); MULADD(at[37], at[93]); MULADD(at[38], at[92]); MULADD(at[39], at[91]); MULADD(at[40], at[90]); MULADD(at[41], at[89]); MULADD(at[42], at[88]); MULADD(at[43], at[87]); MULADD(at[44], at[86]); MULADD(at[45], at[85]); MULADD(at[46], at[84]); MULADD(at[47], at[83]); MULADD(at[48], at[82]); MULADD(at[49], at[81]); MULADD(at[50], at[80]); MULADD(at[51], at[79]); MULADD(at[52], at[78]); MULADD(at[53], at[77]); MULADD(at[54], at[76]); MULADD(at[55], at[75]); MULADD(at[56], at[74]); MULADD(at[57], at[73]); MULADD(at[58], at[72]); MULADD(at[59], at[71]); MULADD(at[60], at[70]); MULADD(at[61], at[69]); MULADD(at[62], at[68]); MULADD(at[63], at[67]); + COMBA_STORE(C->dp[66]); + /* 67 */ + COMBA_FORWARD; + MULADD(at[4], at[127]); MULADD(at[5], at[126]); MULADD(at[6], at[125]); MULADD(at[7], at[124]); MULADD(at[8], at[123]); MULADD(at[9], at[122]); MULADD(at[10], at[121]); MULADD(at[11], at[120]); MULADD(at[12], at[119]); MULADD(at[13], at[118]); MULADD(at[14], at[117]); MULADD(at[15], at[116]); MULADD(at[16], at[115]); MULADD(at[17], at[114]); MULADD(at[18], at[113]); MULADD(at[19], at[112]); MULADD(at[20], at[111]); MULADD(at[21], at[110]); MULADD(at[22], at[109]); MULADD(at[23], at[108]); MULADD(at[24], at[107]); MULADD(at[25], at[106]); MULADD(at[26], at[105]); MULADD(at[27], at[104]); MULADD(at[28], at[103]); MULADD(at[29], at[102]); MULADD(at[30], at[101]); MULADD(at[31], at[100]); MULADD(at[32], at[99]); MULADD(at[33], at[98]); MULADD(at[34], at[97]); MULADD(at[35], at[96]); MULADD(at[36], at[95]); MULADD(at[37], at[94]); MULADD(at[38], at[93]); MULADD(at[39], at[92]); MULADD(at[40], at[91]); MULADD(at[41], at[90]); MULADD(at[42], at[89]); MULADD(at[43], at[88]); MULADD(at[44], at[87]); MULADD(at[45], at[86]); MULADD(at[46], at[85]); MULADD(at[47], at[84]); MULADD(at[48], at[83]); MULADD(at[49], at[82]); MULADD(at[50], at[81]); MULADD(at[51], at[80]); MULADD(at[52], at[79]); MULADD(at[53], at[78]); MULADD(at[54], at[77]); MULADD(at[55], at[76]); MULADD(at[56], at[75]); MULADD(at[57], at[74]); MULADD(at[58], at[73]); MULADD(at[59], at[72]); MULADD(at[60], at[71]); MULADD(at[61], at[70]); MULADD(at[62], at[69]); MULADD(at[63], at[68]); + COMBA_STORE(C->dp[67]); + /* 68 */ + COMBA_FORWARD; + MULADD(at[5], at[127]); MULADD(at[6], at[126]); MULADD(at[7], at[125]); MULADD(at[8], at[124]); MULADD(at[9], at[123]); MULADD(at[10], at[122]); MULADD(at[11], at[121]); MULADD(at[12], at[120]); MULADD(at[13], at[119]); MULADD(at[14], at[118]); MULADD(at[15], at[117]); MULADD(at[16], at[116]); MULADD(at[17], at[115]); MULADD(at[18], at[114]); MULADD(at[19], at[113]); MULADD(at[20], at[112]); MULADD(at[21], at[111]); MULADD(at[22], at[110]); MULADD(at[23], at[109]); MULADD(at[24], at[108]); MULADD(at[25], at[107]); MULADD(at[26], at[106]); MULADD(at[27], at[105]); MULADD(at[28], at[104]); MULADD(at[29], at[103]); MULADD(at[30], at[102]); MULADD(at[31], at[101]); MULADD(at[32], at[100]); MULADD(at[33], at[99]); MULADD(at[34], at[98]); MULADD(at[35], at[97]); MULADD(at[36], at[96]); MULADD(at[37], at[95]); MULADD(at[38], at[94]); MULADD(at[39], at[93]); MULADD(at[40], at[92]); MULADD(at[41], at[91]); MULADD(at[42], at[90]); MULADD(at[43], at[89]); MULADD(at[44], at[88]); MULADD(at[45], at[87]); MULADD(at[46], at[86]); MULADD(at[47], at[85]); MULADD(at[48], at[84]); MULADD(at[49], at[83]); MULADD(at[50], at[82]); MULADD(at[51], at[81]); MULADD(at[52], at[80]); MULADD(at[53], at[79]); MULADD(at[54], at[78]); MULADD(at[55], at[77]); MULADD(at[56], at[76]); MULADD(at[57], at[75]); MULADD(at[58], at[74]); MULADD(at[59], at[73]); MULADD(at[60], at[72]); MULADD(at[61], at[71]); MULADD(at[62], at[70]); MULADD(at[63], at[69]); + COMBA_STORE(C->dp[68]); + /* 69 */ + COMBA_FORWARD; + MULADD(at[6], at[127]); MULADD(at[7], at[126]); MULADD(at[8], at[125]); MULADD(at[9], at[124]); MULADD(at[10], at[123]); MULADD(at[11], at[122]); MULADD(at[12], at[121]); MULADD(at[13], at[120]); MULADD(at[14], at[119]); MULADD(at[15], at[118]); MULADD(at[16], at[117]); MULADD(at[17], at[116]); MULADD(at[18], at[115]); MULADD(at[19], at[114]); MULADD(at[20], at[113]); MULADD(at[21], at[112]); MULADD(at[22], at[111]); MULADD(at[23], at[110]); MULADD(at[24], at[109]); MULADD(at[25], at[108]); MULADD(at[26], at[107]); MULADD(at[27], at[106]); MULADD(at[28], at[105]); MULADD(at[29], at[104]); MULADD(at[30], at[103]); MULADD(at[31], at[102]); MULADD(at[32], at[101]); MULADD(at[33], at[100]); MULADD(at[34], at[99]); MULADD(at[35], at[98]); MULADD(at[36], at[97]); MULADD(at[37], at[96]); MULADD(at[38], at[95]); MULADD(at[39], at[94]); MULADD(at[40], at[93]); MULADD(at[41], at[92]); MULADD(at[42], at[91]); MULADD(at[43], at[90]); MULADD(at[44], at[89]); MULADD(at[45], at[88]); MULADD(at[46], at[87]); MULADD(at[47], at[86]); MULADD(at[48], at[85]); MULADD(at[49], at[84]); MULADD(at[50], at[83]); MULADD(at[51], at[82]); MULADD(at[52], at[81]); MULADD(at[53], at[80]); MULADD(at[54], at[79]); MULADD(at[55], at[78]); MULADD(at[56], at[77]); MULADD(at[57], at[76]); MULADD(at[58], at[75]); MULADD(at[59], at[74]); MULADD(at[60], at[73]); MULADD(at[61], at[72]); MULADD(at[62], at[71]); MULADD(at[63], at[70]); + COMBA_STORE(C->dp[69]); + /* 70 */ + COMBA_FORWARD; + MULADD(at[7], at[127]); MULADD(at[8], at[126]); MULADD(at[9], at[125]); MULADD(at[10], at[124]); MULADD(at[11], at[123]); MULADD(at[12], at[122]); MULADD(at[13], at[121]); MULADD(at[14], at[120]); MULADD(at[15], at[119]); MULADD(at[16], at[118]); MULADD(at[17], at[117]); MULADD(at[18], at[116]); MULADD(at[19], at[115]); MULADD(at[20], at[114]); MULADD(at[21], at[113]); MULADD(at[22], at[112]); MULADD(at[23], at[111]); MULADD(at[24], at[110]); MULADD(at[25], at[109]); MULADD(at[26], at[108]); MULADD(at[27], at[107]); MULADD(at[28], at[106]); MULADD(at[29], at[105]); MULADD(at[30], at[104]); MULADD(at[31], at[103]); MULADD(at[32], at[102]); MULADD(at[33], at[101]); MULADD(at[34], at[100]); MULADD(at[35], at[99]); MULADD(at[36], at[98]); MULADD(at[37], at[97]); MULADD(at[38], at[96]); MULADD(at[39], at[95]); MULADD(at[40], at[94]); MULADD(at[41], at[93]); MULADD(at[42], at[92]); MULADD(at[43], at[91]); MULADD(at[44], at[90]); MULADD(at[45], at[89]); MULADD(at[46], at[88]); MULADD(at[47], at[87]); MULADD(at[48], at[86]); MULADD(at[49], at[85]); MULADD(at[50], at[84]); MULADD(at[51], at[83]); MULADD(at[52], at[82]); MULADD(at[53], at[81]); MULADD(at[54], at[80]); MULADD(at[55], at[79]); MULADD(at[56], at[78]); MULADD(at[57], at[77]); MULADD(at[58], at[76]); MULADD(at[59], at[75]); MULADD(at[60], at[74]); MULADD(at[61], at[73]); MULADD(at[62], at[72]); MULADD(at[63], at[71]); + COMBA_STORE(C->dp[70]); + /* 71 */ + COMBA_FORWARD; + MULADD(at[8], at[127]); MULADD(at[9], at[126]); MULADD(at[10], at[125]); MULADD(at[11], at[124]); MULADD(at[12], at[123]); MULADD(at[13], at[122]); MULADD(at[14], at[121]); MULADD(at[15], at[120]); MULADD(at[16], at[119]); MULADD(at[17], at[118]); MULADD(at[18], at[117]); MULADD(at[19], at[116]); MULADD(at[20], at[115]); MULADD(at[21], at[114]); MULADD(at[22], at[113]); MULADD(at[23], at[112]); MULADD(at[24], at[111]); MULADD(at[25], at[110]); MULADD(at[26], at[109]); MULADD(at[27], at[108]); MULADD(at[28], at[107]); MULADD(at[29], at[106]); MULADD(at[30], at[105]); MULADD(at[31], at[104]); MULADD(at[32], at[103]); MULADD(at[33], at[102]); MULADD(at[34], at[101]); MULADD(at[35], at[100]); MULADD(at[36], at[99]); MULADD(at[37], at[98]); MULADD(at[38], at[97]); MULADD(at[39], at[96]); MULADD(at[40], at[95]); MULADD(at[41], at[94]); MULADD(at[42], at[93]); MULADD(at[43], at[92]); MULADD(at[44], at[91]); MULADD(at[45], at[90]); MULADD(at[46], at[89]); MULADD(at[47], at[88]); MULADD(at[48], at[87]); MULADD(at[49], at[86]); MULADD(at[50], at[85]); MULADD(at[51], at[84]); MULADD(at[52], at[83]); MULADD(at[53], at[82]); MULADD(at[54], at[81]); MULADD(at[55], at[80]); MULADD(at[56], at[79]); MULADD(at[57], at[78]); MULADD(at[58], at[77]); MULADD(at[59], at[76]); MULADD(at[60], at[75]); MULADD(at[61], at[74]); MULADD(at[62], at[73]); MULADD(at[63], at[72]); + COMBA_STORE(C->dp[71]); + /* 72 */ + COMBA_FORWARD; + MULADD(at[9], at[127]); MULADD(at[10], at[126]); MULADD(at[11], at[125]); MULADD(at[12], at[124]); MULADD(at[13], at[123]); MULADD(at[14], at[122]); MULADD(at[15], at[121]); MULADD(at[16], at[120]); MULADD(at[17], at[119]); MULADD(at[18], at[118]); MULADD(at[19], at[117]); MULADD(at[20], at[116]); MULADD(at[21], at[115]); MULADD(at[22], at[114]); MULADD(at[23], at[113]); MULADD(at[24], at[112]); MULADD(at[25], at[111]); MULADD(at[26], at[110]); MULADD(at[27], at[109]); MULADD(at[28], at[108]); MULADD(at[29], at[107]); MULADD(at[30], at[106]); MULADD(at[31], at[105]); MULADD(at[32], at[104]); MULADD(at[33], at[103]); MULADD(at[34], at[102]); MULADD(at[35], at[101]); MULADD(at[36], at[100]); MULADD(at[37], at[99]); MULADD(at[38], at[98]); MULADD(at[39], at[97]); MULADD(at[40], at[96]); MULADD(at[41], at[95]); MULADD(at[42], at[94]); MULADD(at[43], at[93]); MULADD(at[44], at[92]); MULADD(at[45], at[91]); MULADD(at[46], at[90]); MULADD(at[47], at[89]); MULADD(at[48], at[88]); MULADD(at[49], at[87]); MULADD(at[50], at[86]); MULADD(at[51], at[85]); MULADD(at[52], at[84]); MULADD(at[53], at[83]); MULADD(at[54], at[82]); MULADD(at[55], at[81]); MULADD(at[56], at[80]); MULADD(at[57], at[79]); MULADD(at[58], at[78]); MULADD(at[59], at[77]); MULADD(at[60], at[76]); MULADD(at[61], at[75]); MULADD(at[62], at[74]); MULADD(at[63], at[73]); + COMBA_STORE(C->dp[72]); + /* 73 */ + COMBA_FORWARD; + MULADD(at[10], at[127]); MULADD(at[11], at[126]); MULADD(at[12], at[125]); MULADD(at[13], at[124]); MULADD(at[14], at[123]); MULADD(at[15], at[122]); MULADD(at[16], at[121]); MULADD(at[17], at[120]); MULADD(at[18], at[119]); MULADD(at[19], at[118]); MULADD(at[20], at[117]); MULADD(at[21], at[116]); MULADD(at[22], at[115]); MULADD(at[23], at[114]); MULADD(at[24], at[113]); MULADD(at[25], at[112]); MULADD(at[26], at[111]); MULADD(at[27], at[110]); MULADD(at[28], at[109]); MULADD(at[29], at[108]); MULADD(at[30], at[107]); MULADD(at[31], at[106]); MULADD(at[32], at[105]); MULADD(at[33], at[104]); MULADD(at[34], at[103]); MULADD(at[35], at[102]); MULADD(at[36], at[101]); MULADD(at[37], at[100]); MULADD(at[38], at[99]); MULADD(at[39], at[98]); MULADD(at[40], at[97]); MULADD(at[41], at[96]); MULADD(at[42], at[95]); MULADD(at[43], at[94]); MULADD(at[44], at[93]); MULADD(at[45], at[92]); MULADD(at[46], at[91]); MULADD(at[47], at[90]); MULADD(at[48], at[89]); MULADD(at[49], at[88]); MULADD(at[50], at[87]); MULADD(at[51], at[86]); MULADD(at[52], at[85]); MULADD(at[53], at[84]); MULADD(at[54], at[83]); MULADD(at[55], at[82]); MULADD(at[56], at[81]); MULADD(at[57], at[80]); MULADD(at[58], at[79]); MULADD(at[59], at[78]); MULADD(at[60], at[77]); MULADD(at[61], at[76]); MULADD(at[62], at[75]); MULADD(at[63], at[74]); + COMBA_STORE(C->dp[73]); + /* 74 */ + COMBA_FORWARD; + MULADD(at[11], at[127]); MULADD(at[12], at[126]); MULADD(at[13], at[125]); MULADD(at[14], at[124]); MULADD(at[15], at[123]); MULADD(at[16], at[122]); MULADD(at[17], at[121]); MULADD(at[18], at[120]); MULADD(at[19], at[119]); MULADD(at[20], at[118]); MULADD(at[21], at[117]); MULADD(at[22], at[116]); MULADD(at[23], at[115]); MULADD(at[24], at[114]); MULADD(at[25], at[113]); MULADD(at[26], at[112]); MULADD(at[27], at[111]); MULADD(at[28], at[110]); MULADD(at[29], at[109]); MULADD(at[30], at[108]); MULADD(at[31], at[107]); MULADD(at[32], at[106]); MULADD(at[33], at[105]); MULADD(at[34], at[104]); MULADD(at[35], at[103]); MULADD(at[36], at[102]); MULADD(at[37], at[101]); MULADD(at[38], at[100]); MULADD(at[39], at[99]); MULADD(at[40], at[98]); MULADD(at[41], at[97]); MULADD(at[42], at[96]); MULADD(at[43], at[95]); MULADD(at[44], at[94]); MULADD(at[45], at[93]); MULADD(at[46], at[92]); MULADD(at[47], at[91]); MULADD(at[48], at[90]); MULADD(at[49], at[89]); MULADD(at[50], at[88]); MULADD(at[51], at[87]); MULADD(at[52], at[86]); MULADD(at[53], at[85]); MULADD(at[54], at[84]); MULADD(at[55], at[83]); MULADD(at[56], at[82]); MULADD(at[57], at[81]); MULADD(at[58], at[80]); MULADD(at[59], at[79]); MULADD(at[60], at[78]); MULADD(at[61], at[77]); MULADD(at[62], at[76]); MULADD(at[63], at[75]); + COMBA_STORE(C->dp[74]); + /* 75 */ + COMBA_FORWARD; + MULADD(at[12], at[127]); MULADD(at[13], at[126]); MULADD(at[14], at[125]); MULADD(at[15], at[124]); MULADD(at[16], at[123]); MULADD(at[17], at[122]); MULADD(at[18], at[121]); MULADD(at[19], at[120]); MULADD(at[20], at[119]); MULADD(at[21], at[118]); MULADD(at[22], at[117]); MULADD(at[23], at[116]); MULADD(at[24], at[115]); MULADD(at[25], at[114]); MULADD(at[26], at[113]); MULADD(at[27], at[112]); MULADD(at[28], at[111]); MULADD(at[29], at[110]); MULADD(at[30], at[109]); MULADD(at[31], at[108]); MULADD(at[32], at[107]); MULADD(at[33], at[106]); MULADD(at[34], at[105]); MULADD(at[35], at[104]); MULADD(at[36], at[103]); MULADD(at[37], at[102]); MULADD(at[38], at[101]); MULADD(at[39], at[100]); MULADD(at[40], at[99]); MULADD(at[41], at[98]); MULADD(at[42], at[97]); MULADD(at[43], at[96]); MULADD(at[44], at[95]); MULADD(at[45], at[94]); MULADD(at[46], at[93]); MULADD(at[47], at[92]); MULADD(at[48], at[91]); MULADD(at[49], at[90]); MULADD(at[50], at[89]); MULADD(at[51], at[88]); MULADD(at[52], at[87]); MULADD(at[53], at[86]); MULADD(at[54], at[85]); MULADD(at[55], at[84]); MULADD(at[56], at[83]); MULADD(at[57], at[82]); MULADD(at[58], at[81]); MULADD(at[59], at[80]); MULADD(at[60], at[79]); MULADD(at[61], at[78]); MULADD(at[62], at[77]); MULADD(at[63], at[76]); + COMBA_STORE(C->dp[75]); + /* 76 */ + COMBA_FORWARD; + MULADD(at[13], at[127]); MULADD(at[14], at[126]); MULADD(at[15], at[125]); MULADD(at[16], at[124]); MULADD(at[17], at[123]); MULADD(at[18], at[122]); MULADD(at[19], at[121]); MULADD(at[20], at[120]); MULADD(at[21], at[119]); MULADD(at[22], at[118]); MULADD(at[23], at[117]); MULADD(at[24], at[116]); MULADD(at[25], at[115]); MULADD(at[26], at[114]); MULADD(at[27], at[113]); MULADD(at[28], at[112]); MULADD(at[29], at[111]); MULADD(at[30], at[110]); MULADD(at[31], at[109]); MULADD(at[32], at[108]); MULADD(at[33], at[107]); MULADD(at[34], at[106]); MULADD(at[35], at[105]); MULADD(at[36], at[104]); MULADD(at[37], at[103]); MULADD(at[38], at[102]); MULADD(at[39], at[101]); MULADD(at[40], at[100]); MULADD(at[41], at[99]); MULADD(at[42], at[98]); MULADD(at[43], at[97]); MULADD(at[44], at[96]); MULADD(at[45], at[95]); MULADD(at[46], at[94]); MULADD(at[47], at[93]); MULADD(at[48], at[92]); MULADD(at[49], at[91]); MULADD(at[50], at[90]); MULADD(at[51], at[89]); MULADD(at[52], at[88]); MULADD(at[53], at[87]); MULADD(at[54], at[86]); MULADD(at[55], at[85]); MULADD(at[56], at[84]); MULADD(at[57], at[83]); MULADD(at[58], at[82]); MULADD(at[59], at[81]); MULADD(at[60], at[80]); MULADD(at[61], at[79]); MULADD(at[62], at[78]); MULADD(at[63], at[77]); + COMBA_STORE(C->dp[76]); + /* 77 */ + COMBA_FORWARD; + MULADD(at[14], at[127]); MULADD(at[15], at[126]); MULADD(at[16], at[125]); MULADD(at[17], at[124]); MULADD(at[18], at[123]); MULADD(at[19], at[122]); MULADD(at[20], at[121]); MULADD(at[21], at[120]); MULADD(at[22], at[119]); MULADD(at[23], at[118]); MULADD(at[24], at[117]); MULADD(at[25], at[116]); MULADD(at[26], at[115]); MULADD(at[27], at[114]); MULADD(at[28], at[113]); MULADD(at[29], at[112]); MULADD(at[30], at[111]); MULADD(at[31], at[110]); MULADD(at[32], at[109]); MULADD(at[33], at[108]); MULADD(at[34], at[107]); MULADD(at[35], at[106]); MULADD(at[36], at[105]); MULADD(at[37], at[104]); MULADD(at[38], at[103]); MULADD(at[39], at[102]); MULADD(at[40], at[101]); MULADD(at[41], at[100]); MULADD(at[42], at[99]); MULADD(at[43], at[98]); MULADD(at[44], at[97]); MULADD(at[45], at[96]); MULADD(at[46], at[95]); MULADD(at[47], at[94]); MULADD(at[48], at[93]); MULADD(at[49], at[92]); MULADD(at[50], at[91]); MULADD(at[51], at[90]); MULADD(at[52], at[89]); MULADD(at[53], at[88]); MULADD(at[54], at[87]); MULADD(at[55], at[86]); MULADD(at[56], at[85]); MULADD(at[57], at[84]); MULADD(at[58], at[83]); MULADD(at[59], at[82]); MULADD(at[60], at[81]); MULADD(at[61], at[80]); MULADD(at[62], at[79]); MULADD(at[63], at[78]); + COMBA_STORE(C->dp[77]); + /* 78 */ + COMBA_FORWARD; + MULADD(at[15], at[127]); MULADD(at[16], at[126]); MULADD(at[17], at[125]); MULADD(at[18], at[124]); MULADD(at[19], at[123]); MULADD(at[20], at[122]); MULADD(at[21], at[121]); MULADD(at[22], at[120]); MULADD(at[23], at[119]); MULADD(at[24], at[118]); MULADD(at[25], at[117]); MULADD(at[26], at[116]); MULADD(at[27], at[115]); MULADD(at[28], at[114]); MULADD(at[29], at[113]); MULADD(at[30], at[112]); MULADD(at[31], at[111]); MULADD(at[32], at[110]); MULADD(at[33], at[109]); MULADD(at[34], at[108]); MULADD(at[35], at[107]); MULADD(at[36], at[106]); MULADD(at[37], at[105]); MULADD(at[38], at[104]); MULADD(at[39], at[103]); MULADD(at[40], at[102]); MULADD(at[41], at[101]); MULADD(at[42], at[100]); MULADD(at[43], at[99]); MULADD(at[44], at[98]); MULADD(at[45], at[97]); MULADD(at[46], at[96]); MULADD(at[47], at[95]); MULADD(at[48], at[94]); MULADD(at[49], at[93]); MULADD(at[50], at[92]); MULADD(at[51], at[91]); MULADD(at[52], at[90]); MULADD(at[53], at[89]); MULADD(at[54], at[88]); MULADD(at[55], at[87]); MULADD(at[56], at[86]); MULADD(at[57], at[85]); MULADD(at[58], at[84]); MULADD(at[59], at[83]); MULADD(at[60], at[82]); MULADD(at[61], at[81]); MULADD(at[62], at[80]); MULADD(at[63], at[79]); + COMBA_STORE(C->dp[78]); + /* 79 */ + COMBA_FORWARD; + MULADD(at[16], at[127]); MULADD(at[17], at[126]); MULADD(at[18], at[125]); MULADD(at[19], at[124]); MULADD(at[20], at[123]); MULADD(at[21], at[122]); MULADD(at[22], at[121]); MULADD(at[23], at[120]); MULADD(at[24], at[119]); MULADD(at[25], at[118]); MULADD(at[26], at[117]); MULADD(at[27], at[116]); MULADD(at[28], at[115]); MULADD(at[29], at[114]); MULADD(at[30], at[113]); MULADD(at[31], at[112]); MULADD(at[32], at[111]); MULADD(at[33], at[110]); MULADD(at[34], at[109]); MULADD(at[35], at[108]); MULADD(at[36], at[107]); MULADD(at[37], at[106]); MULADD(at[38], at[105]); MULADD(at[39], at[104]); MULADD(at[40], at[103]); MULADD(at[41], at[102]); MULADD(at[42], at[101]); MULADD(at[43], at[100]); MULADD(at[44], at[99]); MULADD(at[45], at[98]); MULADD(at[46], at[97]); MULADD(at[47], at[96]); MULADD(at[48], at[95]); MULADD(at[49], at[94]); MULADD(at[50], at[93]); MULADD(at[51], at[92]); MULADD(at[52], at[91]); MULADD(at[53], at[90]); MULADD(at[54], at[89]); MULADD(at[55], at[88]); MULADD(at[56], at[87]); MULADD(at[57], at[86]); MULADD(at[58], at[85]); MULADD(at[59], at[84]); MULADD(at[60], at[83]); MULADD(at[61], at[82]); MULADD(at[62], at[81]); MULADD(at[63], at[80]); + COMBA_STORE(C->dp[79]); + /* 80 */ + COMBA_FORWARD; + MULADD(at[17], at[127]); MULADD(at[18], at[126]); MULADD(at[19], at[125]); MULADD(at[20], at[124]); MULADD(at[21], at[123]); MULADD(at[22], at[122]); MULADD(at[23], at[121]); MULADD(at[24], at[120]); MULADD(at[25], at[119]); MULADD(at[26], at[118]); MULADD(at[27], at[117]); MULADD(at[28], at[116]); MULADD(at[29], at[115]); MULADD(at[30], at[114]); MULADD(at[31], at[113]); MULADD(at[32], at[112]); MULADD(at[33], at[111]); MULADD(at[34], at[110]); MULADD(at[35], at[109]); MULADD(at[36], at[108]); MULADD(at[37], at[107]); MULADD(at[38], at[106]); MULADD(at[39], at[105]); MULADD(at[40], at[104]); MULADD(at[41], at[103]); MULADD(at[42], at[102]); MULADD(at[43], at[101]); MULADD(at[44], at[100]); MULADD(at[45], at[99]); MULADD(at[46], at[98]); MULADD(at[47], at[97]); MULADD(at[48], at[96]); MULADD(at[49], at[95]); MULADD(at[50], at[94]); MULADD(at[51], at[93]); MULADD(at[52], at[92]); MULADD(at[53], at[91]); MULADD(at[54], at[90]); MULADD(at[55], at[89]); MULADD(at[56], at[88]); MULADD(at[57], at[87]); MULADD(at[58], at[86]); MULADD(at[59], at[85]); MULADD(at[60], at[84]); MULADD(at[61], at[83]); MULADD(at[62], at[82]); MULADD(at[63], at[81]); + COMBA_STORE(C->dp[80]); + /* 81 */ + COMBA_FORWARD; + MULADD(at[18], at[127]); MULADD(at[19], at[126]); MULADD(at[20], at[125]); MULADD(at[21], at[124]); MULADD(at[22], at[123]); MULADD(at[23], at[122]); MULADD(at[24], at[121]); MULADD(at[25], at[120]); MULADD(at[26], at[119]); MULADD(at[27], at[118]); MULADD(at[28], at[117]); MULADD(at[29], at[116]); MULADD(at[30], at[115]); MULADD(at[31], at[114]); MULADD(at[32], at[113]); MULADD(at[33], at[112]); MULADD(at[34], at[111]); MULADD(at[35], at[110]); MULADD(at[36], at[109]); MULADD(at[37], at[108]); MULADD(at[38], at[107]); MULADD(at[39], at[106]); MULADD(at[40], at[105]); MULADD(at[41], at[104]); MULADD(at[42], at[103]); MULADD(at[43], at[102]); MULADD(at[44], at[101]); MULADD(at[45], at[100]); MULADD(at[46], at[99]); MULADD(at[47], at[98]); MULADD(at[48], at[97]); MULADD(at[49], at[96]); MULADD(at[50], at[95]); MULADD(at[51], at[94]); MULADD(at[52], at[93]); MULADD(at[53], at[92]); MULADD(at[54], at[91]); MULADD(at[55], at[90]); MULADD(at[56], at[89]); MULADD(at[57], at[88]); MULADD(at[58], at[87]); MULADD(at[59], at[86]); MULADD(at[60], at[85]); MULADD(at[61], at[84]); MULADD(at[62], at[83]); MULADD(at[63], at[82]); + COMBA_STORE(C->dp[81]); + /* 82 */ + COMBA_FORWARD; + MULADD(at[19], at[127]); MULADD(at[20], at[126]); MULADD(at[21], at[125]); MULADD(at[22], at[124]); MULADD(at[23], at[123]); MULADD(at[24], at[122]); MULADD(at[25], at[121]); MULADD(at[26], at[120]); MULADD(at[27], at[119]); MULADD(at[28], at[118]); MULADD(at[29], at[117]); MULADD(at[30], at[116]); MULADD(at[31], at[115]); MULADD(at[32], at[114]); MULADD(at[33], at[113]); MULADD(at[34], at[112]); MULADD(at[35], at[111]); MULADD(at[36], at[110]); MULADD(at[37], at[109]); MULADD(at[38], at[108]); MULADD(at[39], at[107]); MULADD(at[40], at[106]); MULADD(at[41], at[105]); MULADD(at[42], at[104]); MULADD(at[43], at[103]); MULADD(at[44], at[102]); MULADD(at[45], at[101]); MULADD(at[46], at[100]); MULADD(at[47], at[99]); MULADD(at[48], at[98]); MULADD(at[49], at[97]); MULADD(at[50], at[96]); MULADD(at[51], at[95]); MULADD(at[52], at[94]); MULADD(at[53], at[93]); MULADD(at[54], at[92]); MULADD(at[55], at[91]); MULADD(at[56], at[90]); MULADD(at[57], at[89]); MULADD(at[58], at[88]); MULADD(at[59], at[87]); MULADD(at[60], at[86]); MULADD(at[61], at[85]); MULADD(at[62], at[84]); MULADD(at[63], at[83]); + COMBA_STORE(C->dp[82]); + /* 83 */ + COMBA_FORWARD; + MULADD(at[20], at[127]); MULADD(at[21], at[126]); MULADD(at[22], at[125]); MULADD(at[23], at[124]); MULADD(at[24], at[123]); MULADD(at[25], at[122]); MULADD(at[26], at[121]); MULADD(at[27], at[120]); MULADD(at[28], at[119]); MULADD(at[29], at[118]); MULADD(at[30], at[117]); MULADD(at[31], at[116]); MULADD(at[32], at[115]); MULADD(at[33], at[114]); MULADD(at[34], at[113]); MULADD(at[35], at[112]); MULADD(at[36], at[111]); MULADD(at[37], at[110]); MULADD(at[38], at[109]); MULADD(at[39], at[108]); MULADD(at[40], at[107]); MULADD(at[41], at[106]); MULADD(at[42], at[105]); MULADD(at[43], at[104]); MULADD(at[44], at[103]); MULADD(at[45], at[102]); MULADD(at[46], at[101]); MULADD(at[47], at[100]); MULADD(at[48], at[99]); MULADD(at[49], at[98]); MULADD(at[50], at[97]); MULADD(at[51], at[96]); MULADD(at[52], at[95]); MULADD(at[53], at[94]); MULADD(at[54], at[93]); MULADD(at[55], at[92]); MULADD(at[56], at[91]); MULADD(at[57], at[90]); MULADD(at[58], at[89]); MULADD(at[59], at[88]); MULADD(at[60], at[87]); MULADD(at[61], at[86]); MULADD(at[62], at[85]); MULADD(at[63], at[84]); + COMBA_STORE(C->dp[83]); + /* 84 */ + COMBA_FORWARD; + MULADD(at[21], at[127]); MULADD(at[22], at[126]); MULADD(at[23], at[125]); MULADD(at[24], at[124]); MULADD(at[25], at[123]); MULADD(at[26], at[122]); MULADD(at[27], at[121]); MULADD(at[28], at[120]); MULADD(at[29], at[119]); MULADD(at[30], at[118]); MULADD(at[31], at[117]); MULADD(at[32], at[116]); MULADD(at[33], at[115]); MULADD(at[34], at[114]); MULADD(at[35], at[113]); MULADD(at[36], at[112]); MULADD(at[37], at[111]); MULADD(at[38], at[110]); MULADD(at[39], at[109]); MULADD(at[40], at[108]); MULADD(at[41], at[107]); MULADD(at[42], at[106]); MULADD(at[43], at[105]); MULADD(at[44], at[104]); MULADD(at[45], at[103]); MULADD(at[46], at[102]); MULADD(at[47], at[101]); MULADD(at[48], at[100]); MULADD(at[49], at[99]); MULADD(at[50], at[98]); MULADD(at[51], at[97]); MULADD(at[52], at[96]); MULADD(at[53], at[95]); MULADD(at[54], at[94]); MULADD(at[55], at[93]); MULADD(at[56], at[92]); MULADD(at[57], at[91]); MULADD(at[58], at[90]); MULADD(at[59], at[89]); MULADD(at[60], at[88]); MULADD(at[61], at[87]); MULADD(at[62], at[86]); MULADD(at[63], at[85]); + COMBA_STORE(C->dp[84]); + /* 85 */ + COMBA_FORWARD; + MULADD(at[22], at[127]); MULADD(at[23], at[126]); MULADD(at[24], at[125]); MULADD(at[25], at[124]); MULADD(at[26], at[123]); MULADD(at[27], at[122]); MULADD(at[28], at[121]); MULADD(at[29], at[120]); MULADD(at[30], at[119]); MULADD(at[31], at[118]); MULADD(at[32], at[117]); MULADD(at[33], at[116]); MULADD(at[34], at[115]); MULADD(at[35], at[114]); MULADD(at[36], at[113]); MULADD(at[37], at[112]); MULADD(at[38], at[111]); MULADD(at[39], at[110]); MULADD(at[40], at[109]); MULADD(at[41], at[108]); MULADD(at[42], at[107]); MULADD(at[43], at[106]); MULADD(at[44], at[105]); MULADD(at[45], at[104]); MULADD(at[46], at[103]); MULADD(at[47], at[102]); MULADD(at[48], at[101]); MULADD(at[49], at[100]); MULADD(at[50], at[99]); MULADD(at[51], at[98]); MULADD(at[52], at[97]); MULADD(at[53], at[96]); MULADD(at[54], at[95]); MULADD(at[55], at[94]); MULADD(at[56], at[93]); MULADD(at[57], at[92]); MULADD(at[58], at[91]); MULADD(at[59], at[90]); MULADD(at[60], at[89]); MULADD(at[61], at[88]); MULADD(at[62], at[87]); MULADD(at[63], at[86]); + COMBA_STORE(C->dp[85]); + /* 86 */ + COMBA_FORWARD; + MULADD(at[23], at[127]); MULADD(at[24], at[126]); MULADD(at[25], at[125]); MULADD(at[26], at[124]); MULADD(at[27], at[123]); MULADD(at[28], at[122]); MULADD(at[29], at[121]); MULADD(at[30], at[120]); MULADD(at[31], at[119]); MULADD(at[32], at[118]); MULADD(at[33], at[117]); MULADD(at[34], at[116]); MULADD(at[35], at[115]); MULADD(at[36], at[114]); MULADD(at[37], at[113]); MULADD(at[38], at[112]); MULADD(at[39], at[111]); MULADD(at[40], at[110]); MULADD(at[41], at[109]); MULADD(at[42], at[108]); MULADD(at[43], at[107]); MULADD(at[44], at[106]); MULADD(at[45], at[105]); MULADD(at[46], at[104]); MULADD(at[47], at[103]); MULADD(at[48], at[102]); MULADD(at[49], at[101]); MULADD(at[50], at[100]); MULADD(at[51], at[99]); MULADD(at[52], at[98]); MULADD(at[53], at[97]); MULADD(at[54], at[96]); MULADD(at[55], at[95]); MULADD(at[56], at[94]); MULADD(at[57], at[93]); MULADD(at[58], at[92]); MULADD(at[59], at[91]); MULADD(at[60], at[90]); MULADD(at[61], at[89]); MULADD(at[62], at[88]); MULADD(at[63], at[87]); + COMBA_STORE(C->dp[86]); + /* 87 */ + COMBA_FORWARD; + MULADD(at[24], at[127]); MULADD(at[25], at[126]); MULADD(at[26], at[125]); MULADD(at[27], at[124]); MULADD(at[28], at[123]); MULADD(at[29], at[122]); MULADD(at[30], at[121]); MULADD(at[31], at[120]); MULADD(at[32], at[119]); MULADD(at[33], at[118]); MULADD(at[34], at[117]); MULADD(at[35], at[116]); MULADD(at[36], at[115]); MULADD(at[37], at[114]); MULADD(at[38], at[113]); MULADD(at[39], at[112]); MULADD(at[40], at[111]); MULADD(at[41], at[110]); MULADD(at[42], at[109]); MULADD(at[43], at[108]); MULADD(at[44], at[107]); MULADD(at[45], at[106]); MULADD(at[46], at[105]); MULADD(at[47], at[104]); MULADD(at[48], at[103]); MULADD(at[49], at[102]); MULADD(at[50], at[101]); MULADD(at[51], at[100]); MULADD(at[52], at[99]); MULADD(at[53], at[98]); MULADD(at[54], at[97]); MULADD(at[55], at[96]); MULADD(at[56], at[95]); MULADD(at[57], at[94]); MULADD(at[58], at[93]); MULADD(at[59], at[92]); MULADD(at[60], at[91]); MULADD(at[61], at[90]); MULADD(at[62], at[89]); MULADD(at[63], at[88]); + COMBA_STORE(C->dp[87]); + /* 88 */ + COMBA_FORWARD; + MULADD(at[25], at[127]); MULADD(at[26], at[126]); MULADD(at[27], at[125]); MULADD(at[28], at[124]); MULADD(at[29], at[123]); MULADD(at[30], at[122]); MULADD(at[31], at[121]); MULADD(at[32], at[120]); MULADD(at[33], at[119]); MULADD(at[34], at[118]); MULADD(at[35], at[117]); MULADD(at[36], at[116]); MULADD(at[37], at[115]); MULADD(at[38], at[114]); MULADD(at[39], at[113]); MULADD(at[40], at[112]); MULADD(at[41], at[111]); MULADD(at[42], at[110]); MULADD(at[43], at[109]); MULADD(at[44], at[108]); MULADD(at[45], at[107]); MULADD(at[46], at[106]); MULADD(at[47], at[105]); MULADD(at[48], at[104]); MULADD(at[49], at[103]); MULADD(at[50], at[102]); MULADD(at[51], at[101]); MULADD(at[52], at[100]); MULADD(at[53], at[99]); MULADD(at[54], at[98]); MULADD(at[55], at[97]); MULADD(at[56], at[96]); MULADD(at[57], at[95]); MULADD(at[58], at[94]); MULADD(at[59], at[93]); MULADD(at[60], at[92]); MULADD(at[61], at[91]); MULADD(at[62], at[90]); MULADD(at[63], at[89]); + COMBA_STORE(C->dp[88]); + /* 89 */ + COMBA_FORWARD; + MULADD(at[26], at[127]); MULADD(at[27], at[126]); MULADD(at[28], at[125]); MULADD(at[29], at[124]); MULADD(at[30], at[123]); MULADD(at[31], at[122]); MULADD(at[32], at[121]); MULADD(at[33], at[120]); MULADD(at[34], at[119]); MULADD(at[35], at[118]); MULADD(at[36], at[117]); MULADD(at[37], at[116]); MULADD(at[38], at[115]); MULADD(at[39], at[114]); MULADD(at[40], at[113]); MULADD(at[41], at[112]); MULADD(at[42], at[111]); MULADD(at[43], at[110]); MULADD(at[44], at[109]); MULADD(at[45], at[108]); MULADD(at[46], at[107]); MULADD(at[47], at[106]); MULADD(at[48], at[105]); MULADD(at[49], at[104]); MULADD(at[50], at[103]); MULADD(at[51], at[102]); MULADD(at[52], at[101]); MULADD(at[53], at[100]); MULADD(at[54], at[99]); MULADD(at[55], at[98]); MULADD(at[56], at[97]); MULADD(at[57], at[96]); MULADD(at[58], at[95]); MULADD(at[59], at[94]); MULADD(at[60], at[93]); MULADD(at[61], at[92]); MULADD(at[62], at[91]); MULADD(at[63], at[90]); + COMBA_STORE(C->dp[89]); + /* 90 */ + COMBA_FORWARD; + MULADD(at[27], at[127]); MULADD(at[28], at[126]); MULADD(at[29], at[125]); MULADD(at[30], at[124]); MULADD(at[31], at[123]); MULADD(at[32], at[122]); MULADD(at[33], at[121]); MULADD(at[34], at[120]); MULADD(at[35], at[119]); MULADD(at[36], at[118]); MULADD(at[37], at[117]); MULADD(at[38], at[116]); MULADD(at[39], at[115]); MULADD(at[40], at[114]); MULADD(at[41], at[113]); MULADD(at[42], at[112]); MULADD(at[43], at[111]); MULADD(at[44], at[110]); MULADD(at[45], at[109]); MULADD(at[46], at[108]); MULADD(at[47], at[107]); MULADD(at[48], at[106]); MULADD(at[49], at[105]); MULADD(at[50], at[104]); MULADD(at[51], at[103]); MULADD(at[52], at[102]); MULADD(at[53], at[101]); MULADD(at[54], at[100]); MULADD(at[55], at[99]); MULADD(at[56], at[98]); MULADD(at[57], at[97]); MULADD(at[58], at[96]); MULADD(at[59], at[95]); MULADD(at[60], at[94]); MULADD(at[61], at[93]); MULADD(at[62], at[92]); MULADD(at[63], at[91]); + COMBA_STORE(C->dp[90]); + /* 91 */ + COMBA_FORWARD; + MULADD(at[28], at[127]); MULADD(at[29], at[126]); MULADD(at[30], at[125]); MULADD(at[31], at[124]); MULADD(at[32], at[123]); MULADD(at[33], at[122]); MULADD(at[34], at[121]); MULADD(at[35], at[120]); MULADD(at[36], at[119]); MULADD(at[37], at[118]); MULADD(at[38], at[117]); MULADD(at[39], at[116]); MULADD(at[40], at[115]); MULADD(at[41], at[114]); MULADD(at[42], at[113]); MULADD(at[43], at[112]); MULADD(at[44], at[111]); MULADD(at[45], at[110]); MULADD(at[46], at[109]); MULADD(at[47], at[108]); MULADD(at[48], at[107]); MULADD(at[49], at[106]); MULADD(at[50], at[105]); MULADD(at[51], at[104]); MULADD(at[52], at[103]); MULADD(at[53], at[102]); MULADD(at[54], at[101]); MULADD(at[55], at[100]); MULADD(at[56], at[99]); MULADD(at[57], at[98]); MULADD(at[58], at[97]); MULADD(at[59], at[96]); MULADD(at[60], at[95]); MULADD(at[61], at[94]); MULADD(at[62], at[93]); MULADD(at[63], at[92]); + COMBA_STORE(C->dp[91]); + /* 92 */ + COMBA_FORWARD; + MULADD(at[29], at[127]); MULADD(at[30], at[126]); MULADD(at[31], at[125]); MULADD(at[32], at[124]); MULADD(at[33], at[123]); MULADD(at[34], at[122]); MULADD(at[35], at[121]); MULADD(at[36], at[120]); MULADD(at[37], at[119]); MULADD(at[38], at[118]); MULADD(at[39], at[117]); MULADD(at[40], at[116]); MULADD(at[41], at[115]); MULADD(at[42], at[114]); MULADD(at[43], at[113]); MULADD(at[44], at[112]); MULADD(at[45], at[111]); MULADD(at[46], at[110]); MULADD(at[47], at[109]); MULADD(at[48], at[108]); MULADD(at[49], at[107]); MULADD(at[50], at[106]); MULADD(at[51], at[105]); MULADD(at[52], at[104]); MULADD(at[53], at[103]); MULADD(at[54], at[102]); MULADD(at[55], at[101]); MULADD(at[56], at[100]); MULADD(at[57], at[99]); MULADD(at[58], at[98]); MULADD(at[59], at[97]); MULADD(at[60], at[96]); MULADD(at[61], at[95]); MULADD(at[62], at[94]); MULADD(at[63], at[93]); + COMBA_STORE(C->dp[92]); + /* 93 */ + COMBA_FORWARD; + MULADD(at[30], at[127]); MULADD(at[31], at[126]); MULADD(at[32], at[125]); MULADD(at[33], at[124]); MULADD(at[34], at[123]); MULADD(at[35], at[122]); MULADD(at[36], at[121]); MULADD(at[37], at[120]); MULADD(at[38], at[119]); MULADD(at[39], at[118]); MULADD(at[40], at[117]); MULADD(at[41], at[116]); MULADD(at[42], at[115]); MULADD(at[43], at[114]); MULADD(at[44], at[113]); MULADD(at[45], at[112]); MULADD(at[46], at[111]); MULADD(at[47], at[110]); MULADD(at[48], at[109]); MULADD(at[49], at[108]); MULADD(at[50], at[107]); MULADD(at[51], at[106]); MULADD(at[52], at[105]); MULADD(at[53], at[104]); MULADD(at[54], at[103]); MULADD(at[55], at[102]); MULADD(at[56], at[101]); MULADD(at[57], at[100]); MULADD(at[58], at[99]); MULADD(at[59], at[98]); MULADD(at[60], at[97]); MULADD(at[61], at[96]); MULADD(at[62], at[95]); MULADD(at[63], at[94]); + COMBA_STORE(C->dp[93]); + /* 94 */ + COMBA_FORWARD; + MULADD(at[31], at[127]); MULADD(at[32], at[126]); MULADD(at[33], at[125]); MULADD(at[34], at[124]); MULADD(at[35], at[123]); MULADD(at[36], at[122]); MULADD(at[37], at[121]); MULADD(at[38], at[120]); MULADD(at[39], at[119]); MULADD(at[40], at[118]); MULADD(at[41], at[117]); MULADD(at[42], at[116]); MULADD(at[43], at[115]); MULADD(at[44], at[114]); MULADD(at[45], at[113]); MULADD(at[46], at[112]); MULADD(at[47], at[111]); MULADD(at[48], at[110]); MULADD(at[49], at[109]); MULADD(at[50], at[108]); MULADD(at[51], at[107]); MULADD(at[52], at[106]); MULADD(at[53], at[105]); MULADD(at[54], at[104]); MULADD(at[55], at[103]); MULADD(at[56], at[102]); MULADD(at[57], at[101]); MULADD(at[58], at[100]); MULADD(at[59], at[99]); MULADD(at[60], at[98]); MULADD(at[61], at[97]); MULADD(at[62], at[96]); MULADD(at[63], at[95]); + COMBA_STORE(C->dp[94]); + /* 95 */ + COMBA_FORWARD; + MULADD(at[32], at[127]); MULADD(at[33], at[126]); MULADD(at[34], at[125]); MULADD(at[35], at[124]); MULADD(at[36], at[123]); MULADD(at[37], at[122]); MULADD(at[38], at[121]); MULADD(at[39], at[120]); MULADD(at[40], at[119]); MULADD(at[41], at[118]); MULADD(at[42], at[117]); MULADD(at[43], at[116]); MULADD(at[44], at[115]); MULADD(at[45], at[114]); MULADD(at[46], at[113]); MULADD(at[47], at[112]); MULADD(at[48], at[111]); MULADD(at[49], at[110]); MULADD(at[50], at[109]); MULADD(at[51], at[108]); MULADD(at[52], at[107]); MULADD(at[53], at[106]); MULADD(at[54], at[105]); MULADD(at[55], at[104]); MULADD(at[56], at[103]); MULADD(at[57], at[102]); MULADD(at[58], at[101]); MULADD(at[59], at[100]); MULADD(at[60], at[99]); MULADD(at[61], at[98]); MULADD(at[62], at[97]); MULADD(at[63], at[96]); + COMBA_STORE(C->dp[95]); + /* 96 */ + COMBA_FORWARD; + MULADD(at[33], at[127]); MULADD(at[34], at[126]); MULADD(at[35], at[125]); MULADD(at[36], at[124]); MULADD(at[37], at[123]); MULADD(at[38], at[122]); MULADD(at[39], at[121]); MULADD(at[40], at[120]); MULADD(at[41], at[119]); MULADD(at[42], at[118]); MULADD(at[43], at[117]); MULADD(at[44], at[116]); MULADD(at[45], at[115]); MULADD(at[46], at[114]); MULADD(at[47], at[113]); MULADD(at[48], at[112]); MULADD(at[49], at[111]); MULADD(at[50], at[110]); MULADD(at[51], at[109]); MULADD(at[52], at[108]); MULADD(at[53], at[107]); MULADD(at[54], at[106]); MULADD(at[55], at[105]); MULADD(at[56], at[104]); MULADD(at[57], at[103]); MULADD(at[58], at[102]); MULADD(at[59], at[101]); MULADD(at[60], at[100]); MULADD(at[61], at[99]); MULADD(at[62], at[98]); MULADD(at[63], at[97]); + COMBA_STORE(C->dp[96]); + /* 97 */ + COMBA_FORWARD; + MULADD(at[34], at[127]); MULADD(at[35], at[126]); MULADD(at[36], at[125]); MULADD(at[37], at[124]); MULADD(at[38], at[123]); MULADD(at[39], at[122]); MULADD(at[40], at[121]); MULADD(at[41], at[120]); MULADD(at[42], at[119]); MULADD(at[43], at[118]); MULADD(at[44], at[117]); MULADD(at[45], at[116]); MULADD(at[46], at[115]); MULADD(at[47], at[114]); MULADD(at[48], at[113]); MULADD(at[49], at[112]); MULADD(at[50], at[111]); MULADD(at[51], at[110]); MULADD(at[52], at[109]); MULADD(at[53], at[108]); MULADD(at[54], at[107]); MULADD(at[55], at[106]); MULADD(at[56], at[105]); MULADD(at[57], at[104]); MULADD(at[58], at[103]); MULADD(at[59], at[102]); MULADD(at[60], at[101]); MULADD(at[61], at[100]); MULADD(at[62], at[99]); MULADD(at[63], at[98]); + COMBA_STORE(C->dp[97]); + /* 98 */ + COMBA_FORWARD; + MULADD(at[35], at[127]); MULADD(at[36], at[126]); MULADD(at[37], at[125]); MULADD(at[38], at[124]); MULADD(at[39], at[123]); MULADD(at[40], at[122]); MULADD(at[41], at[121]); MULADD(at[42], at[120]); MULADD(at[43], at[119]); MULADD(at[44], at[118]); MULADD(at[45], at[117]); MULADD(at[46], at[116]); MULADD(at[47], at[115]); MULADD(at[48], at[114]); MULADD(at[49], at[113]); MULADD(at[50], at[112]); MULADD(at[51], at[111]); MULADD(at[52], at[110]); MULADD(at[53], at[109]); MULADD(at[54], at[108]); MULADD(at[55], at[107]); MULADD(at[56], at[106]); MULADD(at[57], at[105]); MULADD(at[58], at[104]); MULADD(at[59], at[103]); MULADD(at[60], at[102]); MULADD(at[61], at[101]); MULADD(at[62], at[100]); MULADD(at[63], at[99]); + COMBA_STORE(C->dp[98]); + /* 99 */ + COMBA_FORWARD; + MULADD(at[36], at[127]); MULADD(at[37], at[126]); MULADD(at[38], at[125]); MULADD(at[39], at[124]); MULADD(at[40], at[123]); MULADD(at[41], at[122]); MULADD(at[42], at[121]); MULADD(at[43], at[120]); MULADD(at[44], at[119]); MULADD(at[45], at[118]); MULADD(at[46], at[117]); MULADD(at[47], at[116]); MULADD(at[48], at[115]); MULADD(at[49], at[114]); MULADD(at[50], at[113]); MULADD(at[51], at[112]); MULADD(at[52], at[111]); MULADD(at[53], at[110]); MULADD(at[54], at[109]); MULADD(at[55], at[108]); MULADD(at[56], at[107]); MULADD(at[57], at[106]); MULADD(at[58], at[105]); MULADD(at[59], at[104]); MULADD(at[60], at[103]); MULADD(at[61], at[102]); MULADD(at[62], at[101]); MULADD(at[63], at[100]); + COMBA_STORE(C->dp[99]); + /* 100 */ + COMBA_FORWARD; + MULADD(at[37], at[127]); MULADD(at[38], at[126]); MULADD(at[39], at[125]); MULADD(at[40], at[124]); MULADD(at[41], at[123]); MULADD(at[42], at[122]); MULADD(at[43], at[121]); MULADD(at[44], at[120]); MULADD(at[45], at[119]); MULADD(at[46], at[118]); MULADD(at[47], at[117]); MULADD(at[48], at[116]); MULADD(at[49], at[115]); MULADD(at[50], at[114]); MULADD(at[51], at[113]); MULADD(at[52], at[112]); MULADD(at[53], at[111]); MULADD(at[54], at[110]); MULADD(at[55], at[109]); MULADD(at[56], at[108]); MULADD(at[57], at[107]); MULADD(at[58], at[106]); MULADD(at[59], at[105]); MULADD(at[60], at[104]); MULADD(at[61], at[103]); MULADD(at[62], at[102]); MULADD(at[63], at[101]); + COMBA_STORE(C->dp[100]); + /* 101 */ + COMBA_FORWARD; + MULADD(at[38], at[127]); MULADD(at[39], at[126]); MULADD(at[40], at[125]); MULADD(at[41], at[124]); MULADD(at[42], at[123]); MULADD(at[43], at[122]); MULADD(at[44], at[121]); MULADD(at[45], at[120]); MULADD(at[46], at[119]); MULADD(at[47], at[118]); MULADD(at[48], at[117]); MULADD(at[49], at[116]); MULADD(at[50], at[115]); MULADD(at[51], at[114]); MULADD(at[52], at[113]); MULADD(at[53], at[112]); MULADD(at[54], at[111]); MULADD(at[55], at[110]); MULADD(at[56], at[109]); MULADD(at[57], at[108]); MULADD(at[58], at[107]); MULADD(at[59], at[106]); MULADD(at[60], at[105]); MULADD(at[61], at[104]); MULADD(at[62], at[103]); MULADD(at[63], at[102]); + COMBA_STORE(C->dp[101]); + /* 102 */ + COMBA_FORWARD; + MULADD(at[39], at[127]); MULADD(at[40], at[126]); MULADD(at[41], at[125]); MULADD(at[42], at[124]); MULADD(at[43], at[123]); MULADD(at[44], at[122]); MULADD(at[45], at[121]); MULADD(at[46], at[120]); MULADD(at[47], at[119]); MULADD(at[48], at[118]); MULADD(at[49], at[117]); MULADD(at[50], at[116]); MULADD(at[51], at[115]); MULADD(at[52], at[114]); MULADD(at[53], at[113]); MULADD(at[54], at[112]); MULADD(at[55], at[111]); MULADD(at[56], at[110]); MULADD(at[57], at[109]); MULADD(at[58], at[108]); MULADD(at[59], at[107]); MULADD(at[60], at[106]); MULADD(at[61], at[105]); MULADD(at[62], at[104]); MULADD(at[63], at[103]); + COMBA_STORE(C->dp[102]); + /* 103 */ + COMBA_FORWARD; + MULADD(at[40], at[127]); MULADD(at[41], at[126]); MULADD(at[42], at[125]); MULADD(at[43], at[124]); MULADD(at[44], at[123]); MULADD(at[45], at[122]); MULADD(at[46], at[121]); MULADD(at[47], at[120]); MULADD(at[48], at[119]); MULADD(at[49], at[118]); MULADD(at[50], at[117]); MULADD(at[51], at[116]); MULADD(at[52], at[115]); MULADD(at[53], at[114]); MULADD(at[54], at[113]); MULADD(at[55], at[112]); MULADD(at[56], at[111]); MULADD(at[57], at[110]); MULADD(at[58], at[109]); MULADD(at[59], at[108]); MULADD(at[60], at[107]); MULADD(at[61], at[106]); MULADD(at[62], at[105]); MULADD(at[63], at[104]); + COMBA_STORE(C->dp[103]); + /* 104 */ + COMBA_FORWARD; + MULADD(at[41], at[127]); MULADD(at[42], at[126]); MULADD(at[43], at[125]); MULADD(at[44], at[124]); MULADD(at[45], at[123]); MULADD(at[46], at[122]); MULADD(at[47], at[121]); MULADD(at[48], at[120]); MULADD(at[49], at[119]); MULADD(at[50], at[118]); MULADD(at[51], at[117]); MULADD(at[52], at[116]); MULADD(at[53], at[115]); MULADD(at[54], at[114]); MULADD(at[55], at[113]); MULADD(at[56], at[112]); MULADD(at[57], at[111]); MULADD(at[58], at[110]); MULADD(at[59], at[109]); MULADD(at[60], at[108]); MULADD(at[61], at[107]); MULADD(at[62], at[106]); MULADD(at[63], at[105]); + COMBA_STORE(C->dp[104]); + /* 105 */ + COMBA_FORWARD; + MULADD(at[42], at[127]); MULADD(at[43], at[126]); MULADD(at[44], at[125]); MULADD(at[45], at[124]); MULADD(at[46], at[123]); MULADD(at[47], at[122]); MULADD(at[48], at[121]); MULADD(at[49], at[120]); MULADD(at[50], at[119]); MULADD(at[51], at[118]); MULADD(at[52], at[117]); MULADD(at[53], at[116]); MULADD(at[54], at[115]); MULADD(at[55], at[114]); MULADD(at[56], at[113]); MULADD(at[57], at[112]); MULADD(at[58], at[111]); MULADD(at[59], at[110]); MULADD(at[60], at[109]); MULADD(at[61], at[108]); MULADD(at[62], at[107]); MULADD(at[63], at[106]); + COMBA_STORE(C->dp[105]); + /* 106 */ + COMBA_FORWARD; + MULADD(at[43], at[127]); MULADD(at[44], at[126]); MULADD(at[45], at[125]); MULADD(at[46], at[124]); MULADD(at[47], at[123]); MULADD(at[48], at[122]); MULADD(at[49], at[121]); MULADD(at[50], at[120]); MULADD(at[51], at[119]); MULADD(at[52], at[118]); MULADD(at[53], at[117]); MULADD(at[54], at[116]); MULADD(at[55], at[115]); MULADD(at[56], at[114]); MULADD(at[57], at[113]); MULADD(at[58], at[112]); MULADD(at[59], at[111]); MULADD(at[60], at[110]); MULADD(at[61], at[109]); MULADD(at[62], at[108]); MULADD(at[63], at[107]); + COMBA_STORE(C->dp[106]); + /* 107 */ + COMBA_FORWARD; + MULADD(at[44], at[127]); MULADD(at[45], at[126]); MULADD(at[46], at[125]); MULADD(at[47], at[124]); MULADD(at[48], at[123]); MULADD(at[49], at[122]); MULADD(at[50], at[121]); MULADD(at[51], at[120]); MULADD(at[52], at[119]); MULADD(at[53], at[118]); MULADD(at[54], at[117]); MULADD(at[55], at[116]); MULADD(at[56], at[115]); MULADD(at[57], at[114]); MULADD(at[58], at[113]); MULADD(at[59], at[112]); MULADD(at[60], at[111]); MULADD(at[61], at[110]); MULADD(at[62], at[109]); MULADD(at[63], at[108]); + COMBA_STORE(C->dp[107]); + /* 108 */ + COMBA_FORWARD; + MULADD(at[45], at[127]); MULADD(at[46], at[126]); MULADD(at[47], at[125]); MULADD(at[48], at[124]); MULADD(at[49], at[123]); MULADD(at[50], at[122]); MULADD(at[51], at[121]); MULADD(at[52], at[120]); MULADD(at[53], at[119]); MULADD(at[54], at[118]); MULADD(at[55], at[117]); MULADD(at[56], at[116]); MULADD(at[57], at[115]); MULADD(at[58], at[114]); MULADD(at[59], at[113]); MULADD(at[60], at[112]); MULADD(at[61], at[111]); MULADD(at[62], at[110]); MULADD(at[63], at[109]); + COMBA_STORE(C->dp[108]); + /* 109 */ + COMBA_FORWARD; + MULADD(at[46], at[127]); MULADD(at[47], at[126]); MULADD(at[48], at[125]); MULADD(at[49], at[124]); MULADD(at[50], at[123]); MULADD(at[51], at[122]); MULADD(at[52], at[121]); MULADD(at[53], at[120]); MULADD(at[54], at[119]); MULADD(at[55], at[118]); MULADD(at[56], at[117]); MULADD(at[57], at[116]); MULADD(at[58], at[115]); MULADD(at[59], at[114]); MULADD(at[60], at[113]); MULADD(at[61], at[112]); MULADD(at[62], at[111]); MULADD(at[63], at[110]); + COMBA_STORE(C->dp[109]); + /* 110 */ + COMBA_FORWARD; + MULADD(at[47], at[127]); MULADD(at[48], at[126]); MULADD(at[49], at[125]); MULADD(at[50], at[124]); MULADD(at[51], at[123]); MULADD(at[52], at[122]); MULADD(at[53], at[121]); MULADD(at[54], at[120]); MULADD(at[55], at[119]); MULADD(at[56], at[118]); MULADD(at[57], at[117]); MULADD(at[58], at[116]); MULADD(at[59], at[115]); MULADD(at[60], at[114]); MULADD(at[61], at[113]); MULADD(at[62], at[112]); MULADD(at[63], at[111]); + COMBA_STORE(C->dp[110]); + /* 111 */ + COMBA_FORWARD; + MULADD(at[48], at[127]); MULADD(at[49], at[126]); MULADD(at[50], at[125]); MULADD(at[51], at[124]); MULADD(at[52], at[123]); MULADD(at[53], at[122]); MULADD(at[54], at[121]); MULADD(at[55], at[120]); MULADD(at[56], at[119]); MULADD(at[57], at[118]); MULADD(at[58], at[117]); MULADD(at[59], at[116]); MULADD(at[60], at[115]); MULADD(at[61], at[114]); MULADD(at[62], at[113]); MULADD(at[63], at[112]); + COMBA_STORE(C->dp[111]); + /* 112 */ + COMBA_FORWARD; + MULADD(at[49], at[127]); MULADD(at[50], at[126]); MULADD(at[51], at[125]); MULADD(at[52], at[124]); MULADD(at[53], at[123]); MULADD(at[54], at[122]); MULADD(at[55], at[121]); MULADD(at[56], at[120]); MULADD(at[57], at[119]); MULADD(at[58], at[118]); MULADD(at[59], at[117]); MULADD(at[60], at[116]); MULADD(at[61], at[115]); MULADD(at[62], at[114]); MULADD(at[63], at[113]); + COMBA_STORE(C->dp[112]); + /* 113 */ + COMBA_FORWARD; + MULADD(at[50], at[127]); MULADD(at[51], at[126]); MULADD(at[52], at[125]); MULADD(at[53], at[124]); MULADD(at[54], at[123]); MULADD(at[55], at[122]); MULADD(at[56], at[121]); MULADD(at[57], at[120]); MULADD(at[58], at[119]); MULADD(at[59], at[118]); MULADD(at[60], at[117]); MULADD(at[61], at[116]); MULADD(at[62], at[115]); MULADD(at[63], at[114]); + COMBA_STORE(C->dp[113]); + /* 114 */ + COMBA_FORWARD; + MULADD(at[51], at[127]); MULADD(at[52], at[126]); MULADD(at[53], at[125]); MULADD(at[54], at[124]); MULADD(at[55], at[123]); MULADD(at[56], at[122]); MULADD(at[57], at[121]); MULADD(at[58], at[120]); MULADD(at[59], at[119]); MULADD(at[60], at[118]); MULADD(at[61], at[117]); MULADD(at[62], at[116]); MULADD(at[63], at[115]); + COMBA_STORE(C->dp[114]); + /* 115 */ + COMBA_FORWARD; + MULADD(at[52], at[127]); MULADD(at[53], at[126]); MULADD(at[54], at[125]); MULADD(at[55], at[124]); MULADD(at[56], at[123]); MULADD(at[57], at[122]); MULADD(at[58], at[121]); MULADD(at[59], at[120]); MULADD(at[60], at[119]); MULADD(at[61], at[118]); MULADD(at[62], at[117]); MULADD(at[63], at[116]); + COMBA_STORE(C->dp[115]); + /* 116 */ + COMBA_FORWARD; + MULADD(at[53], at[127]); MULADD(at[54], at[126]); MULADD(at[55], at[125]); MULADD(at[56], at[124]); MULADD(at[57], at[123]); MULADD(at[58], at[122]); MULADD(at[59], at[121]); MULADD(at[60], at[120]); MULADD(at[61], at[119]); MULADD(at[62], at[118]); MULADD(at[63], at[117]); + COMBA_STORE(C->dp[116]); + /* 117 */ + COMBA_FORWARD; + MULADD(at[54], at[127]); MULADD(at[55], at[126]); MULADD(at[56], at[125]); MULADD(at[57], at[124]); MULADD(at[58], at[123]); MULADD(at[59], at[122]); MULADD(at[60], at[121]); MULADD(at[61], at[120]); MULADD(at[62], at[119]); MULADD(at[63], at[118]); + COMBA_STORE(C->dp[117]); + /* 118 */ + COMBA_FORWARD; + MULADD(at[55], at[127]); MULADD(at[56], at[126]); MULADD(at[57], at[125]); MULADD(at[58], at[124]); MULADD(at[59], at[123]); MULADD(at[60], at[122]); MULADD(at[61], at[121]); MULADD(at[62], at[120]); MULADD(at[63], at[119]); + COMBA_STORE(C->dp[118]); + /* 119 */ + COMBA_FORWARD; + MULADD(at[56], at[127]); MULADD(at[57], at[126]); MULADD(at[58], at[125]); MULADD(at[59], at[124]); MULADD(at[60], at[123]); MULADD(at[61], at[122]); MULADD(at[62], at[121]); MULADD(at[63], at[120]); + COMBA_STORE(C->dp[119]); + /* 120 */ + COMBA_FORWARD; + MULADD(at[57], at[127]); MULADD(at[58], at[126]); MULADD(at[59], at[125]); MULADD(at[60], at[124]); MULADD(at[61], at[123]); MULADD(at[62], at[122]); MULADD(at[63], at[121]); + COMBA_STORE(C->dp[120]); + /* 121 */ + COMBA_FORWARD; + MULADD(at[58], at[127]); MULADD(at[59], at[126]); MULADD(at[60], at[125]); MULADD(at[61], at[124]); MULADD(at[62], at[123]); MULADD(at[63], at[122]); + COMBA_STORE(C->dp[121]); + /* 122 */ + COMBA_FORWARD; + MULADD(at[59], at[127]); MULADD(at[60], at[126]); MULADD(at[61], at[125]); MULADD(at[62], at[124]); MULADD(at[63], at[123]); + COMBA_STORE(C->dp[122]); + /* 123 */ + COMBA_FORWARD; + MULADD(at[60], at[127]); MULADD(at[61], at[126]); MULADD(at[62], at[125]); MULADD(at[63], at[124]); + COMBA_STORE(C->dp[123]); + /* 124 */ + COMBA_FORWARD; + MULADD(at[61], at[127]); MULADD(at[62], at[126]); MULADD(at[63], at[125]); + COMBA_STORE(C->dp[124]); + /* 125 */ + COMBA_FORWARD; + MULADD(at[62], at[127]); MULADD(at[63], at[126]); + COMBA_STORE(C->dp[125]); + /* 126 */ + COMBA_FORWARD; + MULADD(at[63], at[127]); + COMBA_STORE(C->dp[126]); + COMBA_STORE2(C->dp[127]); + C->used = 128; + C->sign = A->sign ^ B->sign; + fp_clamp(C); + COMBA_FINI; +} +#endif diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_7.i b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_7.i new file mode 100644 index 000000000..46fb97010 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_7.i @@ -0,0 +1,90 @@ +/* fp_mul_comba_7.i + * + * Copyright (C) 2006-2011 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifdef TFM_MUL7 +void fp_mul_comba7(fp_int *A, fp_int *B, fp_int *C) +{ + fp_digit c0, c1, c2, at[14]; + + memcpy(at, A->dp, 7 * sizeof(fp_digit)); + memcpy(at+7, B->dp, 7 * sizeof(fp_digit)); + COMBA_START; + + COMBA_CLEAR; + /* 0 */ + MULADD(at[0], at[7]); + COMBA_STORE(C->dp[0]); + /* 1 */ + COMBA_FORWARD; + MULADD(at[0], at[8]); MULADD(at[1], at[7]); + COMBA_STORE(C->dp[1]); + /* 2 */ + COMBA_FORWARD; + MULADD(at[0], at[9]); MULADD(at[1], at[8]); MULADD(at[2], at[7]); + COMBA_STORE(C->dp[2]); + /* 3 */ + COMBA_FORWARD; + MULADD(at[0], at[10]); MULADD(at[1], at[9]); MULADD(at[2], at[8]); MULADD(at[3], at[7]); + COMBA_STORE(C->dp[3]); + /* 4 */ + COMBA_FORWARD; + MULADD(at[0], at[11]); MULADD(at[1], at[10]); MULADD(at[2], at[9]); MULADD(at[3], at[8]); MULADD(at[4], at[7]); + COMBA_STORE(C->dp[4]); + /* 5 */ + COMBA_FORWARD; + MULADD(at[0], at[12]); MULADD(at[1], at[11]); MULADD(at[2], at[10]); MULADD(at[3], at[9]); MULADD(at[4], at[8]); MULADD(at[5], at[7]); + COMBA_STORE(C->dp[5]); + /* 6 */ + COMBA_FORWARD; + MULADD(at[0], at[13]); MULADD(at[1], at[12]); MULADD(at[2], at[11]); MULADD(at[3], at[10]); MULADD(at[4], at[9]); MULADD(at[5], at[8]); MULADD(at[6], at[7]); + COMBA_STORE(C->dp[6]); + /* 7 */ + COMBA_FORWARD; + MULADD(at[1], at[13]); MULADD(at[2], at[12]); MULADD(at[3], at[11]); MULADD(at[4], at[10]); MULADD(at[5], at[9]); MULADD(at[6], at[8]); + COMBA_STORE(C->dp[7]); + /* 8 */ + COMBA_FORWARD; + MULADD(at[2], at[13]); MULADD(at[3], at[12]); MULADD(at[4], at[11]); MULADD(at[5], at[10]); MULADD(at[6], at[9]); + COMBA_STORE(C->dp[8]); + /* 9 */ + COMBA_FORWARD; + MULADD(at[3], at[13]); MULADD(at[4], at[12]); MULADD(at[5], at[11]); MULADD(at[6], at[10]); + COMBA_STORE(C->dp[9]); + /* 10 */ + COMBA_FORWARD; + MULADD(at[4], at[13]); MULADD(at[5], at[12]); MULADD(at[6], at[11]); + COMBA_STORE(C->dp[10]); + /* 11 */ + COMBA_FORWARD; + MULADD(at[5], at[13]); MULADD(at[6], at[12]); + COMBA_STORE(C->dp[11]); + /* 12 */ + COMBA_FORWARD; + MULADD(at[6], at[13]); + COMBA_STORE(C->dp[12]); + COMBA_STORE2(C->dp[13]); + C->used = 14; + C->sign = A->sign ^ B->sign; + fp_clamp(C); + COMBA_FINI; +} +#endif diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_8.i b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_8.i new file mode 100644 index 000000000..987d13edf --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_8.i @@ -0,0 +1,98 @@ +/* fp_mul_comba_8.i + * + * Copyright (C) 2006-2011 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifdef TFM_MUL8 +void fp_mul_comba8(fp_int *A, fp_int *B, fp_int *C) +{ + fp_digit c0, c1, c2, at[16]; + + memcpy(at, A->dp, 8 * sizeof(fp_digit)); + memcpy(at+8, B->dp, 8 * sizeof(fp_digit)); + COMBA_START; + + COMBA_CLEAR; + /* 0 */ + MULADD(at[0], at[8]); + COMBA_STORE(C->dp[0]); + /* 1 */ + COMBA_FORWARD; + MULADD(at[0], at[9]); MULADD(at[1], at[8]); + COMBA_STORE(C->dp[1]); + /* 2 */ + COMBA_FORWARD; + MULADD(at[0], at[10]); MULADD(at[1], at[9]); MULADD(at[2], at[8]); + COMBA_STORE(C->dp[2]); + /* 3 */ + COMBA_FORWARD; + MULADD(at[0], at[11]); MULADD(at[1], at[10]); MULADD(at[2], at[9]); MULADD(at[3], at[8]); + COMBA_STORE(C->dp[3]); + /* 4 */ + COMBA_FORWARD; + MULADD(at[0], at[12]); MULADD(at[1], at[11]); MULADD(at[2], at[10]); MULADD(at[3], at[9]); MULADD(at[4], at[8]); + COMBA_STORE(C->dp[4]); + /* 5 */ + COMBA_FORWARD; + MULADD(at[0], at[13]); MULADD(at[1], at[12]); MULADD(at[2], at[11]); MULADD(at[3], at[10]); MULADD(at[4], at[9]); MULADD(at[5], at[8]); + COMBA_STORE(C->dp[5]); + /* 6 */ + COMBA_FORWARD; + MULADD(at[0], at[14]); MULADD(at[1], at[13]); MULADD(at[2], at[12]); MULADD(at[3], at[11]); MULADD(at[4], at[10]); MULADD(at[5], at[9]); MULADD(at[6], at[8]); + COMBA_STORE(C->dp[6]); + /* 7 */ + COMBA_FORWARD; + MULADD(at[0], at[15]); MULADD(at[1], at[14]); MULADD(at[2], at[13]); MULADD(at[3], at[12]); MULADD(at[4], at[11]); MULADD(at[5], at[10]); MULADD(at[6], at[9]); MULADD(at[7], at[8]); + COMBA_STORE(C->dp[7]); + /* 8 */ + COMBA_FORWARD; + MULADD(at[1], at[15]); MULADD(at[2], at[14]); MULADD(at[3], at[13]); MULADD(at[4], at[12]); MULADD(at[5], at[11]); MULADD(at[6], at[10]); MULADD(at[7], at[9]); + COMBA_STORE(C->dp[8]); + /* 9 */ + COMBA_FORWARD; + MULADD(at[2], at[15]); MULADD(at[3], at[14]); MULADD(at[4], at[13]); MULADD(at[5], at[12]); MULADD(at[6], at[11]); MULADD(at[7], at[10]); + COMBA_STORE(C->dp[9]); + /* 10 */ + COMBA_FORWARD; + MULADD(at[3], at[15]); MULADD(at[4], at[14]); MULADD(at[5], at[13]); MULADD(at[6], at[12]); MULADD(at[7], at[11]); + COMBA_STORE(C->dp[10]); + /* 11 */ + COMBA_FORWARD; + MULADD(at[4], at[15]); MULADD(at[5], at[14]); MULADD(at[6], at[13]); MULADD(at[7], at[12]); + COMBA_STORE(C->dp[11]); + /* 12 */ + COMBA_FORWARD; + MULADD(at[5], at[15]); MULADD(at[6], at[14]); MULADD(at[7], at[13]); + COMBA_STORE(C->dp[12]); + /* 13 */ + COMBA_FORWARD; + MULADD(at[6], at[15]); MULADD(at[7], at[14]); + COMBA_STORE(C->dp[13]); + /* 14 */ + COMBA_FORWARD; + MULADD(at[7], at[15]); + COMBA_STORE(C->dp[14]); + COMBA_STORE2(C->dp[15]); + C->used = 16; + C->sign = A->sign ^ B->sign; + fp_clamp(C); + COMBA_FINI; +} +#endif diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_9.i b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_9.i new file mode 100644 index 000000000..5b1b3c79b --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_9.i @@ -0,0 +1,106 @@ +/* fp_mul_comba_9.i + * + * Copyright (C) 2006-2011 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifdef TFM_MUL9 +void fp_mul_comba9(fp_int *A, fp_int *B, fp_int *C) +{ + fp_digit c0, c1, c2, at[18]; + + memcpy(at, A->dp, 9 * sizeof(fp_digit)); + memcpy(at+9, B->dp, 9 * sizeof(fp_digit)); + COMBA_START; + + COMBA_CLEAR; + /* 0 */ + MULADD(at[0], at[9]); + COMBA_STORE(C->dp[0]); + /* 1 */ + COMBA_FORWARD; + MULADD(at[0], at[10]); MULADD(at[1], at[9]); + COMBA_STORE(C->dp[1]); + /* 2 */ + COMBA_FORWARD; + MULADD(at[0], at[11]); MULADD(at[1], at[10]); MULADD(at[2], at[9]); + COMBA_STORE(C->dp[2]); + /* 3 */ + COMBA_FORWARD; + MULADD(at[0], at[12]); MULADD(at[1], at[11]); MULADD(at[2], at[10]); MULADD(at[3], at[9]); + COMBA_STORE(C->dp[3]); + /* 4 */ + COMBA_FORWARD; + MULADD(at[0], at[13]); MULADD(at[1], at[12]); MULADD(at[2], at[11]); MULADD(at[3], at[10]); MULADD(at[4], at[9]); + COMBA_STORE(C->dp[4]); + /* 5 */ + COMBA_FORWARD; + MULADD(at[0], at[14]); MULADD(at[1], at[13]); MULADD(at[2], at[12]); MULADD(at[3], at[11]); MULADD(at[4], at[10]); MULADD(at[5], at[9]); + COMBA_STORE(C->dp[5]); + /* 6 */ + COMBA_FORWARD; + MULADD(at[0], at[15]); MULADD(at[1], at[14]); MULADD(at[2], at[13]); MULADD(at[3], at[12]); MULADD(at[4], at[11]); MULADD(at[5], at[10]); MULADD(at[6], at[9]); + COMBA_STORE(C->dp[6]); + /* 7 */ + COMBA_FORWARD; + MULADD(at[0], at[16]); MULADD(at[1], at[15]); MULADD(at[2], at[14]); MULADD(at[3], at[13]); MULADD(at[4], at[12]); MULADD(at[5], at[11]); MULADD(at[6], at[10]); MULADD(at[7], at[9]); + COMBA_STORE(C->dp[7]); + /* 8 */ + COMBA_FORWARD; + MULADD(at[0], at[17]); MULADD(at[1], at[16]); MULADD(at[2], at[15]); MULADD(at[3], at[14]); MULADD(at[4], at[13]); MULADD(at[5], at[12]); MULADD(at[6], at[11]); MULADD(at[7], at[10]); MULADD(at[8], at[9]); + COMBA_STORE(C->dp[8]); + /* 9 */ + COMBA_FORWARD; + MULADD(at[1], at[17]); MULADD(at[2], at[16]); MULADD(at[3], at[15]); MULADD(at[4], at[14]); MULADD(at[5], at[13]); MULADD(at[6], at[12]); MULADD(at[7], at[11]); MULADD(at[8], at[10]); + COMBA_STORE(C->dp[9]); + /* 10 */ + COMBA_FORWARD; + MULADD(at[2], at[17]); MULADD(at[3], at[16]); MULADD(at[4], at[15]); MULADD(at[5], at[14]); MULADD(at[6], at[13]); MULADD(at[7], at[12]); MULADD(at[8], at[11]); + COMBA_STORE(C->dp[10]); + /* 11 */ + COMBA_FORWARD; + MULADD(at[3], at[17]); MULADD(at[4], at[16]); MULADD(at[5], at[15]); MULADD(at[6], at[14]); MULADD(at[7], at[13]); MULADD(at[8], at[12]); + COMBA_STORE(C->dp[11]); + /* 12 */ + COMBA_FORWARD; + MULADD(at[4], at[17]); MULADD(at[5], at[16]); MULADD(at[6], at[15]); MULADD(at[7], at[14]); MULADD(at[8], at[13]); + COMBA_STORE(C->dp[12]); + /* 13 */ + COMBA_FORWARD; + MULADD(at[5], at[17]); MULADD(at[6], at[16]); MULADD(at[7], at[15]); MULADD(at[8], at[14]); + COMBA_STORE(C->dp[13]); + /* 14 */ + COMBA_FORWARD; + MULADD(at[6], at[17]); MULADD(at[7], at[16]); MULADD(at[8], at[15]); + COMBA_STORE(C->dp[14]); + /* 15 */ + COMBA_FORWARD; + MULADD(at[7], at[17]); MULADD(at[8], at[16]); + COMBA_STORE(C->dp[15]); + /* 16 */ + COMBA_FORWARD; + MULADD(at[8], at[17]); + COMBA_STORE(C->dp[16]); + COMBA_STORE2(C->dp[17]); + C->used = 18; + C->sign = A->sign ^ B->sign; + fp_clamp(C); + COMBA_FINI; +} +#endif diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_small_set.i b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_small_set.i new file mode 100644 index 000000000..db40da73b --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_mul_comba_small_set.i @@ -0,0 +1,1250 @@ +/* fp_mul_comba_small_set.i + * + * Copyright (C) 2006-2011 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#if defined(TFM_SMALL_SET) +void fp_mul_comba_small(fp_int *A, fp_int *B, fp_int *C) +{ + fp_digit c0, c1, c2, at[32]; + switch (MAX(A->used, B->used)) { + + case 1: + memcpy(at, A->dp, 1 * sizeof(fp_digit)); + memcpy(at+1, B->dp, 1 * sizeof(fp_digit)); + COMBA_START; + + COMBA_CLEAR; + /* 0 */ + MULADD(at[0], at[1]); + COMBA_STORE(C->dp[0]); + COMBA_STORE2(C->dp[1]); + C->used = 2; + C->sign = A->sign ^ B->sign; + fp_clamp(C); + COMBA_FINI; + break; + + case 2: + memcpy(at, A->dp, 2 * sizeof(fp_digit)); + memcpy(at+2, B->dp, 2 * sizeof(fp_digit)); + COMBA_START; + + COMBA_CLEAR; + /* 0 */ + MULADD(at[0], at[2]); + COMBA_STORE(C->dp[0]); + /* 1 */ + COMBA_FORWARD; + MULADD(at[0], at[3]); MULADD(at[1], at[2]); + COMBA_STORE(C->dp[1]); + /* 2 */ + COMBA_FORWARD; + MULADD(at[1], at[3]); + COMBA_STORE(C->dp[2]); + COMBA_STORE2(C->dp[3]); + C->used = 4; + C->sign = A->sign ^ B->sign; + fp_clamp(C); + COMBA_FINI; + break; + + case 3: + memcpy(at, A->dp, 3 * sizeof(fp_digit)); + memcpy(at+3, B->dp, 3 * sizeof(fp_digit)); + COMBA_START; + + COMBA_CLEAR; + /* 0 */ + MULADD(at[0], at[3]); + COMBA_STORE(C->dp[0]); + /* 1 */ + COMBA_FORWARD; + MULADD(at[0], at[4]); MULADD(at[1], at[3]); + COMBA_STORE(C->dp[1]); + /* 2 */ + COMBA_FORWARD; + MULADD(at[0], at[5]); MULADD(at[1], at[4]); MULADD(at[2], at[3]); + COMBA_STORE(C->dp[2]); + /* 3 */ + COMBA_FORWARD; + MULADD(at[1], at[5]); MULADD(at[2], at[4]); + COMBA_STORE(C->dp[3]); + /* 4 */ + COMBA_FORWARD; + MULADD(at[2], at[5]); + COMBA_STORE(C->dp[4]); + COMBA_STORE2(C->dp[5]); + C->used = 6; + C->sign = A->sign ^ B->sign; + fp_clamp(C); + COMBA_FINI; + break; + + case 4: + memcpy(at, A->dp, 4 * sizeof(fp_digit)); + memcpy(at+4, B->dp, 4 * sizeof(fp_digit)); + COMBA_START; + + COMBA_CLEAR; + /* 0 */ + MULADD(at[0], at[4]); + COMBA_STORE(C->dp[0]); + /* 1 */ + COMBA_FORWARD; + MULADD(at[0], at[5]); MULADD(at[1], at[4]); + COMBA_STORE(C->dp[1]); + /* 2 */ + COMBA_FORWARD; + MULADD(at[0], at[6]); MULADD(at[1], at[5]); MULADD(at[2], at[4]); + COMBA_STORE(C->dp[2]); + /* 3 */ + COMBA_FORWARD; + MULADD(at[0], at[7]); MULADD(at[1], at[6]); MULADD(at[2], at[5]); MULADD(at[3], at[4]); + COMBA_STORE(C->dp[3]); + /* 4 */ + COMBA_FORWARD; + MULADD(at[1], at[7]); MULADD(at[2], at[6]); MULADD(at[3], at[5]); + COMBA_STORE(C->dp[4]); + /* 5 */ + COMBA_FORWARD; + MULADD(at[2], at[7]); MULADD(at[3], at[6]); + COMBA_STORE(C->dp[5]); + /* 6 */ + COMBA_FORWARD; + MULADD(at[3], at[7]); + COMBA_STORE(C->dp[6]); + COMBA_STORE2(C->dp[7]); + C->used = 8; + C->sign = A->sign ^ B->sign; + fp_clamp(C); + COMBA_FINI; + break; + + case 5: + memcpy(at, A->dp, 5 * sizeof(fp_digit)); + memcpy(at+5, B->dp, 5 * sizeof(fp_digit)); + COMBA_START; + + COMBA_CLEAR; + /* 0 */ + MULADD(at[0], at[5]); + COMBA_STORE(C->dp[0]); + /* 1 */ + COMBA_FORWARD; + MULADD(at[0], at[6]); MULADD(at[1], at[5]); + COMBA_STORE(C->dp[1]); + /* 2 */ + COMBA_FORWARD; + MULADD(at[0], at[7]); MULADD(at[1], at[6]); MULADD(at[2], at[5]); + COMBA_STORE(C->dp[2]); + /* 3 */ + COMBA_FORWARD; + MULADD(at[0], at[8]); MULADD(at[1], at[7]); MULADD(at[2], at[6]); MULADD(at[3], at[5]); + COMBA_STORE(C->dp[3]); + /* 4 */ + COMBA_FORWARD; + MULADD(at[0], at[9]); MULADD(at[1], at[8]); MULADD(at[2], at[7]); MULADD(at[3], at[6]); MULADD(at[4], at[5]); + COMBA_STORE(C->dp[4]); + /* 5 */ + COMBA_FORWARD; + MULADD(at[1], at[9]); MULADD(at[2], at[8]); MULADD(at[3], at[7]); MULADD(at[4], at[6]); + COMBA_STORE(C->dp[5]); + /* 6 */ + COMBA_FORWARD; + MULADD(at[2], at[9]); MULADD(at[3], at[8]); MULADD(at[4], at[7]); + COMBA_STORE(C->dp[6]); + /* 7 */ + COMBA_FORWARD; + MULADD(at[3], at[9]); MULADD(at[4], at[8]); + COMBA_STORE(C->dp[7]); + /* 8 */ + COMBA_FORWARD; + MULADD(at[4], at[9]); + COMBA_STORE(C->dp[8]); + COMBA_STORE2(C->dp[9]); + C->used = 10; + C->sign = A->sign ^ B->sign; + fp_clamp(C); + COMBA_FINI; + break; + + case 6: + memcpy(at, A->dp, 6 * sizeof(fp_digit)); + memcpy(at+6, B->dp, 6 * sizeof(fp_digit)); + COMBA_START; + + COMBA_CLEAR; + /* 0 */ + MULADD(at[0], at[6]); + COMBA_STORE(C->dp[0]); + /* 1 */ + COMBA_FORWARD; + MULADD(at[0], at[7]); MULADD(at[1], at[6]); + COMBA_STORE(C->dp[1]); + /* 2 */ + COMBA_FORWARD; + MULADD(at[0], at[8]); MULADD(at[1], at[7]); MULADD(at[2], at[6]); + COMBA_STORE(C->dp[2]); + /* 3 */ + COMBA_FORWARD; + MULADD(at[0], at[9]); MULADD(at[1], at[8]); MULADD(at[2], at[7]); MULADD(at[3], at[6]); + COMBA_STORE(C->dp[3]); + /* 4 */ + COMBA_FORWARD; + MULADD(at[0], at[10]); MULADD(at[1], at[9]); MULADD(at[2], at[8]); MULADD(at[3], at[7]); MULADD(at[4], at[6]); + COMBA_STORE(C->dp[4]); + /* 5 */ + COMBA_FORWARD; + MULADD(at[0], at[11]); MULADD(at[1], at[10]); MULADD(at[2], at[9]); MULADD(at[3], at[8]); MULADD(at[4], at[7]); MULADD(at[5], at[6]); + COMBA_STORE(C->dp[5]); + /* 6 */ + COMBA_FORWARD; + MULADD(at[1], at[11]); MULADD(at[2], at[10]); MULADD(at[3], at[9]); MULADD(at[4], at[8]); MULADD(at[5], at[7]); + COMBA_STORE(C->dp[6]); + /* 7 */ + COMBA_FORWARD; + MULADD(at[2], at[11]); MULADD(at[3], at[10]); MULADD(at[4], at[9]); MULADD(at[5], at[8]); + COMBA_STORE(C->dp[7]); + /* 8 */ + COMBA_FORWARD; + MULADD(at[3], at[11]); MULADD(at[4], at[10]); MULADD(at[5], at[9]); + COMBA_STORE(C->dp[8]); + /* 9 */ + COMBA_FORWARD; + MULADD(at[4], at[11]); MULADD(at[5], at[10]); + COMBA_STORE(C->dp[9]); + /* 10 */ + COMBA_FORWARD; + MULADD(at[5], at[11]); + COMBA_STORE(C->dp[10]); + COMBA_STORE2(C->dp[11]); + C->used = 12; + C->sign = A->sign ^ B->sign; + fp_clamp(C); + COMBA_FINI; + break; + + case 7: + memcpy(at, A->dp, 7 * sizeof(fp_digit)); + memcpy(at+7, B->dp, 7 * sizeof(fp_digit)); + COMBA_START; + + COMBA_CLEAR; + /* 0 */ + MULADD(at[0], at[7]); + COMBA_STORE(C->dp[0]); + /* 1 */ + COMBA_FORWARD; + MULADD(at[0], at[8]); MULADD(at[1], at[7]); + COMBA_STORE(C->dp[1]); + /* 2 */ + COMBA_FORWARD; + MULADD(at[0], at[9]); MULADD(at[1], at[8]); MULADD(at[2], at[7]); + COMBA_STORE(C->dp[2]); + /* 3 */ + COMBA_FORWARD; + MULADD(at[0], at[10]); MULADD(at[1], at[9]); MULADD(at[2], at[8]); MULADD(at[3], at[7]); + COMBA_STORE(C->dp[3]); + /* 4 */ + COMBA_FORWARD; + MULADD(at[0], at[11]); MULADD(at[1], at[10]); MULADD(at[2], at[9]); MULADD(at[3], at[8]); MULADD(at[4], at[7]); + COMBA_STORE(C->dp[4]); + /* 5 */ + COMBA_FORWARD; + MULADD(at[0], at[12]); MULADD(at[1], at[11]); MULADD(at[2], at[10]); MULADD(at[3], at[9]); MULADD(at[4], at[8]); MULADD(at[5], at[7]); + COMBA_STORE(C->dp[5]); + /* 6 */ + COMBA_FORWARD; + MULADD(at[0], at[13]); MULADD(at[1], at[12]); MULADD(at[2], at[11]); MULADD(at[3], at[10]); MULADD(at[4], at[9]); MULADD(at[5], at[8]); MULADD(at[6], at[7]); + COMBA_STORE(C->dp[6]); + /* 7 */ + COMBA_FORWARD; + MULADD(at[1], at[13]); MULADD(at[2], at[12]); MULADD(at[3], at[11]); MULADD(at[4], at[10]); MULADD(at[5], at[9]); MULADD(at[6], at[8]); + COMBA_STORE(C->dp[7]); + /* 8 */ + COMBA_FORWARD; + MULADD(at[2], at[13]); MULADD(at[3], at[12]); MULADD(at[4], at[11]); MULADD(at[5], at[10]); MULADD(at[6], at[9]); + COMBA_STORE(C->dp[8]); + /* 9 */ + COMBA_FORWARD; + MULADD(at[3], at[13]); MULADD(at[4], at[12]); MULADD(at[5], at[11]); MULADD(at[6], at[10]); + COMBA_STORE(C->dp[9]); + /* 10 */ + COMBA_FORWARD; + MULADD(at[4], at[13]); MULADD(at[5], at[12]); MULADD(at[6], at[11]); + COMBA_STORE(C->dp[10]); + /* 11 */ + COMBA_FORWARD; + MULADD(at[5], at[13]); MULADD(at[6], at[12]); + COMBA_STORE(C->dp[11]); + /* 12 */ + COMBA_FORWARD; + MULADD(at[6], at[13]); + COMBA_STORE(C->dp[12]); + COMBA_STORE2(C->dp[13]); + C->used = 14; + C->sign = A->sign ^ B->sign; + fp_clamp(C); + COMBA_FINI; + break; + + case 8: + memcpy(at, A->dp, 8 * sizeof(fp_digit)); + memcpy(at+8, B->dp, 8 * sizeof(fp_digit)); + COMBA_START; + + COMBA_CLEAR; + /* 0 */ + MULADD(at[0], at[8]); + COMBA_STORE(C->dp[0]); + /* 1 */ + COMBA_FORWARD; + MULADD(at[0], at[9]); MULADD(at[1], at[8]); + COMBA_STORE(C->dp[1]); + /* 2 */ + COMBA_FORWARD; + MULADD(at[0], at[10]); MULADD(at[1], at[9]); MULADD(at[2], at[8]); + COMBA_STORE(C->dp[2]); + /* 3 */ + COMBA_FORWARD; + MULADD(at[0], at[11]); MULADD(at[1], at[10]); MULADD(at[2], at[9]); MULADD(at[3], at[8]); + COMBA_STORE(C->dp[3]); + /* 4 */ + COMBA_FORWARD; + MULADD(at[0], at[12]); MULADD(at[1], at[11]); MULADD(at[2], at[10]); MULADD(at[3], at[9]); MULADD(at[4], at[8]); + COMBA_STORE(C->dp[4]); + /* 5 */ + COMBA_FORWARD; + MULADD(at[0], at[13]); MULADD(at[1], at[12]); MULADD(at[2], at[11]); MULADD(at[3], at[10]); MULADD(at[4], at[9]); MULADD(at[5], at[8]); + COMBA_STORE(C->dp[5]); + /* 6 */ + COMBA_FORWARD; + MULADD(at[0], at[14]); MULADD(at[1], at[13]); MULADD(at[2], at[12]); MULADD(at[3], at[11]); MULADD(at[4], at[10]); MULADD(at[5], at[9]); MULADD(at[6], at[8]); + COMBA_STORE(C->dp[6]); + /* 7 */ + COMBA_FORWARD; + MULADD(at[0], at[15]); MULADD(at[1], at[14]); MULADD(at[2], at[13]); MULADD(at[3], at[12]); MULADD(at[4], at[11]); MULADD(at[5], at[10]); MULADD(at[6], at[9]); MULADD(at[7], at[8]); + COMBA_STORE(C->dp[7]); + /* 8 */ + COMBA_FORWARD; + MULADD(at[1], at[15]); MULADD(at[2], at[14]); MULADD(at[3], at[13]); MULADD(at[4], at[12]); MULADD(at[5], at[11]); MULADD(at[6], at[10]); MULADD(at[7], at[9]); + COMBA_STORE(C->dp[8]); + /* 9 */ + COMBA_FORWARD; + MULADD(at[2], at[15]); MULADD(at[3], at[14]); MULADD(at[4], at[13]); MULADD(at[5], at[12]); MULADD(at[6], at[11]); MULADD(at[7], at[10]); + COMBA_STORE(C->dp[9]); + /* 10 */ + COMBA_FORWARD; + MULADD(at[3], at[15]); MULADD(at[4], at[14]); MULADD(at[5], at[13]); MULADD(at[6], at[12]); MULADD(at[7], at[11]); + COMBA_STORE(C->dp[10]); + /* 11 */ + COMBA_FORWARD; + MULADD(at[4], at[15]); MULADD(at[5], at[14]); MULADD(at[6], at[13]); MULADD(at[7], at[12]); + COMBA_STORE(C->dp[11]); + /* 12 */ + COMBA_FORWARD; + MULADD(at[5], at[15]); MULADD(at[6], at[14]); MULADD(at[7], at[13]); + COMBA_STORE(C->dp[12]); + /* 13 */ + COMBA_FORWARD; + MULADD(at[6], at[15]); MULADD(at[7], at[14]); + COMBA_STORE(C->dp[13]); + /* 14 */ + COMBA_FORWARD; + MULADD(at[7], at[15]); + COMBA_STORE(C->dp[14]); + COMBA_STORE2(C->dp[15]); + C->used = 16; + C->sign = A->sign ^ B->sign; + fp_clamp(C); + COMBA_FINI; + break; + + case 9: + memcpy(at, A->dp, 9 * sizeof(fp_digit)); + memcpy(at+9, B->dp, 9 * sizeof(fp_digit)); + COMBA_START; + + COMBA_CLEAR; + /* 0 */ + MULADD(at[0], at[9]); + COMBA_STORE(C->dp[0]); + /* 1 */ + COMBA_FORWARD; + MULADD(at[0], at[10]); MULADD(at[1], at[9]); + COMBA_STORE(C->dp[1]); + /* 2 */ + COMBA_FORWARD; + MULADD(at[0], at[11]); MULADD(at[1], at[10]); MULADD(at[2], at[9]); + COMBA_STORE(C->dp[2]); + /* 3 */ + COMBA_FORWARD; + MULADD(at[0], at[12]); MULADD(at[1], at[11]); MULADD(at[2], at[10]); MULADD(at[3], at[9]); + COMBA_STORE(C->dp[3]); + /* 4 */ + COMBA_FORWARD; + MULADD(at[0], at[13]); MULADD(at[1], at[12]); MULADD(at[2], at[11]); MULADD(at[3], at[10]); MULADD(at[4], at[9]); + COMBA_STORE(C->dp[4]); + /* 5 */ + COMBA_FORWARD; + MULADD(at[0], at[14]); MULADD(at[1], at[13]); MULADD(at[2], at[12]); MULADD(at[3], at[11]); MULADD(at[4], at[10]); MULADD(at[5], at[9]); + COMBA_STORE(C->dp[5]); + /* 6 */ + COMBA_FORWARD; + MULADD(at[0], at[15]); MULADD(at[1], at[14]); MULADD(at[2], at[13]); MULADD(at[3], at[12]); MULADD(at[4], at[11]); MULADD(at[5], at[10]); MULADD(at[6], at[9]); + COMBA_STORE(C->dp[6]); + /* 7 */ + COMBA_FORWARD; + MULADD(at[0], at[16]); MULADD(at[1], at[15]); MULADD(at[2], at[14]); MULADD(at[3], at[13]); MULADD(at[4], at[12]); MULADD(at[5], at[11]); MULADD(at[6], at[10]); MULADD(at[7], at[9]); + COMBA_STORE(C->dp[7]); + /* 8 */ + COMBA_FORWARD; + MULADD(at[0], at[17]); MULADD(at[1], at[16]); MULADD(at[2], at[15]); MULADD(at[3], at[14]); MULADD(at[4], at[13]); MULADD(at[5], at[12]); MULADD(at[6], at[11]); MULADD(at[7], at[10]); MULADD(at[8], at[9]); + COMBA_STORE(C->dp[8]); + /* 9 */ + COMBA_FORWARD; + MULADD(at[1], at[17]); MULADD(at[2], at[16]); MULADD(at[3], at[15]); MULADD(at[4], at[14]); MULADD(at[5], at[13]); MULADD(at[6], at[12]); MULADD(at[7], at[11]); MULADD(at[8], at[10]); + COMBA_STORE(C->dp[9]); + /* 10 */ + COMBA_FORWARD; + MULADD(at[2], at[17]); MULADD(at[3], at[16]); MULADD(at[4], at[15]); MULADD(at[5], at[14]); MULADD(at[6], at[13]); MULADD(at[7], at[12]); MULADD(at[8], at[11]); + COMBA_STORE(C->dp[10]); + /* 11 */ + COMBA_FORWARD; + MULADD(at[3], at[17]); MULADD(at[4], at[16]); MULADD(at[5], at[15]); MULADD(at[6], at[14]); MULADD(at[7], at[13]); MULADD(at[8], at[12]); + COMBA_STORE(C->dp[11]); + /* 12 */ + COMBA_FORWARD; + MULADD(at[4], at[17]); MULADD(at[5], at[16]); MULADD(at[6], at[15]); MULADD(at[7], at[14]); MULADD(at[8], at[13]); + COMBA_STORE(C->dp[12]); + /* 13 */ + COMBA_FORWARD; + MULADD(at[5], at[17]); MULADD(at[6], at[16]); MULADD(at[7], at[15]); MULADD(at[8], at[14]); + COMBA_STORE(C->dp[13]); + /* 14 */ + COMBA_FORWARD; + MULADD(at[6], at[17]); MULADD(at[7], at[16]); MULADD(at[8], at[15]); + COMBA_STORE(C->dp[14]); + /* 15 */ + COMBA_FORWARD; + MULADD(at[7], at[17]); MULADD(at[8], at[16]); + COMBA_STORE(C->dp[15]); + /* 16 */ + COMBA_FORWARD; + MULADD(at[8], at[17]); + COMBA_STORE(C->dp[16]); + COMBA_STORE2(C->dp[17]); + C->used = 18; + C->sign = A->sign ^ B->sign; + fp_clamp(C); + COMBA_FINI; + break; + + case 10: + memcpy(at, A->dp, 10 * sizeof(fp_digit)); + memcpy(at+10, B->dp, 10 * sizeof(fp_digit)); + COMBA_START; + + COMBA_CLEAR; + /* 0 */ + MULADD(at[0], at[10]); + COMBA_STORE(C->dp[0]); + /* 1 */ + COMBA_FORWARD; + MULADD(at[0], at[11]); MULADD(at[1], at[10]); + COMBA_STORE(C->dp[1]); + /* 2 */ + COMBA_FORWARD; + MULADD(at[0], at[12]); MULADD(at[1], at[11]); MULADD(at[2], at[10]); + COMBA_STORE(C->dp[2]); + /* 3 */ + COMBA_FORWARD; + MULADD(at[0], at[13]); MULADD(at[1], at[12]); MULADD(at[2], at[11]); MULADD(at[3], at[10]); + COMBA_STORE(C->dp[3]); + /* 4 */ + COMBA_FORWARD; + MULADD(at[0], at[14]); MULADD(at[1], at[13]); MULADD(at[2], at[12]); MULADD(at[3], at[11]); MULADD(at[4], at[10]); + COMBA_STORE(C->dp[4]); + /* 5 */ + COMBA_FORWARD; + MULADD(at[0], at[15]); MULADD(at[1], at[14]); MULADD(at[2], at[13]); MULADD(at[3], at[12]); MULADD(at[4], at[11]); MULADD(at[5], at[10]); + COMBA_STORE(C->dp[5]); + /* 6 */ + COMBA_FORWARD; + MULADD(at[0], at[16]); MULADD(at[1], at[15]); MULADD(at[2], at[14]); MULADD(at[3], at[13]); MULADD(at[4], at[12]); MULADD(at[5], at[11]); MULADD(at[6], at[10]); + COMBA_STORE(C->dp[6]); + /* 7 */ + COMBA_FORWARD; + MULADD(at[0], at[17]); MULADD(at[1], at[16]); MULADD(at[2], at[15]); MULADD(at[3], at[14]); MULADD(at[4], at[13]); MULADD(at[5], at[12]); MULADD(at[6], at[11]); MULADD(at[7], at[10]); + COMBA_STORE(C->dp[7]); + /* 8 */ + COMBA_FORWARD; + MULADD(at[0], at[18]); MULADD(at[1], at[17]); MULADD(at[2], at[16]); MULADD(at[3], at[15]); MULADD(at[4], at[14]); MULADD(at[5], at[13]); MULADD(at[6], at[12]); MULADD(at[7], at[11]); MULADD(at[8], at[10]); + COMBA_STORE(C->dp[8]); + /* 9 */ + COMBA_FORWARD; + MULADD(at[0], at[19]); MULADD(at[1], at[18]); MULADD(at[2], at[17]); MULADD(at[3], at[16]); MULADD(at[4], at[15]); MULADD(at[5], at[14]); MULADD(at[6], at[13]); MULADD(at[7], at[12]); MULADD(at[8], at[11]); MULADD(at[9], at[10]); + COMBA_STORE(C->dp[9]); + /* 10 */ + COMBA_FORWARD; + MULADD(at[1], at[19]); MULADD(at[2], at[18]); MULADD(at[3], at[17]); MULADD(at[4], at[16]); MULADD(at[5], at[15]); MULADD(at[6], at[14]); MULADD(at[7], at[13]); MULADD(at[8], at[12]); MULADD(at[9], at[11]); + COMBA_STORE(C->dp[10]); + /* 11 */ + COMBA_FORWARD; + MULADD(at[2], at[19]); MULADD(at[3], at[18]); MULADD(at[4], at[17]); MULADD(at[5], at[16]); MULADD(at[6], at[15]); MULADD(at[7], at[14]); MULADD(at[8], at[13]); MULADD(at[9], at[12]); + COMBA_STORE(C->dp[11]); + /* 12 */ + COMBA_FORWARD; + MULADD(at[3], at[19]); MULADD(at[4], at[18]); MULADD(at[5], at[17]); MULADD(at[6], at[16]); MULADD(at[7], at[15]); MULADD(at[8], at[14]); MULADD(at[9], at[13]); + COMBA_STORE(C->dp[12]); + /* 13 */ + COMBA_FORWARD; + MULADD(at[4], at[19]); MULADD(at[5], at[18]); MULADD(at[6], at[17]); MULADD(at[7], at[16]); MULADD(at[8], at[15]); MULADD(at[9], at[14]); + COMBA_STORE(C->dp[13]); + /* 14 */ + COMBA_FORWARD; + MULADD(at[5], at[19]); MULADD(at[6], at[18]); MULADD(at[7], at[17]); MULADD(at[8], at[16]); MULADD(at[9], at[15]); + COMBA_STORE(C->dp[14]); + /* 15 */ + COMBA_FORWARD; + MULADD(at[6], at[19]); MULADD(at[7], at[18]); MULADD(at[8], at[17]); MULADD(at[9], at[16]); + COMBA_STORE(C->dp[15]); + /* 16 */ + COMBA_FORWARD; + MULADD(at[7], at[19]); MULADD(at[8], at[18]); MULADD(at[9], at[17]); + COMBA_STORE(C->dp[16]); + /* 17 */ + COMBA_FORWARD; + MULADD(at[8], at[19]); MULADD(at[9], at[18]); + COMBA_STORE(C->dp[17]); + /* 18 */ + COMBA_FORWARD; + MULADD(at[9], at[19]); + COMBA_STORE(C->dp[18]); + COMBA_STORE2(C->dp[19]); + C->used = 20; + C->sign = A->sign ^ B->sign; + fp_clamp(C); + COMBA_FINI; + break; + + case 11: + memcpy(at, A->dp, 11 * sizeof(fp_digit)); + memcpy(at+11, B->dp, 11 * sizeof(fp_digit)); + COMBA_START; + + COMBA_CLEAR; + /* 0 */ + MULADD(at[0], at[11]); + COMBA_STORE(C->dp[0]); + /* 1 */ + COMBA_FORWARD; + MULADD(at[0], at[12]); MULADD(at[1], at[11]); + COMBA_STORE(C->dp[1]); + /* 2 */ + COMBA_FORWARD; + MULADD(at[0], at[13]); MULADD(at[1], at[12]); MULADD(at[2], at[11]); + COMBA_STORE(C->dp[2]); + /* 3 */ + COMBA_FORWARD; + MULADD(at[0], at[14]); MULADD(at[1], at[13]); MULADD(at[2], at[12]); MULADD(at[3], at[11]); + COMBA_STORE(C->dp[3]); + /* 4 */ + COMBA_FORWARD; + MULADD(at[0], at[15]); MULADD(at[1], at[14]); MULADD(at[2], at[13]); MULADD(at[3], at[12]); MULADD(at[4], at[11]); + COMBA_STORE(C->dp[4]); + /* 5 */ + COMBA_FORWARD; + MULADD(at[0], at[16]); MULADD(at[1], at[15]); MULADD(at[2], at[14]); MULADD(at[3], at[13]); MULADD(at[4], at[12]); MULADD(at[5], at[11]); + COMBA_STORE(C->dp[5]); + /* 6 */ + COMBA_FORWARD; + MULADD(at[0], at[17]); MULADD(at[1], at[16]); MULADD(at[2], at[15]); MULADD(at[3], at[14]); MULADD(at[4], at[13]); MULADD(at[5], at[12]); MULADD(at[6], at[11]); + COMBA_STORE(C->dp[6]); + /* 7 */ + COMBA_FORWARD; + MULADD(at[0], at[18]); MULADD(at[1], at[17]); MULADD(at[2], at[16]); MULADD(at[3], at[15]); MULADD(at[4], at[14]); MULADD(at[5], at[13]); MULADD(at[6], at[12]); MULADD(at[7], at[11]); + COMBA_STORE(C->dp[7]); + /* 8 */ + COMBA_FORWARD; + MULADD(at[0], at[19]); MULADD(at[1], at[18]); MULADD(at[2], at[17]); MULADD(at[3], at[16]); MULADD(at[4], at[15]); MULADD(at[5], at[14]); MULADD(at[6], at[13]); MULADD(at[7], at[12]); MULADD(at[8], at[11]); + COMBA_STORE(C->dp[8]); + /* 9 */ + COMBA_FORWARD; + MULADD(at[0], at[20]); MULADD(at[1], at[19]); MULADD(at[2], at[18]); MULADD(at[3], at[17]); MULADD(at[4], at[16]); MULADD(at[5], at[15]); MULADD(at[6], at[14]); MULADD(at[7], at[13]); MULADD(at[8], at[12]); MULADD(at[9], at[11]); + COMBA_STORE(C->dp[9]); + /* 10 */ + COMBA_FORWARD; + MULADD(at[0], at[21]); MULADD(at[1], at[20]); MULADD(at[2], at[19]); MULADD(at[3], at[18]); MULADD(at[4], at[17]); MULADD(at[5], at[16]); MULADD(at[6], at[15]); MULADD(at[7], at[14]); MULADD(at[8], at[13]); MULADD(at[9], at[12]); MULADD(at[10], at[11]); + COMBA_STORE(C->dp[10]); + /* 11 */ + COMBA_FORWARD; + MULADD(at[1], at[21]); MULADD(at[2], at[20]); MULADD(at[3], at[19]); MULADD(at[4], at[18]); MULADD(at[5], at[17]); MULADD(at[6], at[16]); MULADD(at[7], at[15]); MULADD(at[8], at[14]); MULADD(at[9], at[13]); MULADD(at[10], at[12]); + COMBA_STORE(C->dp[11]); + /* 12 */ + COMBA_FORWARD; + MULADD(at[2], at[21]); MULADD(at[3], at[20]); MULADD(at[4], at[19]); MULADD(at[5], at[18]); MULADD(at[6], at[17]); MULADD(at[7], at[16]); MULADD(at[8], at[15]); MULADD(at[9], at[14]); MULADD(at[10], at[13]); + COMBA_STORE(C->dp[12]); + /* 13 */ + COMBA_FORWARD; + MULADD(at[3], at[21]); MULADD(at[4], at[20]); MULADD(at[5], at[19]); MULADD(at[6], at[18]); MULADD(at[7], at[17]); MULADD(at[8], at[16]); MULADD(at[9], at[15]); MULADD(at[10], at[14]); + COMBA_STORE(C->dp[13]); + /* 14 */ + COMBA_FORWARD; + MULADD(at[4], at[21]); MULADD(at[5], at[20]); MULADD(at[6], at[19]); MULADD(at[7], at[18]); MULADD(at[8], at[17]); MULADD(at[9], at[16]); MULADD(at[10], at[15]); + COMBA_STORE(C->dp[14]); + /* 15 */ + COMBA_FORWARD; + MULADD(at[5], at[21]); MULADD(at[6], at[20]); MULADD(at[7], at[19]); MULADD(at[8], at[18]); MULADD(at[9], at[17]); MULADD(at[10], at[16]); + COMBA_STORE(C->dp[15]); + /* 16 */ + COMBA_FORWARD; + MULADD(at[6], at[21]); MULADD(at[7], at[20]); MULADD(at[8], at[19]); MULADD(at[9], at[18]); MULADD(at[10], at[17]); + COMBA_STORE(C->dp[16]); + /* 17 */ + COMBA_FORWARD; + MULADD(at[7], at[21]); MULADD(at[8], at[20]); MULADD(at[9], at[19]); MULADD(at[10], at[18]); + COMBA_STORE(C->dp[17]); + /* 18 */ + COMBA_FORWARD; + MULADD(at[8], at[21]); MULADD(at[9], at[20]); MULADD(at[10], at[19]); + COMBA_STORE(C->dp[18]); + /* 19 */ + COMBA_FORWARD; + MULADD(at[9], at[21]); MULADD(at[10], at[20]); + COMBA_STORE(C->dp[19]); + /* 20 */ + COMBA_FORWARD; + MULADD(at[10], at[21]); + COMBA_STORE(C->dp[20]); + COMBA_STORE2(C->dp[21]); + C->used = 22; + C->sign = A->sign ^ B->sign; + fp_clamp(C); + COMBA_FINI; + break; + + case 12: + memcpy(at, A->dp, 12 * sizeof(fp_digit)); + memcpy(at+12, B->dp, 12 * sizeof(fp_digit)); + COMBA_START; + + COMBA_CLEAR; + /* 0 */ + MULADD(at[0], at[12]); + COMBA_STORE(C->dp[0]); + /* 1 */ + COMBA_FORWARD; + MULADD(at[0], at[13]); MULADD(at[1], at[12]); + COMBA_STORE(C->dp[1]); + /* 2 */ + COMBA_FORWARD; + MULADD(at[0], at[14]); MULADD(at[1], at[13]); MULADD(at[2], at[12]); + COMBA_STORE(C->dp[2]); + /* 3 */ + COMBA_FORWARD; + MULADD(at[0], at[15]); MULADD(at[1], at[14]); MULADD(at[2], at[13]); MULADD(at[3], at[12]); + COMBA_STORE(C->dp[3]); + /* 4 */ + COMBA_FORWARD; + MULADD(at[0], at[16]); MULADD(at[1], at[15]); MULADD(at[2], at[14]); MULADD(at[3], at[13]); MULADD(at[4], at[12]); + COMBA_STORE(C->dp[4]); + /* 5 */ + COMBA_FORWARD; + MULADD(at[0], at[17]); MULADD(at[1], at[16]); MULADD(at[2], at[15]); MULADD(at[3], at[14]); MULADD(at[4], at[13]); MULADD(at[5], at[12]); + COMBA_STORE(C->dp[5]); + /* 6 */ + COMBA_FORWARD; + MULADD(at[0], at[18]); MULADD(at[1], at[17]); MULADD(at[2], at[16]); MULADD(at[3], at[15]); MULADD(at[4], at[14]); MULADD(at[5], at[13]); MULADD(at[6], at[12]); + COMBA_STORE(C->dp[6]); + /* 7 */ + COMBA_FORWARD; + MULADD(at[0], at[19]); MULADD(at[1], at[18]); MULADD(at[2], at[17]); MULADD(at[3], at[16]); MULADD(at[4], at[15]); MULADD(at[5], at[14]); MULADD(at[6], at[13]); MULADD(at[7], at[12]); + COMBA_STORE(C->dp[7]); + /* 8 */ + COMBA_FORWARD; + MULADD(at[0], at[20]); MULADD(at[1], at[19]); MULADD(at[2], at[18]); MULADD(at[3], at[17]); MULADD(at[4], at[16]); MULADD(at[5], at[15]); MULADD(at[6], at[14]); MULADD(at[7], at[13]); MULADD(at[8], at[12]); + COMBA_STORE(C->dp[8]); + /* 9 */ + COMBA_FORWARD; + MULADD(at[0], at[21]); MULADD(at[1], at[20]); MULADD(at[2], at[19]); MULADD(at[3], at[18]); MULADD(at[4], at[17]); MULADD(at[5], at[16]); MULADD(at[6], at[15]); MULADD(at[7], at[14]); MULADD(at[8], at[13]); MULADD(at[9], at[12]); + COMBA_STORE(C->dp[9]); + /* 10 */ + COMBA_FORWARD; + MULADD(at[0], at[22]); MULADD(at[1], at[21]); MULADD(at[2], at[20]); MULADD(at[3], at[19]); MULADD(at[4], at[18]); MULADD(at[5], at[17]); MULADD(at[6], at[16]); MULADD(at[7], at[15]); MULADD(at[8], at[14]); MULADD(at[9], at[13]); MULADD(at[10], at[12]); + COMBA_STORE(C->dp[10]); + /* 11 */ + COMBA_FORWARD; + MULADD(at[0], at[23]); MULADD(at[1], at[22]); MULADD(at[2], at[21]); MULADD(at[3], at[20]); MULADD(at[4], at[19]); MULADD(at[5], at[18]); MULADD(at[6], at[17]); MULADD(at[7], at[16]); MULADD(at[8], at[15]); MULADD(at[9], at[14]); MULADD(at[10], at[13]); MULADD(at[11], at[12]); + COMBA_STORE(C->dp[11]); + /* 12 */ + COMBA_FORWARD; + MULADD(at[1], at[23]); MULADD(at[2], at[22]); MULADD(at[3], at[21]); MULADD(at[4], at[20]); MULADD(at[5], at[19]); MULADD(at[6], at[18]); MULADD(at[7], at[17]); MULADD(at[8], at[16]); MULADD(at[9], at[15]); MULADD(at[10], at[14]); MULADD(at[11], at[13]); + COMBA_STORE(C->dp[12]); + /* 13 */ + COMBA_FORWARD; + MULADD(at[2], at[23]); MULADD(at[3], at[22]); MULADD(at[4], at[21]); MULADD(at[5], at[20]); MULADD(at[6], at[19]); MULADD(at[7], at[18]); MULADD(at[8], at[17]); MULADD(at[9], at[16]); MULADD(at[10], at[15]); MULADD(at[11], at[14]); + COMBA_STORE(C->dp[13]); + /* 14 */ + COMBA_FORWARD; + MULADD(at[3], at[23]); MULADD(at[4], at[22]); MULADD(at[5], at[21]); MULADD(at[6], at[20]); MULADD(at[7], at[19]); MULADD(at[8], at[18]); MULADD(at[9], at[17]); MULADD(at[10], at[16]); MULADD(at[11], at[15]); + COMBA_STORE(C->dp[14]); + /* 15 */ + COMBA_FORWARD; + MULADD(at[4], at[23]); MULADD(at[5], at[22]); MULADD(at[6], at[21]); MULADD(at[7], at[20]); MULADD(at[8], at[19]); MULADD(at[9], at[18]); MULADD(at[10], at[17]); MULADD(at[11], at[16]); + COMBA_STORE(C->dp[15]); + /* 16 */ + COMBA_FORWARD; + MULADD(at[5], at[23]); MULADD(at[6], at[22]); MULADD(at[7], at[21]); MULADD(at[8], at[20]); MULADD(at[9], at[19]); MULADD(at[10], at[18]); MULADD(at[11], at[17]); + COMBA_STORE(C->dp[16]); + /* 17 */ + COMBA_FORWARD; + MULADD(at[6], at[23]); MULADD(at[7], at[22]); MULADD(at[8], at[21]); MULADD(at[9], at[20]); MULADD(at[10], at[19]); MULADD(at[11], at[18]); + COMBA_STORE(C->dp[17]); + /* 18 */ + COMBA_FORWARD; + MULADD(at[7], at[23]); MULADD(at[8], at[22]); MULADD(at[9], at[21]); MULADD(at[10], at[20]); MULADD(at[11], at[19]); + COMBA_STORE(C->dp[18]); + /* 19 */ + COMBA_FORWARD; + MULADD(at[8], at[23]); MULADD(at[9], at[22]); MULADD(at[10], at[21]); MULADD(at[11], at[20]); + COMBA_STORE(C->dp[19]); + /* 20 */ + COMBA_FORWARD; + MULADD(at[9], at[23]); MULADD(at[10], at[22]); MULADD(at[11], at[21]); + COMBA_STORE(C->dp[20]); + /* 21 */ + COMBA_FORWARD; + MULADD(at[10], at[23]); MULADD(at[11], at[22]); + COMBA_STORE(C->dp[21]); + /* 22 */ + COMBA_FORWARD; + MULADD(at[11], at[23]); + COMBA_STORE(C->dp[22]); + COMBA_STORE2(C->dp[23]); + C->used = 24; + C->sign = A->sign ^ B->sign; + fp_clamp(C); + COMBA_FINI; + break; + + case 13: + memcpy(at, A->dp, 13 * sizeof(fp_digit)); + memcpy(at+13, B->dp, 13 * sizeof(fp_digit)); + COMBA_START; + + COMBA_CLEAR; + /* 0 */ + MULADD(at[0], at[13]); + COMBA_STORE(C->dp[0]); + /* 1 */ + COMBA_FORWARD; + MULADD(at[0], at[14]); MULADD(at[1], at[13]); + COMBA_STORE(C->dp[1]); + /* 2 */ + COMBA_FORWARD; + MULADD(at[0], at[15]); MULADD(at[1], at[14]); MULADD(at[2], at[13]); + COMBA_STORE(C->dp[2]); + /* 3 */ + COMBA_FORWARD; + MULADD(at[0], at[16]); MULADD(at[1], at[15]); MULADD(at[2], at[14]); MULADD(at[3], at[13]); + COMBA_STORE(C->dp[3]); + /* 4 */ + COMBA_FORWARD; + MULADD(at[0], at[17]); MULADD(at[1], at[16]); MULADD(at[2], at[15]); MULADD(at[3], at[14]); MULADD(at[4], at[13]); + COMBA_STORE(C->dp[4]); + /* 5 */ + COMBA_FORWARD; + MULADD(at[0], at[18]); MULADD(at[1], at[17]); MULADD(at[2], at[16]); MULADD(at[3], at[15]); MULADD(at[4], at[14]); MULADD(at[5], at[13]); + COMBA_STORE(C->dp[5]); + /* 6 */ + COMBA_FORWARD; + MULADD(at[0], at[19]); MULADD(at[1], at[18]); MULADD(at[2], at[17]); MULADD(at[3], at[16]); MULADD(at[4], at[15]); MULADD(at[5], at[14]); MULADD(at[6], at[13]); + COMBA_STORE(C->dp[6]); + /* 7 */ + COMBA_FORWARD; + MULADD(at[0], at[20]); MULADD(at[1], at[19]); MULADD(at[2], at[18]); MULADD(at[3], at[17]); MULADD(at[4], at[16]); MULADD(at[5], at[15]); MULADD(at[6], at[14]); MULADD(at[7], at[13]); + COMBA_STORE(C->dp[7]); + /* 8 */ + COMBA_FORWARD; + MULADD(at[0], at[21]); MULADD(at[1], at[20]); MULADD(at[2], at[19]); MULADD(at[3], at[18]); MULADD(at[4], at[17]); MULADD(at[5], at[16]); MULADD(at[6], at[15]); MULADD(at[7], at[14]); MULADD(at[8], at[13]); + COMBA_STORE(C->dp[8]); + /* 9 */ + COMBA_FORWARD; + MULADD(at[0], at[22]); MULADD(at[1], at[21]); MULADD(at[2], at[20]); MULADD(at[3], at[19]); MULADD(at[4], at[18]); MULADD(at[5], at[17]); MULADD(at[6], at[16]); MULADD(at[7], at[15]); MULADD(at[8], at[14]); MULADD(at[9], at[13]); + COMBA_STORE(C->dp[9]); + /* 10 */ + COMBA_FORWARD; + MULADD(at[0], at[23]); MULADD(at[1], at[22]); MULADD(at[2], at[21]); MULADD(at[3], at[20]); MULADD(at[4], at[19]); MULADD(at[5], at[18]); MULADD(at[6], at[17]); MULADD(at[7], at[16]); MULADD(at[8], at[15]); MULADD(at[9], at[14]); MULADD(at[10], at[13]); + COMBA_STORE(C->dp[10]); + /* 11 */ + COMBA_FORWARD; + MULADD(at[0], at[24]); MULADD(at[1], at[23]); MULADD(at[2], at[22]); MULADD(at[3], at[21]); MULADD(at[4], at[20]); MULADD(at[5], at[19]); MULADD(at[6], at[18]); MULADD(at[7], at[17]); MULADD(at[8], at[16]); MULADD(at[9], at[15]); MULADD(at[10], at[14]); MULADD(at[11], at[13]); + COMBA_STORE(C->dp[11]); + /* 12 */ + COMBA_FORWARD; + MULADD(at[0], at[25]); MULADD(at[1], at[24]); MULADD(at[2], at[23]); MULADD(at[3], at[22]); MULADD(at[4], at[21]); MULADD(at[5], at[20]); MULADD(at[6], at[19]); MULADD(at[7], at[18]); MULADD(at[8], at[17]); MULADD(at[9], at[16]); MULADD(at[10], at[15]); MULADD(at[11], at[14]); MULADD(at[12], at[13]); + COMBA_STORE(C->dp[12]); + /* 13 */ + COMBA_FORWARD; + MULADD(at[1], at[25]); MULADD(at[2], at[24]); MULADD(at[3], at[23]); MULADD(at[4], at[22]); MULADD(at[5], at[21]); MULADD(at[6], at[20]); MULADD(at[7], at[19]); MULADD(at[8], at[18]); MULADD(at[9], at[17]); MULADD(at[10], at[16]); MULADD(at[11], at[15]); MULADD(at[12], at[14]); + COMBA_STORE(C->dp[13]); + /* 14 */ + COMBA_FORWARD; + MULADD(at[2], at[25]); MULADD(at[3], at[24]); MULADD(at[4], at[23]); MULADD(at[5], at[22]); MULADD(at[6], at[21]); MULADD(at[7], at[20]); MULADD(at[8], at[19]); MULADD(at[9], at[18]); MULADD(at[10], at[17]); MULADD(at[11], at[16]); MULADD(at[12], at[15]); + COMBA_STORE(C->dp[14]); + /* 15 */ + COMBA_FORWARD; + MULADD(at[3], at[25]); MULADD(at[4], at[24]); MULADD(at[5], at[23]); MULADD(at[6], at[22]); MULADD(at[7], at[21]); MULADD(at[8], at[20]); MULADD(at[9], at[19]); MULADD(at[10], at[18]); MULADD(at[11], at[17]); MULADD(at[12], at[16]); + COMBA_STORE(C->dp[15]); + /* 16 */ + COMBA_FORWARD; + MULADD(at[4], at[25]); MULADD(at[5], at[24]); MULADD(at[6], at[23]); MULADD(at[7], at[22]); MULADD(at[8], at[21]); MULADD(at[9], at[20]); MULADD(at[10], at[19]); MULADD(at[11], at[18]); MULADD(at[12], at[17]); + COMBA_STORE(C->dp[16]); + /* 17 */ + COMBA_FORWARD; + MULADD(at[5], at[25]); MULADD(at[6], at[24]); MULADD(at[7], at[23]); MULADD(at[8], at[22]); MULADD(at[9], at[21]); MULADD(at[10], at[20]); MULADD(at[11], at[19]); MULADD(at[12], at[18]); + COMBA_STORE(C->dp[17]); + /* 18 */ + COMBA_FORWARD; + MULADD(at[6], at[25]); MULADD(at[7], at[24]); MULADD(at[8], at[23]); MULADD(at[9], at[22]); MULADD(at[10], at[21]); MULADD(at[11], at[20]); MULADD(at[12], at[19]); + COMBA_STORE(C->dp[18]); + /* 19 */ + COMBA_FORWARD; + MULADD(at[7], at[25]); MULADD(at[8], at[24]); MULADD(at[9], at[23]); MULADD(at[10], at[22]); MULADD(at[11], at[21]); MULADD(at[12], at[20]); + COMBA_STORE(C->dp[19]); + /* 20 */ + COMBA_FORWARD; + MULADD(at[8], at[25]); MULADD(at[9], at[24]); MULADD(at[10], at[23]); MULADD(at[11], at[22]); MULADD(at[12], at[21]); + COMBA_STORE(C->dp[20]); + /* 21 */ + COMBA_FORWARD; + MULADD(at[9], at[25]); MULADD(at[10], at[24]); MULADD(at[11], at[23]); MULADD(at[12], at[22]); + COMBA_STORE(C->dp[21]); + /* 22 */ + COMBA_FORWARD; + MULADD(at[10], at[25]); MULADD(at[11], at[24]); MULADD(at[12], at[23]); + COMBA_STORE(C->dp[22]); + /* 23 */ + COMBA_FORWARD; + MULADD(at[11], at[25]); MULADD(at[12], at[24]); + COMBA_STORE(C->dp[23]); + /* 24 */ + COMBA_FORWARD; + MULADD(at[12], at[25]); + COMBA_STORE(C->dp[24]); + COMBA_STORE2(C->dp[25]); + C->used = 26; + C->sign = A->sign ^ B->sign; + fp_clamp(C); + COMBA_FINI; + break; + + case 14: + memcpy(at, A->dp, 14 * sizeof(fp_digit)); + memcpy(at+14, B->dp, 14 * sizeof(fp_digit)); + COMBA_START; + + COMBA_CLEAR; + /* 0 */ + MULADD(at[0], at[14]); + COMBA_STORE(C->dp[0]); + /* 1 */ + COMBA_FORWARD; + MULADD(at[0], at[15]); MULADD(at[1], at[14]); + COMBA_STORE(C->dp[1]); + /* 2 */ + COMBA_FORWARD; + MULADD(at[0], at[16]); MULADD(at[1], at[15]); MULADD(at[2], at[14]); + COMBA_STORE(C->dp[2]); + /* 3 */ + COMBA_FORWARD; + MULADD(at[0], at[17]); MULADD(at[1], at[16]); MULADD(at[2], at[15]); MULADD(at[3], at[14]); + COMBA_STORE(C->dp[3]); + /* 4 */ + COMBA_FORWARD; + MULADD(at[0], at[18]); MULADD(at[1], at[17]); MULADD(at[2], at[16]); MULADD(at[3], at[15]); MULADD(at[4], at[14]); + COMBA_STORE(C->dp[4]); + /* 5 */ + COMBA_FORWARD; + MULADD(at[0], at[19]); MULADD(at[1], at[18]); MULADD(at[2], at[17]); MULADD(at[3], at[16]); MULADD(at[4], at[15]); MULADD(at[5], at[14]); + COMBA_STORE(C->dp[5]); + /* 6 */ + COMBA_FORWARD; + MULADD(at[0], at[20]); MULADD(at[1], at[19]); MULADD(at[2], at[18]); MULADD(at[3], at[17]); MULADD(at[4], at[16]); MULADD(at[5], at[15]); MULADD(at[6], at[14]); + COMBA_STORE(C->dp[6]); + /* 7 */ + COMBA_FORWARD; + MULADD(at[0], at[21]); MULADD(at[1], at[20]); MULADD(at[2], at[19]); MULADD(at[3], at[18]); MULADD(at[4], at[17]); MULADD(at[5], at[16]); MULADD(at[6], at[15]); MULADD(at[7], at[14]); + COMBA_STORE(C->dp[7]); + /* 8 */ + COMBA_FORWARD; + MULADD(at[0], at[22]); MULADD(at[1], at[21]); MULADD(at[2], at[20]); MULADD(at[3], at[19]); MULADD(at[4], at[18]); MULADD(at[5], at[17]); MULADD(at[6], at[16]); MULADD(at[7], at[15]); MULADD(at[8], at[14]); + COMBA_STORE(C->dp[8]); + /* 9 */ + COMBA_FORWARD; + MULADD(at[0], at[23]); MULADD(at[1], at[22]); MULADD(at[2], at[21]); MULADD(at[3], at[20]); MULADD(at[4], at[19]); MULADD(at[5], at[18]); MULADD(at[6], at[17]); MULADD(at[7], at[16]); MULADD(at[8], at[15]); MULADD(at[9], at[14]); + COMBA_STORE(C->dp[9]); + /* 10 */ + COMBA_FORWARD; + MULADD(at[0], at[24]); MULADD(at[1], at[23]); MULADD(at[2], at[22]); MULADD(at[3], at[21]); MULADD(at[4], at[20]); MULADD(at[5], at[19]); MULADD(at[6], at[18]); MULADD(at[7], at[17]); MULADD(at[8], at[16]); MULADD(at[9], at[15]); MULADD(at[10], at[14]); + COMBA_STORE(C->dp[10]); + /* 11 */ + COMBA_FORWARD; + MULADD(at[0], at[25]); MULADD(at[1], at[24]); MULADD(at[2], at[23]); MULADD(at[3], at[22]); MULADD(at[4], at[21]); MULADD(at[5], at[20]); MULADD(at[6], at[19]); MULADD(at[7], at[18]); MULADD(at[8], at[17]); MULADD(at[9], at[16]); MULADD(at[10], at[15]); MULADD(at[11], at[14]); + COMBA_STORE(C->dp[11]); + /* 12 */ + COMBA_FORWARD; + MULADD(at[0], at[26]); MULADD(at[1], at[25]); MULADD(at[2], at[24]); MULADD(at[3], at[23]); MULADD(at[4], at[22]); MULADD(at[5], at[21]); MULADD(at[6], at[20]); MULADD(at[7], at[19]); MULADD(at[8], at[18]); MULADD(at[9], at[17]); MULADD(at[10], at[16]); MULADD(at[11], at[15]); MULADD(at[12], at[14]); + COMBA_STORE(C->dp[12]); + /* 13 */ + COMBA_FORWARD; + MULADD(at[0], at[27]); MULADD(at[1], at[26]); MULADD(at[2], at[25]); MULADD(at[3], at[24]); MULADD(at[4], at[23]); MULADD(at[5], at[22]); MULADD(at[6], at[21]); MULADD(at[7], at[20]); MULADD(at[8], at[19]); MULADD(at[9], at[18]); MULADD(at[10], at[17]); MULADD(at[11], at[16]); MULADD(at[12], at[15]); MULADD(at[13], at[14]); + COMBA_STORE(C->dp[13]); + /* 14 */ + COMBA_FORWARD; + MULADD(at[1], at[27]); MULADD(at[2], at[26]); MULADD(at[3], at[25]); MULADD(at[4], at[24]); MULADD(at[5], at[23]); MULADD(at[6], at[22]); MULADD(at[7], at[21]); MULADD(at[8], at[20]); MULADD(at[9], at[19]); MULADD(at[10], at[18]); MULADD(at[11], at[17]); MULADD(at[12], at[16]); MULADD(at[13], at[15]); + COMBA_STORE(C->dp[14]); + /* 15 */ + COMBA_FORWARD; + MULADD(at[2], at[27]); MULADD(at[3], at[26]); MULADD(at[4], at[25]); MULADD(at[5], at[24]); MULADD(at[6], at[23]); MULADD(at[7], at[22]); MULADD(at[8], at[21]); MULADD(at[9], at[20]); MULADD(at[10], at[19]); MULADD(at[11], at[18]); MULADD(at[12], at[17]); MULADD(at[13], at[16]); + COMBA_STORE(C->dp[15]); + /* 16 */ + COMBA_FORWARD; + MULADD(at[3], at[27]); MULADD(at[4], at[26]); MULADD(at[5], at[25]); MULADD(at[6], at[24]); MULADD(at[7], at[23]); MULADD(at[8], at[22]); MULADD(at[9], at[21]); MULADD(at[10], at[20]); MULADD(at[11], at[19]); MULADD(at[12], at[18]); MULADD(at[13], at[17]); + COMBA_STORE(C->dp[16]); + /* 17 */ + COMBA_FORWARD; + MULADD(at[4], at[27]); MULADD(at[5], at[26]); MULADD(at[6], at[25]); MULADD(at[7], at[24]); MULADD(at[8], at[23]); MULADD(at[9], at[22]); MULADD(at[10], at[21]); MULADD(at[11], at[20]); MULADD(at[12], at[19]); MULADD(at[13], at[18]); + COMBA_STORE(C->dp[17]); + /* 18 */ + COMBA_FORWARD; + MULADD(at[5], at[27]); MULADD(at[6], at[26]); MULADD(at[7], at[25]); MULADD(at[8], at[24]); MULADD(at[9], at[23]); MULADD(at[10], at[22]); MULADD(at[11], at[21]); MULADD(at[12], at[20]); MULADD(at[13], at[19]); + COMBA_STORE(C->dp[18]); + /* 19 */ + COMBA_FORWARD; + MULADD(at[6], at[27]); MULADD(at[7], at[26]); MULADD(at[8], at[25]); MULADD(at[9], at[24]); MULADD(at[10], at[23]); MULADD(at[11], at[22]); MULADD(at[12], at[21]); MULADD(at[13], at[20]); + COMBA_STORE(C->dp[19]); + /* 20 */ + COMBA_FORWARD; + MULADD(at[7], at[27]); MULADD(at[8], at[26]); MULADD(at[9], at[25]); MULADD(at[10], at[24]); MULADD(at[11], at[23]); MULADD(at[12], at[22]); MULADD(at[13], at[21]); + COMBA_STORE(C->dp[20]); + /* 21 */ + COMBA_FORWARD; + MULADD(at[8], at[27]); MULADD(at[9], at[26]); MULADD(at[10], at[25]); MULADD(at[11], at[24]); MULADD(at[12], at[23]); MULADD(at[13], at[22]); + COMBA_STORE(C->dp[21]); + /* 22 */ + COMBA_FORWARD; + MULADD(at[9], at[27]); MULADD(at[10], at[26]); MULADD(at[11], at[25]); MULADD(at[12], at[24]); MULADD(at[13], at[23]); + COMBA_STORE(C->dp[22]); + /* 23 */ + COMBA_FORWARD; + MULADD(at[10], at[27]); MULADD(at[11], at[26]); MULADD(at[12], at[25]); MULADD(at[13], at[24]); + COMBA_STORE(C->dp[23]); + /* 24 */ + COMBA_FORWARD; + MULADD(at[11], at[27]); MULADD(at[12], at[26]); MULADD(at[13], at[25]); + COMBA_STORE(C->dp[24]); + /* 25 */ + COMBA_FORWARD; + MULADD(at[12], at[27]); MULADD(at[13], at[26]); + COMBA_STORE(C->dp[25]); + /* 26 */ + COMBA_FORWARD; + MULADD(at[13], at[27]); + COMBA_STORE(C->dp[26]); + COMBA_STORE2(C->dp[27]); + C->used = 28; + C->sign = A->sign ^ B->sign; + fp_clamp(C); + COMBA_FINI; + break; + + case 15: + memcpy(at, A->dp, 15 * sizeof(fp_digit)); + memcpy(at+15, B->dp, 15 * sizeof(fp_digit)); + COMBA_START; + + COMBA_CLEAR; + /* 0 */ + MULADD(at[0], at[15]); + COMBA_STORE(C->dp[0]); + /* 1 */ + COMBA_FORWARD; + MULADD(at[0], at[16]); MULADD(at[1], at[15]); + COMBA_STORE(C->dp[1]); + /* 2 */ + COMBA_FORWARD; + MULADD(at[0], at[17]); MULADD(at[1], at[16]); MULADD(at[2], at[15]); + COMBA_STORE(C->dp[2]); + /* 3 */ + COMBA_FORWARD; + MULADD(at[0], at[18]); MULADD(at[1], at[17]); MULADD(at[2], at[16]); MULADD(at[3], at[15]); + COMBA_STORE(C->dp[3]); + /* 4 */ + COMBA_FORWARD; + MULADD(at[0], at[19]); MULADD(at[1], at[18]); MULADD(at[2], at[17]); MULADD(at[3], at[16]); MULADD(at[4], at[15]); + COMBA_STORE(C->dp[4]); + /* 5 */ + COMBA_FORWARD; + MULADD(at[0], at[20]); MULADD(at[1], at[19]); MULADD(at[2], at[18]); MULADD(at[3], at[17]); MULADD(at[4], at[16]); MULADD(at[5], at[15]); + COMBA_STORE(C->dp[5]); + /* 6 */ + COMBA_FORWARD; + MULADD(at[0], at[21]); MULADD(at[1], at[20]); MULADD(at[2], at[19]); MULADD(at[3], at[18]); MULADD(at[4], at[17]); MULADD(at[5], at[16]); MULADD(at[6], at[15]); + COMBA_STORE(C->dp[6]); + /* 7 */ + COMBA_FORWARD; + MULADD(at[0], at[22]); MULADD(at[1], at[21]); MULADD(at[2], at[20]); MULADD(at[3], at[19]); MULADD(at[4], at[18]); MULADD(at[5], at[17]); MULADD(at[6], at[16]); MULADD(at[7], at[15]); + COMBA_STORE(C->dp[7]); + /* 8 */ + COMBA_FORWARD; + MULADD(at[0], at[23]); MULADD(at[1], at[22]); MULADD(at[2], at[21]); MULADD(at[3], at[20]); MULADD(at[4], at[19]); MULADD(at[5], at[18]); MULADD(at[6], at[17]); MULADD(at[7], at[16]); MULADD(at[8], at[15]); + COMBA_STORE(C->dp[8]); + /* 9 */ + COMBA_FORWARD; + MULADD(at[0], at[24]); MULADD(at[1], at[23]); MULADD(at[2], at[22]); MULADD(at[3], at[21]); MULADD(at[4], at[20]); MULADD(at[5], at[19]); MULADD(at[6], at[18]); MULADD(at[7], at[17]); MULADD(at[8], at[16]); MULADD(at[9], at[15]); + COMBA_STORE(C->dp[9]); + /* 10 */ + COMBA_FORWARD; + MULADD(at[0], at[25]); MULADD(at[1], at[24]); MULADD(at[2], at[23]); MULADD(at[3], at[22]); MULADD(at[4], at[21]); MULADD(at[5], at[20]); MULADD(at[6], at[19]); MULADD(at[7], at[18]); MULADD(at[8], at[17]); MULADD(at[9], at[16]); MULADD(at[10], at[15]); + COMBA_STORE(C->dp[10]); + /* 11 */ + COMBA_FORWARD; + MULADD(at[0], at[26]); MULADD(at[1], at[25]); MULADD(at[2], at[24]); MULADD(at[3], at[23]); MULADD(at[4], at[22]); MULADD(at[5], at[21]); MULADD(at[6], at[20]); MULADD(at[7], at[19]); MULADD(at[8], at[18]); MULADD(at[9], at[17]); MULADD(at[10], at[16]); MULADD(at[11], at[15]); + COMBA_STORE(C->dp[11]); + /* 12 */ + COMBA_FORWARD; + MULADD(at[0], at[27]); MULADD(at[1], at[26]); MULADD(at[2], at[25]); MULADD(at[3], at[24]); MULADD(at[4], at[23]); MULADD(at[5], at[22]); MULADD(at[6], at[21]); MULADD(at[7], at[20]); MULADD(at[8], at[19]); MULADD(at[9], at[18]); MULADD(at[10], at[17]); MULADD(at[11], at[16]); MULADD(at[12], at[15]); + COMBA_STORE(C->dp[12]); + /* 13 */ + COMBA_FORWARD; + MULADD(at[0], at[28]); MULADD(at[1], at[27]); MULADD(at[2], at[26]); MULADD(at[3], at[25]); MULADD(at[4], at[24]); MULADD(at[5], at[23]); MULADD(at[6], at[22]); MULADD(at[7], at[21]); MULADD(at[8], at[20]); MULADD(at[9], at[19]); MULADD(at[10], at[18]); MULADD(at[11], at[17]); MULADD(at[12], at[16]); MULADD(at[13], at[15]); + COMBA_STORE(C->dp[13]); + /* 14 */ + COMBA_FORWARD; + MULADD(at[0], at[29]); MULADD(at[1], at[28]); MULADD(at[2], at[27]); MULADD(at[3], at[26]); MULADD(at[4], at[25]); MULADD(at[5], at[24]); MULADD(at[6], at[23]); MULADD(at[7], at[22]); MULADD(at[8], at[21]); MULADD(at[9], at[20]); MULADD(at[10], at[19]); MULADD(at[11], at[18]); MULADD(at[12], at[17]); MULADD(at[13], at[16]); MULADD(at[14], at[15]); + COMBA_STORE(C->dp[14]); + /* 15 */ + COMBA_FORWARD; + MULADD(at[1], at[29]); MULADD(at[2], at[28]); MULADD(at[3], at[27]); MULADD(at[4], at[26]); MULADD(at[5], at[25]); MULADD(at[6], at[24]); MULADD(at[7], at[23]); MULADD(at[8], at[22]); MULADD(at[9], at[21]); MULADD(at[10], at[20]); MULADD(at[11], at[19]); MULADD(at[12], at[18]); MULADD(at[13], at[17]); MULADD(at[14], at[16]); + COMBA_STORE(C->dp[15]); + /* 16 */ + COMBA_FORWARD; + MULADD(at[2], at[29]); MULADD(at[3], at[28]); MULADD(at[4], at[27]); MULADD(at[5], at[26]); MULADD(at[6], at[25]); MULADD(at[7], at[24]); MULADD(at[8], at[23]); MULADD(at[9], at[22]); MULADD(at[10], at[21]); MULADD(at[11], at[20]); MULADD(at[12], at[19]); MULADD(at[13], at[18]); MULADD(at[14], at[17]); + COMBA_STORE(C->dp[16]); + /* 17 */ + COMBA_FORWARD; + MULADD(at[3], at[29]); MULADD(at[4], at[28]); MULADD(at[5], at[27]); MULADD(at[6], at[26]); MULADD(at[7], at[25]); MULADD(at[8], at[24]); MULADD(at[9], at[23]); MULADD(at[10], at[22]); MULADD(at[11], at[21]); MULADD(at[12], at[20]); MULADD(at[13], at[19]); MULADD(at[14], at[18]); + COMBA_STORE(C->dp[17]); + /* 18 */ + COMBA_FORWARD; + MULADD(at[4], at[29]); MULADD(at[5], at[28]); MULADD(at[6], at[27]); MULADD(at[7], at[26]); MULADD(at[8], at[25]); MULADD(at[9], at[24]); MULADD(at[10], at[23]); MULADD(at[11], at[22]); MULADD(at[12], at[21]); MULADD(at[13], at[20]); MULADD(at[14], at[19]); + COMBA_STORE(C->dp[18]); + /* 19 */ + COMBA_FORWARD; + MULADD(at[5], at[29]); MULADD(at[6], at[28]); MULADD(at[7], at[27]); MULADD(at[8], at[26]); MULADD(at[9], at[25]); MULADD(at[10], at[24]); MULADD(at[11], at[23]); MULADD(at[12], at[22]); MULADD(at[13], at[21]); MULADD(at[14], at[20]); + COMBA_STORE(C->dp[19]); + /* 20 */ + COMBA_FORWARD; + MULADD(at[6], at[29]); MULADD(at[7], at[28]); MULADD(at[8], at[27]); MULADD(at[9], at[26]); MULADD(at[10], at[25]); MULADD(at[11], at[24]); MULADD(at[12], at[23]); MULADD(at[13], at[22]); MULADD(at[14], at[21]); + COMBA_STORE(C->dp[20]); + /* 21 */ + COMBA_FORWARD; + MULADD(at[7], at[29]); MULADD(at[8], at[28]); MULADD(at[9], at[27]); MULADD(at[10], at[26]); MULADD(at[11], at[25]); MULADD(at[12], at[24]); MULADD(at[13], at[23]); MULADD(at[14], at[22]); + COMBA_STORE(C->dp[21]); + /* 22 */ + COMBA_FORWARD; + MULADD(at[8], at[29]); MULADD(at[9], at[28]); MULADD(at[10], at[27]); MULADD(at[11], at[26]); MULADD(at[12], at[25]); MULADD(at[13], at[24]); MULADD(at[14], at[23]); + COMBA_STORE(C->dp[22]); + /* 23 */ + COMBA_FORWARD; + MULADD(at[9], at[29]); MULADD(at[10], at[28]); MULADD(at[11], at[27]); MULADD(at[12], at[26]); MULADD(at[13], at[25]); MULADD(at[14], at[24]); + COMBA_STORE(C->dp[23]); + /* 24 */ + COMBA_FORWARD; + MULADD(at[10], at[29]); MULADD(at[11], at[28]); MULADD(at[12], at[27]); MULADD(at[13], at[26]); MULADD(at[14], at[25]); + COMBA_STORE(C->dp[24]); + /* 25 */ + COMBA_FORWARD; + MULADD(at[11], at[29]); MULADD(at[12], at[28]); MULADD(at[13], at[27]); MULADD(at[14], at[26]); + COMBA_STORE(C->dp[25]); + /* 26 */ + COMBA_FORWARD; + MULADD(at[12], at[29]); MULADD(at[13], at[28]); MULADD(at[14], at[27]); + COMBA_STORE(C->dp[26]); + /* 27 */ + COMBA_FORWARD; + MULADD(at[13], at[29]); MULADD(at[14], at[28]); + COMBA_STORE(C->dp[27]); + /* 28 */ + COMBA_FORWARD; + MULADD(at[14], at[29]); + COMBA_STORE(C->dp[28]); + COMBA_STORE2(C->dp[29]); + C->used = 30; + C->sign = A->sign ^ B->sign; + fp_clamp(C); + COMBA_FINI; + break; + + case 16: + memcpy(at, A->dp, 16 * sizeof(fp_digit)); + memcpy(at+16, B->dp, 16 * sizeof(fp_digit)); + COMBA_START; + + COMBA_CLEAR; + /* 0 */ + MULADD(at[0], at[16]); + COMBA_STORE(C->dp[0]); + /* 1 */ + COMBA_FORWARD; + MULADD(at[0], at[17]); MULADD(at[1], at[16]); + COMBA_STORE(C->dp[1]); + /* 2 */ + COMBA_FORWARD; + MULADD(at[0], at[18]); MULADD(at[1], at[17]); MULADD(at[2], at[16]); + COMBA_STORE(C->dp[2]); + /* 3 */ + COMBA_FORWARD; + MULADD(at[0], at[19]); MULADD(at[1], at[18]); MULADD(at[2], at[17]); MULADD(at[3], at[16]); + COMBA_STORE(C->dp[3]); + /* 4 */ + COMBA_FORWARD; + MULADD(at[0], at[20]); MULADD(at[1], at[19]); MULADD(at[2], at[18]); MULADD(at[3], at[17]); MULADD(at[4], at[16]); + COMBA_STORE(C->dp[4]); + /* 5 */ + COMBA_FORWARD; + MULADD(at[0], at[21]); MULADD(at[1], at[20]); MULADD(at[2], at[19]); MULADD(at[3], at[18]); MULADD(at[4], at[17]); MULADD(at[5], at[16]); + COMBA_STORE(C->dp[5]); + /* 6 */ + COMBA_FORWARD; + MULADD(at[0], at[22]); MULADD(at[1], at[21]); MULADD(at[2], at[20]); MULADD(at[3], at[19]); MULADD(at[4], at[18]); MULADD(at[5], at[17]); MULADD(at[6], at[16]); + COMBA_STORE(C->dp[6]); + /* 7 */ + COMBA_FORWARD; + MULADD(at[0], at[23]); MULADD(at[1], at[22]); MULADD(at[2], at[21]); MULADD(at[3], at[20]); MULADD(at[4], at[19]); MULADD(at[5], at[18]); MULADD(at[6], at[17]); MULADD(at[7], at[16]); + COMBA_STORE(C->dp[7]); + /* 8 */ + COMBA_FORWARD; + MULADD(at[0], at[24]); MULADD(at[1], at[23]); MULADD(at[2], at[22]); MULADD(at[3], at[21]); MULADD(at[4], at[20]); MULADD(at[5], at[19]); MULADD(at[6], at[18]); MULADD(at[7], at[17]); MULADD(at[8], at[16]); + COMBA_STORE(C->dp[8]); + /* 9 */ + COMBA_FORWARD; + MULADD(at[0], at[25]); MULADD(at[1], at[24]); MULADD(at[2], at[23]); MULADD(at[3], at[22]); MULADD(at[4], at[21]); MULADD(at[5], at[20]); MULADD(at[6], at[19]); MULADD(at[7], at[18]); MULADD(at[8], at[17]); MULADD(at[9], at[16]); + COMBA_STORE(C->dp[9]); + /* 10 */ + COMBA_FORWARD; + MULADD(at[0], at[26]); MULADD(at[1], at[25]); MULADD(at[2], at[24]); MULADD(at[3], at[23]); MULADD(at[4], at[22]); MULADD(at[5], at[21]); MULADD(at[6], at[20]); MULADD(at[7], at[19]); MULADD(at[8], at[18]); MULADD(at[9], at[17]); MULADD(at[10], at[16]); + COMBA_STORE(C->dp[10]); + /* 11 */ + COMBA_FORWARD; + MULADD(at[0], at[27]); MULADD(at[1], at[26]); MULADD(at[2], at[25]); MULADD(at[3], at[24]); MULADD(at[4], at[23]); MULADD(at[5], at[22]); MULADD(at[6], at[21]); MULADD(at[7], at[20]); MULADD(at[8], at[19]); MULADD(at[9], at[18]); MULADD(at[10], at[17]); MULADD(at[11], at[16]); + COMBA_STORE(C->dp[11]); + /* 12 */ + COMBA_FORWARD; + MULADD(at[0], at[28]); MULADD(at[1], at[27]); MULADD(at[2], at[26]); MULADD(at[3], at[25]); MULADD(at[4], at[24]); MULADD(at[5], at[23]); MULADD(at[6], at[22]); MULADD(at[7], at[21]); MULADD(at[8], at[20]); MULADD(at[9], at[19]); MULADD(at[10], at[18]); MULADD(at[11], at[17]); MULADD(at[12], at[16]); + COMBA_STORE(C->dp[12]); + /* 13 */ + COMBA_FORWARD; + MULADD(at[0], at[29]); MULADD(at[1], at[28]); MULADD(at[2], at[27]); MULADD(at[3], at[26]); MULADD(at[4], at[25]); MULADD(at[5], at[24]); MULADD(at[6], at[23]); MULADD(at[7], at[22]); MULADD(at[8], at[21]); MULADD(at[9], at[20]); MULADD(at[10], at[19]); MULADD(at[11], at[18]); MULADD(at[12], at[17]); MULADD(at[13], at[16]); + COMBA_STORE(C->dp[13]); + /* 14 */ + COMBA_FORWARD; + MULADD(at[0], at[30]); MULADD(at[1], at[29]); MULADD(at[2], at[28]); MULADD(at[3], at[27]); MULADD(at[4], at[26]); MULADD(at[5], at[25]); MULADD(at[6], at[24]); MULADD(at[7], at[23]); MULADD(at[8], at[22]); MULADD(at[9], at[21]); MULADD(at[10], at[20]); MULADD(at[11], at[19]); MULADD(at[12], at[18]); MULADD(at[13], at[17]); MULADD(at[14], at[16]); + COMBA_STORE(C->dp[14]); + /* 15 */ + COMBA_FORWARD; + MULADD(at[0], at[31]); MULADD(at[1], at[30]); MULADD(at[2], at[29]); MULADD(at[3], at[28]); MULADD(at[4], at[27]); MULADD(at[5], at[26]); MULADD(at[6], at[25]); MULADD(at[7], at[24]); MULADD(at[8], at[23]); MULADD(at[9], at[22]); MULADD(at[10], at[21]); MULADD(at[11], at[20]); MULADD(at[12], at[19]); MULADD(at[13], at[18]); MULADD(at[14], at[17]); MULADD(at[15], at[16]); + COMBA_STORE(C->dp[15]); + /* 16 */ + COMBA_FORWARD; + MULADD(at[1], at[31]); MULADD(at[2], at[30]); MULADD(at[3], at[29]); MULADD(at[4], at[28]); MULADD(at[5], at[27]); MULADD(at[6], at[26]); MULADD(at[7], at[25]); MULADD(at[8], at[24]); MULADD(at[9], at[23]); MULADD(at[10], at[22]); MULADD(at[11], at[21]); MULADD(at[12], at[20]); MULADD(at[13], at[19]); MULADD(at[14], at[18]); MULADD(at[15], at[17]); + COMBA_STORE(C->dp[16]); + /* 17 */ + COMBA_FORWARD; + MULADD(at[2], at[31]); MULADD(at[3], at[30]); MULADD(at[4], at[29]); MULADD(at[5], at[28]); MULADD(at[6], at[27]); MULADD(at[7], at[26]); MULADD(at[8], at[25]); MULADD(at[9], at[24]); MULADD(at[10], at[23]); MULADD(at[11], at[22]); MULADD(at[12], at[21]); MULADD(at[13], at[20]); MULADD(at[14], at[19]); MULADD(at[15], at[18]); + COMBA_STORE(C->dp[17]); + /* 18 */ + COMBA_FORWARD; + MULADD(at[3], at[31]); MULADD(at[4], at[30]); MULADD(at[5], at[29]); MULADD(at[6], at[28]); MULADD(at[7], at[27]); MULADD(at[8], at[26]); MULADD(at[9], at[25]); MULADD(at[10], at[24]); MULADD(at[11], at[23]); MULADD(at[12], at[22]); MULADD(at[13], at[21]); MULADD(at[14], at[20]); MULADD(at[15], at[19]); + COMBA_STORE(C->dp[18]); + /* 19 */ + COMBA_FORWARD; + MULADD(at[4], at[31]); MULADD(at[5], at[30]); MULADD(at[6], at[29]); MULADD(at[7], at[28]); MULADD(at[8], at[27]); MULADD(at[9], at[26]); MULADD(at[10], at[25]); MULADD(at[11], at[24]); MULADD(at[12], at[23]); MULADD(at[13], at[22]); MULADD(at[14], at[21]); MULADD(at[15], at[20]); + COMBA_STORE(C->dp[19]); + /* 20 */ + COMBA_FORWARD; + MULADD(at[5], at[31]); MULADD(at[6], at[30]); MULADD(at[7], at[29]); MULADD(at[8], at[28]); MULADD(at[9], at[27]); MULADD(at[10], at[26]); MULADD(at[11], at[25]); MULADD(at[12], at[24]); MULADD(at[13], at[23]); MULADD(at[14], at[22]); MULADD(at[15], at[21]); + COMBA_STORE(C->dp[20]); + /* 21 */ + COMBA_FORWARD; + MULADD(at[6], at[31]); MULADD(at[7], at[30]); MULADD(at[8], at[29]); MULADD(at[9], at[28]); MULADD(at[10], at[27]); MULADD(at[11], at[26]); MULADD(at[12], at[25]); MULADD(at[13], at[24]); MULADD(at[14], at[23]); MULADD(at[15], at[22]); + COMBA_STORE(C->dp[21]); + /* 22 */ + COMBA_FORWARD; + MULADD(at[7], at[31]); MULADD(at[8], at[30]); MULADD(at[9], at[29]); MULADD(at[10], at[28]); MULADD(at[11], at[27]); MULADD(at[12], at[26]); MULADD(at[13], at[25]); MULADD(at[14], at[24]); MULADD(at[15], at[23]); + COMBA_STORE(C->dp[22]); + /* 23 */ + COMBA_FORWARD; + MULADD(at[8], at[31]); MULADD(at[9], at[30]); MULADD(at[10], at[29]); MULADD(at[11], at[28]); MULADD(at[12], at[27]); MULADD(at[13], at[26]); MULADD(at[14], at[25]); MULADD(at[15], at[24]); + COMBA_STORE(C->dp[23]); + /* 24 */ + COMBA_FORWARD; + MULADD(at[9], at[31]); MULADD(at[10], at[30]); MULADD(at[11], at[29]); MULADD(at[12], at[28]); MULADD(at[13], at[27]); MULADD(at[14], at[26]); MULADD(at[15], at[25]); + COMBA_STORE(C->dp[24]); + /* 25 */ + COMBA_FORWARD; + MULADD(at[10], at[31]); MULADD(at[11], at[30]); MULADD(at[12], at[29]); MULADD(at[13], at[28]); MULADD(at[14], at[27]); MULADD(at[15], at[26]); + COMBA_STORE(C->dp[25]); + /* 26 */ + COMBA_FORWARD; + MULADD(at[11], at[31]); MULADD(at[12], at[30]); MULADD(at[13], at[29]); MULADD(at[14], at[28]); MULADD(at[15], at[27]); + COMBA_STORE(C->dp[26]); + /* 27 */ + COMBA_FORWARD; + MULADD(at[12], at[31]); MULADD(at[13], at[30]); MULADD(at[14], at[29]); MULADD(at[15], at[28]); + COMBA_STORE(C->dp[27]); + /* 28 */ + COMBA_FORWARD; + MULADD(at[13], at[31]); MULADD(at[14], at[30]); MULADD(at[15], at[29]); + COMBA_STORE(C->dp[28]); + /* 29 */ + COMBA_FORWARD; + MULADD(at[14], at[31]); MULADD(at[15], at[30]); + COMBA_STORE(C->dp[29]); + /* 30 */ + COMBA_FORWARD; + MULADD(at[15], at[31]); + COMBA_STORE(C->dp[30]); + COMBA_STORE2(C->dp[31]); + C->used = 32; + C->sign = A->sign ^ B->sign; + fp_clamp(C); + COMBA_FINI; + break; + + default: + break; + } +} + +#endif diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_12.i b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_12.i new file mode 100644 index 000000000..382ebe271 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_12.i @@ -0,0 +1,157 @@ +/* fp_sqr_comba_12.i + * + * Copyright (C) 2006-2011 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifdef TFM_SQR12 +void fp_sqr_comba12(fp_int *A, fp_int *B) +{ + fp_digit *a, b[24], c0, c1, c2, sc0, sc1, sc2; + + a = A->dp; + COMBA_START; + + /* clear carries */ + CLEAR_CARRY; + + /* output 0 */ + SQRADD(a[0],a[0]); + COMBA_STORE(b[0]); + + /* output 1 */ + CARRY_FORWARD; + SQRADD2(a[0], a[1]); + COMBA_STORE(b[1]); + + /* output 2 */ + CARRY_FORWARD; + SQRADD2(a[0], a[2]); SQRADD(a[1], a[1]); + COMBA_STORE(b[2]); + + /* output 3 */ + CARRY_FORWARD; + SQRADD2(a[0], a[3]); SQRADD2(a[1], a[2]); + COMBA_STORE(b[3]); + + /* output 4 */ + CARRY_FORWARD; + SQRADD2(a[0], a[4]); SQRADD2(a[1], a[3]); SQRADD(a[2], a[2]); + COMBA_STORE(b[4]); + + /* output 5 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[5]); SQRADDAC(a[1], a[4]); SQRADDAC(a[2], a[3]); SQRADDDB; + COMBA_STORE(b[5]); + + /* output 6 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[6]); SQRADDAC(a[1], a[5]); SQRADDAC(a[2], a[4]); SQRADDDB; SQRADD(a[3], a[3]); + COMBA_STORE(b[6]); + + /* output 7 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[7]); SQRADDAC(a[1], a[6]); SQRADDAC(a[2], a[5]); SQRADDAC(a[3], a[4]); SQRADDDB; + COMBA_STORE(b[7]); + + /* output 8 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[8]); SQRADDAC(a[1], a[7]); SQRADDAC(a[2], a[6]); SQRADDAC(a[3], a[5]); SQRADDDB; SQRADD(a[4], a[4]); + COMBA_STORE(b[8]); + + /* output 9 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[9]); SQRADDAC(a[1], a[8]); SQRADDAC(a[2], a[7]); SQRADDAC(a[3], a[6]); SQRADDAC(a[4], a[5]); SQRADDDB; + COMBA_STORE(b[9]); + + /* output 10 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[10]); SQRADDAC(a[1], a[9]); SQRADDAC(a[2], a[8]); SQRADDAC(a[3], a[7]); SQRADDAC(a[4], a[6]); SQRADDDB; SQRADD(a[5], a[5]); + COMBA_STORE(b[10]); + + /* output 11 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[11]); SQRADDAC(a[1], a[10]); SQRADDAC(a[2], a[9]); SQRADDAC(a[3], a[8]); SQRADDAC(a[4], a[7]); SQRADDAC(a[5], a[6]); SQRADDDB; + COMBA_STORE(b[11]); + + /* output 12 */ + CARRY_FORWARD; + SQRADDSC(a[1], a[11]); SQRADDAC(a[2], a[10]); SQRADDAC(a[3], a[9]); SQRADDAC(a[4], a[8]); SQRADDAC(a[5], a[7]); SQRADDDB; SQRADD(a[6], a[6]); + COMBA_STORE(b[12]); + + /* output 13 */ + CARRY_FORWARD; + SQRADDSC(a[2], a[11]); SQRADDAC(a[3], a[10]); SQRADDAC(a[4], a[9]); SQRADDAC(a[5], a[8]); SQRADDAC(a[6], a[7]); SQRADDDB; + COMBA_STORE(b[13]); + + /* output 14 */ + CARRY_FORWARD; + SQRADDSC(a[3], a[11]); SQRADDAC(a[4], a[10]); SQRADDAC(a[5], a[9]); SQRADDAC(a[6], a[8]); SQRADDDB; SQRADD(a[7], a[7]); + COMBA_STORE(b[14]); + + /* output 15 */ + CARRY_FORWARD; + SQRADDSC(a[4], a[11]); SQRADDAC(a[5], a[10]); SQRADDAC(a[6], a[9]); SQRADDAC(a[7], a[8]); SQRADDDB; + COMBA_STORE(b[15]); + + /* output 16 */ + CARRY_FORWARD; + SQRADDSC(a[5], a[11]); SQRADDAC(a[6], a[10]); SQRADDAC(a[7], a[9]); SQRADDDB; SQRADD(a[8], a[8]); + COMBA_STORE(b[16]); + + /* output 17 */ + CARRY_FORWARD; + SQRADDSC(a[6], a[11]); SQRADDAC(a[7], a[10]); SQRADDAC(a[8], a[9]); SQRADDDB; + COMBA_STORE(b[17]); + + /* output 18 */ + CARRY_FORWARD; + SQRADD2(a[7], a[11]); SQRADD2(a[8], a[10]); SQRADD(a[9], a[9]); + COMBA_STORE(b[18]); + + /* output 19 */ + CARRY_FORWARD; + SQRADD2(a[8], a[11]); SQRADD2(a[9], a[10]); + COMBA_STORE(b[19]); + + /* output 20 */ + CARRY_FORWARD; + SQRADD2(a[9], a[11]); SQRADD(a[10], a[10]); + COMBA_STORE(b[20]); + + /* output 21 */ + CARRY_FORWARD; + SQRADD2(a[10], a[11]); + COMBA_STORE(b[21]); + + /* output 22 */ + CARRY_FORWARD; + SQRADD(a[11], a[11]); + COMBA_STORE(b[22]); + COMBA_STORE2(b[23]); + COMBA_FINI; + + B->used = 24; + B->sign = FP_ZPOS; + memcpy(B->dp, b, 24 * sizeof(fp_digit)); + fp_clamp(B); +} +#endif + + diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_17.i b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_17.i new file mode 100644 index 000000000..153ce878b --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_17.i @@ -0,0 +1,207 @@ +/* fp_sqr_comba_17.i + * + * Copyright (C) 2006-2011 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifdef TFM_SQR17 +void fp_sqr_comba17(fp_int *A, fp_int *B) +{ + fp_digit *a, b[34], c0, c1, c2, sc0, sc1, sc2; + + a = A->dp; + COMBA_START; + + /* clear carries */ + CLEAR_CARRY; + + /* output 0 */ + SQRADD(a[0],a[0]); + COMBA_STORE(b[0]); + + /* output 1 */ + CARRY_FORWARD; + SQRADD2(a[0], a[1]); + COMBA_STORE(b[1]); + + /* output 2 */ + CARRY_FORWARD; + SQRADD2(a[0], a[2]); SQRADD(a[1], a[1]); + COMBA_STORE(b[2]); + + /* output 3 */ + CARRY_FORWARD; + SQRADD2(a[0], a[3]); SQRADD2(a[1], a[2]); + COMBA_STORE(b[3]); + + /* output 4 */ + CARRY_FORWARD; + SQRADD2(a[0], a[4]); SQRADD2(a[1], a[3]); SQRADD(a[2], a[2]); + COMBA_STORE(b[4]); + + /* output 5 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[5]); SQRADDAC(a[1], a[4]); SQRADDAC(a[2], a[3]); SQRADDDB; + COMBA_STORE(b[5]); + + /* output 6 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[6]); SQRADDAC(a[1], a[5]); SQRADDAC(a[2], a[4]); SQRADDDB; SQRADD(a[3], a[3]); + COMBA_STORE(b[6]); + + /* output 7 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[7]); SQRADDAC(a[1], a[6]); SQRADDAC(a[2], a[5]); SQRADDAC(a[3], a[4]); SQRADDDB; + COMBA_STORE(b[7]); + + /* output 8 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[8]); SQRADDAC(a[1], a[7]); SQRADDAC(a[2], a[6]); SQRADDAC(a[3], a[5]); SQRADDDB; SQRADD(a[4], a[4]); + COMBA_STORE(b[8]); + + /* output 9 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[9]); SQRADDAC(a[1], a[8]); SQRADDAC(a[2], a[7]); SQRADDAC(a[3], a[6]); SQRADDAC(a[4], a[5]); SQRADDDB; + COMBA_STORE(b[9]); + + /* output 10 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[10]); SQRADDAC(a[1], a[9]); SQRADDAC(a[2], a[8]); SQRADDAC(a[3], a[7]); SQRADDAC(a[4], a[6]); SQRADDDB; SQRADD(a[5], a[5]); + COMBA_STORE(b[10]); + + /* output 11 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[11]); SQRADDAC(a[1], a[10]); SQRADDAC(a[2], a[9]); SQRADDAC(a[3], a[8]); SQRADDAC(a[4], a[7]); SQRADDAC(a[5], a[6]); SQRADDDB; + COMBA_STORE(b[11]); + + /* output 12 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[12]); SQRADDAC(a[1], a[11]); SQRADDAC(a[2], a[10]); SQRADDAC(a[3], a[9]); SQRADDAC(a[4], a[8]); SQRADDAC(a[5], a[7]); SQRADDDB; SQRADD(a[6], a[6]); + COMBA_STORE(b[12]); + + /* output 13 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[13]); SQRADDAC(a[1], a[12]); SQRADDAC(a[2], a[11]); SQRADDAC(a[3], a[10]); SQRADDAC(a[4], a[9]); SQRADDAC(a[5], a[8]); SQRADDAC(a[6], a[7]); SQRADDDB; + COMBA_STORE(b[13]); + + /* output 14 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[14]); SQRADDAC(a[1], a[13]); SQRADDAC(a[2], a[12]); SQRADDAC(a[3], a[11]); SQRADDAC(a[4], a[10]); SQRADDAC(a[5], a[9]); SQRADDAC(a[6], a[8]); SQRADDDB; SQRADD(a[7], a[7]); + COMBA_STORE(b[14]); + + /* output 15 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[15]); SQRADDAC(a[1], a[14]); SQRADDAC(a[2], a[13]); SQRADDAC(a[3], a[12]); SQRADDAC(a[4], a[11]); SQRADDAC(a[5], a[10]); SQRADDAC(a[6], a[9]); SQRADDAC(a[7], a[8]); SQRADDDB; + COMBA_STORE(b[15]); + + /* output 16 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[16]); SQRADDAC(a[1], a[15]); SQRADDAC(a[2], a[14]); SQRADDAC(a[3], a[13]); SQRADDAC(a[4], a[12]); SQRADDAC(a[5], a[11]); SQRADDAC(a[6], a[10]); SQRADDAC(a[7], a[9]); SQRADDDB; SQRADD(a[8], a[8]); + COMBA_STORE(b[16]); + + /* output 17 */ + CARRY_FORWARD; + SQRADDSC(a[1], a[16]); SQRADDAC(a[2], a[15]); SQRADDAC(a[3], a[14]); SQRADDAC(a[4], a[13]); SQRADDAC(a[5], a[12]); SQRADDAC(a[6], a[11]); SQRADDAC(a[7], a[10]); SQRADDAC(a[8], a[9]); SQRADDDB; + COMBA_STORE(b[17]); + + /* output 18 */ + CARRY_FORWARD; + SQRADDSC(a[2], a[16]); SQRADDAC(a[3], a[15]); SQRADDAC(a[4], a[14]); SQRADDAC(a[5], a[13]); SQRADDAC(a[6], a[12]); SQRADDAC(a[7], a[11]); SQRADDAC(a[8], a[10]); SQRADDDB; SQRADD(a[9], a[9]); + COMBA_STORE(b[18]); + + /* output 19 */ + CARRY_FORWARD; + SQRADDSC(a[3], a[16]); SQRADDAC(a[4], a[15]); SQRADDAC(a[5], a[14]); SQRADDAC(a[6], a[13]); SQRADDAC(a[7], a[12]); SQRADDAC(a[8], a[11]); SQRADDAC(a[9], a[10]); SQRADDDB; + COMBA_STORE(b[19]); + + /* output 20 */ + CARRY_FORWARD; + SQRADDSC(a[4], a[16]); SQRADDAC(a[5], a[15]); SQRADDAC(a[6], a[14]); SQRADDAC(a[7], a[13]); SQRADDAC(a[8], a[12]); SQRADDAC(a[9], a[11]); SQRADDDB; SQRADD(a[10], a[10]); + COMBA_STORE(b[20]); + + /* output 21 */ + CARRY_FORWARD; + SQRADDSC(a[5], a[16]); SQRADDAC(a[6], a[15]); SQRADDAC(a[7], a[14]); SQRADDAC(a[8], a[13]); SQRADDAC(a[9], a[12]); SQRADDAC(a[10], a[11]); SQRADDDB; + COMBA_STORE(b[21]); + + /* output 22 */ + CARRY_FORWARD; + SQRADDSC(a[6], a[16]); SQRADDAC(a[7], a[15]); SQRADDAC(a[8], a[14]); SQRADDAC(a[9], a[13]); SQRADDAC(a[10], a[12]); SQRADDDB; SQRADD(a[11], a[11]); + COMBA_STORE(b[22]); + + /* output 23 */ + CARRY_FORWARD; + SQRADDSC(a[7], a[16]); SQRADDAC(a[8], a[15]); SQRADDAC(a[9], a[14]); SQRADDAC(a[10], a[13]); SQRADDAC(a[11], a[12]); SQRADDDB; + COMBA_STORE(b[23]); + + /* output 24 */ + CARRY_FORWARD; + SQRADDSC(a[8], a[16]); SQRADDAC(a[9], a[15]); SQRADDAC(a[10], a[14]); SQRADDAC(a[11], a[13]); SQRADDDB; SQRADD(a[12], a[12]); + COMBA_STORE(b[24]); + + /* output 25 */ + CARRY_FORWARD; + SQRADDSC(a[9], a[16]); SQRADDAC(a[10], a[15]); SQRADDAC(a[11], a[14]); SQRADDAC(a[12], a[13]); SQRADDDB; + COMBA_STORE(b[25]); + + /* output 26 */ + CARRY_FORWARD; + SQRADDSC(a[10], a[16]); SQRADDAC(a[11], a[15]); SQRADDAC(a[12], a[14]); SQRADDDB; SQRADD(a[13], a[13]); + COMBA_STORE(b[26]); + + /* output 27 */ + CARRY_FORWARD; + SQRADDSC(a[11], a[16]); SQRADDAC(a[12], a[15]); SQRADDAC(a[13], a[14]); SQRADDDB; + COMBA_STORE(b[27]); + + /* output 28 */ + CARRY_FORWARD; + SQRADD2(a[12], a[16]); SQRADD2(a[13], a[15]); SQRADD(a[14], a[14]); + COMBA_STORE(b[28]); + + /* output 29 */ + CARRY_FORWARD; + SQRADD2(a[13], a[16]); SQRADD2(a[14], a[15]); + COMBA_STORE(b[29]); + + /* output 30 */ + CARRY_FORWARD; + SQRADD2(a[14], a[16]); SQRADD(a[15], a[15]); + COMBA_STORE(b[30]); + + /* output 31 */ + CARRY_FORWARD; + SQRADD2(a[15], a[16]); + COMBA_STORE(b[31]); + + /* output 32 */ + CARRY_FORWARD; + SQRADD(a[16], a[16]); + COMBA_STORE(b[32]); + COMBA_STORE2(b[33]); + COMBA_FINI; + + B->used = 34; + B->sign = FP_ZPOS; + memcpy(B->dp, b, 34 * sizeof(fp_digit)); + fp_clamp(B); +} +#endif + + diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_20.i b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_20.i new file mode 100644 index 000000000..34d6593c3 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_20.i @@ -0,0 +1,240 @@ +/* fp_sqr_comba_20.i + * + * Copyright (C) 2006-2011 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifdef TFM_SQR20 +void fp_sqr_comba20(fp_int *A, fp_int *B) +{ + fp_digit *a, b[40], c0, c1, c2, sc0, sc1, sc2; +#ifdef TFM_ISO + fp_word tt; +#endif + + a = A->dp; + COMBA_START; + + /* clear carries */ + CLEAR_CARRY; + + /* output 0 */ + SQRADD(a[0],a[0]); + COMBA_STORE(b[0]); + + /* output 1 */ + CARRY_FORWARD; + SQRADD2(a[0], a[1]); + COMBA_STORE(b[1]); + + /* output 2 */ + CARRY_FORWARD; + SQRADD2(a[0], a[2]); SQRADD(a[1], a[1]); + COMBA_STORE(b[2]); + + /* output 3 */ + CARRY_FORWARD; + SQRADD2(a[0], a[3]); SQRADD2(a[1], a[2]); + COMBA_STORE(b[3]); + + /* output 4 */ + CARRY_FORWARD; + SQRADD2(a[0], a[4]); SQRADD2(a[1], a[3]); SQRADD(a[2], a[2]); + COMBA_STORE(b[4]); + + /* output 5 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[5]); SQRADDAC(a[1], a[4]); SQRADDAC(a[2], a[3]); SQRADDDB; + COMBA_STORE(b[5]); + + /* output 6 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[6]); SQRADDAC(a[1], a[5]); SQRADDAC(a[2], a[4]); SQRADDDB; SQRADD(a[3], a[3]); + COMBA_STORE(b[6]); + + /* output 7 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[7]); SQRADDAC(a[1], a[6]); SQRADDAC(a[2], a[5]); SQRADDAC(a[3], a[4]); SQRADDDB; + COMBA_STORE(b[7]); + + /* output 8 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[8]); SQRADDAC(a[1], a[7]); SQRADDAC(a[2], a[6]); SQRADDAC(a[3], a[5]); SQRADDDB; SQRADD(a[4], a[4]); + COMBA_STORE(b[8]); + + /* output 9 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[9]); SQRADDAC(a[1], a[8]); SQRADDAC(a[2], a[7]); SQRADDAC(a[3], a[6]); SQRADDAC(a[4], a[5]); SQRADDDB; + COMBA_STORE(b[9]); + + /* output 10 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[10]); SQRADDAC(a[1], a[9]); SQRADDAC(a[2], a[8]); SQRADDAC(a[3], a[7]); SQRADDAC(a[4], a[6]); SQRADDDB; SQRADD(a[5], a[5]); + COMBA_STORE(b[10]); + + /* output 11 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[11]); SQRADDAC(a[1], a[10]); SQRADDAC(a[2], a[9]); SQRADDAC(a[3], a[8]); SQRADDAC(a[4], a[7]); SQRADDAC(a[5], a[6]); SQRADDDB; + COMBA_STORE(b[11]); + + /* output 12 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[12]); SQRADDAC(a[1], a[11]); SQRADDAC(a[2], a[10]); SQRADDAC(a[3], a[9]); SQRADDAC(a[4], a[8]); SQRADDAC(a[5], a[7]); SQRADDDB; SQRADD(a[6], a[6]); + COMBA_STORE(b[12]); + + /* output 13 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[13]); SQRADDAC(a[1], a[12]); SQRADDAC(a[2], a[11]); SQRADDAC(a[3], a[10]); SQRADDAC(a[4], a[9]); SQRADDAC(a[5], a[8]); SQRADDAC(a[6], a[7]); SQRADDDB; + COMBA_STORE(b[13]); + + /* output 14 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[14]); SQRADDAC(a[1], a[13]); SQRADDAC(a[2], a[12]); SQRADDAC(a[3], a[11]); SQRADDAC(a[4], a[10]); SQRADDAC(a[5], a[9]); SQRADDAC(a[6], a[8]); SQRADDDB; SQRADD(a[7], a[7]); + COMBA_STORE(b[14]); + + /* output 15 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[15]); SQRADDAC(a[1], a[14]); SQRADDAC(a[2], a[13]); SQRADDAC(a[3], a[12]); SQRADDAC(a[4], a[11]); SQRADDAC(a[5], a[10]); SQRADDAC(a[6], a[9]); SQRADDAC(a[7], a[8]); SQRADDDB; + COMBA_STORE(b[15]); + + /* output 16 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[16]); SQRADDAC(a[1], a[15]); SQRADDAC(a[2], a[14]); SQRADDAC(a[3], a[13]); SQRADDAC(a[4], a[12]); SQRADDAC(a[5], a[11]); SQRADDAC(a[6], a[10]); SQRADDAC(a[7], a[9]); SQRADDDB; SQRADD(a[8], a[8]); + COMBA_STORE(b[16]); + + /* output 17 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[17]); SQRADDAC(a[1], a[16]); SQRADDAC(a[2], a[15]); SQRADDAC(a[3], a[14]); SQRADDAC(a[4], a[13]); SQRADDAC(a[5], a[12]); SQRADDAC(a[6], a[11]); SQRADDAC(a[7], a[10]); SQRADDAC(a[8], a[9]); SQRADDDB; + COMBA_STORE(b[17]); + + /* output 18 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[18]); SQRADDAC(a[1], a[17]); SQRADDAC(a[2], a[16]); SQRADDAC(a[3], a[15]); SQRADDAC(a[4], a[14]); SQRADDAC(a[5], a[13]); SQRADDAC(a[6], a[12]); SQRADDAC(a[7], a[11]); SQRADDAC(a[8], a[10]); SQRADDDB; SQRADD(a[9], a[9]); + COMBA_STORE(b[18]); + + /* output 19 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[19]); SQRADDAC(a[1], a[18]); SQRADDAC(a[2], a[17]); SQRADDAC(a[3], a[16]); SQRADDAC(a[4], a[15]); SQRADDAC(a[5], a[14]); SQRADDAC(a[6], a[13]); SQRADDAC(a[7], a[12]); SQRADDAC(a[8], a[11]); SQRADDAC(a[9], a[10]); SQRADDDB; + COMBA_STORE(b[19]); + + /* output 20 */ + CARRY_FORWARD; + SQRADDSC(a[1], a[19]); SQRADDAC(a[2], a[18]); SQRADDAC(a[3], a[17]); SQRADDAC(a[4], a[16]); SQRADDAC(a[5], a[15]); SQRADDAC(a[6], a[14]); SQRADDAC(a[7], a[13]); SQRADDAC(a[8], a[12]); SQRADDAC(a[9], a[11]); SQRADDDB; SQRADD(a[10], a[10]); + COMBA_STORE(b[20]); + + /* output 21 */ + CARRY_FORWARD; + SQRADDSC(a[2], a[19]); SQRADDAC(a[3], a[18]); SQRADDAC(a[4], a[17]); SQRADDAC(a[5], a[16]); SQRADDAC(a[6], a[15]); SQRADDAC(a[7], a[14]); SQRADDAC(a[8], a[13]); SQRADDAC(a[9], a[12]); SQRADDAC(a[10], a[11]); SQRADDDB; + COMBA_STORE(b[21]); + + /* output 22 */ + CARRY_FORWARD; + SQRADDSC(a[3], a[19]); SQRADDAC(a[4], a[18]); SQRADDAC(a[5], a[17]); SQRADDAC(a[6], a[16]); SQRADDAC(a[7], a[15]); SQRADDAC(a[8], a[14]); SQRADDAC(a[9], a[13]); SQRADDAC(a[10], a[12]); SQRADDDB; SQRADD(a[11], a[11]); + COMBA_STORE(b[22]); + + /* output 23 */ + CARRY_FORWARD; + SQRADDSC(a[4], a[19]); SQRADDAC(a[5], a[18]); SQRADDAC(a[6], a[17]); SQRADDAC(a[7], a[16]); SQRADDAC(a[8], a[15]); SQRADDAC(a[9], a[14]); SQRADDAC(a[10], a[13]); SQRADDAC(a[11], a[12]); SQRADDDB; + COMBA_STORE(b[23]); + + /* output 24 */ + CARRY_FORWARD; + SQRADDSC(a[5], a[19]); SQRADDAC(a[6], a[18]); SQRADDAC(a[7], a[17]); SQRADDAC(a[8], a[16]); SQRADDAC(a[9], a[15]); SQRADDAC(a[10], a[14]); SQRADDAC(a[11], a[13]); SQRADDDB; SQRADD(a[12], a[12]); + COMBA_STORE(b[24]); + + /* output 25 */ + CARRY_FORWARD; + SQRADDSC(a[6], a[19]); SQRADDAC(a[7], a[18]); SQRADDAC(a[8], a[17]); SQRADDAC(a[9], a[16]); SQRADDAC(a[10], a[15]); SQRADDAC(a[11], a[14]); SQRADDAC(a[12], a[13]); SQRADDDB; + COMBA_STORE(b[25]); + + /* output 26 */ + CARRY_FORWARD; + SQRADDSC(a[7], a[19]); SQRADDAC(a[8], a[18]); SQRADDAC(a[9], a[17]); SQRADDAC(a[10], a[16]); SQRADDAC(a[11], a[15]); SQRADDAC(a[12], a[14]); SQRADDDB; SQRADD(a[13], a[13]); + COMBA_STORE(b[26]); + + /* output 27 */ + CARRY_FORWARD; + SQRADDSC(a[8], a[19]); SQRADDAC(a[9], a[18]); SQRADDAC(a[10], a[17]); SQRADDAC(a[11], a[16]); SQRADDAC(a[12], a[15]); SQRADDAC(a[13], a[14]); SQRADDDB; + COMBA_STORE(b[27]); + + /* output 28 */ + CARRY_FORWARD; + SQRADDSC(a[9], a[19]); SQRADDAC(a[10], a[18]); SQRADDAC(a[11], a[17]); SQRADDAC(a[12], a[16]); SQRADDAC(a[13], a[15]); SQRADDDB; SQRADD(a[14], a[14]); + COMBA_STORE(b[28]); + + /* output 29 */ + CARRY_FORWARD; + SQRADDSC(a[10], a[19]); SQRADDAC(a[11], a[18]); SQRADDAC(a[12], a[17]); SQRADDAC(a[13], a[16]); SQRADDAC(a[14], a[15]); SQRADDDB; + COMBA_STORE(b[29]); + + /* output 30 */ + CARRY_FORWARD; + SQRADDSC(a[11], a[19]); SQRADDAC(a[12], a[18]); SQRADDAC(a[13], a[17]); SQRADDAC(a[14], a[16]); SQRADDDB; SQRADD(a[15], a[15]); + COMBA_STORE(b[30]); + + /* output 31 */ + CARRY_FORWARD; + SQRADDSC(a[12], a[19]); SQRADDAC(a[13], a[18]); SQRADDAC(a[14], a[17]); SQRADDAC(a[15], a[16]); SQRADDDB; + COMBA_STORE(b[31]); + + /* output 32 */ + CARRY_FORWARD; + SQRADDSC(a[13], a[19]); SQRADDAC(a[14], a[18]); SQRADDAC(a[15], a[17]); SQRADDDB; SQRADD(a[16], a[16]); + COMBA_STORE(b[32]); + + /* output 33 */ + CARRY_FORWARD; + SQRADDSC(a[14], a[19]); SQRADDAC(a[15], a[18]); SQRADDAC(a[16], a[17]); SQRADDDB; + COMBA_STORE(b[33]); + + /* output 34 */ + CARRY_FORWARD; + SQRADD2(a[15], a[19]); SQRADD2(a[16], a[18]); SQRADD(a[17], a[17]); + COMBA_STORE(b[34]); + + /* output 35 */ + CARRY_FORWARD; + SQRADD2(a[16], a[19]); SQRADD2(a[17], a[18]); + COMBA_STORE(b[35]); + + /* output 36 */ + CARRY_FORWARD; + SQRADD2(a[17], a[19]); SQRADD(a[18], a[18]); + COMBA_STORE(b[36]); + + /* output 37 */ + CARRY_FORWARD; + SQRADD2(a[18], a[19]); + COMBA_STORE(b[37]); + + /* output 38 */ + CARRY_FORWARD; + SQRADD(a[19], a[19]); + COMBA_STORE(b[38]); + COMBA_STORE2(b[39]); + COMBA_FINI; + + B->used = 40; + B->sign = FP_ZPOS; + memcpy(B->dp, b, 40 * sizeof(fp_digit)); + fp_clamp(B); +} +#endif + + diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_24.i b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_24.i new file mode 100644 index 000000000..35092def4 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_24.i @@ -0,0 +1,280 @@ +/* fp_sqr_comba_24.i + * + * Copyright (C) 2006-2011 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifdef TFM_SQR24 +void fp_sqr_comba24(fp_int *A, fp_int *B) +{ + fp_digit *a, b[48], c0, c1, c2, sc0, sc1, sc2; +#ifdef TFM_ISO + fp_word tt; +#endif + + a = A->dp; + COMBA_START; + + /* clear carries */ + CLEAR_CARRY; + + /* output 0 */ + SQRADD(a[0],a[0]); + COMBA_STORE(b[0]); + + /* output 1 */ + CARRY_FORWARD; + SQRADD2(a[0], a[1]); + COMBA_STORE(b[1]); + + /* output 2 */ + CARRY_FORWARD; + SQRADD2(a[0], a[2]); SQRADD(a[1], a[1]); + COMBA_STORE(b[2]); + + /* output 3 */ + CARRY_FORWARD; + SQRADD2(a[0], a[3]); SQRADD2(a[1], a[2]); + COMBA_STORE(b[3]); + + /* output 4 */ + CARRY_FORWARD; + SQRADD2(a[0], a[4]); SQRADD2(a[1], a[3]); SQRADD(a[2], a[2]); + COMBA_STORE(b[4]); + + /* output 5 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[5]); SQRADDAC(a[1], a[4]); SQRADDAC(a[2], a[3]); SQRADDDB; + COMBA_STORE(b[5]); + + /* output 6 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[6]); SQRADDAC(a[1], a[5]); SQRADDAC(a[2], a[4]); SQRADDDB; SQRADD(a[3], a[3]); + COMBA_STORE(b[6]); + + /* output 7 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[7]); SQRADDAC(a[1], a[6]); SQRADDAC(a[2], a[5]); SQRADDAC(a[3], a[4]); SQRADDDB; + COMBA_STORE(b[7]); + + /* output 8 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[8]); SQRADDAC(a[1], a[7]); SQRADDAC(a[2], a[6]); SQRADDAC(a[3], a[5]); SQRADDDB; SQRADD(a[4], a[4]); + COMBA_STORE(b[8]); + + /* output 9 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[9]); SQRADDAC(a[1], a[8]); SQRADDAC(a[2], a[7]); SQRADDAC(a[3], a[6]); SQRADDAC(a[4], a[5]); SQRADDDB; + COMBA_STORE(b[9]); + + /* output 10 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[10]); SQRADDAC(a[1], a[9]); SQRADDAC(a[2], a[8]); SQRADDAC(a[3], a[7]); SQRADDAC(a[4], a[6]); SQRADDDB; SQRADD(a[5], a[5]); + COMBA_STORE(b[10]); + + /* output 11 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[11]); SQRADDAC(a[1], a[10]); SQRADDAC(a[2], a[9]); SQRADDAC(a[3], a[8]); SQRADDAC(a[4], a[7]); SQRADDAC(a[5], a[6]); SQRADDDB; + COMBA_STORE(b[11]); + + /* output 12 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[12]); SQRADDAC(a[1], a[11]); SQRADDAC(a[2], a[10]); SQRADDAC(a[3], a[9]); SQRADDAC(a[4], a[8]); SQRADDAC(a[5], a[7]); SQRADDDB; SQRADD(a[6], a[6]); + COMBA_STORE(b[12]); + + /* output 13 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[13]); SQRADDAC(a[1], a[12]); SQRADDAC(a[2], a[11]); SQRADDAC(a[3], a[10]); SQRADDAC(a[4], a[9]); SQRADDAC(a[5], a[8]); SQRADDAC(a[6], a[7]); SQRADDDB; + COMBA_STORE(b[13]); + + /* output 14 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[14]); SQRADDAC(a[1], a[13]); SQRADDAC(a[2], a[12]); SQRADDAC(a[3], a[11]); SQRADDAC(a[4], a[10]); SQRADDAC(a[5], a[9]); SQRADDAC(a[6], a[8]); SQRADDDB; SQRADD(a[7], a[7]); + COMBA_STORE(b[14]); + + /* output 15 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[15]); SQRADDAC(a[1], a[14]); SQRADDAC(a[2], a[13]); SQRADDAC(a[3], a[12]); SQRADDAC(a[4], a[11]); SQRADDAC(a[5], a[10]); SQRADDAC(a[6], a[9]); SQRADDAC(a[7], a[8]); SQRADDDB; + COMBA_STORE(b[15]); + + /* output 16 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[16]); SQRADDAC(a[1], a[15]); SQRADDAC(a[2], a[14]); SQRADDAC(a[3], a[13]); SQRADDAC(a[4], a[12]); SQRADDAC(a[5], a[11]); SQRADDAC(a[6], a[10]); SQRADDAC(a[7], a[9]); SQRADDDB; SQRADD(a[8], a[8]); + COMBA_STORE(b[16]); + + /* output 17 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[17]); SQRADDAC(a[1], a[16]); SQRADDAC(a[2], a[15]); SQRADDAC(a[3], a[14]); SQRADDAC(a[4], a[13]); SQRADDAC(a[5], a[12]); SQRADDAC(a[6], a[11]); SQRADDAC(a[7], a[10]); SQRADDAC(a[8], a[9]); SQRADDDB; + COMBA_STORE(b[17]); + + /* output 18 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[18]); SQRADDAC(a[1], a[17]); SQRADDAC(a[2], a[16]); SQRADDAC(a[3], a[15]); SQRADDAC(a[4], a[14]); SQRADDAC(a[5], a[13]); SQRADDAC(a[6], a[12]); SQRADDAC(a[7], a[11]); SQRADDAC(a[8], a[10]); SQRADDDB; SQRADD(a[9], a[9]); + COMBA_STORE(b[18]); + + /* output 19 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[19]); SQRADDAC(a[1], a[18]); SQRADDAC(a[2], a[17]); SQRADDAC(a[3], a[16]); SQRADDAC(a[4], a[15]); SQRADDAC(a[5], a[14]); SQRADDAC(a[6], a[13]); SQRADDAC(a[7], a[12]); SQRADDAC(a[8], a[11]); SQRADDAC(a[9], a[10]); SQRADDDB; + COMBA_STORE(b[19]); + + /* output 20 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[20]); SQRADDAC(a[1], a[19]); SQRADDAC(a[2], a[18]); SQRADDAC(a[3], a[17]); SQRADDAC(a[4], a[16]); SQRADDAC(a[5], a[15]); SQRADDAC(a[6], a[14]); SQRADDAC(a[7], a[13]); SQRADDAC(a[8], a[12]); SQRADDAC(a[9], a[11]); SQRADDDB; SQRADD(a[10], a[10]); + COMBA_STORE(b[20]); + + /* output 21 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[21]); SQRADDAC(a[1], a[20]); SQRADDAC(a[2], a[19]); SQRADDAC(a[3], a[18]); SQRADDAC(a[4], a[17]); SQRADDAC(a[5], a[16]); SQRADDAC(a[6], a[15]); SQRADDAC(a[7], a[14]); SQRADDAC(a[8], a[13]); SQRADDAC(a[9], a[12]); SQRADDAC(a[10], a[11]); SQRADDDB; + COMBA_STORE(b[21]); + + /* output 22 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[22]); SQRADDAC(a[1], a[21]); SQRADDAC(a[2], a[20]); SQRADDAC(a[3], a[19]); SQRADDAC(a[4], a[18]); SQRADDAC(a[5], a[17]); SQRADDAC(a[6], a[16]); SQRADDAC(a[7], a[15]); SQRADDAC(a[8], a[14]); SQRADDAC(a[9], a[13]); SQRADDAC(a[10], a[12]); SQRADDDB; SQRADD(a[11], a[11]); + COMBA_STORE(b[22]); + + /* output 23 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[23]); SQRADDAC(a[1], a[22]); SQRADDAC(a[2], a[21]); SQRADDAC(a[3], a[20]); SQRADDAC(a[4], a[19]); SQRADDAC(a[5], a[18]); SQRADDAC(a[6], a[17]); SQRADDAC(a[7], a[16]); SQRADDAC(a[8], a[15]); SQRADDAC(a[9], a[14]); SQRADDAC(a[10], a[13]); SQRADDAC(a[11], a[12]); SQRADDDB; + COMBA_STORE(b[23]); + + /* output 24 */ + CARRY_FORWARD; + SQRADDSC(a[1], a[23]); SQRADDAC(a[2], a[22]); SQRADDAC(a[3], a[21]); SQRADDAC(a[4], a[20]); SQRADDAC(a[5], a[19]); SQRADDAC(a[6], a[18]); SQRADDAC(a[7], a[17]); SQRADDAC(a[8], a[16]); SQRADDAC(a[9], a[15]); SQRADDAC(a[10], a[14]); SQRADDAC(a[11], a[13]); SQRADDDB; SQRADD(a[12], a[12]); + COMBA_STORE(b[24]); + + /* output 25 */ + CARRY_FORWARD; + SQRADDSC(a[2], a[23]); SQRADDAC(a[3], a[22]); SQRADDAC(a[4], a[21]); SQRADDAC(a[5], a[20]); SQRADDAC(a[6], a[19]); SQRADDAC(a[7], a[18]); SQRADDAC(a[8], a[17]); SQRADDAC(a[9], a[16]); SQRADDAC(a[10], a[15]); SQRADDAC(a[11], a[14]); SQRADDAC(a[12], a[13]); SQRADDDB; + COMBA_STORE(b[25]); + + /* output 26 */ + CARRY_FORWARD; + SQRADDSC(a[3], a[23]); SQRADDAC(a[4], a[22]); SQRADDAC(a[5], a[21]); SQRADDAC(a[6], a[20]); SQRADDAC(a[7], a[19]); SQRADDAC(a[8], a[18]); SQRADDAC(a[9], a[17]); SQRADDAC(a[10], a[16]); SQRADDAC(a[11], a[15]); SQRADDAC(a[12], a[14]); SQRADDDB; SQRADD(a[13], a[13]); + COMBA_STORE(b[26]); + + /* output 27 */ + CARRY_FORWARD; + SQRADDSC(a[4], a[23]); SQRADDAC(a[5], a[22]); SQRADDAC(a[6], a[21]); SQRADDAC(a[7], a[20]); SQRADDAC(a[8], a[19]); SQRADDAC(a[9], a[18]); SQRADDAC(a[10], a[17]); SQRADDAC(a[11], a[16]); SQRADDAC(a[12], a[15]); SQRADDAC(a[13], a[14]); SQRADDDB; + COMBA_STORE(b[27]); + + /* output 28 */ + CARRY_FORWARD; + SQRADDSC(a[5], a[23]); SQRADDAC(a[6], a[22]); SQRADDAC(a[7], a[21]); SQRADDAC(a[8], a[20]); SQRADDAC(a[9], a[19]); SQRADDAC(a[10], a[18]); SQRADDAC(a[11], a[17]); SQRADDAC(a[12], a[16]); SQRADDAC(a[13], a[15]); SQRADDDB; SQRADD(a[14], a[14]); + COMBA_STORE(b[28]); + + /* output 29 */ + CARRY_FORWARD; + SQRADDSC(a[6], a[23]); SQRADDAC(a[7], a[22]); SQRADDAC(a[8], a[21]); SQRADDAC(a[9], a[20]); SQRADDAC(a[10], a[19]); SQRADDAC(a[11], a[18]); SQRADDAC(a[12], a[17]); SQRADDAC(a[13], a[16]); SQRADDAC(a[14], a[15]); SQRADDDB; + COMBA_STORE(b[29]); + + /* output 30 */ + CARRY_FORWARD; + SQRADDSC(a[7], a[23]); SQRADDAC(a[8], a[22]); SQRADDAC(a[9], a[21]); SQRADDAC(a[10], a[20]); SQRADDAC(a[11], a[19]); SQRADDAC(a[12], a[18]); SQRADDAC(a[13], a[17]); SQRADDAC(a[14], a[16]); SQRADDDB; SQRADD(a[15], a[15]); + COMBA_STORE(b[30]); + + /* output 31 */ + CARRY_FORWARD; + SQRADDSC(a[8], a[23]); SQRADDAC(a[9], a[22]); SQRADDAC(a[10], a[21]); SQRADDAC(a[11], a[20]); SQRADDAC(a[12], a[19]); SQRADDAC(a[13], a[18]); SQRADDAC(a[14], a[17]); SQRADDAC(a[15], a[16]); SQRADDDB; + COMBA_STORE(b[31]); + + /* output 32 */ + CARRY_FORWARD; + SQRADDSC(a[9], a[23]); SQRADDAC(a[10], a[22]); SQRADDAC(a[11], a[21]); SQRADDAC(a[12], a[20]); SQRADDAC(a[13], a[19]); SQRADDAC(a[14], a[18]); SQRADDAC(a[15], a[17]); SQRADDDB; SQRADD(a[16], a[16]); + COMBA_STORE(b[32]); + + /* output 33 */ + CARRY_FORWARD; + SQRADDSC(a[10], a[23]); SQRADDAC(a[11], a[22]); SQRADDAC(a[12], a[21]); SQRADDAC(a[13], a[20]); SQRADDAC(a[14], a[19]); SQRADDAC(a[15], a[18]); SQRADDAC(a[16], a[17]); SQRADDDB; + COMBA_STORE(b[33]); + + /* output 34 */ + CARRY_FORWARD; + SQRADDSC(a[11], a[23]); SQRADDAC(a[12], a[22]); SQRADDAC(a[13], a[21]); SQRADDAC(a[14], a[20]); SQRADDAC(a[15], a[19]); SQRADDAC(a[16], a[18]); SQRADDDB; SQRADD(a[17], a[17]); + COMBA_STORE(b[34]); + + /* output 35 */ + CARRY_FORWARD; + SQRADDSC(a[12], a[23]); SQRADDAC(a[13], a[22]); SQRADDAC(a[14], a[21]); SQRADDAC(a[15], a[20]); SQRADDAC(a[16], a[19]); SQRADDAC(a[17], a[18]); SQRADDDB; + COMBA_STORE(b[35]); + + /* output 36 */ + CARRY_FORWARD; + SQRADDSC(a[13], a[23]); SQRADDAC(a[14], a[22]); SQRADDAC(a[15], a[21]); SQRADDAC(a[16], a[20]); SQRADDAC(a[17], a[19]); SQRADDDB; SQRADD(a[18], a[18]); + COMBA_STORE(b[36]); + + /* output 37 */ + CARRY_FORWARD; + SQRADDSC(a[14], a[23]); SQRADDAC(a[15], a[22]); SQRADDAC(a[16], a[21]); SQRADDAC(a[17], a[20]); SQRADDAC(a[18], a[19]); SQRADDDB; + COMBA_STORE(b[37]); + + /* output 38 */ + CARRY_FORWARD; + SQRADDSC(a[15], a[23]); SQRADDAC(a[16], a[22]); SQRADDAC(a[17], a[21]); SQRADDAC(a[18], a[20]); SQRADDDB; SQRADD(a[19], a[19]); + COMBA_STORE(b[38]); + + /* output 39 */ + CARRY_FORWARD; + SQRADDSC(a[16], a[23]); SQRADDAC(a[17], a[22]); SQRADDAC(a[18], a[21]); SQRADDAC(a[19], a[20]); SQRADDDB; + COMBA_STORE(b[39]); + + /* output 40 */ + CARRY_FORWARD; + SQRADDSC(a[17], a[23]); SQRADDAC(a[18], a[22]); SQRADDAC(a[19], a[21]); SQRADDDB; SQRADD(a[20], a[20]); + COMBA_STORE(b[40]); + + /* output 41 */ + CARRY_FORWARD; + SQRADDSC(a[18], a[23]); SQRADDAC(a[19], a[22]); SQRADDAC(a[20], a[21]); SQRADDDB; + COMBA_STORE(b[41]); + + /* output 42 */ + CARRY_FORWARD; + SQRADD2(a[19], a[23]); SQRADD2(a[20], a[22]); SQRADD(a[21], a[21]); + COMBA_STORE(b[42]); + + /* output 43 */ + CARRY_FORWARD; + SQRADD2(a[20], a[23]); SQRADD2(a[21], a[22]); + COMBA_STORE(b[43]); + + /* output 44 */ + CARRY_FORWARD; + SQRADD2(a[21], a[23]); SQRADD(a[22], a[22]); + COMBA_STORE(b[44]); + + /* output 45 */ + CARRY_FORWARD; + SQRADD2(a[22], a[23]); + COMBA_STORE(b[45]); + + /* output 46 */ + CARRY_FORWARD; + SQRADD(a[23], a[23]); + COMBA_STORE(b[46]); + COMBA_STORE2(b[47]); + COMBA_FINI; + + B->used = 48; + B->sign = FP_ZPOS; + memcpy(B->dp, b, 48 * sizeof(fp_digit)); + fp_clamp(B); +} +#endif + + diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_28.i b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_28.i new file mode 100644 index 000000000..7164f3946 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_28.i @@ -0,0 +1,320 @@ +/* fp_sqr_comba_28.i + * + * Copyright (C) 2006-2011 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifdef TFM_SQR28 +void fp_sqr_comba28(fp_int *A, fp_int *B) +{ + fp_digit *a, b[56], c0, c1, c2, sc0, sc1, sc2; +#ifdef TFM_ISO + fp_word tt; +#endif + + a = A->dp; + COMBA_START; + + /* clear carries */ + CLEAR_CARRY; + + /* output 0 */ + SQRADD(a[0],a[0]); + COMBA_STORE(b[0]); + + /* output 1 */ + CARRY_FORWARD; + SQRADD2(a[0], a[1]); + COMBA_STORE(b[1]); + + /* output 2 */ + CARRY_FORWARD; + SQRADD2(a[0], a[2]); SQRADD(a[1], a[1]); + COMBA_STORE(b[2]); + + /* output 3 */ + CARRY_FORWARD; + SQRADD2(a[0], a[3]); SQRADD2(a[1], a[2]); + COMBA_STORE(b[3]); + + /* output 4 */ + CARRY_FORWARD; + SQRADD2(a[0], a[4]); SQRADD2(a[1], a[3]); SQRADD(a[2], a[2]); + COMBA_STORE(b[4]); + + /* output 5 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[5]); SQRADDAC(a[1], a[4]); SQRADDAC(a[2], a[3]); SQRADDDB; + COMBA_STORE(b[5]); + + /* output 6 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[6]); SQRADDAC(a[1], a[5]); SQRADDAC(a[2], a[4]); SQRADDDB; SQRADD(a[3], a[3]); + COMBA_STORE(b[6]); + + /* output 7 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[7]); SQRADDAC(a[1], a[6]); SQRADDAC(a[2], a[5]); SQRADDAC(a[3], a[4]); SQRADDDB; + COMBA_STORE(b[7]); + + /* output 8 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[8]); SQRADDAC(a[1], a[7]); SQRADDAC(a[2], a[6]); SQRADDAC(a[3], a[5]); SQRADDDB; SQRADD(a[4], a[4]); + COMBA_STORE(b[8]); + + /* output 9 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[9]); SQRADDAC(a[1], a[8]); SQRADDAC(a[2], a[7]); SQRADDAC(a[3], a[6]); SQRADDAC(a[4], a[5]); SQRADDDB; + COMBA_STORE(b[9]); + + /* output 10 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[10]); SQRADDAC(a[1], a[9]); SQRADDAC(a[2], a[8]); SQRADDAC(a[3], a[7]); SQRADDAC(a[4], a[6]); SQRADDDB; SQRADD(a[5], a[5]); + COMBA_STORE(b[10]); + + /* output 11 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[11]); SQRADDAC(a[1], a[10]); SQRADDAC(a[2], a[9]); SQRADDAC(a[3], a[8]); SQRADDAC(a[4], a[7]); SQRADDAC(a[5], a[6]); SQRADDDB; + COMBA_STORE(b[11]); + + /* output 12 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[12]); SQRADDAC(a[1], a[11]); SQRADDAC(a[2], a[10]); SQRADDAC(a[3], a[9]); SQRADDAC(a[4], a[8]); SQRADDAC(a[5], a[7]); SQRADDDB; SQRADD(a[6], a[6]); + COMBA_STORE(b[12]); + + /* output 13 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[13]); SQRADDAC(a[1], a[12]); SQRADDAC(a[2], a[11]); SQRADDAC(a[3], a[10]); SQRADDAC(a[4], a[9]); SQRADDAC(a[5], a[8]); SQRADDAC(a[6], a[7]); SQRADDDB; + COMBA_STORE(b[13]); + + /* output 14 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[14]); SQRADDAC(a[1], a[13]); SQRADDAC(a[2], a[12]); SQRADDAC(a[3], a[11]); SQRADDAC(a[4], a[10]); SQRADDAC(a[5], a[9]); SQRADDAC(a[6], a[8]); SQRADDDB; SQRADD(a[7], a[7]); + COMBA_STORE(b[14]); + + /* output 15 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[15]); SQRADDAC(a[1], a[14]); SQRADDAC(a[2], a[13]); SQRADDAC(a[3], a[12]); SQRADDAC(a[4], a[11]); SQRADDAC(a[5], a[10]); SQRADDAC(a[6], a[9]); SQRADDAC(a[7], a[8]); SQRADDDB; + COMBA_STORE(b[15]); + + /* output 16 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[16]); SQRADDAC(a[1], a[15]); SQRADDAC(a[2], a[14]); SQRADDAC(a[3], a[13]); SQRADDAC(a[4], a[12]); SQRADDAC(a[5], a[11]); SQRADDAC(a[6], a[10]); SQRADDAC(a[7], a[9]); SQRADDDB; SQRADD(a[8], a[8]); + COMBA_STORE(b[16]); + + /* output 17 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[17]); SQRADDAC(a[1], a[16]); SQRADDAC(a[2], a[15]); SQRADDAC(a[3], a[14]); SQRADDAC(a[4], a[13]); SQRADDAC(a[5], a[12]); SQRADDAC(a[6], a[11]); SQRADDAC(a[7], a[10]); SQRADDAC(a[8], a[9]); SQRADDDB; + COMBA_STORE(b[17]); + + /* output 18 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[18]); SQRADDAC(a[1], a[17]); SQRADDAC(a[2], a[16]); SQRADDAC(a[3], a[15]); SQRADDAC(a[4], a[14]); SQRADDAC(a[5], a[13]); SQRADDAC(a[6], a[12]); SQRADDAC(a[7], a[11]); SQRADDAC(a[8], a[10]); SQRADDDB; SQRADD(a[9], a[9]); + COMBA_STORE(b[18]); + + /* output 19 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[19]); SQRADDAC(a[1], a[18]); SQRADDAC(a[2], a[17]); SQRADDAC(a[3], a[16]); SQRADDAC(a[4], a[15]); SQRADDAC(a[5], a[14]); SQRADDAC(a[6], a[13]); SQRADDAC(a[7], a[12]); SQRADDAC(a[8], a[11]); SQRADDAC(a[9], a[10]); SQRADDDB; + COMBA_STORE(b[19]); + + /* output 20 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[20]); SQRADDAC(a[1], a[19]); SQRADDAC(a[2], a[18]); SQRADDAC(a[3], a[17]); SQRADDAC(a[4], a[16]); SQRADDAC(a[5], a[15]); SQRADDAC(a[6], a[14]); SQRADDAC(a[7], a[13]); SQRADDAC(a[8], a[12]); SQRADDAC(a[9], a[11]); SQRADDDB; SQRADD(a[10], a[10]); + COMBA_STORE(b[20]); + + /* output 21 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[21]); SQRADDAC(a[1], a[20]); SQRADDAC(a[2], a[19]); SQRADDAC(a[3], a[18]); SQRADDAC(a[4], a[17]); SQRADDAC(a[5], a[16]); SQRADDAC(a[6], a[15]); SQRADDAC(a[7], a[14]); SQRADDAC(a[8], a[13]); SQRADDAC(a[9], a[12]); SQRADDAC(a[10], a[11]); SQRADDDB; + COMBA_STORE(b[21]); + + /* output 22 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[22]); SQRADDAC(a[1], a[21]); SQRADDAC(a[2], a[20]); SQRADDAC(a[3], a[19]); SQRADDAC(a[4], a[18]); SQRADDAC(a[5], a[17]); SQRADDAC(a[6], a[16]); SQRADDAC(a[7], a[15]); SQRADDAC(a[8], a[14]); SQRADDAC(a[9], a[13]); SQRADDAC(a[10], a[12]); SQRADDDB; SQRADD(a[11], a[11]); + COMBA_STORE(b[22]); + + /* output 23 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[23]); SQRADDAC(a[1], a[22]); SQRADDAC(a[2], a[21]); SQRADDAC(a[3], a[20]); SQRADDAC(a[4], a[19]); SQRADDAC(a[5], a[18]); SQRADDAC(a[6], a[17]); SQRADDAC(a[7], a[16]); SQRADDAC(a[8], a[15]); SQRADDAC(a[9], a[14]); SQRADDAC(a[10], a[13]); SQRADDAC(a[11], a[12]); SQRADDDB; + COMBA_STORE(b[23]); + + /* output 24 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[24]); SQRADDAC(a[1], a[23]); SQRADDAC(a[2], a[22]); SQRADDAC(a[3], a[21]); SQRADDAC(a[4], a[20]); SQRADDAC(a[5], a[19]); SQRADDAC(a[6], a[18]); SQRADDAC(a[7], a[17]); SQRADDAC(a[8], a[16]); SQRADDAC(a[9], a[15]); SQRADDAC(a[10], a[14]); SQRADDAC(a[11], a[13]); SQRADDDB; SQRADD(a[12], a[12]); + COMBA_STORE(b[24]); + + /* output 25 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[25]); SQRADDAC(a[1], a[24]); SQRADDAC(a[2], a[23]); SQRADDAC(a[3], a[22]); SQRADDAC(a[4], a[21]); SQRADDAC(a[5], a[20]); SQRADDAC(a[6], a[19]); SQRADDAC(a[7], a[18]); SQRADDAC(a[8], a[17]); SQRADDAC(a[9], a[16]); SQRADDAC(a[10], a[15]); SQRADDAC(a[11], a[14]); SQRADDAC(a[12], a[13]); SQRADDDB; + COMBA_STORE(b[25]); + + /* output 26 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[26]); SQRADDAC(a[1], a[25]); SQRADDAC(a[2], a[24]); SQRADDAC(a[3], a[23]); SQRADDAC(a[4], a[22]); SQRADDAC(a[5], a[21]); SQRADDAC(a[6], a[20]); SQRADDAC(a[7], a[19]); SQRADDAC(a[8], a[18]); SQRADDAC(a[9], a[17]); SQRADDAC(a[10], a[16]); SQRADDAC(a[11], a[15]); SQRADDAC(a[12], a[14]); SQRADDDB; SQRADD(a[13], a[13]); + COMBA_STORE(b[26]); + + /* output 27 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[27]); SQRADDAC(a[1], a[26]); SQRADDAC(a[2], a[25]); SQRADDAC(a[3], a[24]); SQRADDAC(a[4], a[23]); SQRADDAC(a[5], a[22]); SQRADDAC(a[6], a[21]); SQRADDAC(a[7], a[20]); SQRADDAC(a[8], a[19]); SQRADDAC(a[9], a[18]); SQRADDAC(a[10], a[17]); SQRADDAC(a[11], a[16]); SQRADDAC(a[12], a[15]); SQRADDAC(a[13], a[14]); SQRADDDB; + COMBA_STORE(b[27]); + + /* output 28 */ + CARRY_FORWARD; + SQRADDSC(a[1], a[27]); SQRADDAC(a[2], a[26]); SQRADDAC(a[3], a[25]); SQRADDAC(a[4], a[24]); SQRADDAC(a[5], a[23]); SQRADDAC(a[6], a[22]); SQRADDAC(a[7], a[21]); SQRADDAC(a[8], a[20]); SQRADDAC(a[9], a[19]); SQRADDAC(a[10], a[18]); SQRADDAC(a[11], a[17]); SQRADDAC(a[12], a[16]); SQRADDAC(a[13], a[15]); SQRADDDB; SQRADD(a[14], a[14]); + COMBA_STORE(b[28]); + + /* output 29 */ + CARRY_FORWARD; + SQRADDSC(a[2], a[27]); SQRADDAC(a[3], a[26]); SQRADDAC(a[4], a[25]); SQRADDAC(a[5], a[24]); SQRADDAC(a[6], a[23]); SQRADDAC(a[7], a[22]); SQRADDAC(a[8], a[21]); SQRADDAC(a[9], a[20]); SQRADDAC(a[10], a[19]); SQRADDAC(a[11], a[18]); SQRADDAC(a[12], a[17]); SQRADDAC(a[13], a[16]); SQRADDAC(a[14], a[15]); SQRADDDB; + COMBA_STORE(b[29]); + + /* output 30 */ + CARRY_FORWARD; + SQRADDSC(a[3], a[27]); SQRADDAC(a[4], a[26]); SQRADDAC(a[5], a[25]); SQRADDAC(a[6], a[24]); SQRADDAC(a[7], a[23]); SQRADDAC(a[8], a[22]); SQRADDAC(a[9], a[21]); SQRADDAC(a[10], a[20]); SQRADDAC(a[11], a[19]); SQRADDAC(a[12], a[18]); SQRADDAC(a[13], a[17]); SQRADDAC(a[14], a[16]); SQRADDDB; SQRADD(a[15], a[15]); + COMBA_STORE(b[30]); + + /* output 31 */ + CARRY_FORWARD; + SQRADDSC(a[4], a[27]); SQRADDAC(a[5], a[26]); SQRADDAC(a[6], a[25]); SQRADDAC(a[7], a[24]); SQRADDAC(a[8], a[23]); SQRADDAC(a[9], a[22]); SQRADDAC(a[10], a[21]); SQRADDAC(a[11], a[20]); SQRADDAC(a[12], a[19]); SQRADDAC(a[13], a[18]); SQRADDAC(a[14], a[17]); SQRADDAC(a[15], a[16]); SQRADDDB; + COMBA_STORE(b[31]); + + /* output 32 */ + CARRY_FORWARD; + SQRADDSC(a[5], a[27]); SQRADDAC(a[6], a[26]); SQRADDAC(a[7], a[25]); SQRADDAC(a[8], a[24]); SQRADDAC(a[9], a[23]); SQRADDAC(a[10], a[22]); SQRADDAC(a[11], a[21]); SQRADDAC(a[12], a[20]); SQRADDAC(a[13], a[19]); SQRADDAC(a[14], a[18]); SQRADDAC(a[15], a[17]); SQRADDDB; SQRADD(a[16], a[16]); + COMBA_STORE(b[32]); + + /* output 33 */ + CARRY_FORWARD; + SQRADDSC(a[6], a[27]); SQRADDAC(a[7], a[26]); SQRADDAC(a[8], a[25]); SQRADDAC(a[9], a[24]); SQRADDAC(a[10], a[23]); SQRADDAC(a[11], a[22]); SQRADDAC(a[12], a[21]); SQRADDAC(a[13], a[20]); SQRADDAC(a[14], a[19]); SQRADDAC(a[15], a[18]); SQRADDAC(a[16], a[17]); SQRADDDB; + COMBA_STORE(b[33]); + + /* output 34 */ + CARRY_FORWARD; + SQRADDSC(a[7], a[27]); SQRADDAC(a[8], a[26]); SQRADDAC(a[9], a[25]); SQRADDAC(a[10], a[24]); SQRADDAC(a[11], a[23]); SQRADDAC(a[12], a[22]); SQRADDAC(a[13], a[21]); SQRADDAC(a[14], a[20]); SQRADDAC(a[15], a[19]); SQRADDAC(a[16], a[18]); SQRADDDB; SQRADD(a[17], a[17]); + COMBA_STORE(b[34]); + + /* output 35 */ + CARRY_FORWARD; + SQRADDSC(a[8], a[27]); SQRADDAC(a[9], a[26]); SQRADDAC(a[10], a[25]); SQRADDAC(a[11], a[24]); SQRADDAC(a[12], a[23]); SQRADDAC(a[13], a[22]); SQRADDAC(a[14], a[21]); SQRADDAC(a[15], a[20]); SQRADDAC(a[16], a[19]); SQRADDAC(a[17], a[18]); SQRADDDB; + COMBA_STORE(b[35]); + + /* output 36 */ + CARRY_FORWARD; + SQRADDSC(a[9], a[27]); SQRADDAC(a[10], a[26]); SQRADDAC(a[11], a[25]); SQRADDAC(a[12], a[24]); SQRADDAC(a[13], a[23]); SQRADDAC(a[14], a[22]); SQRADDAC(a[15], a[21]); SQRADDAC(a[16], a[20]); SQRADDAC(a[17], a[19]); SQRADDDB; SQRADD(a[18], a[18]); + COMBA_STORE(b[36]); + + /* output 37 */ + CARRY_FORWARD; + SQRADDSC(a[10], a[27]); SQRADDAC(a[11], a[26]); SQRADDAC(a[12], a[25]); SQRADDAC(a[13], a[24]); SQRADDAC(a[14], a[23]); SQRADDAC(a[15], a[22]); SQRADDAC(a[16], a[21]); SQRADDAC(a[17], a[20]); SQRADDAC(a[18], a[19]); SQRADDDB; + COMBA_STORE(b[37]); + + /* output 38 */ + CARRY_FORWARD; + SQRADDSC(a[11], a[27]); SQRADDAC(a[12], a[26]); SQRADDAC(a[13], a[25]); SQRADDAC(a[14], a[24]); SQRADDAC(a[15], a[23]); SQRADDAC(a[16], a[22]); SQRADDAC(a[17], a[21]); SQRADDAC(a[18], a[20]); SQRADDDB; SQRADD(a[19], a[19]); + COMBA_STORE(b[38]); + + /* output 39 */ + CARRY_FORWARD; + SQRADDSC(a[12], a[27]); SQRADDAC(a[13], a[26]); SQRADDAC(a[14], a[25]); SQRADDAC(a[15], a[24]); SQRADDAC(a[16], a[23]); SQRADDAC(a[17], a[22]); SQRADDAC(a[18], a[21]); SQRADDAC(a[19], a[20]); SQRADDDB; + COMBA_STORE(b[39]); + + /* output 40 */ + CARRY_FORWARD; + SQRADDSC(a[13], a[27]); SQRADDAC(a[14], a[26]); SQRADDAC(a[15], a[25]); SQRADDAC(a[16], a[24]); SQRADDAC(a[17], a[23]); SQRADDAC(a[18], a[22]); SQRADDAC(a[19], a[21]); SQRADDDB; SQRADD(a[20], a[20]); + COMBA_STORE(b[40]); + + /* output 41 */ + CARRY_FORWARD; + SQRADDSC(a[14], a[27]); SQRADDAC(a[15], a[26]); SQRADDAC(a[16], a[25]); SQRADDAC(a[17], a[24]); SQRADDAC(a[18], a[23]); SQRADDAC(a[19], a[22]); SQRADDAC(a[20], a[21]); SQRADDDB; + COMBA_STORE(b[41]); + + /* output 42 */ + CARRY_FORWARD; + SQRADDSC(a[15], a[27]); SQRADDAC(a[16], a[26]); SQRADDAC(a[17], a[25]); SQRADDAC(a[18], a[24]); SQRADDAC(a[19], a[23]); SQRADDAC(a[20], a[22]); SQRADDDB; SQRADD(a[21], a[21]); + COMBA_STORE(b[42]); + + /* output 43 */ + CARRY_FORWARD; + SQRADDSC(a[16], a[27]); SQRADDAC(a[17], a[26]); SQRADDAC(a[18], a[25]); SQRADDAC(a[19], a[24]); SQRADDAC(a[20], a[23]); SQRADDAC(a[21], a[22]); SQRADDDB; + COMBA_STORE(b[43]); + + /* output 44 */ + CARRY_FORWARD; + SQRADDSC(a[17], a[27]); SQRADDAC(a[18], a[26]); SQRADDAC(a[19], a[25]); SQRADDAC(a[20], a[24]); SQRADDAC(a[21], a[23]); SQRADDDB; SQRADD(a[22], a[22]); + COMBA_STORE(b[44]); + + /* output 45 */ + CARRY_FORWARD; + SQRADDSC(a[18], a[27]); SQRADDAC(a[19], a[26]); SQRADDAC(a[20], a[25]); SQRADDAC(a[21], a[24]); SQRADDAC(a[22], a[23]); SQRADDDB; + COMBA_STORE(b[45]); + + /* output 46 */ + CARRY_FORWARD; + SQRADDSC(a[19], a[27]); SQRADDAC(a[20], a[26]); SQRADDAC(a[21], a[25]); SQRADDAC(a[22], a[24]); SQRADDDB; SQRADD(a[23], a[23]); + COMBA_STORE(b[46]); + + /* output 47 */ + CARRY_FORWARD; + SQRADDSC(a[20], a[27]); SQRADDAC(a[21], a[26]); SQRADDAC(a[22], a[25]); SQRADDAC(a[23], a[24]); SQRADDDB; + COMBA_STORE(b[47]); + + /* output 48 */ + CARRY_FORWARD; + SQRADDSC(a[21], a[27]); SQRADDAC(a[22], a[26]); SQRADDAC(a[23], a[25]); SQRADDDB; SQRADD(a[24], a[24]); + COMBA_STORE(b[48]); + + /* output 49 */ + CARRY_FORWARD; + SQRADDSC(a[22], a[27]); SQRADDAC(a[23], a[26]); SQRADDAC(a[24], a[25]); SQRADDDB; + COMBA_STORE(b[49]); + + /* output 50 */ + CARRY_FORWARD; + SQRADD2(a[23], a[27]); SQRADD2(a[24], a[26]); SQRADD(a[25], a[25]); + COMBA_STORE(b[50]); + + /* output 51 */ + CARRY_FORWARD; + SQRADD2(a[24], a[27]); SQRADD2(a[25], a[26]); + COMBA_STORE(b[51]); + + /* output 52 */ + CARRY_FORWARD; + SQRADD2(a[25], a[27]); SQRADD(a[26], a[26]); + COMBA_STORE(b[52]); + + /* output 53 */ + CARRY_FORWARD; + SQRADD2(a[26], a[27]); + COMBA_STORE(b[53]); + + /* output 54 */ + CARRY_FORWARD; + SQRADD(a[27], a[27]); + COMBA_STORE(b[54]); + COMBA_STORE2(b[55]); + COMBA_FINI; + + B->used = 56; + B->sign = FP_ZPOS; + memcpy(B->dp, b, 56 * sizeof(fp_digit)); + fp_clamp(B); +} +#endif + + diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_3.i b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_3.i new file mode 100644 index 000000000..6ff9d156b --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_3.i @@ -0,0 +1,67 @@ +/* fp_sqr_comba_3.i + * + * Copyright (C) 2006-2011 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifdef TFM_SQR3 +void fp_sqr_comba3(fp_int *A, fp_int *B) +{ + fp_digit *a, b[6], c0, c1, c2, sc0, sc1, sc2; + + a = A->dp; + COMBA_START; + + /* clear carries */ + CLEAR_CARRY; + + /* output 0 */ + SQRADD(a[0],a[0]); + COMBA_STORE(b[0]); + + /* output 1 */ + CARRY_FORWARD; + SQRADD2(a[0], a[1]); + COMBA_STORE(b[1]); + + /* output 2 */ + CARRY_FORWARD; + SQRADD2(a[0], a[2]); SQRADD(a[1], a[1]); + COMBA_STORE(b[2]); + + /* output 3 */ + CARRY_FORWARD; + SQRADD2(a[1], a[2]); + COMBA_STORE(b[3]); + + /* output 4 */ + CARRY_FORWARD; + SQRADD(a[2], a[2]); + COMBA_STORE(b[4]); + COMBA_STORE2(b[5]); + COMBA_FINI; + + B->used = 6; + B->sign = FP_ZPOS; + memcpy(B->dp, b, 6 * sizeof(fp_digit)); + fp_clamp(B); +} +#endif + + diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_32.i b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_32.i new file mode 100644 index 000000000..ada0007d8 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_32.i @@ -0,0 +1,360 @@ +/* fp_sqr_comba_32.i + * + * Copyright (C) 2006-2011 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifdef TFM_SQR32 +void fp_sqr_comba32(fp_int *A, fp_int *B) +{ + fp_digit *a, b[64], c0, c1, c2, sc0, sc1, sc2; +#ifdef TFM_ISO + fp_word tt; +#endif + + a = A->dp; + COMBA_START; + + /* clear carries */ + CLEAR_CARRY; + + /* output 0 */ + SQRADD(a[0],a[0]); + COMBA_STORE(b[0]); + + /* output 1 */ + CARRY_FORWARD; + SQRADD2(a[0], a[1]); + COMBA_STORE(b[1]); + + /* output 2 */ + CARRY_FORWARD; + SQRADD2(a[0], a[2]); SQRADD(a[1], a[1]); + COMBA_STORE(b[2]); + + /* output 3 */ + CARRY_FORWARD; + SQRADD2(a[0], a[3]); SQRADD2(a[1], a[2]); + COMBA_STORE(b[3]); + + /* output 4 */ + CARRY_FORWARD; + SQRADD2(a[0], a[4]); SQRADD2(a[1], a[3]); SQRADD(a[2], a[2]); + COMBA_STORE(b[4]); + + /* output 5 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[5]); SQRADDAC(a[1], a[4]); SQRADDAC(a[2], a[3]); SQRADDDB; + COMBA_STORE(b[5]); + + /* output 6 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[6]); SQRADDAC(a[1], a[5]); SQRADDAC(a[2], a[4]); SQRADDDB; SQRADD(a[3], a[3]); + COMBA_STORE(b[6]); + + /* output 7 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[7]); SQRADDAC(a[1], a[6]); SQRADDAC(a[2], a[5]); SQRADDAC(a[3], a[4]); SQRADDDB; + COMBA_STORE(b[7]); + + /* output 8 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[8]); SQRADDAC(a[1], a[7]); SQRADDAC(a[2], a[6]); SQRADDAC(a[3], a[5]); SQRADDDB; SQRADD(a[4], a[4]); + COMBA_STORE(b[8]); + + /* output 9 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[9]); SQRADDAC(a[1], a[8]); SQRADDAC(a[2], a[7]); SQRADDAC(a[3], a[6]); SQRADDAC(a[4], a[5]); SQRADDDB; + COMBA_STORE(b[9]); + + /* output 10 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[10]); SQRADDAC(a[1], a[9]); SQRADDAC(a[2], a[8]); SQRADDAC(a[3], a[7]); SQRADDAC(a[4], a[6]); SQRADDDB; SQRADD(a[5], a[5]); + COMBA_STORE(b[10]); + + /* output 11 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[11]); SQRADDAC(a[1], a[10]); SQRADDAC(a[2], a[9]); SQRADDAC(a[3], a[8]); SQRADDAC(a[4], a[7]); SQRADDAC(a[5], a[6]); SQRADDDB; + COMBA_STORE(b[11]); + + /* output 12 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[12]); SQRADDAC(a[1], a[11]); SQRADDAC(a[2], a[10]); SQRADDAC(a[3], a[9]); SQRADDAC(a[4], a[8]); SQRADDAC(a[5], a[7]); SQRADDDB; SQRADD(a[6], a[6]); + COMBA_STORE(b[12]); + + /* output 13 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[13]); SQRADDAC(a[1], a[12]); SQRADDAC(a[2], a[11]); SQRADDAC(a[3], a[10]); SQRADDAC(a[4], a[9]); SQRADDAC(a[5], a[8]); SQRADDAC(a[6], a[7]); SQRADDDB; + COMBA_STORE(b[13]); + + /* output 14 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[14]); SQRADDAC(a[1], a[13]); SQRADDAC(a[2], a[12]); SQRADDAC(a[3], a[11]); SQRADDAC(a[4], a[10]); SQRADDAC(a[5], a[9]); SQRADDAC(a[6], a[8]); SQRADDDB; SQRADD(a[7], a[7]); + COMBA_STORE(b[14]); + + /* output 15 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[15]); SQRADDAC(a[1], a[14]); SQRADDAC(a[2], a[13]); SQRADDAC(a[3], a[12]); SQRADDAC(a[4], a[11]); SQRADDAC(a[5], a[10]); SQRADDAC(a[6], a[9]); SQRADDAC(a[7], a[8]); SQRADDDB; + COMBA_STORE(b[15]); + + /* output 16 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[16]); SQRADDAC(a[1], a[15]); SQRADDAC(a[2], a[14]); SQRADDAC(a[3], a[13]); SQRADDAC(a[4], a[12]); SQRADDAC(a[5], a[11]); SQRADDAC(a[6], a[10]); SQRADDAC(a[7], a[9]); SQRADDDB; SQRADD(a[8], a[8]); + COMBA_STORE(b[16]); + + /* output 17 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[17]); SQRADDAC(a[1], a[16]); SQRADDAC(a[2], a[15]); SQRADDAC(a[3], a[14]); SQRADDAC(a[4], a[13]); SQRADDAC(a[5], a[12]); SQRADDAC(a[6], a[11]); SQRADDAC(a[7], a[10]); SQRADDAC(a[8], a[9]); SQRADDDB; + COMBA_STORE(b[17]); + + /* output 18 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[18]); SQRADDAC(a[1], a[17]); SQRADDAC(a[2], a[16]); SQRADDAC(a[3], a[15]); SQRADDAC(a[4], a[14]); SQRADDAC(a[5], a[13]); SQRADDAC(a[6], a[12]); SQRADDAC(a[7], a[11]); SQRADDAC(a[8], a[10]); SQRADDDB; SQRADD(a[9], a[9]); + COMBA_STORE(b[18]); + + /* output 19 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[19]); SQRADDAC(a[1], a[18]); SQRADDAC(a[2], a[17]); SQRADDAC(a[3], a[16]); SQRADDAC(a[4], a[15]); SQRADDAC(a[5], a[14]); SQRADDAC(a[6], a[13]); SQRADDAC(a[7], a[12]); SQRADDAC(a[8], a[11]); SQRADDAC(a[9], a[10]); SQRADDDB; + COMBA_STORE(b[19]); + + /* output 20 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[20]); SQRADDAC(a[1], a[19]); SQRADDAC(a[2], a[18]); SQRADDAC(a[3], a[17]); SQRADDAC(a[4], a[16]); SQRADDAC(a[5], a[15]); SQRADDAC(a[6], a[14]); SQRADDAC(a[7], a[13]); SQRADDAC(a[8], a[12]); SQRADDAC(a[9], a[11]); SQRADDDB; SQRADD(a[10], a[10]); + COMBA_STORE(b[20]); + + /* output 21 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[21]); SQRADDAC(a[1], a[20]); SQRADDAC(a[2], a[19]); SQRADDAC(a[3], a[18]); SQRADDAC(a[4], a[17]); SQRADDAC(a[5], a[16]); SQRADDAC(a[6], a[15]); SQRADDAC(a[7], a[14]); SQRADDAC(a[8], a[13]); SQRADDAC(a[9], a[12]); SQRADDAC(a[10], a[11]); SQRADDDB; + COMBA_STORE(b[21]); + + /* output 22 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[22]); SQRADDAC(a[1], a[21]); SQRADDAC(a[2], a[20]); SQRADDAC(a[3], a[19]); SQRADDAC(a[4], a[18]); SQRADDAC(a[5], a[17]); SQRADDAC(a[6], a[16]); SQRADDAC(a[7], a[15]); SQRADDAC(a[8], a[14]); SQRADDAC(a[9], a[13]); SQRADDAC(a[10], a[12]); SQRADDDB; SQRADD(a[11], a[11]); + COMBA_STORE(b[22]); + + /* output 23 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[23]); SQRADDAC(a[1], a[22]); SQRADDAC(a[2], a[21]); SQRADDAC(a[3], a[20]); SQRADDAC(a[4], a[19]); SQRADDAC(a[5], a[18]); SQRADDAC(a[6], a[17]); SQRADDAC(a[7], a[16]); SQRADDAC(a[8], a[15]); SQRADDAC(a[9], a[14]); SQRADDAC(a[10], a[13]); SQRADDAC(a[11], a[12]); SQRADDDB; + COMBA_STORE(b[23]); + + /* output 24 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[24]); SQRADDAC(a[1], a[23]); SQRADDAC(a[2], a[22]); SQRADDAC(a[3], a[21]); SQRADDAC(a[4], a[20]); SQRADDAC(a[5], a[19]); SQRADDAC(a[6], a[18]); SQRADDAC(a[7], a[17]); SQRADDAC(a[8], a[16]); SQRADDAC(a[9], a[15]); SQRADDAC(a[10], a[14]); SQRADDAC(a[11], a[13]); SQRADDDB; SQRADD(a[12], a[12]); + COMBA_STORE(b[24]); + + /* output 25 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[25]); SQRADDAC(a[1], a[24]); SQRADDAC(a[2], a[23]); SQRADDAC(a[3], a[22]); SQRADDAC(a[4], a[21]); SQRADDAC(a[5], a[20]); SQRADDAC(a[6], a[19]); SQRADDAC(a[7], a[18]); SQRADDAC(a[8], a[17]); SQRADDAC(a[9], a[16]); SQRADDAC(a[10], a[15]); SQRADDAC(a[11], a[14]); SQRADDAC(a[12], a[13]); SQRADDDB; + COMBA_STORE(b[25]); + + /* output 26 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[26]); SQRADDAC(a[1], a[25]); SQRADDAC(a[2], a[24]); SQRADDAC(a[3], a[23]); SQRADDAC(a[4], a[22]); SQRADDAC(a[5], a[21]); SQRADDAC(a[6], a[20]); SQRADDAC(a[7], a[19]); SQRADDAC(a[8], a[18]); SQRADDAC(a[9], a[17]); SQRADDAC(a[10], a[16]); SQRADDAC(a[11], a[15]); SQRADDAC(a[12], a[14]); SQRADDDB; SQRADD(a[13], a[13]); + COMBA_STORE(b[26]); + + /* output 27 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[27]); SQRADDAC(a[1], a[26]); SQRADDAC(a[2], a[25]); SQRADDAC(a[3], a[24]); SQRADDAC(a[4], a[23]); SQRADDAC(a[5], a[22]); SQRADDAC(a[6], a[21]); SQRADDAC(a[7], a[20]); SQRADDAC(a[8], a[19]); SQRADDAC(a[9], a[18]); SQRADDAC(a[10], a[17]); SQRADDAC(a[11], a[16]); SQRADDAC(a[12], a[15]); SQRADDAC(a[13], a[14]); SQRADDDB; + COMBA_STORE(b[27]); + + /* output 28 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[28]); SQRADDAC(a[1], a[27]); SQRADDAC(a[2], a[26]); SQRADDAC(a[3], a[25]); SQRADDAC(a[4], a[24]); SQRADDAC(a[5], a[23]); SQRADDAC(a[6], a[22]); SQRADDAC(a[7], a[21]); SQRADDAC(a[8], a[20]); SQRADDAC(a[9], a[19]); SQRADDAC(a[10], a[18]); SQRADDAC(a[11], a[17]); SQRADDAC(a[12], a[16]); SQRADDAC(a[13], a[15]); SQRADDDB; SQRADD(a[14], a[14]); + COMBA_STORE(b[28]); + + /* output 29 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[29]); SQRADDAC(a[1], a[28]); SQRADDAC(a[2], a[27]); SQRADDAC(a[3], a[26]); SQRADDAC(a[4], a[25]); SQRADDAC(a[5], a[24]); SQRADDAC(a[6], a[23]); SQRADDAC(a[7], a[22]); SQRADDAC(a[8], a[21]); SQRADDAC(a[9], a[20]); SQRADDAC(a[10], a[19]); SQRADDAC(a[11], a[18]); SQRADDAC(a[12], a[17]); SQRADDAC(a[13], a[16]); SQRADDAC(a[14], a[15]); SQRADDDB; + COMBA_STORE(b[29]); + + /* output 30 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[30]); SQRADDAC(a[1], a[29]); SQRADDAC(a[2], a[28]); SQRADDAC(a[3], a[27]); SQRADDAC(a[4], a[26]); SQRADDAC(a[5], a[25]); SQRADDAC(a[6], a[24]); SQRADDAC(a[7], a[23]); SQRADDAC(a[8], a[22]); SQRADDAC(a[9], a[21]); SQRADDAC(a[10], a[20]); SQRADDAC(a[11], a[19]); SQRADDAC(a[12], a[18]); SQRADDAC(a[13], a[17]); SQRADDAC(a[14], a[16]); SQRADDDB; SQRADD(a[15], a[15]); + COMBA_STORE(b[30]); + + /* output 31 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[31]); SQRADDAC(a[1], a[30]); SQRADDAC(a[2], a[29]); SQRADDAC(a[3], a[28]); SQRADDAC(a[4], a[27]); SQRADDAC(a[5], a[26]); SQRADDAC(a[6], a[25]); SQRADDAC(a[7], a[24]); SQRADDAC(a[8], a[23]); SQRADDAC(a[9], a[22]); SQRADDAC(a[10], a[21]); SQRADDAC(a[11], a[20]); SQRADDAC(a[12], a[19]); SQRADDAC(a[13], a[18]); SQRADDAC(a[14], a[17]); SQRADDAC(a[15], a[16]); SQRADDDB; + COMBA_STORE(b[31]); + + /* output 32 */ + CARRY_FORWARD; + SQRADDSC(a[1], a[31]); SQRADDAC(a[2], a[30]); SQRADDAC(a[3], a[29]); SQRADDAC(a[4], a[28]); SQRADDAC(a[5], a[27]); SQRADDAC(a[6], a[26]); SQRADDAC(a[7], a[25]); SQRADDAC(a[8], a[24]); SQRADDAC(a[9], a[23]); SQRADDAC(a[10], a[22]); SQRADDAC(a[11], a[21]); SQRADDAC(a[12], a[20]); SQRADDAC(a[13], a[19]); SQRADDAC(a[14], a[18]); SQRADDAC(a[15], a[17]); SQRADDDB; SQRADD(a[16], a[16]); + COMBA_STORE(b[32]); + + /* output 33 */ + CARRY_FORWARD; + SQRADDSC(a[2], a[31]); SQRADDAC(a[3], a[30]); SQRADDAC(a[4], a[29]); SQRADDAC(a[5], a[28]); SQRADDAC(a[6], a[27]); SQRADDAC(a[7], a[26]); SQRADDAC(a[8], a[25]); SQRADDAC(a[9], a[24]); SQRADDAC(a[10], a[23]); SQRADDAC(a[11], a[22]); SQRADDAC(a[12], a[21]); SQRADDAC(a[13], a[20]); SQRADDAC(a[14], a[19]); SQRADDAC(a[15], a[18]); SQRADDAC(a[16], a[17]); SQRADDDB; + COMBA_STORE(b[33]); + + /* output 34 */ + CARRY_FORWARD; + SQRADDSC(a[3], a[31]); SQRADDAC(a[4], a[30]); SQRADDAC(a[5], a[29]); SQRADDAC(a[6], a[28]); SQRADDAC(a[7], a[27]); SQRADDAC(a[8], a[26]); SQRADDAC(a[9], a[25]); SQRADDAC(a[10], a[24]); SQRADDAC(a[11], a[23]); SQRADDAC(a[12], a[22]); SQRADDAC(a[13], a[21]); SQRADDAC(a[14], a[20]); SQRADDAC(a[15], a[19]); SQRADDAC(a[16], a[18]); SQRADDDB; SQRADD(a[17], a[17]); + COMBA_STORE(b[34]); + + /* output 35 */ + CARRY_FORWARD; + SQRADDSC(a[4], a[31]); SQRADDAC(a[5], a[30]); SQRADDAC(a[6], a[29]); SQRADDAC(a[7], a[28]); SQRADDAC(a[8], a[27]); SQRADDAC(a[9], a[26]); SQRADDAC(a[10], a[25]); SQRADDAC(a[11], a[24]); SQRADDAC(a[12], a[23]); SQRADDAC(a[13], a[22]); SQRADDAC(a[14], a[21]); SQRADDAC(a[15], a[20]); SQRADDAC(a[16], a[19]); SQRADDAC(a[17], a[18]); SQRADDDB; + COMBA_STORE(b[35]); + + /* output 36 */ + CARRY_FORWARD; + SQRADDSC(a[5], a[31]); SQRADDAC(a[6], a[30]); SQRADDAC(a[7], a[29]); SQRADDAC(a[8], a[28]); SQRADDAC(a[9], a[27]); SQRADDAC(a[10], a[26]); SQRADDAC(a[11], a[25]); SQRADDAC(a[12], a[24]); SQRADDAC(a[13], a[23]); SQRADDAC(a[14], a[22]); SQRADDAC(a[15], a[21]); SQRADDAC(a[16], a[20]); SQRADDAC(a[17], a[19]); SQRADDDB; SQRADD(a[18], a[18]); + COMBA_STORE(b[36]); + + /* output 37 */ + CARRY_FORWARD; + SQRADDSC(a[6], a[31]); SQRADDAC(a[7], a[30]); SQRADDAC(a[8], a[29]); SQRADDAC(a[9], a[28]); SQRADDAC(a[10], a[27]); SQRADDAC(a[11], a[26]); SQRADDAC(a[12], a[25]); SQRADDAC(a[13], a[24]); SQRADDAC(a[14], a[23]); SQRADDAC(a[15], a[22]); SQRADDAC(a[16], a[21]); SQRADDAC(a[17], a[20]); SQRADDAC(a[18], a[19]); SQRADDDB; + COMBA_STORE(b[37]); + + /* output 38 */ + CARRY_FORWARD; + SQRADDSC(a[7], a[31]); SQRADDAC(a[8], a[30]); SQRADDAC(a[9], a[29]); SQRADDAC(a[10], a[28]); SQRADDAC(a[11], a[27]); SQRADDAC(a[12], a[26]); SQRADDAC(a[13], a[25]); SQRADDAC(a[14], a[24]); SQRADDAC(a[15], a[23]); SQRADDAC(a[16], a[22]); SQRADDAC(a[17], a[21]); SQRADDAC(a[18], a[20]); SQRADDDB; SQRADD(a[19], a[19]); + COMBA_STORE(b[38]); + + /* output 39 */ + CARRY_FORWARD; + SQRADDSC(a[8], a[31]); SQRADDAC(a[9], a[30]); SQRADDAC(a[10], a[29]); SQRADDAC(a[11], a[28]); SQRADDAC(a[12], a[27]); SQRADDAC(a[13], a[26]); SQRADDAC(a[14], a[25]); SQRADDAC(a[15], a[24]); SQRADDAC(a[16], a[23]); SQRADDAC(a[17], a[22]); SQRADDAC(a[18], a[21]); SQRADDAC(a[19], a[20]); SQRADDDB; + COMBA_STORE(b[39]); + + /* output 40 */ + CARRY_FORWARD; + SQRADDSC(a[9], a[31]); SQRADDAC(a[10], a[30]); SQRADDAC(a[11], a[29]); SQRADDAC(a[12], a[28]); SQRADDAC(a[13], a[27]); SQRADDAC(a[14], a[26]); SQRADDAC(a[15], a[25]); SQRADDAC(a[16], a[24]); SQRADDAC(a[17], a[23]); SQRADDAC(a[18], a[22]); SQRADDAC(a[19], a[21]); SQRADDDB; SQRADD(a[20], a[20]); + COMBA_STORE(b[40]); + + /* output 41 */ + CARRY_FORWARD; + SQRADDSC(a[10], a[31]); SQRADDAC(a[11], a[30]); SQRADDAC(a[12], a[29]); SQRADDAC(a[13], a[28]); SQRADDAC(a[14], a[27]); SQRADDAC(a[15], a[26]); SQRADDAC(a[16], a[25]); SQRADDAC(a[17], a[24]); SQRADDAC(a[18], a[23]); SQRADDAC(a[19], a[22]); SQRADDAC(a[20], a[21]); SQRADDDB; + COMBA_STORE(b[41]); + + /* output 42 */ + CARRY_FORWARD; + SQRADDSC(a[11], a[31]); SQRADDAC(a[12], a[30]); SQRADDAC(a[13], a[29]); SQRADDAC(a[14], a[28]); SQRADDAC(a[15], a[27]); SQRADDAC(a[16], a[26]); SQRADDAC(a[17], a[25]); SQRADDAC(a[18], a[24]); SQRADDAC(a[19], a[23]); SQRADDAC(a[20], a[22]); SQRADDDB; SQRADD(a[21], a[21]); + COMBA_STORE(b[42]); + + /* output 43 */ + CARRY_FORWARD; + SQRADDSC(a[12], a[31]); SQRADDAC(a[13], a[30]); SQRADDAC(a[14], a[29]); SQRADDAC(a[15], a[28]); SQRADDAC(a[16], a[27]); SQRADDAC(a[17], a[26]); SQRADDAC(a[18], a[25]); SQRADDAC(a[19], a[24]); SQRADDAC(a[20], a[23]); SQRADDAC(a[21], a[22]); SQRADDDB; + COMBA_STORE(b[43]); + + /* output 44 */ + CARRY_FORWARD; + SQRADDSC(a[13], a[31]); SQRADDAC(a[14], a[30]); SQRADDAC(a[15], a[29]); SQRADDAC(a[16], a[28]); SQRADDAC(a[17], a[27]); SQRADDAC(a[18], a[26]); SQRADDAC(a[19], a[25]); SQRADDAC(a[20], a[24]); SQRADDAC(a[21], a[23]); SQRADDDB; SQRADD(a[22], a[22]); + COMBA_STORE(b[44]); + + /* output 45 */ + CARRY_FORWARD; + SQRADDSC(a[14], a[31]); SQRADDAC(a[15], a[30]); SQRADDAC(a[16], a[29]); SQRADDAC(a[17], a[28]); SQRADDAC(a[18], a[27]); SQRADDAC(a[19], a[26]); SQRADDAC(a[20], a[25]); SQRADDAC(a[21], a[24]); SQRADDAC(a[22], a[23]); SQRADDDB; + COMBA_STORE(b[45]); + + /* output 46 */ + CARRY_FORWARD; + SQRADDSC(a[15], a[31]); SQRADDAC(a[16], a[30]); SQRADDAC(a[17], a[29]); SQRADDAC(a[18], a[28]); SQRADDAC(a[19], a[27]); SQRADDAC(a[20], a[26]); SQRADDAC(a[21], a[25]); SQRADDAC(a[22], a[24]); SQRADDDB; SQRADD(a[23], a[23]); + COMBA_STORE(b[46]); + + /* output 47 */ + CARRY_FORWARD; + SQRADDSC(a[16], a[31]); SQRADDAC(a[17], a[30]); SQRADDAC(a[18], a[29]); SQRADDAC(a[19], a[28]); SQRADDAC(a[20], a[27]); SQRADDAC(a[21], a[26]); SQRADDAC(a[22], a[25]); SQRADDAC(a[23], a[24]); SQRADDDB; + COMBA_STORE(b[47]); + + /* output 48 */ + CARRY_FORWARD; + SQRADDSC(a[17], a[31]); SQRADDAC(a[18], a[30]); SQRADDAC(a[19], a[29]); SQRADDAC(a[20], a[28]); SQRADDAC(a[21], a[27]); SQRADDAC(a[22], a[26]); SQRADDAC(a[23], a[25]); SQRADDDB; SQRADD(a[24], a[24]); + COMBA_STORE(b[48]); + + /* output 49 */ + CARRY_FORWARD; + SQRADDSC(a[18], a[31]); SQRADDAC(a[19], a[30]); SQRADDAC(a[20], a[29]); SQRADDAC(a[21], a[28]); SQRADDAC(a[22], a[27]); SQRADDAC(a[23], a[26]); SQRADDAC(a[24], a[25]); SQRADDDB; + COMBA_STORE(b[49]); + + /* output 50 */ + CARRY_FORWARD; + SQRADDSC(a[19], a[31]); SQRADDAC(a[20], a[30]); SQRADDAC(a[21], a[29]); SQRADDAC(a[22], a[28]); SQRADDAC(a[23], a[27]); SQRADDAC(a[24], a[26]); SQRADDDB; SQRADD(a[25], a[25]); + COMBA_STORE(b[50]); + + /* output 51 */ + CARRY_FORWARD; + SQRADDSC(a[20], a[31]); SQRADDAC(a[21], a[30]); SQRADDAC(a[22], a[29]); SQRADDAC(a[23], a[28]); SQRADDAC(a[24], a[27]); SQRADDAC(a[25], a[26]); SQRADDDB; + COMBA_STORE(b[51]); + + /* output 52 */ + CARRY_FORWARD; + SQRADDSC(a[21], a[31]); SQRADDAC(a[22], a[30]); SQRADDAC(a[23], a[29]); SQRADDAC(a[24], a[28]); SQRADDAC(a[25], a[27]); SQRADDDB; SQRADD(a[26], a[26]); + COMBA_STORE(b[52]); + + /* output 53 */ + CARRY_FORWARD; + SQRADDSC(a[22], a[31]); SQRADDAC(a[23], a[30]); SQRADDAC(a[24], a[29]); SQRADDAC(a[25], a[28]); SQRADDAC(a[26], a[27]); SQRADDDB; + COMBA_STORE(b[53]); + + /* output 54 */ + CARRY_FORWARD; + SQRADDSC(a[23], a[31]); SQRADDAC(a[24], a[30]); SQRADDAC(a[25], a[29]); SQRADDAC(a[26], a[28]); SQRADDDB; SQRADD(a[27], a[27]); + COMBA_STORE(b[54]); + + /* output 55 */ + CARRY_FORWARD; + SQRADDSC(a[24], a[31]); SQRADDAC(a[25], a[30]); SQRADDAC(a[26], a[29]); SQRADDAC(a[27], a[28]); SQRADDDB; + COMBA_STORE(b[55]); + + /* output 56 */ + CARRY_FORWARD; + SQRADDSC(a[25], a[31]); SQRADDAC(a[26], a[30]); SQRADDAC(a[27], a[29]); SQRADDDB; SQRADD(a[28], a[28]); + COMBA_STORE(b[56]); + + /* output 57 */ + CARRY_FORWARD; + SQRADDSC(a[26], a[31]); SQRADDAC(a[27], a[30]); SQRADDAC(a[28], a[29]); SQRADDDB; + COMBA_STORE(b[57]); + + /* output 58 */ + CARRY_FORWARD; + SQRADD2(a[27], a[31]); SQRADD2(a[28], a[30]); SQRADD(a[29], a[29]); + COMBA_STORE(b[58]); + + /* output 59 */ + CARRY_FORWARD; + SQRADD2(a[28], a[31]); SQRADD2(a[29], a[30]); + COMBA_STORE(b[59]); + + /* output 60 */ + CARRY_FORWARD; + SQRADD2(a[29], a[31]); SQRADD(a[30], a[30]); + COMBA_STORE(b[60]); + + /* output 61 */ + CARRY_FORWARD; + SQRADD2(a[30], a[31]); + COMBA_STORE(b[61]); + + /* output 62 */ + CARRY_FORWARD; + SQRADD(a[31], a[31]); + COMBA_STORE(b[62]); + COMBA_STORE2(b[63]); + COMBA_FINI; + + B->used = 64; + B->sign = FP_ZPOS; + memcpy(B->dp, b, 64 * sizeof(fp_digit)); + fp_clamp(B); +} +#endif + + diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_4.i b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_4.i new file mode 100644 index 000000000..cd19f761b --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_4.i @@ -0,0 +1,77 @@ +/* fp_sqr_comba_4.i + * + * Copyright (C) 2006-2011 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifdef TFM_SQR4 +void fp_sqr_comba4(fp_int *A, fp_int *B) +{ + fp_digit *a, b[8], c0, c1, c2, sc0, sc1, sc2; + + a = A->dp; + COMBA_START; + + /* clear carries */ + CLEAR_CARRY; + + /* output 0 */ + SQRADD(a[0],a[0]); + COMBA_STORE(b[0]); + + /* output 1 */ + CARRY_FORWARD; + SQRADD2(a[0], a[1]); + COMBA_STORE(b[1]); + + /* output 2 */ + CARRY_FORWARD; + SQRADD2(a[0], a[2]); SQRADD(a[1], a[1]); + COMBA_STORE(b[2]); + + /* output 3 */ + CARRY_FORWARD; + SQRADD2(a[0], a[3]); SQRADD2(a[1], a[2]); + COMBA_STORE(b[3]); + + /* output 4 */ + CARRY_FORWARD; + SQRADD2(a[1], a[3]); SQRADD(a[2], a[2]); + COMBA_STORE(b[4]); + + /* output 5 */ + CARRY_FORWARD; + SQRADD2(a[2], a[3]); + COMBA_STORE(b[5]); + + /* output 6 */ + CARRY_FORWARD; + SQRADD(a[3], a[3]); + COMBA_STORE(b[6]); + COMBA_STORE2(b[7]); + COMBA_FINI; + + B->used = 8; + B->sign = FP_ZPOS; + memcpy(B->dp, b, 8 * sizeof(fp_digit)); + fp_clamp(B); +} +#endif + + diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_48.i b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_48.i new file mode 100644 index 000000000..27dddfe50 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_48.i @@ -0,0 +1,520 @@ +/* fp_sqr_comba_48.i + * + * Copyright (C) 2006-2011 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifdef TFM_SQR48 +void fp_sqr_comba48(fp_int *A, fp_int *B) +{ + fp_digit *a, b[96], c0, c1, c2, sc0, sc1, sc2; +#ifdef TFM_ISO + fp_word tt; +#endif + + a = A->dp; + COMBA_START; + + /* clear carries */ + CLEAR_CARRY; + + /* output 0 */ + SQRADD(a[0],a[0]); + COMBA_STORE(b[0]); + + /* output 1 */ + CARRY_FORWARD; + SQRADD2(a[0], a[1]); + COMBA_STORE(b[1]); + + /* output 2 */ + CARRY_FORWARD; + SQRADD2(a[0], a[2]); SQRADD(a[1], a[1]); + COMBA_STORE(b[2]); + + /* output 3 */ + CARRY_FORWARD; + SQRADD2(a[0], a[3]); SQRADD2(a[1], a[2]); + COMBA_STORE(b[3]); + + /* output 4 */ + CARRY_FORWARD; + SQRADD2(a[0], a[4]); SQRADD2(a[1], a[3]); SQRADD(a[2], a[2]); + COMBA_STORE(b[4]); + + /* output 5 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[5]); SQRADDAC(a[1], a[4]); SQRADDAC(a[2], a[3]); SQRADDDB; + COMBA_STORE(b[5]); + + /* output 6 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[6]); SQRADDAC(a[1], a[5]); SQRADDAC(a[2], a[4]); SQRADDDB; SQRADD(a[3], a[3]); + COMBA_STORE(b[6]); + + /* output 7 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[7]); SQRADDAC(a[1], a[6]); SQRADDAC(a[2], a[5]); SQRADDAC(a[3], a[4]); SQRADDDB; + COMBA_STORE(b[7]); + + /* output 8 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[8]); SQRADDAC(a[1], a[7]); SQRADDAC(a[2], a[6]); SQRADDAC(a[3], a[5]); SQRADDDB; SQRADD(a[4], a[4]); + COMBA_STORE(b[8]); + + /* output 9 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[9]); SQRADDAC(a[1], a[8]); SQRADDAC(a[2], a[7]); SQRADDAC(a[3], a[6]); SQRADDAC(a[4], a[5]); SQRADDDB; + COMBA_STORE(b[9]); + + /* output 10 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[10]); SQRADDAC(a[1], a[9]); SQRADDAC(a[2], a[8]); SQRADDAC(a[3], a[7]); SQRADDAC(a[4], a[6]); SQRADDDB; SQRADD(a[5], a[5]); + COMBA_STORE(b[10]); + + /* output 11 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[11]); SQRADDAC(a[1], a[10]); SQRADDAC(a[2], a[9]); SQRADDAC(a[3], a[8]); SQRADDAC(a[4], a[7]); SQRADDAC(a[5], a[6]); SQRADDDB; + COMBA_STORE(b[11]); + + /* output 12 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[12]); SQRADDAC(a[1], a[11]); SQRADDAC(a[2], a[10]); SQRADDAC(a[3], a[9]); SQRADDAC(a[4], a[8]); SQRADDAC(a[5], a[7]); SQRADDDB; SQRADD(a[6], a[6]); + COMBA_STORE(b[12]); + + /* output 13 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[13]); SQRADDAC(a[1], a[12]); SQRADDAC(a[2], a[11]); SQRADDAC(a[3], a[10]); SQRADDAC(a[4], a[9]); SQRADDAC(a[5], a[8]); SQRADDAC(a[6], a[7]); SQRADDDB; + COMBA_STORE(b[13]); + + /* output 14 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[14]); SQRADDAC(a[1], a[13]); SQRADDAC(a[2], a[12]); SQRADDAC(a[3], a[11]); SQRADDAC(a[4], a[10]); SQRADDAC(a[5], a[9]); SQRADDAC(a[6], a[8]); SQRADDDB; SQRADD(a[7], a[7]); + COMBA_STORE(b[14]); + + /* output 15 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[15]); SQRADDAC(a[1], a[14]); SQRADDAC(a[2], a[13]); SQRADDAC(a[3], a[12]); SQRADDAC(a[4], a[11]); SQRADDAC(a[5], a[10]); SQRADDAC(a[6], a[9]); SQRADDAC(a[7], a[8]); SQRADDDB; + COMBA_STORE(b[15]); + + /* output 16 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[16]); SQRADDAC(a[1], a[15]); SQRADDAC(a[2], a[14]); SQRADDAC(a[3], a[13]); SQRADDAC(a[4], a[12]); SQRADDAC(a[5], a[11]); SQRADDAC(a[6], a[10]); SQRADDAC(a[7], a[9]); SQRADDDB; SQRADD(a[8], a[8]); + COMBA_STORE(b[16]); + + /* output 17 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[17]); SQRADDAC(a[1], a[16]); SQRADDAC(a[2], a[15]); SQRADDAC(a[3], a[14]); SQRADDAC(a[4], a[13]); SQRADDAC(a[5], a[12]); SQRADDAC(a[6], a[11]); SQRADDAC(a[7], a[10]); SQRADDAC(a[8], a[9]); SQRADDDB; + COMBA_STORE(b[17]); + + /* output 18 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[18]); SQRADDAC(a[1], a[17]); SQRADDAC(a[2], a[16]); SQRADDAC(a[3], a[15]); SQRADDAC(a[4], a[14]); SQRADDAC(a[5], a[13]); SQRADDAC(a[6], a[12]); SQRADDAC(a[7], a[11]); SQRADDAC(a[8], a[10]); SQRADDDB; SQRADD(a[9], a[9]); + COMBA_STORE(b[18]); + + /* output 19 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[19]); SQRADDAC(a[1], a[18]); SQRADDAC(a[2], a[17]); SQRADDAC(a[3], a[16]); SQRADDAC(a[4], a[15]); SQRADDAC(a[5], a[14]); SQRADDAC(a[6], a[13]); SQRADDAC(a[7], a[12]); SQRADDAC(a[8], a[11]); SQRADDAC(a[9], a[10]); SQRADDDB; + COMBA_STORE(b[19]); + + /* output 20 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[20]); SQRADDAC(a[1], a[19]); SQRADDAC(a[2], a[18]); SQRADDAC(a[3], a[17]); SQRADDAC(a[4], a[16]); SQRADDAC(a[5], a[15]); SQRADDAC(a[6], a[14]); SQRADDAC(a[7], a[13]); SQRADDAC(a[8], a[12]); SQRADDAC(a[9], a[11]); SQRADDDB; SQRADD(a[10], a[10]); + COMBA_STORE(b[20]); + + /* output 21 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[21]); SQRADDAC(a[1], a[20]); SQRADDAC(a[2], a[19]); SQRADDAC(a[3], a[18]); SQRADDAC(a[4], a[17]); SQRADDAC(a[5], a[16]); SQRADDAC(a[6], a[15]); SQRADDAC(a[7], a[14]); SQRADDAC(a[8], a[13]); SQRADDAC(a[9], a[12]); SQRADDAC(a[10], a[11]); SQRADDDB; + COMBA_STORE(b[21]); + + /* output 22 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[22]); SQRADDAC(a[1], a[21]); SQRADDAC(a[2], a[20]); SQRADDAC(a[3], a[19]); SQRADDAC(a[4], a[18]); SQRADDAC(a[5], a[17]); SQRADDAC(a[6], a[16]); SQRADDAC(a[7], a[15]); SQRADDAC(a[8], a[14]); SQRADDAC(a[9], a[13]); SQRADDAC(a[10], a[12]); SQRADDDB; SQRADD(a[11], a[11]); + COMBA_STORE(b[22]); + + /* output 23 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[23]); SQRADDAC(a[1], a[22]); SQRADDAC(a[2], a[21]); SQRADDAC(a[3], a[20]); SQRADDAC(a[4], a[19]); SQRADDAC(a[5], a[18]); SQRADDAC(a[6], a[17]); SQRADDAC(a[7], a[16]); SQRADDAC(a[8], a[15]); SQRADDAC(a[9], a[14]); SQRADDAC(a[10], a[13]); SQRADDAC(a[11], a[12]); SQRADDDB; + COMBA_STORE(b[23]); + + /* output 24 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[24]); SQRADDAC(a[1], a[23]); SQRADDAC(a[2], a[22]); SQRADDAC(a[3], a[21]); SQRADDAC(a[4], a[20]); SQRADDAC(a[5], a[19]); SQRADDAC(a[6], a[18]); SQRADDAC(a[7], a[17]); SQRADDAC(a[8], a[16]); SQRADDAC(a[9], a[15]); SQRADDAC(a[10], a[14]); SQRADDAC(a[11], a[13]); SQRADDDB; SQRADD(a[12], a[12]); + COMBA_STORE(b[24]); + + /* output 25 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[25]); SQRADDAC(a[1], a[24]); SQRADDAC(a[2], a[23]); SQRADDAC(a[3], a[22]); SQRADDAC(a[4], a[21]); SQRADDAC(a[5], a[20]); SQRADDAC(a[6], a[19]); SQRADDAC(a[7], a[18]); SQRADDAC(a[8], a[17]); SQRADDAC(a[9], a[16]); SQRADDAC(a[10], a[15]); SQRADDAC(a[11], a[14]); SQRADDAC(a[12], a[13]); SQRADDDB; + COMBA_STORE(b[25]); + + /* output 26 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[26]); SQRADDAC(a[1], a[25]); SQRADDAC(a[2], a[24]); SQRADDAC(a[3], a[23]); SQRADDAC(a[4], a[22]); SQRADDAC(a[5], a[21]); SQRADDAC(a[6], a[20]); SQRADDAC(a[7], a[19]); SQRADDAC(a[8], a[18]); SQRADDAC(a[9], a[17]); SQRADDAC(a[10], a[16]); SQRADDAC(a[11], a[15]); SQRADDAC(a[12], a[14]); SQRADDDB; SQRADD(a[13], a[13]); + COMBA_STORE(b[26]); + + /* output 27 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[27]); SQRADDAC(a[1], a[26]); SQRADDAC(a[2], a[25]); SQRADDAC(a[3], a[24]); SQRADDAC(a[4], a[23]); SQRADDAC(a[5], a[22]); SQRADDAC(a[6], a[21]); SQRADDAC(a[7], a[20]); SQRADDAC(a[8], a[19]); SQRADDAC(a[9], a[18]); SQRADDAC(a[10], a[17]); SQRADDAC(a[11], a[16]); SQRADDAC(a[12], a[15]); SQRADDAC(a[13], a[14]); SQRADDDB; + COMBA_STORE(b[27]); + + /* output 28 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[28]); SQRADDAC(a[1], a[27]); SQRADDAC(a[2], a[26]); SQRADDAC(a[3], a[25]); SQRADDAC(a[4], a[24]); SQRADDAC(a[5], a[23]); SQRADDAC(a[6], a[22]); SQRADDAC(a[7], a[21]); SQRADDAC(a[8], a[20]); SQRADDAC(a[9], a[19]); SQRADDAC(a[10], a[18]); SQRADDAC(a[11], a[17]); SQRADDAC(a[12], a[16]); SQRADDAC(a[13], a[15]); SQRADDDB; SQRADD(a[14], a[14]); + COMBA_STORE(b[28]); + + /* output 29 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[29]); SQRADDAC(a[1], a[28]); SQRADDAC(a[2], a[27]); SQRADDAC(a[3], a[26]); SQRADDAC(a[4], a[25]); SQRADDAC(a[5], a[24]); SQRADDAC(a[6], a[23]); SQRADDAC(a[7], a[22]); SQRADDAC(a[8], a[21]); SQRADDAC(a[9], a[20]); SQRADDAC(a[10], a[19]); SQRADDAC(a[11], a[18]); SQRADDAC(a[12], a[17]); SQRADDAC(a[13], a[16]); SQRADDAC(a[14], a[15]); SQRADDDB; + COMBA_STORE(b[29]); + + /* output 30 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[30]); SQRADDAC(a[1], a[29]); SQRADDAC(a[2], a[28]); SQRADDAC(a[3], a[27]); SQRADDAC(a[4], a[26]); SQRADDAC(a[5], a[25]); SQRADDAC(a[6], a[24]); SQRADDAC(a[7], a[23]); SQRADDAC(a[8], a[22]); SQRADDAC(a[9], a[21]); SQRADDAC(a[10], a[20]); SQRADDAC(a[11], a[19]); SQRADDAC(a[12], a[18]); SQRADDAC(a[13], a[17]); SQRADDAC(a[14], a[16]); SQRADDDB; SQRADD(a[15], a[15]); + COMBA_STORE(b[30]); + + /* output 31 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[31]); SQRADDAC(a[1], a[30]); SQRADDAC(a[2], a[29]); SQRADDAC(a[3], a[28]); SQRADDAC(a[4], a[27]); SQRADDAC(a[5], a[26]); SQRADDAC(a[6], a[25]); SQRADDAC(a[7], a[24]); SQRADDAC(a[8], a[23]); SQRADDAC(a[9], a[22]); SQRADDAC(a[10], a[21]); SQRADDAC(a[11], a[20]); SQRADDAC(a[12], a[19]); SQRADDAC(a[13], a[18]); SQRADDAC(a[14], a[17]); SQRADDAC(a[15], a[16]); SQRADDDB; + COMBA_STORE(b[31]); + + /* output 32 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[32]); SQRADDAC(a[1], a[31]); SQRADDAC(a[2], a[30]); SQRADDAC(a[3], a[29]); SQRADDAC(a[4], a[28]); SQRADDAC(a[5], a[27]); SQRADDAC(a[6], a[26]); SQRADDAC(a[7], a[25]); SQRADDAC(a[8], a[24]); SQRADDAC(a[9], a[23]); SQRADDAC(a[10], a[22]); SQRADDAC(a[11], a[21]); SQRADDAC(a[12], a[20]); SQRADDAC(a[13], a[19]); SQRADDAC(a[14], a[18]); SQRADDAC(a[15], a[17]); SQRADDDB; SQRADD(a[16], a[16]); + COMBA_STORE(b[32]); + + /* output 33 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[33]); SQRADDAC(a[1], a[32]); SQRADDAC(a[2], a[31]); SQRADDAC(a[3], a[30]); SQRADDAC(a[4], a[29]); SQRADDAC(a[5], a[28]); SQRADDAC(a[6], a[27]); SQRADDAC(a[7], a[26]); SQRADDAC(a[8], a[25]); SQRADDAC(a[9], a[24]); SQRADDAC(a[10], a[23]); SQRADDAC(a[11], a[22]); SQRADDAC(a[12], a[21]); SQRADDAC(a[13], a[20]); SQRADDAC(a[14], a[19]); SQRADDAC(a[15], a[18]); SQRADDAC(a[16], a[17]); SQRADDDB; + COMBA_STORE(b[33]); + + /* output 34 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[34]); SQRADDAC(a[1], a[33]); SQRADDAC(a[2], a[32]); SQRADDAC(a[3], a[31]); SQRADDAC(a[4], a[30]); SQRADDAC(a[5], a[29]); SQRADDAC(a[6], a[28]); SQRADDAC(a[7], a[27]); SQRADDAC(a[8], a[26]); SQRADDAC(a[9], a[25]); SQRADDAC(a[10], a[24]); SQRADDAC(a[11], a[23]); SQRADDAC(a[12], a[22]); SQRADDAC(a[13], a[21]); SQRADDAC(a[14], a[20]); SQRADDAC(a[15], a[19]); SQRADDAC(a[16], a[18]); SQRADDDB; SQRADD(a[17], a[17]); + COMBA_STORE(b[34]); + + /* output 35 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[35]); SQRADDAC(a[1], a[34]); SQRADDAC(a[2], a[33]); SQRADDAC(a[3], a[32]); SQRADDAC(a[4], a[31]); SQRADDAC(a[5], a[30]); SQRADDAC(a[6], a[29]); SQRADDAC(a[7], a[28]); SQRADDAC(a[8], a[27]); SQRADDAC(a[9], a[26]); SQRADDAC(a[10], a[25]); SQRADDAC(a[11], a[24]); SQRADDAC(a[12], a[23]); SQRADDAC(a[13], a[22]); SQRADDAC(a[14], a[21]); SQRADDAC(a[15], a[20]); SQRADDAC(a[16], a[19]); SQRADDAC(a[17], a[18]); SQRADDDB; + COMBA_STORE(b[35]); + + /* output 36 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[36]); SQRADDAC(a[1], a[35]); SQRADDAC(a[2], a[34]); SQRADDAC(a[3], a[33]); SQRADDAC(a[4], a[32]); SQRADDAC(a[5], a[31]); SQRADDAC(a[6], a[30]); SQRADDAC(a[7], a[29]); SQRADDAC(a[8], a[28]); SQRADDAC(a[9], a[27]); SQRADDAC(a[10], a[26]); SQRADDAC(a[11], a[25]); SQRADDAC(a[12], a[24]); SQRADDAC(a[13], a[23]); SQRADDAC(a[14], a[22]); SQRADDAC(a[15], a[21]); SQRADDAC(a[16], a[20]); SQRADDAC(a[17], a[19]); SQRADDDB; SQRADD(a[18], a[18]); + COMBA_STORE(b[36]); + + /* output 37 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[37]); SQRADDAC(a[1], a[36]); SQRADDAC(a[2], a[35]); SQRADDAC(a[3], a[34]); SQRADDAC(a[4], a[33]); SQRADDAC(a[5], a[32]); SQRADDAC(a[6], a[31]); SQRADDAC(a[7], a[30]); SQRADDAC(a[8], a[29]); SQRADDAC(a[9], a[28]); SQRADDAC(a[10], a[27]); SQRADDAC(a[11], a[26]); SQRADDAC(a[12], a[25]); SQRADDAC(a[13], a[24]); SQRADDAC(a[14], a[23]); SQRADDAC(a[15], a[22]); SQRADDAC(a[16], a[21]); SQRADDAC(a[17], a[20]); SQRADDAC(a[18], a[19]); SQRADDDB; + COMBA_STORE(b[37]); + + /* output 38 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[38]); SQRADDAC(a[1], a[37]); SQRADDAC(a[2], a[36]); SQRADDAC(a[3], a[35]); SQRADDAC(a[4], a[34]); SQRADDAC(a[5], a[33]); SQRADDAC(a[6], a[32]); SQRADDAC(a[7], a[31]); SQRADDAC(a[8], a[30]); SQRADDAC(a[9], a[29]); SQRADDAC(a[10], a[28]); SQRADDAC(a[11], a[27]); SQRADDAC(a[12], a[26]); SQRADDAC(a[13], a[25]); SQRADDAC(a[14], a[24]); SQRADDAC(a[15], a[23]); SQRADDAC(a[16], a[22]); SQRADDAC(a[17], a[21]); SQRADDAC(a[18], a[20]); SQRADDDB; SQRADD(a[19], a[19]); + COMBA_STORE(b[38]); + + /* output 39 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[39]); SQRADDAC(a[1], a[38]); SQRADDAC(a[2], a[37]); SQRADDAC(a[3], a[36]); SQRADDAC(a[4], a[35]); SQRADDAC(a[5], a[34]); SQRADDAC(a[6], a[33]); SQRADDAC(a[7], a[32]); SQRADDAC(a[8], a[31]); SQRADDAC(a[9], a[30]); SQRADDAC(a[10], a[29]); SQRADDAC(a[11], a[28]); SQRADDAC(a[12], a[27]); SQRADDAC(a[13], a[26]); SQRADDAC(a[14], a[25]); SQRADDAC(a[15], a[24]); SQRADDAC(a[16], a[23]); SQRADDAC(a[17], a[22]); SQRADDAC(a[18], a[21]); SQRADDAC(a[19], a[20]); SQRADDDB; + COMBA_STORE(b[39]); + + /* output 40 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[40]); SQRADDAC(a[1], a[39]); SQRADDAC(a[2], a[38]); SQRADDAC(a[3], a[37]); SQRADDAC(a[4], a[36]); SQRADDAC(a[5], a[35]); SQRADDAC(a[6], a[34]); SQRADDAC(a[7], a[33]); SQRADDAC(a[8], a[32]); SQRADDAC(a[9], a[31]); SQRADDAC(a[10], a[30]); SQRADDAC(a[11], a[29]); SQRADDAC(a[12], a[28]); SQRADDAC(a[13], a[27]); SQRADDAC(a[14], a[26]); SQRADDAC(a[15], a[25]); SQRADDAC(a[16], a[24]); SQRADDAC(a[17], a[23]); SQRADDAC(a[18], a[22]); SQRADDAC(a[19], a[21]); SQRADDDB; SQRADD(a[20], a[20]); + COMBA_STORE(b[40]); + + /* output 41 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[41]); SQRADDAC(a[1], a[40]); SQRADDAC(a[2], a[39]); SQRADDAC(a[3], a[38]); SQRADDAC(a[4], a[37]); SQRADDAC(a[5], a[36]); SQRADDAC(a[6], a[35]); SQRADDAC(a[7], a[34]); SQRADDAC(a[8], a[33]); SQRADDAC(a[9], a[32]); SQRADDAC(a[10], a[31]); SQRADDAC(a[11], a[30]); SQRADDAC(a[12], a[29]); SQRADDAC(a[13], a[28]); SQRADDAC(a[14], a[27]); SQRADDAC(a[15], a[26]); SQRADDAC(a[16], a[25]); SQRADDAC(a[17], a[24]); SQRADDAC(a[18], a[23]); SQRADDAC(a[19], a[22]); SQRADDAC(a[20], a[21]); SQRADDDB; + COMBA_STORE(b[41]); + + /* output 42 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[42]); SQRADDAC(a[1], a[41]); SQRADDAC(a[2], a[40]); SQRADDAC(a[3], a[39]); SQRADDAC(a[4], a[38]); SQRADDAC(a[5], a[37]); SQRADDAC(a[6], a[36]); SQRADDAC(a[7], a[35]); SQRADDAC(a[8], a[34]); SQRADDAC(a[9], a[33]); SQRADDAC(a[10], a[32]); SQRADDAC(a[11], a[31]); SQRADDAC(a[12], a[30]); SQRADDAC(a[13], a[29]); SQRADDAC(a[14], a[28]); SQRADDAC(a[15], a[27]); SQRADDAC(a[16], a[26]); SQRADDAC(a[17], a[25]); SQRADDAC(a[18], a[24]); SQRADDAC(a[19], a[23]); SQRADDAC(a[20], a[22]); SQRADDDB; SQRADD(a[21], a[21]); + COMBA_STORE(b[42]); + + /* output 43 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[43]); SQRADDAC(a[1], a[42]); SQRADDAC(a[2], a[41]); SQRADDAC(a[3], a[40]); SQRADDAC(a[4], a[39]); SQRADDAC(a[5], a[38]); SQRADDAC(a[6], a[37]); SQRADDAC(a[7], a[36]); SQRADDAC(a[8], a[35]); SQRADDAC(a[9], a[34]); SQRADDAC(a[10], a[33]); SQRADDAC(a[11], a[32]); SQRADDAC(a[12], a[31]); SQRADDAC(a[13], a[30]); SQRADDAC(a[14], a[29]); SQRADDAC(a[15], a[28]); SQRADDAC(a[16], a[27]); SQRADDAC(a[17], a[26]); SQRADDAC(a[18], a[25]); SQRADDAC(a[19], a[24]); SQRADDAC(a[20], a[23]); SQRADDAC(a[21], a[22]); SQRADDDB; + COMBA_STORE(b[43]); + + /* output 44 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[44]); SQRADDAC(a[1], a[43]); SQRADDAC(a[2], a[42]); SQRADDAC(a[3], a[41]); SQRADDAC(a[4], a[40]); SQRADDAC(a[5], a[39]); SQRADDAC(a[6], a[38]); SQRADDAC(a[7], a[37]); SQRADDAC(a[8], a[36]); SQRADDAC(a[9], a[35]); SQRADDAC(a[10], a[34]); SQRADDAC(a[11], a[33]); SQRADDAC(a[12], a[32]); SQRADDAC(a[13], a[31]); SQRADDAC(a[14], a[30]); SQRADDAC(a[15], a[29]); SQRADDAC(a[16], a[28]); SQRADDAC(a[17], a[27]); SQRADDAC(a[18], a[26]); SQRADDAC(a[19], a[25]); SQRADDAC(a[20], a[24]); SQRADDAC(a[21], a[23]); SQRADDDB; SQRADD(a[22], a[22]); + COMBA_STORE(b[44]); + + /* output 45 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[45]); SQRADDAC(a[1], a[44]); SQRADDAC(a[2], a[43]); SQRADDAC(a[3], a[42]); SQRADDAC(a[4], a[41]); SQRADDAC(a[5], a[40]); SQRADDAC(a[6], a[39]); SQRADDAC(a[7], a[38]); SQRADDAC(a[8], a[37]); SQRADDAC(a[9], a[36]); SQRADDAC(a[10], a[35]); SQRADDAC(a[11], a[34]); SQRADDAC(a[12], a[33]); SQRADDAC(a[13], a[32]); SQRADDAC(a[14], a[31]); SQRADDAC(a[15], a[30]); SQRADDAC(a[16], a[29]); SQRADDAC(a[17], a[28]); SQRADDAC(a[18], a[27]); SQRADDAC(a[19], a[26]); SQRADDAC(a[20], a[25]); SQRADDAC(a[21], a[24]); SQRADDAC(a[22], a[23]); SQRADDDB; + COMBA_STORE(b[45]); + + /* output 46 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[46]); SQRADDAC(a[1], a[45]); SQRADDAC(a[2], a[44]); SQRADDAC(a[3], a[43]); SQRADDAC(a[4], a[42]); SQRADDAC(a[5], a[41]); SQRADDAC(a[6], a[40]); SQRADDAC(a[7], a[39]); SQRADDAC(a[8], a[38]); SQRADDAC(a[9], a[37]); SQRADDAC(a[10], a[36]); SQRADDAC(a[11], a[35]); SQRADDAC(a[12], a[34]); SQRADDAC(a[13], a[33]); SQRADDAC(a[14], a[32]); SQRADDAC(a[15], a[31]); SQRADDAC(a[16], a[30]); SQRADDAC(a[17], a[29]); SQRADDAC(a[18], a[28]); SQRADDAC(a[19], a[27]); SQRADDAC(a[20], a[26]); SQRADDAC(a[21], a[25]); SQRADDAC(a[22], a[24]); SQRADDDB; SQRADD(a[23], a[23]); + COMBA_STORE(b[46]); + + /* output 47 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[47]); SQRADDAC(a[1], a[46]); SQRADDAC(a[2], a[45]); SQRADDAC(a[3], a[44]); SQRADDAC(a[4], a[43]); SQRADDAC(a[5], a[42]); SQRADDAC(a[6], a[41]); SQRADDAC(a[7], a[40]); SQRADDAC(a[8], a[39]); SQRADDAC(a[9], a[38]); SQRADDAC(a[10], a[37]); SQRADDAC(a[11], a[36]); SQRADDAC(a[12], a[35]); SQRADDAC(a[13], a[34]); SQRADDAC(a[14], a[33]); SQRADDAC(a[15], a[32]); SQRADDAC(a[16], a[31]); SQRADDAC(a[17], a[30]); SQRADDAC(a[18], a[29]); SQRADDAC(a[19], a[28]); SQRADDAC(a[20], a[27]); SQRADDAC(a[21], a[26]); SQRADDAC(a[22], a[25]); SQRADDAC(a[23], a[24]); SQRADDDB; + COMBA_STORE(b[47]); + + /* output 48 */ + CARRY_FORWARD; + SQRADDSC(a[1], a[47]); SQRADDAC(a[2], a[46]); SQRADDAC(a[3], a[45]); SQRADDAC(a[4], a[44]); SQRADDAC(a[5], a[43]); SQRADDAC(a[6], a[42]); SQRADDAC(a[7], a[41]); SQRADDAC(a[8], a[40]); SQRADDAC(a[9], a[39]); SQRADDAC(a[10], a[38]); SQRADDAC(a[11], a[37]); SQRADDAC(a[12], a[36]); SQRADDAC(a[13], a[35]); SQRADDAC(a[14], a[34]); SQRADDAC(a[15], a[33]); SQRADDAC(a[16], a[32]); SQRADDAC(a[17], a[31]); SQRADDAC(a[18], a[30]); SQRADDAC(a[19], a[29]); SQRADDAC(a[20], a[28]); SQRADDAC(a[21], a[27]); SQRADDAC(a[22], a[26]); SQRADDAC(a[23], a[25]); SQRADDDB; SQRADD(a[24], a[24]); + COMBA_STORE(b[48]); + + /* output 49 */ + CARRY_FORWARD; + SQRADDSC(a[2], a[47]); SQRADDAC(a[3], a[46]); SQRADDAC(a[4], a[45]); SQRADDAC(a[5], a[44]); SQRADDAC(a[6], a[43]); SQRADDAC(a[7], a[42]); SQRADDAC(a[8], a[41]); SQRADDAC(a[9], a[40]); SQRADDAC(a[10], a[39]); SQRADDAC(a[11], a[38]); SQRADDAC(a[12], a[37]); SQRADDAC(a[13], a[36]); SQRADDAC(a[14], a[35]); SQRADDAC(a[15], a[34]); SQRADDAC(a[16], a[33]); SQRADDAC(a[17], a[32]); SQRADDAC(a[18], a[31]); SQRADDAC(a[19], a[30]); SQRADDAC(a[20], a[29]); SQRADDAC(a[21], a[28]); SQRADDAC(a[22], a[27]); SQRADDAC(a[23], a[26]); SQRADDAC(a[24], a[25]); SQRADDDB; + COMBA_STORE(b[49]); + + /* output 50 */ + CARRY_FORWARD; + SQRADDSC(a[3], a[47]); SQRADDAC(a[4], a[46]); SQRADDAC(a[5], a[45]); SQRADDAC(a[6], a[44]); SQRADDAC(a[7], a[43]); SQRADDAC(a[8], a[42]); SQRADDAC(a[9], a[41]); SQRADDAC(a[10], a[40]); SQRADDAC(a[11], a[39]); SQRADDAC(a[12], a[38]); SQRADDAC(a[13], a[37]); SQRADDAC(a[14], a[36]); SQRADDAC(a[15], a[35]); SQRADDAC(a[16], a[34]); SQRADDAC(a[17], a[33]); SQRADDAC(a[18], a[32]); SQRADDAC(a[19], a[31]); SQRADDAC(a[20], a[30]); SQRADDAC(a[21], a[29]); SQRADDAC(a[22], a[28]); SQRADDAC(a[23], a[27]); SQRADDAC(a[24], a[26]); SQRADDDB; SQRADD(a[25], a[25]); + COMBA_STORE(b[50]); + + /* output 51 */ + CARRY_FORWARD; + SQRADDSC(a[4], a[47]); SQRADDAC(a[5], a[46]); SQRADDAC(a[6], a[45]); SQRADDAC(a[7], a[44]); SQRADDAC(a[8], a[43]); SQRADDAC(a[9], a[42]); SQRADDAC(a[10], a[41]); SQRADDAC(a[11], a[40]); SQRADDAC(a[12], a[39]); SQRADDAC(a[13], a[38]); SQRADDAC(a[14], a[37]); SQRADDAC(a[15], a[36]); SQRADDAC(a[16], a[35]); SQRADDAC(a[17], a[34]); SQRADDAC(a[18], a[33]); SQRADDAC(a[19], a[32]); SQRADDAC(a[20], a[31]); SQRADDAC(a[21], a[30]); SQRADDAC(a[22], a[29]); SQRADDAC(a[23], a[28]); SQRADDAC(a[24], a[27]); SQRADDAC(a[25], a[26]); SQRADDDB; + COMBA_STORE(b[51]); + + /* output 52 */ + CARRY_FORWARD; + SQRADDSC(a[5], a[47]); SQRADDAC(a[6], a[46]); SQRADDAC(a[7], a[45]); SQRADDAC(a[8], a[44]); SQRADDAC(a[9], a[43]); SQRADDAC(a[10], a[42]); SQRADDAC(a[11], a[41]); SQRADDAC(a[12], a[40]); SQRADDAC(a[13], a[39]); SQRADDAC(a[14], a[38]); SQRADDAC(a[15], a[37]); SQRADDAC(a[16], a[36]); SQRADDAC(a[17], a[35]); SQRADDAC(a[18], a[34]); SQRADDAC(a[19], a[33]); SQRADDAC(a[20], a[32]); SQRADDAC(a[21], a[31]); SQRADDAC(a[22], a[30]); SQRADDAC(a[23], a[29]); SQRADDAC(a[24], a[28]); SQRADDAC(a[25], a[27]); SQRADDDB; SQRADD(a[26], a[26]); + COMBA_STORE(b[52]); + + /* output 53 */ + CARRY_FORWARD; + SQRADDSC(a[6], a[47]); SQRADDAC(a[7], a[46]); SQRADDAC(a[8], a[45]); SQRADDAC(a[9], a[44]); SQRADDAC(a[10], a[43]); SQRADDAC(a[11], a[42]); SQRADDAC(a[12], a[41]); SQRADDAC(a[13], a[40]); SQRADDAC(a[14], a[39]); SQRADDAC(a[15], a[38]); SQRADDAC(a[16], a[37]); SQRADDAC(a[17], a[36]); SQRADDAC(a[18], a[35]); SQRADDAC(a[19], a[34]); SQRADDAC(a[20], a[33]); SQRADDAC(a[21], a[32]); SQRADDAC(a[22], a[31]); SQRADDAC(a[23], a[30]); SQRADDAC(a[24], a[29]); SQRADDAC(a[25], a[28]); SQRADDAC(a[26], a[27]); SQRADDDB; + COMBA_STORE(b[53]); + + /* output 54 */ + CARRY_FORWARD; + SQRADDSC(a[7], a[47]); SQRADDAC(a[8], a[46]); SQRADDAC(a[9], a[45]); SQRADDAC(a[10], a[44]); SQRADDAC(a[11], a[43]); SQRADDAC(a[12], a[42]); SQRADDAC(a[13], a[41]); SQRADDAC(a[14], a[40]); SQRADDAC(a[15], a[39]); SQRADDAC(a[16], a[38]); SQRADDAC(a[17], a[37]); SQRADDAC(a[18], a[36]); SQRADDAC(a[19], a[35]); SQRADDAC(a[20], a[34]); SQRADDAC(a[21], a[33]); SQRADDAC(a[22], a[32]); SQRADDAC(a[23], a[31]); SQRADDAC(a[24], a[30]); SQRADDAC(a[25], a[29]); SQRADDAC(a[26], a[28]); SQRADDDB; SQRADD(a[27], a[27]); + COMBA_STORE(b[54]); + + /* output 55 */ + CARRY_FORWARD; + SQRADDSC(a[8], a[47]); SQRADDAC(a[9], a[46]); SQRADDAC(a[10], a[45]); SQRADDAC(a[11], a[44]); SQRADDAC(a[12], a[43]); SQRADDAC(a[13], a[42]); SQRADDAC(a[14], a[41]); SQRADDAC(a[15], a[40]); SQRADDAC(a[16], a[39]); SQRADDAC(a[17], a[38]); SQRADDAC(a[18], a[37]); SQRADDAC(a[19], a[36]); SQRADDAC(a[20], a[35]); SQRADDAC(a[21], a[34]); SQRADDAC(a[22], a[33]); SQRADDAC(a[23], a[32]); SQRADDAC(a[24], a[31]); SQRADDAC(a[25], a[30]); SQRADDAC(a[26], a[29]); SQRADDAC(a[27], a[28]); SQRADDDB; + COMBA_STORE(b[55]); + + /* output 56 */ + CARRY_FORWARD; + SQRADDSC(a[9], a[47]); SQRADDAC(a[10], a[46]); SQRADDAC(a[11], a[45]); SQRADDAC(a[12], a[44]); SQRADDAC(a[13], a[43]); SQRADDAC(a[14], a[42]); SQRADDAC(a[15], a[41]); SQRADDAC(a[16], a[40]); SQRADDAC(a[17], a[39]); SQRADDAC(a[18], a[38]); SQRADDAC(a[19], a[37]); SQRADDAC(a[20], a[36]); SQRADDAC(a[21], a[35]); SQRADDAC(a[22], a[34]); SQRADDAC(a[23], a[33]); SQRADDAC(a[24], a[32]); SQRADDAC(a[25], a[31]); SQRADDAC(a[26], a[30]); SQRADDAC(a[27], a[29]); SQRADDDB; SQRADD(a[28], a[28]); + COMBA_STORE(b[56]); + + /* output 57 */ + CARRY_FORWARD; + SQRADDSC(a[10], a[47]); SQRADDAC(a[11], a[46]); SQRADDAC(a[12], a[45]); SQRADDAC(a[13], a[44]); SQRADDAC(a[14], a[43]); SQRADDAC(a[15], a[42]); SQRADDAC(a[16], a[41]); SQRADDAC(a[17], a[40]); SQRADDAC(a[18], a[39]); SQRADDAC(a[19], a[38]); SQRADDAC(a[20], a[37]); SQRADDAC(a[21], a[36]); SQRADDAC(a[22], a[35]); SQRADDAC(a[23], a[34]); SQRADDAC(a[24], a[33]); SQRADDAC(a[25], a[32]); SQRADDAC(a[26], a[31]); SQRADDAC(a[27], a[30]); SQRADDAC(a[28], a[29]); SQRADDDB; + COMBA_STORE(b[57]); + + /* output 58 */ + CARRY_FORWARD; + SQRADDSC(a[11], a[47]); SQRADDAC(a[12], a[46]); SQRADDAC(a[13], a[45]); SQRADDAC(a[14], a[44]); SQRADDAC(a[15], a[43]); SQRADDAC(a[16], a[42]); SQRADDAC(a[17], a[41]); SQRADDAC(a[18], a[40]); SQRADDAC(a[19], a[39]); SQRADDAC(a[20], a[38]); SQRADDAC(a[21], a[37]); SQRADDAC(a[22], a[36]); SQRADDAC(a[23], a[35]); SQRADDAC(a[24], a[34]); SQRADDAC(a[25], a[33]); SQRADDAC(a[26], a[32]); SQRADDAC(a[27], a[31]); SQRADDAC(a[28], a[30]); SQRADDDB; SQRADD(a[29], a[29]); + COMBA_STORE(b[58]); + + /* output 59 */ + CARRY_FORWARD; + SQRADDSC(a[12], a[47]); SQRADDAC(a[13], a[46]); SQRADDAC(a[14], a[45]); SQRADDAC(a[15], a[44]); SQRADDAC(a[16], a[43]); SQRADDAC(a[17], a[42]); SQRADDAC(a[18], a[41]); SQRADDAC(a[19], a[40]); SQRADDAC(a[20], a[39]); SQRADDAC(a[21], a[38]); SQRADDAC(a[22], a[37]); SQRADDAC(a[23], a[36]); SQRADDAC(a[24], a[35]); SQRADDAC(a[25], a[34]); SQRADDAC(a[26], a[33]); SQRADDAC(a[27], a[32]); SQRADDAC(a[28], a[31]); SQRADDAC(a[29], a[30]); SQRADDDB; + COMBA_STORE(b[59]); + + /* output 60 */ + CARRY_FORWARD; + SQRADDSC(a[13], a[47]); SQRADDAC(a[14], a[46]); SQRADDAC(a[15], a[45]); SQRADDAC(a[16], a[44]); SQRADDAC(a[17], a[43]); SQRADDAC(a[18], a[42]); SQRADDAC(a[19], a[41]); SQRADDAC(a[20], a[40]); SQRADDAC(a[21], a[39]); SQRADDAC(a[22], a[38]); SQRADDAC(a[23], a[37]); SQRADDAC(a[24], a[36]); SQRADDAC(a[25], a[35]); SQRADDAC(a[26], a[34]); SQRADDAC(a[27], a[33]); SQRADDAC(a[28], a[32]); SQRADDAC(a[29], a[31]); SQRADDDB; SQRADD(a[30], a[30]); + COMBA_STORE(b[60]); + + /* output 61 */ + CARRY_FORWARD; + SQRADDSC(a[14], a[47]); SQRADDAC(a[15], a[46]); SQRADDAC(a[16], a[45]); SQRADDAC(a[17], a[44]); SQRADDAC(a[18], a[43]); SQRADDAC(a[19], a[42]); SQRADDAC(a[20], a[41]); SQRADDAC(a[21], a[40]); SQRADDAC(a[22], a[39]); SQRADDAC(a[23], a[38]); SQRADDAC(a[24], a[37]); SQRADDAC(a[25], a[36]); SQRADDAC(a[26], a[35]); SQRADDAC(a[27], a[34]); SQRADDAC(a[28], a[33]); SQRADDAC(a[29], a[32]); SQRADDAC(a[30], a[31]); SQRADDDB; + COMBA_STORE(b[61]); + + /* output 62 */ + CARRY_FORWARD; + SQRADDSC(a[15], a[47]); SQRADDAC(a[16], a[46]); SQRADDAC(a[17], a[45]); SQRADDAC(a[18], a[44]); SQRADDAC(a[19], a[43]); SQRADDAC(a[20], a[42]); SQRADDAC(a[21], a[41]); SQRADDAC(a[22], a[40]); SQRADDAC(a[23], a[39]); SQRADDAC(a[24], a[38]); SQRADDAC(a[25], a[37]); SQRADDAC(a[26], a[36]); SQRADDAC(a[27], a[35]); SQRADDAC(a[28], a[34]); SQRADDAC(a[29], a[33]); SQRADDAC(a[30], a[32]); SQRADDDB; SQRADD(a[31], a[31]); + COMBA_STORE(b[62]); + + /* output 63 */ + CARRY_FORWARD; + SQRADDSC(a[16], a[47]); SQRADDAC(a[17], a[46]); SQRADDAC(a[18], a[45]); SQRADDAC(a[19], a[44]); SQRADDAC(a[20], a[43]); SQRADDAC(a[21], a[42]); SQRADDAC(a[22], a[41]); SQRADDAC(a[23], a[40]); SQRADDAC(a[24], a[39]); SQRADDAC(a[25], a[38]); SQRADDAC(a[26], a[37]); SQRADDAC(a[27], a[36]); SQRADDAC(a[28], a[35]); SQRADDAC(a[29], a[34]); SQRADDAC(a[30], a[33]); SQRADDAC(a[31], a[32]); SQRADDDB; + COMBA_STORE(b[63]); + + /* output 64 */ + CARRY_FORWARD; + SQRADDSC(a[17], a[47]); SQRADDAC(a[18], a[46]); SQRADDAC(a[19], a[45]); SQRADDAC(a[20], a[44]); SQRADDAC(a[21], a[43]); SQRADDAC(a[22], a[42]); SQRADDAC(a[23], a[41]); SQRADDAC(a[24], a[40]); SQRADDAC(a[25], a[39]); SQRADDAC(a[26], a[38]); SQRADDAC(a[27], a[37]); SQRADDAC(a[28], a[36]); SQRADDAC(a[29], a[35]); SQRADDAC(a[30], a[34]); SQRADDAC(a[31], a[33]); SQRADDDB; SQRADD(a[32], a[32]); + COMBA_STORE(b[64]); + + /* output 65 */ + CARRY_FORWARD; + SQRADDSC(a[18], a[47]); SQRADDAC(a[19], a[46]); SQRADDAC(a[20], a[45]); SQRADDAC(a[21], a[44]); SQRADDAC(a[22], a[43]); SQRADDAC(a[23], a[42]); SQRADDAC(a[24], a[41]); SQRADDAC(a[25], a[40]); SQRADDAC(a[26], a[39]); SQRADDAC(a[27], a[38]); SQRADDAC(a[28], a[37]); SQRADDAC(a[29], a[36]); SQRADDAC(a[30], a[35]); SQRADDAC(a[31], a[34]); SQRADDAC(a[32], a[33]); SQRADDDB; + COMBA_STORE(b[65]); + + /* output 66 */ + CARRY_FORWARD; + SQRADDSC(a[19], a[47]); SQRADDAC(a[20], a[46]); SQRADDAC(a[21], a[45]); SQRADDAC(a[22], a[44]); SQRADDAC(a[23], a[43]); SQRADDAC(a[24], a[42]); SQRADDAC(a[25], a[41]); SQRADDAC(a[26], a[40]); SQRADDAC(a[27], a[39]); SQRADDAC(a[28], a[38]); SQRADDAC(a[29], a[37]); SQRADDAC(a[30], a[36]); SQRADDAC(a[31], a[35]); SQRADDAC(a[32], a[34]); SQRADDDB; SQRADD(a[33], a[33]); + COMBA_STORE(b[66]); + + /* output 67 */ + CARRY_FORWARD; + SQRADDSC(a[20], a[47]); SQRADDAC(a[21], a[46]); SQRADDAC(a[22], a[45]); SQRADDAC(a[23], a[44]); SQRADDAC(a[24], a[43]); SQRADDAC(a[25], a[42]); SQRADDAC(a[26], a[41]); SQRADDAC(a[27], a[40]); SQRADDAC(a[28], a[39]); SQRADDAC(a[29], a[38]); SQRADDAC(a[30], a[37]); SQRADDAC(a[31], a[36]); SQRADDAC(a[32], a[35]); SQRADDAC(a[33], a[34]); SQRADDDB; + COMBA_STORE(b[67]); + + /* output 68 */ + CARRY_FORWARD; + SQRADDSC(a[21], a[47]); SQRADDAC(a[22], a[46]); SQRADDAC(a[23], a[45]); SQRADDAC(a[24], a[44]); SQRADDAC(a[25], a[43]); SQRADDAC(a[26], a[42]); SQRADDAC(a[27], a[41]); SQRADDAC(a[28], a[40]); SQRADDAC(a[29], a[39]); SQRADDAC(a[30], a[38]); SQRADDAC(a[31], a[37]); SQRADDAC(a[32], a[36]); SQRADDAC(a[33], a[35]); SQRADDDB; SQRADD(a[34], a[34]); + COMBA_STORE(b[68]); + + /* output 69 */ + CARRY_FORWARD; + SQRADDSC(a[22], a[47]); SQRADDAC(a[23], a[46]); SQRADDAC(a[24], a[45]); SQRADDAC(a[25], a[44]); SQRADDAC(a[26], a[43]); SQRADDAC(a[27], a[42]); SQRADDAC(a[28], a[41]); SQRADDAC(a[29], a[40]); SQRADDAC(a[30], a[39]); SQRADDAC(a[31], a[38]); SQRADDAC(a[32], a[37]); SQRADDAC(a[33], a[36]); SQRADDAC(a[34], a[35]); SQRADDDB; + COMBA_STORE(b[69]); + + /* output 70 */ + CARRY_FORWARD; + SQRADDSC(a[23], a[47]); SQRADDAC(a[24], a[46]); SQRADDAC(a[25], a[45]); SQRADDAC(a[26], a[44]); SQRADDAC(a[27], a[43]); SQRADDAC(a[28], a[42]); SQRADDAC(a[29], a[41]); SQRADDAC(a[30], a[40]); SQRADDAC(a[31], a[39]); SQRADDAC(a[32], a[38]); SQRADDAC(a[33], a[37]); SQRADDAC(a[34], a[36]); SQRADDDB; SQRADD(a[35], a[35]); + COMBA_STORE(b[70]); + + /* output 71 */ + CARRY_FORWARD; + SQRADDSC(a[24], a[47]); SQRADDAC(a[25], a[46]); SQRADDAC(a[26], a[45]); SQRADDAC(a[27], a[44]); SQRADDAC(a[28], a[43]); SQRADDAC(a[29], a[42]); SQRADDAC(a[30], a[41]); SQRADDAC(a[31], a[40]); SQRADDAC(a[32], a[39]); SQRADDAC(a[33], a[38]); SQRADDAC(a[34], a[37]); SQRADDAC(a[35], a[36]); SQRADDDB; + COMBA_STORE(b[71]); + + /* output 72 */ + CARRY_FORWARD; + SQRADDSC(a[25], a[47]); SQRADDAC(a[26], a[46]); SQRADDAC(a[27], a[45]); SQRADDAC(a[28], a[44]); SQRADDAC(a[29], a[43]); SQRADDAC(a[30], a[42]); SQRADDAC(a[31], a[41]); SQRADDAC(a[32], a[40]); SQRADDAC(a[33], a[39]); SQRADDAC(a[34], a[38]); SQRADDAC(a[35], a[37]); SQRADDDB; SQRADD(a[36], a[36]); + COMBA_STORE(b[72]); + + /* output 73 */ + CARRY_FORWARD; + SQRADDSC(a[26], a[47]); SQRADDAC(a[27], a[46]); SQRADDAC(a[28], a[45]); SQRADDAC(a[29], a[44]); SQRADDAC(a[30], a[43]); SQRADDAC(a[31], a[42]); SQRADDAC(a[32], a[41]); SQRADDAC(a[33], a[40]); SQRADDAC(a[34], a[39]); SQRADDAC(a[35], a[38]); SQRADDAC(a[36], a[37]); SQRADDDB; + COMBA_STORE(b[73]); + + /* output 74 */ + CARRY_FORWARD; + SQRADDSC(a[27], a[47]); SQRADDAC(a[28], a[46]); SQRADDAC(a[29], a[45]); SQRADDAC(a[30], a[44]); SQRADDAC(a[31], a[43]); SQRADDAC(a[32], a[42]); SQRADDAC(a[33], a[41]); SQRADDAC(a[34], a[40]); SQRADDAC(a[35], a[39]); SQRADDAC(a[36], a[38]); SQRADDDB; SQRADD(a[37], a[37]); + COMBA_STORE(b[74]); + + /* output 75 */ + CARRY_FORWARD; + SQRADDSC(a[28], a[47]); SQRADDAC(a[29], a[46]); SQRADDAC(a[30], a[45]); SQRADDAC(a[31], a[44]); SQRADDAC(a[32], a[43]); SQRADDAC(a[33], a[42]); SQRADDAC(a[34], a[41]); SQRADDAC(a[35], a[40]); SQRADDAC(a[36], a[39]); SQRADDAC(a[37], a[38]); SQRADDDB; + COMBA_STORE(b[75]); + + /* output 76 */ + CARRY_FORWARD; + SQRADDSC(a[29], a[47]); SQRADDAC(a[30], a[46]); SQRADDAC(a[31], a[45]); SQRADDAC(a[32], a[44]); SQRADDAC(a[33], a[43]); SQRADDAC(a[34], a[42]); SQRADDAC(a[35], a[41]); SQRADDAC(a[36], a[40]); SQRADDAC(a[37], a[39]); SQRADDDB; SQRADD(a[38], a[38]); + COMBA_STORE(b[76]); + + /* output 77 */ + CARRY_FORWARD; + SQRADDSC(a[30], a[47]); SQRADDAC(a[31], a[46]); SQRADDAC(a[32], a[45]); SQRADDAC(a[33], a[44]); SQRADDAC(a[34], a[43]); SQRADDAC(a[35], a[42]); SQRADDAC(a[36], a[41]); SQRADDAC(a[37], a[40]); SQRADDAC(a[38], a[39]); SQRADDDB; + COMBA_STORE(b[77]); + + /* output 78 */ + CARRY_FORWARD; + SQRADDSC(a[31], a[47]); SQRADDAC(a[32], a[46]); SQRADDAC(a[33], a[45]); SQRADDAC(a[34], a[44]); SQRADDAC(a[35], a[43]); SQRADDAC(a[36], a[42]); SQRADDAC(a[37], a[41]); SQRADDAC(a[38], a[40]); SQRADDDB; SQRADD(a[39], a[39]); + COMBA_STORE(b[78]); + + /* output 79 */ + CARRY_FORWARD; + SQRADDSC(a[32], a[47]); SQRADDAC(a[33], a[46]); SQRADDAC(a[34], a[45]); SQRADDAC(a[35], a[44]); SQRADDAC(a[36], a[43]); SQRADDAC(a[37], a[42]); SQRADDAC(a[38], a[41]); SQRADDAC(a[39], a[40]); SQRADDDB; + COMBA_STORE(b[79]); + + /* output 80 */ + CARRY_FORWARD; + SQRADDSC(a[33], a[47]); SQRADDAC(a[34], a[46]); SQRADDAC(a[35], a[45]); SQRADDAC(a[36], a[44]); SQRADDAC(a[37], a[43]); SQRADDAC(a[38], a[42]); SQRADDAC(a[39], a[41]); SQRADDDB; SQRADD(a[40], a[40]); + COMBA_STORE(b[80]); + + /* output 81 */ + CARRY_FORWARD; + SQRADDSC(a[34], a[47]); SQRADDAC(a[35], a[46]); SQRADDAC(a[36], a[45]); SQRADDAC(a[37], a[44]); SQRADDAC(a[38], a[43]); SQRADDAC(a[39], a[42]); SQRADDAC(a[40], a[41]); SQRADDDB; + COMBA_STORE(b[81]); + + /* output 82 */ + CARRY_FORWARD; + SQRADDSC(a[35], a[47]); SQRADDAC(a[36], a[46]); SQRADDAC(a[37], a[45]); SQRADDAC(a[38], a[44]); SQRADDAC(a[39], a[43]); SQRADDAC(a[40], a[42]); SQRADDDB; SQRADD(a[41], a[41]); + COMBA_STORE(b[82]); + + /* output 83 */ + CARRY_FORWARD; + SQRADDSC(a[36], a[47]); SQRADDAC(a[37], a[46]); SQRADDAC(a[38], a[45]); SQRADDAC(a[39], a[44]); SQRADDAC(a[40], a[43]); SQRADDAC(a[41], a[42]); SQRADDDB; + COMBA_STORE(b[83]); + + /* output 84 */ + CARRY_FORWARD; + SQRADDSC(a[37], a[47]); SQRADDAC(a[38], a[46]); SQRADDAC(a[39], a[45]); SQRADDAC(a[40], a[44]); SQRADDAC(a[41], a[43]); SQRADDDB; SQRADD(a[42], a[42]); + COMBA_STORE(b[84]); + + /* output 85 */ + CARRY_FORWARD; + SQRADDSC(a[38], a[47]); SQRADDAC(a[39], a[46]); SQRADDAC(a[40], a[45]); SQRADDAC(a[41], a[44]); SQRADDAC(a[42], a[43]); SQRADDDB; + COMBA_STORE(b[85]); + + /* output 86 */ + CARRY_FORWARD; + SQRADDSC(a[39], a[47]); SQRADDAC(a[40], a[46]); SQRADDAC(a[41], a[45]); SQRADDAC(a[42], a[44]); SQRADDDB; SQRADD(a[43], a[43]); + COMBA_STORE(b[86]); + + /* output 87 */ + CARRY_FORWARD; + SQRADDSC(a[40], a[47]); SQRADDAC(a[41], a[46]); SQRADDAC(a[42], a[45]); SQRADDAC(a[43], a[44]); SQRADDDB; + COMBA_STORE(b[87]); + + /* output 88 */ + CARRY_FORWARD; + SQRADDSC(a[41], a[47]); SQRADDAC(a[42], a[46]); SQRADDAC(a[43], a[45]); SQRADDDB; SQRADD(a[44], a[44]); + COMBA_STORE(b[88]); + + /* output 89 */ + CARRY_FORWARD; + SQRADDSC(a[42], a[47]); SQRADDAC(a[43], a[46]); SQRADDAC(a[44], a[45]); SQRADDDB; + COMBA_STORE(b[89]); + + /* output 90 */ + CARRY_FORWARD; + SQRADD2(a[43], a[47]); SQRADD2(a[44], a[46]); SQRADD(a[45], a[45]); + COMBA_STORE(b[90]); + + /* output 91 */ + CARRY_FORWARD; + SQRADD2(a[44], a[47]); SQRADD2(a[45], a[46]); + COMBA_STORE(b[91]); + + /* output 92 */ + CARRY_FORWARD; + SQRADD2(a[45], a[47]); SQRADD(a[46], a[46]); + COMBA_STORE(b[92]); + + /* output 93 */ + CARRY_FORWARD; + SQRADD2(a[46], a[47]); + COMBA_STORE(b[93]); + + /* output 94 */ + CARRY_FORWARD; + SQRADD(a[47], a[47]); + COMBA_STORE(b[94]); + COMBA_STORE2(b[95]); + COMBA_FINI; + + B->used = 96; + B->sign = FP_ZPOS; + memcpy(B->dp, b, 96 * sizeof(fp_digit)); + fp_clamp(B); +} +#endif + + diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_6.i b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_6.i new file mode 100644 index 000000000..695e6d3d0 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_6.i @@ -0,0 +1,97 @@ +/* fp_sqr_comba_6.i + * + * Copyright (C) 2006-2011 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifdef TFM_SQR6 +void fp_sqr_comba6(fp_int *A, fp_int *B) +{ + fp_digit *a, b[12], c0, c1, c2, sc0, sc1, sc2; + + a = A->dp; + COMBA_START; + + /* clear carries */ + CLEAR_CARRY; + + /* output 0 */ + SQRADD(a[0],a[0]); + COMBA_STORE(b[0]); + + /* output 1 */ + CARRY_FORWARD; + SQRADD2(a[0], a[1]); + COMBA_STORE(b[1]); + + /* output 2 */ + CARRY_FORWARD; + SQRADD2(a[0], a[2]); SQRADD(a[1], a[1]); + COMBA_STORE(b[2]); + + /* output 3 */ + CARRY_FORWARD; + SQRADD2(a[0], a[3]); SQRADD2(a[1], a[2]); + COMBA_STORE(b[3]); + + /* output 4 */ + CARRY_FORWARD; + SQRADD2(a[0], a[4]); SQRADD2(a[1], a[3]); SQRADD(a[2], a[2]); + COMBA_STORE(b[4]); + + /* output 5 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[5]); SQRADDAC(a[1], a[4]); SQRADDAC(a[2], a[3]); SQRADDDB; + COMBA_STORE(b[5]); + + /* output 6 */ + CARRY_FORWARD; + SQRADD2(a[1], a[5]); SQRADD2(a[2], a[4]); SQRADD(a[3], a[3]); + COMBA_STORE(b[6]); + + /* output 7 */ + CARRY_FORWARD; + SQRADD2(a[2], a[5]); SQRADD2(a[3], a[4]); + COMBA_STORE(b[7]); + + /* output 8 */ + CARRY_FORWARD; + SQRADD2(a[3], a[5]); SQRADD(a[4], a[4]); + COMBA_STORE(b[8]); + + /* output 9 */ + CARRY_FORWARD; + SQRADD2(a[4], a[5]); + COMBA_STORE(b[9]); + + /* output 10 */ + CARRY_FORWARD; + SQRADD(a[5], a[5]); + COMBA_STORE(b[10]); + COMBA_STORE2(b[11]); + COMBA_FINI; + + B->used = 12; + B->sign = FP_ZPOS; + memcpy(B->dp, b, 12 * sizeof(fp_digit)); + fp_clamp(B); +} +#endif + + diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_64.i b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_64.i new file mode 100644 index 000000000..a2fedc8e4 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_64.i @@ -0,0 +1,680 @@ +/* fp_sqr_comba_64.i + * + * Copyright (C) 2006-2011 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifdef TFM_SQR64 +void fp_sqr_comba64(fp_int *A, fp_int *B) +{ + fp_digit *a, b[128], c0, c1, c2, sc0, sc1, sc2; +#ifdef TFM_ISO + fp_word tt; +#endif + + a = A->dp; + COMBA_START; + + /* clear carries */ + CLEAR_CARRY; + + /* output 0 */ + SQRADD(a[0],a[0]); + COMBA_STORE(b[0]); + + /* output 1 */ + CARRY_FORWARD; + SQRADD2(a[0], a[1]); + COMBA_STORE(b[1]); + + /* output 2 */ + CARRY_FORWARD; + SQRADD2(a[0], a[2]); SQRADD(a[1], a[1]); + COMBA_STORE(b[2]); + + /* output 3 */ + CARRY_FORWARD; + SQRADD2(a[0], a[3]); SQRADD2(a[1], a[2]); + COMBA_STORE(b[3]); + + /* output 4 */ + CARRY_FORWARD; + SQRADD2(a[0], a[4]); SQRADD2(a[1], a[3]); SQRADD(a[2], a[2]); + COMBA_STORE(b[4]); + + /* output 5 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[5]); SQRADDAC(a[1], a[4]); SQRADDAC(a[2], a[3]); SQRADDDB; + COMBA_STORE(b[5]); + + /* output 6 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[6]); SQRADDAC(a[1], a[5]); SQRADDAC(a[2], a[4]); SQRADDDB; SQRADD(a[3], a[3]); + COMBA_STORE(b[6]); + + /* output 7 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[7]); SQRADDAC(a[1], a[6]); SQRADDAC(a[2], a[5]); SQRADDAC(a[3], a[4]); SQRADDDB; + COMBA_STORE(b[7]); + + /* output 8 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[8]); SQRADDAC(a[1], a[7]); SQRADDAC(a[2], a[6]); SQRADDAC(a[3], a[5]); SQRADDDB; SQRADD(a[4], a[4]); + COMBA_STORE(b[8]); + + /* output 9 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[9]); SQRADDAC(a[1], a[8]); SQRADDAC(a[2], a[7]); SQRADDAC(a[3], a[6]); SQRADDAC(a[4], a[5]); SQRADDDB; + COMBA_STORE(b[9]); + + /* output 10 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[10]); SQRADDAC(a[1], a[9]); SQRADDAC(a[2], a[8]); SQRADDAC(a[3], a[7]); SQRADDAC(a[4], a[6]); SQRADDDB; SQRADD(a[5], a[5]); + COMBA_STORE(b[10]); + + /* output 11 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[11]); SQRADDAC(a[1], a[10]); SQRADDAC(a[2], a[9]); SQRADDAC(a[3], a[8]); SQRADDAC(a[4], a[7]); SQRADDAC(a[5], a[6]); SQRADDDB; + COMBA_STORE(b[11]); + + /* output 12 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[12]); SQRADDAC(a[1], a[11]); SQRADDAC(a[2], a[10]); SQRADDAC(a[3], a[9]); SQRADDAC(a[4], a[8]); SQRADDAC(a[5], a[7]); SQRADDDB; SQRADD(a[6], a[6]); + COMBA_STORE(b[12]); + + /* output 13 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[13]); SQRADDAC(a[1], a[12]); SQRADDAC(a[2], a[11]); SQRADDAC(a[3], a[10]); SQRADDAC(a[4], a[9]); SQRADDAC(a[5], a[8]); SQRADDAC(a[6], a[7]); SQRADDDB; + COMBA_STORE(b[13]); + + /* output 14 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[14]); SQRADDAC(a[1], a[13]); SQRADDAC(a[2], a[12]); SQRADDAC(a[3], a[11]); SQRADDAC(a[4], a[10]); SQRADDAC(a[5], a[9]); SQRADDAC(a[6], a[8]); SQRADDDB; SQRADD(a[7], a[7]); + COMBA_STORE(b[14]); + + /* output 15 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[15]); SQRADDAC(a[1], a[14]); SQRADDAC(a[2], a[13]); SQRADDAC(a[3], a[12]); SQRADDAC(a[4], a[11]); SQRADDAC(a[5], a[10]); SQRADDAC(a[6], a[9]); SQRADDAC(a[7], a[8]); SQRADDDB; + COMBA_STORE(b[15]); + + /* output 16 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[16]); SQRADDAC(a[1], a[15]); SQRADDAC(a[2], a[14]); SQRADDAC(a[3], a[13]); SQRADDAC(a[4], a[12]); SQRADDAC(a[5], a[11]); SQRADDAC(a[6], a[10]); SQRADDAC(a[7], a[9]); SQRADDDB; SQRADD(a[8], a[8]); + COMBA_STORE(b[16]); + + /* output 17 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[17]); SQRADDAC(a[1], a[16]); SQRADDAC(a[2], a[15]); SQRADDAC(a[3], a[14]); SQRADDAC(a[4], a[13]); SQRADDAC(a[5], a[12]); SQRADDAC(a[6], a[11]); SQRADDAC(a[7], a[10]); SQRADDAC(a[8], a[9]); SQRADDDB; + COMBA_STORE(b[17]); + + /* output 18 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[18]); SQRADDAC(a[1], a[17]); SQRADDAC(a[2], a[16]); SQRADDAC(a[3], a[15]); SQRADDAC(a[4], a[14]); SQRADDAC(a[5], a[13]); SQRADDAC(a[6], a[12]); SQRADDAC(a[7], a[11]); SQRADDAC(a[8], a[10]); SQRADDDB; SQRADD(a[9], a[9]); + COMBA_STORE(b[18]); + + /* output 19 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[19]); SQRADDAC(a[1], a[18]); SQRADDAC(a[2], a[17]); SQRADDAC(a[3], a[16]); SQRADDAC(a[4], a[15]); SQRADDAC(a[5], a[14]); SQRADDAC(a[6], a[13]); SQRADDAC(a[7], a[12]); SQRADDAC(a[8], a[11]); SQRADDAC(a[9], a[10]); SQRADDDB; + COMBA_STORE(b[19]); + + /* output 20 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[20]); SQRADDAC(a[1], a[19]); SQRADDAC(a[2], a[18]); SQRADDAC(a[3], a[17]); SQRADDAC(a[4], a[16]); SQRADDAC(a[5], a[15]); SQRADDAC(a[6], a[14]); SQRADDAC(a[7], a[13]); SQRADDAC(a[8], a[12]); SQRADDAC(a[9], a[11]); SQRADDDB; SQRADD(a[10], a[10]); + COMBA_STORE(b[20]); + + /* output 21 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[21]); SQRADDAC(a[1], a[20]); SQRADDAC(a[2], a[19]); SQRADDAC(a[3], a[18]); SQRADDAC(a[4], a[17]); SQRADDAC(a[5], a[16]); SQRADDAC(a[6], a[15]); SQRADDAC(a[7], a[14]); SQRADDAC(a[8], a[13]); SQRADDAC(a[9], a[12]); SQRADDAC(a[10], a[11]); SQRADDDB; + COMBA_STORE(b[21]); + + /* output 22 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[22]); SQRADDAC(a[1], a[21]); SQRADDAC(a[2], a[20]); SQRADDAC(a[3], a[19]); SQRADDAC(a[4], a[18]); SQRADDAC(a[5], a[17]); SQRADDAC(a[6], a[16]); SQRADDAC(a[7], a[15]); SQRADDAC(a[8], a[14]); SQRADDAC(a[9], a[13]); SQRADDAC(a[10], a[12]); SQRADDDB; SQRADD(a[11], a[11]); + COMBA_STORE(b[22]); + + /* output 23 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[23]); SQRADDAC(a[1], a[22]); SQRADDAC(a[2], a[21]); SQRADDAC(a[3], a[20]); SQRADDAC(a[4], a[19]); SQRADDAC(a[5], a[18]); SQRADDAC(a[6], a[17]); SQRADDAC(a[7], a[16]); SQRADDAC(a[8], a[15]); SQRADDAC(a[9], a[14]); SQRADDAC(a[10], a[13]); SQRADDAC(a[11], a[12]); SQRADDDB; + COMBA_STORE(b[23]); + + /* output 24 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[24]); SQRADDAC(a[1], a[23]); SQRADDAC(a[2], a[22]); SQRADDAC(a[3], a[21]); SQRADDAC(a[4], a[20]); SQRADDAC(a[5], a[19]); SQRADDAC(a[6], a[18]); SQRADDAC(a[7], a[17]); SQRADDAC(a[8], a[16]); SQRADDAC(a[9], a[15]); SQRADDAC(a[10], a[14]); SQRADDAC(a[11], a[13]); SQRADDDB; SQRADD(a[12], a[12]); + COMBA_STORE(b[24]); + + /* output 25 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[25]); SQRADDAC(a[1], a[24]); SQRADDAC(a[2], a[23]); SQRADDAC(a[3], a[22]); SQRADDAC(a[4], a[21]); SQRADDAC(a[5], a[20]); SQRADDAC(a[6], a[19]); SQRADDAC(a[7], a[18]); SQRADDAC(a[8], a[17]); SQRADDAC(a[9], a[16]); SQRADDAC(a[10], a[15]); SQRADDAC(a[11], a[14]); SQRADDAC(a[12], a[13]); SQRADDDB; + COMBA_STORE(b[25]); + + /* output 26 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[26]); SQRADDAC(a[1], a[25]); SQRADDAC(a[2], a[24]); SQRADDAC(a[3], a[23]); SQRADDAC(a[4], a[22]); SQRADDAC(a[5], a[21]); SQRADDAC(a[6], a[20]); SQRADDAC(a[7], a[19]); SQRADDAC(a[8], a[18]); SQRADDAC(a[9], a[17]); SQRADDAC(a[10], a[16]); SQRADDAC(a[11], a[15]); SQRADDAC(a[12], a[14]); SQRADDDB; SQRADD(a[13], a[13]); + COMBA_STORE(b[26]); + + /* output 27 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[27]); SQRADDAC(a[1], a[26]); SQRADDAC(a[2], a[25]); SQRADDAC(a[3], a[24]); SQRADDAC(a[4], a[23]); SQRADDAC(a[5], a[22]); SQRADDAC(a[6], a[21]); SQRADDAC(a[7], a[20]); SQRADDAC(a[8], a[19]); SQRADDAC(a[9], a[18]); SQRADDAC(a[10], a[17]); SQRADDAC(a[11], a[16]); SQRADDAC(a[12], a[15]); SQRADDAC(a[13], a[14]); SQRADDDB; + COMBA_STORE(b[27]); + + /* output 28 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[28]); SQRADDAC(a[1], a[27]); SQRADDAC(a[2], a[26]); SQRADDAC(a[3], a[25]); SQRADDAC(a[4], a[24]); SQRADDAC(a[5], a[23]); SQRADDAC(a[6], a[22]); SQRADDAC(a[7], a[21]); SQRADDAC(a[8], a[20]); SQRADDAC(a[9], a[19]); SQRADDAC(a[10], a[18]); SQRADDAC(a[11], a[17]); SQRADDAC(a[12], a[16]); SQRADDAC(a[13], a[15]); SQRADDDB; SQRADD(a[14], a[14]); + COMBA_STORE(b[28]); + + /* output 29 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[29]); SQRADDAC(a[1], a[28]); SQRADDAC(a[2], a[27]); SQRADDAC(a[3], a[26]); SQRADDAC(a[4], a[25]); SQRADDAC(a[5], a[24]); SQRADDAC(a[6], a[23]); SQRADDAC(a[7], a[22]); SQRADDAC(a[8], a[21]); SQRADDAC(a[9], a[20]); SQRADDAC(a[10], a[19]); SQRADDAC(a[11], a[18]); SQRADDAC(a[12], a[17]); SQRADDAC(a[13], a[16]); SQRADDAC(a[14], a[15]); SQRADDDB; + COMBA_STORE(b[29]); + + /* output 30 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[30]); SQRADDAC(a[1], a[29]); SQRADDAC(a[2], a[28]); SQRADDAC(a[3], a[27]); SQRADDAC(a[4], a[26]); SQRADDAC(a[5], a[25]); SQRADDAC(a[6], a[24]); SQRADDAC(a[7], a[23]); SQRADDAC(a[8], a[22]); SQRADDAC(a[9], a[21]); SQRADDAC(a[10], a[20]); SQRADDAC(a[11], a[19]); SQRADDAC(a[12], a[18]); SQRADDAC(a[13], a[17]); SQRADDAC(a[14], a[16]); SQRADDDB; SQRADD(a[15], a[15]); + COMBA_STORE(b[30]); + + /* output 31 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[31]); SQRADDAC(a[1], a[30]); SQRADDAC(a[2], a[29]); SQRADDAC(a[3], a[28]); SQRADDAC(a[4], a[27]); SQRADDAC(a[5], a[26]); SQRADDAC(a[6], a[25]); SQRADDAC(a[7], a[24]); SQRADDAC(a[8], a[23]); SQRADDAC(a[9], a[22]); SQRADDAC(a[10], a[21]); SQRADDAC(a[11], a[20]); SQRADDAC(a[12], a[19]); SQRADDAC(a[13], a[18]); SQRADDAC(a[14], a[17]); SQRADDAC(a[15], a[16]); SQRADDDB; + COMBA_STORE(b[31]); + + /* output 32 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[32]); SQRADDAC(a[1], a[31]); SQRADDAC(a[2], a[30]); SQRADDAC(a[3], a[29]); SQRADDAC(a[4], a[28]); SQRADDAC(a[5], a[27]); SQRADDAC(a[6], a[26]); SQRADDAC(a[7], a[25]); SQRADDAC(a[8], a[24]); SQRADDAC(a[9], a[23]); SQRADDAC(a[10], a[22]); SQRADDAC(a[11], a[21]); SQRADDAC(a[12], a[20]); SQRADDAC(a[13], a[19]); SQRADDAC(a[14], a[18]); SQRADDAC(a[15], a[17]); SQRADDDB; SQRADD(a[16], a[16]); + COMBA_STORE(b[32]); + + /* output 33 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[33]); SQRADDAC(a[1], a[32]); SQRADDAC(a[2], a[31]); SQRADDAC(a[3], a[30]); SQRADDAC(a[4], a[29]); SQRADDAC(a[5], a[28]); SQRADDAC(a[6], a[27]); SQRADDAC(a[7], a[26]); SQRADDAC(a[8], a[25]); SQRADDAC(a[9], a[24]); SQRADDAC(a[10], a[23]); SQRADDAC(a[11], a[22]); SQRADDAC(a[12], a[21]); SQRADDAC(a[13], a[20]); SQRADDAC(a[14], a[19]); SQRADDAC(a[15], a[18]); SQRADDAC(a[16], a[17]); SQRADDDB; + COMBA_STORE(b[33]); + + /* output 34 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[34]); SQRADDAC(a[1], a[33]); SQRADDAC(a[2], a[32]); SQRADDAC(a[3], a[31]); SQRADDAC(a[4], a[30]); SQRADDAC(a[5], a[29]); SQRADDAC(a[6], a[28]); SQRADDAC(a[7], a[27]); SQRADDAC(a[8], a[26]); SQRADDAC(a[9], a[25]); SQRADDAC(a[10], a[24]); SQRADDAC(a[11], a[23]); SQRADDAC(a[12], a[22]); SQRADDAC(a[13], a[21]); SQRADDAC(a[14], a[20]); SQRADDAC(a[15], a[19]); SQRADDAC(a[16], a[18]); SQRADDDB; SQRADD(a[17], a[17]); + COMBA_STORE(b[34]); + + /* output 35 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[35]); SQRADDAC(a[1], a[34]); SQRADDAC(a[2], a[33]); SQRADDAC(a[3], a[32]); SQRADDAC(a[4], a[31]); SQRADDAC(a[5], a[30]); SQRADDAC(a[6], a[29]); SQRADDAC(a[7], a[28]); SQRADDAC(a[8], a[27]); SQRADDAC(a[9], a[26]); SQRADDAC(a[10], a[25]); SQRADDAC(a[11], a[24]); SQRADDAC(a[12], a[23]); SQRADDAC(a[13], a[22]); SQRADDAC(a[14], a[21]); SQRADDAC(a[15], a[20]); SQRADDAC(a[16], a[19]); SQRADDAC(a[17], a[18]); SQRADDDB; + COMBA_STORE(b[35]); + + /* output 36 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[36]); SQRADDAC(a[1], a[35]); SQRADDAC(a[2], a[34]); SQRADDAC(a[3], a[33]); SQRADDAC(a[4], a[32]); SQRADDAC(a[5], a[31]); SQRADDAC(a[6], a[30]); SQRADDAC(a[7], a[29]); SQRADDAC(a[8], a[28]); SQRADDAC(a[9], a[27]); SQRADDAC(a[10], a[26]); SQRADDAC(a[11], a[25]); SQRADDAC(a[12], a[24]); SQRADDAC(a[13], a[23]); SQRADDAC(a[14], a[22]); SQRADDAC(a[15], a[21]); SQRADDAC(a[16], a[20]); SQRADDAC(a[17], a[19]); SQRADDDB; SQRADD(a[18], a[18]); + COMBA_STORE(b[36]); + + /* output 37 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[37]); SQRADDAC(a[1], a[36]); SQRADDAC(a[2], a[35]); SQRADDAC(a[3], a[34]); SQRADDAC(a[4], a[33]); SQRADDAC(a[5], a[32]); SQRADDAC(a[6], a[31]); SQRADDAC(a[7], a[30]); SQRADDAC(a[8], a[29]); SQRADDAC(a[9], a[28]); SQRADDAC(a[10], a[27]); SQRADDAC(a[11], a[26]); SQRADDAC(a[12], a[25]); SQRADDAC(a[13], a[24]); SQRADDAC(a[14], a[23]); SQRADDAC(a[15], a[22]); SQRADDAC(a[16], a[21]); SQRADDAC(a[17], a[20]); SQRADDAC(a[18], a[19]); SQRADDDB; + COMBA_STORE(b[37]); + + /* output 38 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[38]); SQRADDAC(a[1], a[37]); SQRADDAC(a[2], a[36]); SQRADDAC(a[3], a[35]); SQRADDAC(a[4], a[34]); SQRADDAC(a[5], a[33]); SQRADDAC(a[6], a[32]); SQRADDAC(a[7], a[31]); SQRADDAC(a[8], a[30]); SQRADDAC(a[9], a[29]); SQRADDAC(a[10], a[28]); SQRADDAC(a[11], a[27]); SQRADDAC(a[12], a[26]); SQRADDAC(a[13], a[25]); SQRADDAC(a[14], a[24]); SQRADDAC(a[15], a[23]); SQRADDAC(a[16], a[22]); SQRADDAC(a[17], a[21]); SQRADDAC(a[18], a[20]); SQRADDDB; SQRADD(a[19], a[19]); + COMBA_STORE(b[38]); + + /* output 39 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[39]); SQRADDAC(a[1], a[38]); SQRADDAC(a[2], a[37]); SQRADDAC(a[3], a[36]); SQRADDAC(a[4], a[35]); SQRADDAC(a[5], a[34]); SQRADDAC(a[6], a[33]); SQRADDAC(a[7], a[32]); SQRADDAC(a[8], a[31]); SQRADDAC(a[9], a[30]); SQRADDAC(a[10], a[29]); SQRADDAC(a[11], a[28]); SQRADDAC(a[12], a[27]); SQRADDAC(a[13], a[26]); SQRADDAC(a[14], a[25]); SQRADDAC(a[15], a[24]); SQRADDAC(a[16], a[23]); SQRADDAC(a[17], a[22]); SQRADDAC(a[18], a[21]); SQRADDAC(a[19], a[20]); SQRADDDB; + COMBA_STORE(b[39]); + + /* output 40 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[40]); SQRADDAC(a[1], a[39]); SQRADDAC(a[2], a[38]); SQRADDAC(a[3], a[37]); SQRADDAC(a[4], a[36]); SQRADDAC(a[5], a[35]); SQRADDAC(a[6], a[34]); SQRADDAC(a[7], a[33]); SQRADDAC(a[8], a[32]); SQRADDAC(a[9], a[31]); SQRADDAC(a[10], a[30]); SQRADDAC(a[11], a[29]); SQRADDAC(a[12], a[28]); SQRADDAC(a[13], a[27]); SQRADDAC(a[14], a[26]); SQRADDAC(a[15], a[25]); SQRADDAC(a[16], a[24]); SQRADDAC(a[17], a[23]); SQRADDAC(a[18], a[22]); SQRADDAC(a[19], a[21]); SQRADDDB; SQRADD(a[20], a[20]); + COMBA_STORE(b[40]); + + /* output 41 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[41]); SQRADDAC(a[1], a[40]); SQRADDAC(a[2], a[39]); SQRADDAC(a[3], a[38]); SQRADDAC(a[4], a[37]); SQRADDAC(a[5], a[36]); SQRADDAC(a[6], a[35]); SQRADDAC(a[7], a[34]); SQRADDAC(a[8], a[33]); SQRADDAC(a[9], a[32]); SQRADDAC(a[10], a[31]); SQRADDAC(a[11], a[30]); SQRADDAC(a[12], a[29]); SQRADDAC(a[13], a[28]); SQRADDAC(a[14], a[27]); SQRADDAC(a[15], a[26]); SQRADDAC(a[16], a[25]); SQRADDAC(a[17], a[24]); SQRADDAC(a[18], a[23]); SQRADDAC(a[19], a[22]); SQRADDAC(a[20], a[21]); SQRADDDB; + COMBA_STORE(b[41]); + + /* output 42 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[42]); SQRADDAC(a[1], a[41]); SQRADDAC(a[2], a[40]); SQRADDAC(a[3], a[39]); SQRADDAC(a[4], a[38]); SQRADDAC(a[5], a[37]); SQRADDAC(a[6], a[36]); SQRADDAC(a[7], a[35]); SQRADDAC(a[8], a[34]); SQRADDAC(a[9], a[33]); SQRADDAC(a[10], a[32]); SQRADDAC(a[11], a[31]); SQRADDAC(a[12], a[30]); SQRADDAC(a[13], a[29]); SQRADDAC(a[14], a[28]); SQRADDAC(a[15], a[27]); SQRADDAC(a[16], a[26]); SQRADDAC(a[17], a[25]); SQRADDAC(a[18], a[24]); SQRADDAC(a[19], a[23]); SQRADDAC(a[20], a[22]); SQRADDDB; SQRADD(a[21], a[21]); + COMBA_STORE(b[42]); + + /* output 43 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[43]); SQRADDAC(a[1], a[42]); SQRADDAC(a[2], a[41]); SQRADDAC(a[3], a[40]); SQRADDAC(a[4], a[39]); SQRADDAC(a[5], a[38]); SQRADDAC(a[6], a[37]); SQRADDAC(a[7], a[36]); SQRADDAC(a[8], a[35]); SQRADDAC(a[9], a[34]); SQRADDAC(a[10], a[33]); SQRADDAC(a[11], a[32]); SQRADDAC(a[12], a[31]); SQRADDAC(a[13], a[30]); SQRADDAC(a[14], a[29]); SQRADDAC(a[15], a[28]); SQRADDAC(a[16], a[27]); SQRADDAC(a[17], a[26]); SQRADDAC(a[18], a[25]); SQRADDAC(a[19], a[24]); SQRADDAC(a[20], a[23]); SQRADDAC(a[21], a[22]); SQRADDDB; + COMBA_STORE(b[43]); + + /* output 44 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[44]); SQRADDAC(a[1], a[43]); SQRADDAC(a[2], a[42]); SQRADDAC(a[3], a[41]); SQRADDAC(a[4], a[40]); SQRADDAC(a[5], a[39]); SQRADDAC(a[6], a[38]); SQRADDAC(a[7], a[37]); SQRADDAC(a[8], a[36]); SQRADDAC(a[9], a[35]); SQRADDAC(a[10], a[34]); SQRADDAC(a[11], a[33]); SQRADDAC(a[12], a[32]); SQRADDAC(a[13], a[31]); SQRADDAC(a[14], a[30]); SQRADDAC(a[15], a[29]); SQRADDAC(a[16], a[28]); SQRADDAC(a[17], a[27]); SQRADDAC(a[18], a[26]); SQRADDAC(a[19], a[25]); SQRADDAC(a[20], a[24]); SQRADDAC(a[21], a[23]); SQRADDDB; SQRADD(a[22], a[22]); + COMBA_STORE(b[44]); + + /* output 45 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[45]); SQRADDAC(a[1], a[44]); SQRADDAC(a[2], a[43]); SQRADDAC(a[3], a[42]); SQRADDAC(a[4], a[41]); SQRADDAC(a[5], a[40]); SQRADDAC(a[6], a[39]); SQRADDAC(a[7], a[38]); SQRADDAC(a[8], a[37]); SQRADDAC(a[9], a[36]); SQRADDAC(a[10], a[35]); SQRADDAC(a[11], a[34]); SQRADDAC(a[12], a[33]); SQRADDAC(a[13], a[32]); SQRADDAC(a[14], a[31]); SQRADDAC(a[15], a[30]); SQRADDAC(a[16], a[29]); SQRADDAC(a[17], a[28]); SQRADDAC(a[18], a[27]); SQRADDAC(a[19], a[26]); SQRADDAC(a[20], a[25]); SQRADDAC(a[21], a[24]); SQRADDAC(a[22], a[23]); SQRADDDB; + COMBA_STORE(b[45]); + + /* output 46 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[46]); SQRADDAC(a[1], a[45]); SQRADDAC(a[2], a[44]); SQRADDAC(a[3], a[43]); SQRADDAC(a[4], a[42]); SQRADDAC(a[5], a[41]); SQRADDAC(a[6], a[40]); SQRADDAC(a[7], a[39]); SQRADDAC(a[8], a[38]); SQRADDAC(a[9], a[37]); SQRADDAC(a[10], a[36]); SQRADDAC(a[11], a[35]); SQRADDAC(a[12], a[34]); SQRADDAC(a[13], a[33]); SQRADDAC(a[14], a[32]); SQRADDAC(a[15], a[31]); SQRADDAC(a[16], a[30]); SQRADDAC(a[17], a[29]); SQRADDAC(a[18], a[28]); SQRADDAC(a[19], a[27]); SQRADDAC(a[20], a[26]); SQRADDAC(a[21], a[25]); SQRADDAC(a[22], a[24]); SQRADDDB; SQRADD(a[23], a[23]); + COMBA_STORE(b[46]); + + /* output 47 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[47]); SQRADDAC(a[1], a[46]); SQRADDAC(a[2], a[45]); SQRADDAC(a[3], a[44]); SQRADDAC(a[4], a[43]); SQRADDAC(a[5], a[42]); SQRADDAC(a[6], a[41]); SQRADDAC(a[7], a[40]); SQRADDAC(a[8], a[39]); SQRADDAC(a[9], a[38]); SQRADDAC(a[10], a[37]); SQRADDAC(a[11], a[36]); SQRADDAC(a[12], a[35]); SQRADDAC(a[13], a[34]); SQRADDAC(a[14], a[33]); SQRADDAC(a[15], a[32]); SQRADDAC(a[16], a[31]); SQRADDAC(a[17], a[30]); SQRADDAC(a[18], a[29]); SQRADDAC(a[19], a[28]); SQRADDAC(a[20], a[27]); SQRADDAC(a[21], a[26]); SQRADDAC(a[22], a[25]); SQRADDAC(a[23], a[24]); SQRADDDB; + COMBA_STORE(b[47]); + + /* output 48 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[48]); SQRADDAC(a[1], a[47]); SQRADDAC(a[2], a[46]); SQRADDAC(a[3], a[45]); SQRADDAC(a[4], a[44]); SQRADDAC(a[5], a[43]); SQRADDAC(a[6], a[42]); SQRADDAC(a[7], a[41]); SQRADDAC(a[8], a[40]); SQRADDAC(a[9], a[39]); SQRADDAC(a[10], a[38]); SQRADDAC(a[11], a[37]); SQRADDAC(a[12], a[36]); SQRADDAC(a[13], a[35]); SQRADDAC(a[14], a[34]); SQRADDAC(a[15], a[33]); SQRADDAC(a[16], a[32]); SQRADDAC(a[17], a[31]); SQRADDAC(a[18], a[30]); SQRADDAC(a[19], a[29]); SQRADDAC(a[20], a[28]); SQRADDAC(a[21], a[27]); SQRADDAC(a[22], a[26]); SQRADDAC(a[23], a[25]); SQRADDDB; SQRADD(a[24], a[24]); + COMBA_STORE(b[48]); + + /* output 49 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[49]); SQRADDAC(a[1], a[48]); SQRADDAC(a[2], a[47]); SQRADDAC(a[3], a[46]); SQRADDAC(a[4], a[45]); SQRADDAC(a[5], a[44]); SQRADDAC(a[6], a[43]); SQRADDAC(a[7], a[42]); SQRADDAC(a[8], a[41]); SQRADDAC(a[9], a[40]); SQRADDAC(a[10], a[39]); SQRADDAC(a[11], a[38]); SQRADDAC(a[12], a[37]); SQRADDAC(a[13], a[36]); SQRADDAC(a[14], a[35]); SQRADDAC(a[15], a[34]); SQRADDAC(a[16], a[33]); SQRADDAC(a[17], a[32]); SQRADDAC(a[18], a[31]); SQRADDAC(a[19], a[30]); SQRADDAC(a[20], a[29]); SQRADDAC(a[21], a[28]); SQRADDAC(a[22], a[27]); SQRADDAC(a[23], a[26]); SQRADDAC(a[24], a[25]); SQRADDDB; + COMBA_STORE(b[49]); + + /* output 50 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[50]); SQRADDAC(a[1], a[49]); SQRADDAC(a[2], a[48]); SQRADDAC(a[3], a[47]); SQRADDAC(a[4], a[46]); SQRADDAC(a[5], a[45]); SQRADDAC(a[6], a[44]); SQRADDAC(a[7], a[43]); SQRADDAC(a[8], a[42]); SQRADDAC(a[9], a[41]); SQRADDAC(a[10], a[40]); SQRADDAC(a[11], a[39]); SQRADDAC(a[12], a[38]); SQRADDAC(a[13], a[37]); SQRADDAC(a[14], a[36]); SQRADDAC(a[15], a[35]); SQRADDAC(a[16], a[34]); SQRADDAC(a[17], a[33]); SQRADDAC(a[18], a[32]); SQRADDAC(a[19], a[31]); SQRADDAC(a[20], a[30]); SQRADDAC(a[21], a[29]); SQRADDAC(a[22], a[28]); SQRADDAC(a[23], a[27]); SQRADDAC(a[24], a[26]); SQRADDDB; SQRADD(a[25], a[25]); + COMBA_STORE(b[50]); + + /* output 51 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[51]); SQRADDAC(a[1], a[50]); SQRADDAC(a[2], a[49]); SQRADDAC(a[3], a[48]); SQRADDAC(a[4], a[47]); SQRADDAC(a[5], a[46]); SQRADDAC(a[6], a[45]); SQRADDAC(a[7], a[44]); SQRADDAC(a[8], a[43]); SQRADDAC(a[9], a[42]); SQRADDAC(a[10], a[41]); SQRADDAC(a[11], a[40]); SQRADDAC(a[12], a[39]); SQRADDAC(a[13], a[38]); SQRADDAC(a[14], a[37]); SQRADDAC(a[15], a[36]); SQRADDAC(a[16], a[35]); SQRADDAC(a[17], a[34]); SQRADDAC(a[18], a[33]); SQRADDAC(a[19], a[32]); SQRADDAC(a[20], a[31]); SQRADDAC(a[21], a[30]); SQRADDAC(a[22], a[29]); SQRADDAC(a[23], a[28]); SQRADDAC(a[24], a[27]); SQRADDAC(a[25], a[26]); SQRADDDB; + COMBA_STORE(b[51]); + + /* output 52 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[52]); SQRADDAC(a[1], a[51]); SQRADDAC(a[2], a[50]); SQRADDAC(a[3], a[49]); SQRADDAC(a[4], a[48]); SQRADDAC(a[5], a[47]); SQRADDAC(a[6], a[46]); SQRADDAC(a[7], a[45]); SQRADDAC(a[8], a[44]); SQRADDAC(a[9], a[43]); SQRADDAC(a[10], a[42]); SQRADDAC(a[11], a[41]); SQRADDAC(a[12], a[40]); SQRADDAC(a[13], a[39]); SQRADDAC(a[14], a[38]); SQRADDAC(a[15], a[37]); SQRADDAC(a[16], a[36]); SQRADDAC(a[17], a[35]); SQRADDAC(a[18], a[34]); SQRADDAC(a[19], a[33]); SQRADDAC(a[20], a[32]); SQRADDAC(a[21], a[31]); SQRADDAC(a[22], a[30]); SQRADDAC(a[23], a[29]); SQRADDAC(a[24], a[28]); SQRADDAC(a[25], a[27]); SQRADDDB; SQRADD(a[26], a[26]); + COMBA_STORE(b[52]); + + /* output 53 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[53]); SQRADDAC(a[1], a[52]); SQRADDAC(a[2], a[51]); SQRADDAC(a[3], a[50]); SQRADDAC(a[4], a[49]); SQRADDAC(a[5], a[48]); SQRADDAC(a[6], a[47]); SQRADDAC(a[7], a[46]); SQRADDAC(a[8], a[45]); SQRADDAC(a[9], a[44]); SQRADDAC(a[10], a[43]); SQRADDAC(a[11], a[42]); SQRADDAC(a[12], a[41]); SQRADDAC(a[13], a[40]); SQRADDAC(a[14], a[39]); SQRADDAC(a[15], a[38]); SQRADDAC(a[16], a[37]); SQRADDAC(a[17], a[36]); SQRADDAC(a[18], a[35]); SQRADDAC(a[19], a[34]); SQRADDAC(a[20], a[33]); SQRADDAC(a[21], a[32]); SQRADDAC(a[22], a[31]); SQRADDAC(a[23], a[30]); SQRADDAC(a[24], a[29]); SQRADDAC(a[25], a[28]); SQRADDAC(a[26], a[27]); SQRADDDB; + COMBA_STORE(b[53]); + + /* output 54 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[54]); SQRADDAC(a[1], a[53]); SQRADDAC(a[2], a[52]); SQRADDAC(a[3], a[51]); SQRADDAC(a[4], a[50]); SQRADDAC(a[5], a[49]); SQRADDAC(a[6], a[48]); SQRADDAC(a[7], a[47]); SQRADDAC(a[8], a[46]); SQRADDAC(a[9], a[45]); SQRADDAC(a[10], a[44]); SQRADDAC(a[11], a[43]); SQRADDAC(a[12], a[42]); SQRADDAC(a[13], a[41]); SQRADDAC(a[14], a[40]); SQRADDAC(a[15], a[39]); SQRADDAC(a[16], a[38]); SQRADDAC(a[17], a[37]); SQRADDAC(a[18], a[36]); SQRADDAC(a[19], a[35]); SQRADDAC(a[20], a[34]); SQRADDAC(a[21], a[33]); SQRADDAC(a[22], a[32]); SQRADDAC(a[23], a[31]); SQRADDAC(a[24], a[30]); SQRADDAC(a[25], a[29]); SQRADDAC(a[26], a[28]); SQRADDDB; SQRADD(a[27], a[27]); + COMBA_STORE(b[54]); + + /* output 55 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[55]); SQRADDAC(a[1], a[54]); SQRADDAC(a[2], a[53]); SQRADDAC(a[3], a[52]); SQRADDAC(a[4], a[51]); SQRADDAC(a[5], a[50]); SQRADDAC(a[6], a[49]); SQRADDAC(a[7], a[48]); SQRADDAC(a[8], a[47]); SQRADDAC(a[9], a[46]); SQRADDAC(a[10], a[45]); SQRADDAC(a[11], a[44]); SQRADDAC(a[12], a[43]); SQRADDAC(a[13], a[42]); SQRADDAC(a[14], a[41]); SQRADDAC(a[15], a[40]); SQRADDAC(a[16], a[39]); SQRADDAC(a[17], a[38]); SQRADDAC(a[18], a[37]); SQRADDAC(a[19], a[36]); SQRADDAC(a[20], a[35]); SQRADDAC(a[21], a[34]); SQRADDAC(a[22], a[33]); SQRADDAC(a[23], a[32]); SQRADDAC(a[24], a[31]); SQRADDAC(a[25], a[30]); SQRADDAC(a[26], a[29]); SQRADDAC(a[27], a[28]); SQRADDDB; + COMBA_STORE(b[55]); + + /* output 56 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[56]); SQRADDAC(a[1], a[55]); SQRADDAC(a[2], a[54]); SQRADDAC(a[3], a[53]); SQRADDAC(a[4], a[52]); SQRADDAC(a[5], a[51]); SQRADDAC(a[6], a[50]); SQRADDAC(a[7], a[49]); SQRADDAC(a[8], a[48]); SQRADDAC(a[9], a[47]); SQRADDAC(a[10], a[46]); SQRADDAC(a[11], a[45]); SQRADDAC(a[12], a[44]); SQRADDAC(a[13], a[43]); SQRADDAC(a[14], a[42]); SQRADDAC(a[15], a[41]); SQRADDAC(a[16], a[40]); SQRADDAC(a[17], a[39]); SQRADDAC(a[18], a[38]); SQRADDAC(a[19], a[37]); SQRADDAC(a[20], a[36]); SQRADDAC(a[21], a[35]); SQRADDAC(a[22], a[34]); SQRADDAC(a[23], a[33]); SQRADDAC(a[24], a[32]); SQRADDAC(a[25], a[31]); SQRADDAC(a[26], a[30]); SQRADDAC(a[27], a[29]); SQRADDDB; SQRADD(a[28], a[28]); + COMBA_STORE(b[56]); + + /* output 57 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[57]); SQRADDAC(a[1], a[56]); SQRADDAC(a[2], a[55]); SQRADDAC(a[3], a[54]); SQRADDAC(a[4], a[53]); SQRADDAC(a[5], a[52]); SQRADDAC(a[6], a[51]); SQRADDAC(a[7], a[50]); SQRADDAC(a[8], a[49]); SQRADDAC(a[9], a[48]); SQRADDAC(a[10], a[47]); SQRADDAC(a[11], a[46]); SQRADDAC(a[12], a[45]); SQRADDAC(a[13], a[44]); SQRADDAC(a[14], a[43]); SQRADDAC(a[15], a[42]); SQRADDAC(a[16], a[41]); SQRADDAC(a[17], a[40]); SQRADDAC(a[18], a[39]); SQRADDAC(a[19], a[38]); SQRADDAC(a[20], a[37]); SQRADDAC(a[21], a[36]); SQRADDAC(a[22], a[35]); SQRADDAC(a[23], a[34]); SQRADDAC(a[24], a[33]); SQRADDAC(a[25], a[32]); SQRADDAC(a[26], a[31]); SQRADDAC(a[27], a[30]); SQRADDAC(a[28], a[29]); SQRADDDB; + COMBA_STORE(b[57]); + + /* output 58 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[58]); SQRADDAC(a[1], a[57]); SQRADDAC(a[2], a[56]); SQRADDAC(a[3], a[55]); SQRADDAC(a[4], a[54]); SQRADDAC(a[5], a[53]); SQRADDAC(a[6], a[52]); SQRADDAC(a[7], a[51]); SQRADDAC(a[8], a[50]); SQRADDAC(a[9], a[49]); SQRADDAC(a[10], a[48]); SQRADDAC(a[11], a[47]); SQRADDAC(a[12], a[46]); SQRADDAC(a[13], a[45]); SQRADDAC(a[14], a[44]); SQRADDAC(a[15], a[43]); SQRADDAC(a[16], a[42]); SQRADDAC(a[17], a[41]); SQRADDAC(a[18], a[40]); SQRADDAC(a[19], a[39]); SQRADDAC(a[20], a[38]); SQRADDAC(a[21], a[37]); SQRADDAC(a[22], a[36]); SQRADDAC(a[23], a[35]); SQRADDAC(a[24], a[34]); SQRADDAC(a[25], a[33]); SQRADDAC(a[26], a[32]); SQRADDAC(a[27], a[31]); SQRADDAC(a[28], a[30]); SQRADDDB; SQRADD(a[29], a[29]); + COMBA_STORE(b[58]); + + /* output 59 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[59]); SQRADDAC(a[1], a[58]); SQRADDAC(a[2], a[57]); SQRADDAC(a[3], a[56]); SQRADDAC(a[4], a[55]); SQRADDAC(a[5], a[54]); SQRADDAC(a[6], a[53]); SQRADDAC(a[7], a[52]); SQRADDAC(a[8], a[51]); SQRADDAC(a[9], a[50]); SQRADDAC(a[10], a[49]); SQRADDAC(a[11], a[48]); SQRADDAC(a[12], a[47]); SQRADDAC(a[13], a[46]); SQRADDAC(a[14], a[45]); SQRADDAC(a[15], a[44]); SQRADDAC(a[16], a[43]); SQRADDAC(a[17], a[42]); SQRADDAC(a[18], a[41]); SQRADDAC(a[19], a[40]); SQRADDAC(a[20], a[39]); SQRADDAC(a[21], a[38]); SQRADDAC(a[22], a[37]); SQRADDAC(a[23], a[36]); SQRADDAC(a[24], a[35]); SQRADDAC(a[25], a[34]); SQRADDAC(a[26], a[33]); SQRADDAC(a[27], a[32]); SQRADDAC(a[28], a[31]); SQRADDAC(a[29], a[30]); SQRADDDB; + COMBA_STORE(b[59]); + + /* output 60 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[60]); SQRADDAC(a[1], a[59]); SQRADDAC(a[2], a[58]); SQRADDAC(a[3], a[57]); SQRADDAC(a[4], a[56]); SQRADDAC(a[5], a[55]); SQRADDAC(a[6], a[54]); SQRADDAC(a[7], a[53]); SQRADDAC(a[8], a[52]); SQRADDAC(a[9], a[51]); SQRADDAC(a[10], a[50]); SQRADDAC(a[11], a[49]); SQRADDAC(a[12], a[48]); SQRADDAC(a[13], a[47]); SQRADDAC(a[14], a[46]); SQRADDAC(a[15], a[45]); SQRADDAC(a[16], a[44]); SQRADDAC(a[17], a[43]); SQRADDAC(a[18], a[42]); SQRADDAC(a[19], a[41]); SQRADDAC(a[20], a[40]); SQRADDAC(a[21], a[39]); SQRADDAC(a[22], a[38]); SQRADDAC(a[23], a[37]); SQRADDAC(a[24], a[36]); SQRADDAC(a[25], a[35]); SQRADDAC(a[26], a[34]); SQRADDAC(a[27], a[33]); SQRADDAC(a[28], a[32]); SQRADDAC(a[29], a[31]); SQRADDDB; SQRADD(a[30], a[30]); + COMBA_STORE(b[60]); + + /* output 61 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[61]); SQRADDAC(a[1], a[60]); SQRADDAC(a[2], a[59]); SQRADDAC(a[3], a[58]); SQRADDAC(a[4], a[57]); SQRADDAC(a[5], a[56]); SQRADDAC(a[6], a[55]); SQRADDAC(a[7], a[54]); SQRADDAC(a[8], a[53]); SQRADDAC(a[9], a[52]); SQRADDAC(a[10], a[51]); SQRADDAC(a[11], a[50]); SQRADDAC(a[12], a[49]); SQRADDAC(a[13], a[48]); SQRADDAC(a[14], a[47]); SQRADDAC(a[15], a[46]); SQRADDAC(a[16], a[45]); SQRADDAC(a[17], a[44]); SQRADDAC(a[18], a[43]); SQRADDAC(a[19], a[42]); SQRADDAC(a[20], a[41]); SQRADDAC(a[21], a[40]); SQRADDAC(a[22], a[39]); SQRADDAC(a[23], a[38]); SQRADDAC(a[24], a[37]); SQRADDAC(a[25], a[36]); SQRADDAC(a[26], a[35]); SQRADDAC(a[27], a[34]); SQRADDAC(a[28], a[33]); SQRADDAC(a[29], a[32]); SQRADDAC(a[30], a[31]); SQRADDDB; + COMBA_STORE(b[61]); + + /* output 62 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[62]); SQRADDAC(a[1], a[61]); SQRADDAC(a[2], a[60]); SQRADDAC(a[3], a[59]); SQRADDAC(a[4], a[58]); SQRADDAC(a[5], a[57]); SQRADDAC(a[6], a[56]); SQRADDAC(a[7], a[55]); SQRADDAC(a[8], a[54]); SQRADDAC(a[9], a[53]); SQRADDAC(a[10], a[52]); SQRADDAC(a[11], a[51]); SQRADDAC(a[12], a[50]); SQRADDAC(a[13], a[49]); SQRADDAC(a[14], a[48]); SQRADDAC(a[15], a[47]); SQRADDAC(a[16], a[46]); SQRADDAC(a[17], a[45]); SQRADDAC(a[18], a[44]); SQRADDAC(a[19], a[43]); SQRADDAC(a[20], a[42]); SQRADDAC(a[21], a[41]); SQRADDAC(a[22], a[40]); SQRADDAC(a[23], a[39]); SQRADDAC(a[24], a[38]); SQRADDAC(a[25], a[37]); SQRADDAC(a[26], a[36]); SQRADDAC(a[27], a[35]); SQRADDAC(a[28], a[34]); SQRADDAC(a[29], a[33]); SQRADDAC(a[30], a[32]); SQRADDDB; SQRADD(a[31], a[31]); + COMBA_STORE(b[62]); + + /* output 63 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[63]); SQRADDAC(a[1], a[62]); SQRADDAC(a[2], a[61]); SQRADDAC(a[3], a[60]); SQRADDAC(a[4], a[59]); SQRADDAC(a[5], a[58]); SQRADDAC(a[6], a[57]); SQRADDAC(a[7], a[56]); SQRADDAC(a[8], a[55]); SQRADDAC(a[9], a[54]); SQRADDAC(a[10], a[53]); SQRADDAC(a[11], a[52]); SQRADDAC(a[12], a[51]); SQRADDAC(a[13], a[50]); SQRADDAC(a[14], a[49]); SQRADDAC(a[15], a[48]); SQRADDAC(a[16], a[47]); SQRADDAC(a[17], a[46]); SQRADDAC(a[18], a[45]); SQRADDAC(a[19], a[44]); SQRADDAC(a[20], a[43]); SQRADDAC(a[21], a[42]); SQRADDAC(a[22], a[41]); SQRADDAC(a[23], a[40]); SQRADDAC(a[24], a[39]); SQRADDAC(a[25], a[38]); SQRADDAC(a[26], a[37]); SQRADDAC(a[27], a[36]); SQRADDAC(a[28], a[35]); SQRADDAC(a[29], a[34]); SQRADDAC(a[30], a[33]); SQRADDAC(a[31], a[32]); SQRADDDB; + COMBA_STORE(b[63]); + + /* output 64 */ + CARRY_FORWARD; + SQRADDSC(a[1], a[63]); SQRADDAC(a[2], a[62]); SQRADDAC(a[3], a[61]); SQRADDAC(a[4], a[60]); SQRADDAC(a[5], a[59]); SQRADDAC(a[6], a[58]); SQRADDAC(a[7], a[57]); SQRADDAC(a[8], a[56]); SQRADDAC(a[9], a[55]); SQRADDAC(a[10], a[54]); SQRADDAC(a[11], a[53]); SQRADDAC(a[12], a[52]); SQRADDAC(a[13], a[51]); SQRADDAC(a[14], a[50]); SQRADDAC(a[15], a[49]); SQRADDAC(a[16], a[48]); SQRADDAC(a[17], a[47]); SQRADDAC(a[18], a[46]); SQRADDAC(a[19], a[45]); SQRADDAC(a[20], a[44]); SQRADDAC(a[21], a[43]); SQRADDAC(a[22], a[42]); SQRADDAC(a[23], a[41]); SQRADDAC(a[24], a[40]); SQRADDAC(a[25], a[39]); SQRADDAC(a[26], a[38]); SQRADDAC(a[27], a[37]); SQRADDAC(a[28], a[36]); SQRADDAC(a[29], a[35]); SQRADDAC(a[30], a[34]); SQRADDAC(a[31], a[33]); SQRADDDB; SQRADD(a[32], a[32]); + COMBA_STORE(b[64]); + + /* output 65 */ + CARRY_FORWARD; + SQRADDSC(a[2], a[63]); SQRADDAC(a[3], a[62]); SQRADDAC(a[4], a[61]); SQRADDAC(a[5], a[60]); SQRADDAC(a[6], a[59]); SQRADDAC(a[7], a[58]); SQRADDAC(a[8], a[57]); SQRADDAC(a[9], a[56]); SQRADDAC(a[10], a[55]); SQRADDAC(a[11], a[54]); SQRADDAC(a[12], a[53]); SQRADDAC(a[13], a[52]); SQRADDAC(a[14], a[51]); SQRADDAC(a[15], a[50]); SQRADDAC(a[16], a[49]); SQRADDAC(a[17], a[48]); SQRADDAC(a[18], a[47]); SQRADDAC(a[19], a[46]); SQRADDAC(a[20], a[45]); SQRADDAC(a[21], a[44]); SQRADDAC(a[22], a[43]); SQRADDAC(a[23], a[42]); SQRADDAC(a[24], a[41]); SQRADDAC(a[25], a[40]); SQRADDAC(a[26], a[39]); SQRADDAC(a[27], a[38]); SQRADDAC(a[28], a[37]); SQRADDAC(a[29], a[36]); SQRADDAC(a[30], a[35]); SQRADDAC(a[31], a[34]); SQRADDAC(a[32], a[33]); SQRADDDB; + COMBA_STORE(b[65]); + + /* output 66 */ + CARRY_FORWARD; + SQRADDSC(a[3], a[63]); SQRADDAC(a[4], a[62]); SQRADDAC(a[5], a[61]); SQRADDAC(a[6], a[60]); SQRADDAC(a[7], a[59]); SQRADDAC(a[8], a[58]); SQRADDAC(a[9], a[57]); SQRADDAC(a[10], a[56]); SQRADDAC(a[11], a[55]); SQRADDAC(a[12], a[54]); SQRADDAC(a[13], a[53]); SQRADDAC(a[14], a[52]); SQRADDAC(a[15], a[51]); SQRADDAC(a[16], a[50]); SQRADDAC(a[17], a[49]); SQRADDAC(a[18], a[48]); SQRADDAC(a[19], a[47]); SQRADDAC(a[20], a[46]); SQRADDAC(a[21], a[45]); SQRADDAC(a[22], a[44]); SQRADDAC(a[23], a[43]); SQRADDAC(a[24], a[42]); SQRADDAC(a[25], a[41]); SQRADDAC(a[26], a[40]); SQRADDAC(a[27], a[39]); SQRADDAC(a[28], a[38]); SQRADDAC(a[29], a[37]); SQRADDAC(a[30], a[36]); SQRADDAC(a[31], a[35]); SQRADDAC(a[32], a[34]); SQRADDDB; SQRADD(a[33], a[33]); + COMBA_STORE(b[66]); + + /* output 67 */ + CARRY_FORWARD; + SQRADDSC(a[4], a[63]); SQRADDAC(a[5], a[62]); SQRADDAC(a[6], a[61]); SQRADDAC(a[7], a[60]); SQRADDAC(a[8], a[59]); SQRADDAC(a[9], a[58]); SQRADDAC(a[10], a[57]); SQRADDAC(a[11], a[56]); SQRADDAC(a[12], a[55]); SQRADDAC(a[13], a[54]); SQRADDAC(a[14], a[53]); SQRADDAC(a[15], a[52]); SQRADDAC(a[16], a[51]); SQRADDAC(a[17], a[50]); SQRADDAC(a[18], a[49]); SQRADDAC(a[19], a[48]); SQRADDAC(a[20], a[47]); SQRADDAC(a[21], a[46]); SQRADDAC(a[22], a[45]); SQRADDAC(a[23], a[44]); SQRADDAC(a[24], a[43]); SQRADDAC(a[25], a[42]); SQRADDAC(a[26], a[41]); SQRADDAC(a[27], a[40]); SQRADDAC(a[28], a[39]); SQRADDAC(a[29], a[38]); SQRADDAC(a[30], a[37]); SQRADDAC(a[31], a[36]); SQRADDAC(a[32], a[35]); SQRADDAC(a[33], a[34]); SQRADDDB; + COMBA_STORE(b[67]); + + /* output 68 */ + CARRY_FORWARD; + SQRADDSC(a[5], a[63]); SQRADDAC(a[6], a[62]); SQRADDAC(a[7], a[61]); SQRADDAC(a[8], a[60]); SQRADDAC(a[9], a[59]); SQRADDAC(a[10], a[58]); SQRADDAC(a[11], a[57]); SQRADDAC(a[12], a[56]); SQRADDAC(a[13], a[55]); SQRADDAC(a[14], a[54]); SQRADDAC(a[15], a[53]); SQRADDAC(a[16], a[52]); SQRADDAC(a[17], a[51]); SQRADDAC(a[18], a[50]); SQRADDAC(a[19], a[49]); SQRADDAC(a[20], a[48]); SQRADDAC(a[21], a[47]); SQRADDAC(a[22], a[46]); SQRADDAC(a[23], a[45]); SQRADDAC(a[24], a[44]); SQRADDAC(a[25], a[43]); SQRADDAC(a[26], a[42]); SQRADDAC(a[27], a[41]); SQRADDAC(a[28], a[40]); SQRADDAC(a[29], a[39]); SQRADDAC(a[30], a[38]); SQRADDAC(a[31], a[37]); SQRADDAC(a[32], a[36]); SQRADDAC(a[33], a[35]); SQRADDDB; SQRADD(a[34], a[34]); + COMBA_STORE(b[68]); + + /* output 69 */ + CARRY_FORWARD; + SQRADDSC(a[6], a[63]); SQRADDAC(a[7], a[62]); SQRADDAC(a[8], a[61]); SQRADDAC(a[9], a[60]); SQRADDAC(a[10], a[59]); SQRADDAC(a[11], a[58]); SQRADDAC(a[12], a[57]); SQRADDAC(a[13], a[56]); SQRADDAC(a[14], a[55]); SQRADDAC(a[15], a[54]); SQRADDAC(a[16], a[53]); SQRADDAC(a[17], a[52]); SQRADDAC(a[18], a[51]); SQRADDAC(a[19], a[50]); SQRADDAC(a[20], a[49]); SQRADDAC(a[21], a[48]); SQRADDAC(a[22], a[47]); SQRADDAC(a[23], a[46]); SQRADDAC(a[24], a[45]); SQRADDAC(a[25], a[44]); SQRADDAC(a[26], a[43]); SQRADDAC(a[27], a[42]); SQRADDAC(a[28], a[41]); SQRADDAC(a[29], a[40]); SQRADDAC(a[30], a[39]); SQRADDAC(a[31], a[38]); SQRADDAC(a[32], a[37]); SQRADDAC(a[33], a[36]); SQRADDAC(a[34], a[35]); SQRADDDB; + COMBA_STORE(b[69]); + + /* output 70 */ + CARRY_FORWARD; + SQRADDSC(a[7], a[63]); SQRADDAC(a[8], a[62]); SQRADDAC(a[9], a[61]); SQRADDAC(a[10], a[60]); SQRADDAC(a[11], a[59]); SQRADDAC(a[12], a[58]); SQRADDAC(a[13], a[57]); SQRADDAC(a[14], a[56]); SQRADDAC(a[15], a[55]); SQRADDAC(a[16], a[54]); SQRADDAC(a[17], a[53]); SQRADDAC(a[18], a[52]); SQRADDAC(a[19], a[51]); SQRADDAC(a[20], a[50]); SQRADDAC(a[21], a[49]); SQRADDAC(a[22], a[48]); SQRADDAC(a[23], a[47]); SQRADDAC(a[24], a[46]); SQRADDAC(a[25], a[45]); SQRADDAC(a[26], a[44]); SQRADDAC(a[27], a[43]); SQRADDAC(a[28], a[42]); SQRADDAC(a[29], a[41]); SQRADDAC(a[30], a[40]); SQRADDAC(a[31], a[39]); SQRADDAC(a[32], a[38]); SQRADDAC(a[33], a[37]); SQRADDAC(a[34], a[36]); SQRADDDB; SQRADD(a[35], a[35]); + COMBA_STORE(b[70]); + + /* output 71 */ + CARRY_FORWARD; + SQRADDSC(a[8], a[63]); SQRADDAC(a[9], a[62]); SQRADDAC(a[10], a[61]); SQRADDAC(a[11], a[60]); SQRADDAC(a[12], a[59]); SQRADDAC(a[13], a[58]); SQRADDAC(a[14], a[57]); SQRADDAC(a[15], a[56]); SQRADDAC(a[16], a[55]); SQRADDAC(a[17], a[54]); SQRADDAC(a[18], a[53]); SQRADDAC(a[19], a[52]); SQRADDAC(a[20], a[51]); SQRADDAC(a[21], a[50]); SQRADDAC(a[22], a[49]); SQRADDAC(a[23], a[48]); SQRADDAC(a[24], a[47]); SQRADDAC(a[25], a[46]); SQRADDAC(a[26], a[45]); SQRADDAC(a[27], a[44]); SQRADDAC(a[28], a[43]); SQRADDAC(a[29], a[42]); SQRADDAC(a[30], a[41]); SQRADDAC(a[31], a[40]); SQRADDAC(a[32], a[39]); SQRADDAC(a[33], a[38]); SQRADDAC(a[34], a[37]); SQRADDAC(a[35], a[36]); SQRADDDB; + COMBA_STORE(b[71]); + + /* output 72 */ + CARRY_FORWARD; + SQRADDSC(a[9], a[63]); SQRADDAC(a[10], a[62]); SQRADDAC(a[11], a[61]); SQRADDAC(a[12], a[60]); SQRADDAC(a[13], a[59]); SQRADDAC(a[14], a[58]); SQRADDAC(a[15], a[57]); SQRADDAC(a[16], a[56]); SQRADDAC(a[17], a[55]); SQRADDAC(a[18], a[54]); SQRADDAC(a[19], a[53]); SQRADDAC(a[20], a[52]); SQRADDAC(a[21], a[51]); SQRADDAC(a[22], a[50]); SQRADDAC(a[23], a[49]); SQRADDAC(a[24], a[48]); SQRADDAC(a[25], a[47]); SQRADDAC(a[26], a[46]); SQRADDAC(a[27], a[45]); SQRADDAC(a[28], a[44]); SQRADDAC(a[29], a[43]); SQRADDAC(a[30], a[42]); SQRADDAC(a[31], a[41]); SQRADDAC(a[32], a[40]); SQRADDAC(a[33], a[39]); SQRADDAC(a[34], a[38]); SQRADDAC(a[35], a[37]); SQRADDDB; SQRADD(a[36], a[36]); + COMBA_STORE(b[72]); + + /* output 73 */ + CARRY_FORWARD; + SQRADDSC(a[10], a[63]); SQRADDAC(a[11], a[62]); SQRADDAC(a[12], a[61]); SQRADDAC(a[13], a[60]); SQRADDAC(a[14], a[59]); SQRADDAC(a[15], a[58]); SQRADDAC(a[16], a[57]); SQRADDAC(a[17], a[56]); SQRADDAC(a[18], a[55]); SQRADDAC(a[19], a[54]); SQRADDAC(a[20], a[53]); SQRADDAC(a[21], a[52]); SQRADDAC(a[22], a[51]); SQRADDAC(a[23], a[50]); SQRADDAC(a[24], a[49]); SQRADDAC(a[25], a[48]); SQRADDAC(a[26], a[47]); SQRADDAC(a[27], a[46]); SQRADDAC(a[28], a[45]); SQRADDAC(a[29], a[44]); SQRADDAC(a[30], a[43]); SQRADDAC(a[31], a[42]); SQRADDAC(a[32], a[41]); SQRADDAC(a[33], a[40]); SQRADDAC(a[34], a[39]); SQRADDAC(a[35], a[38]); SQRADDAC(a[36], a[37]); SQRADDDB; + COMBA_STORE(b[73]); + + /* output 74 */ + CARRY_FORWARD; + SQRADDSC(a[11], a[63]); SQRADDAC(a[12], a[62]); SQRADDAC(a[13], a[61]); SQRADDAC(a[14], a[60]); SQRADDAC(a[15], a[59]); SQRADDAC(a[16], a[58]); SQRADDAC(a[17], a[57]); SQRADDAC(a[18], a[56]); SQRADDAC(a[19], a[55]); SQRADDAC(a[20], a[54]); SQRADDAC(a[21], a[53]); SQRADDAC(a[22], a[52]); SQRADDAC(a[23], a[51]); SQRADDAC(a[24], a[50]); SQRADDAC(a[25], a[49]); SQRADDAC(a[26], a[48]); SQRADDAC(a[27], a[47]); SQRADDAC(a[28], a[46]); SQRADDAC(a[29], a[45]); SQRADDAC(a[30], a[44]); SQRADDAC(a[31], a[43]); SQRADDAC(a[32], a[42]); SQRADDAC(a[33], a[41]); SQRADDAC(a[34], a[40]); SQRADDAC(a[35], a[39]); SQRADDAC(a[36], a[38]); SQRADDDB; SQRADD(a[37], a[37]); + COMBA_STORE(b[74]); + + /* output 75 */ + CARRY_FORWARD; + SQRADDSC(a[12], a[63]); SQRADDAC(a[13], a[62]); SQRADDAC(a[14], a[61]); SQRADDAC(a[15], a[60]); SQRADDAC(a[16], a[59]); SQRADDAC(a[17], a[58]); SQRADDAC(a[18], a[57]); SQRADDAC(a[19], a[56]); SQRADDAC(a[20], a[55]); SQRADDAC(a[21], a[54]); SQRADDAC(a[22], a[53]); SQRADDAC(a[23], a[52]); SQRADDAC(a[24], a[51]); SQRADDAC(a[25], a[50]); SQRADDAC(a[26], a[49]); SQRADDAC(a[27], a[48]); SQRADDAC(a[28], a[47]); SQRADDAC(a[29], a[46]); SQRADDAC(a[30], a[45]); SQRADDAC(a[31], a[44]); SQRADDAC(a[32], a[43]); SQRADDAC(a[33], a[42]); SQRADDAC(a[34], a[41]); SQRADDAC(a[35], a[40]); SQRADDAC(a[36], a[39]); SQRADDAC(a[37], a[38]); SQRADDDB; + COMBA_STORE(b[75]); + + /* output 76 */ + CARRY_FORWARD; + SQRADDSC(a[13], a[63]); SQRADDAC(a[14], a[62]); SQRADDAC(a[15], a[61]); SQRADDAC(a[16], a[60]); SQRADDAC(a[17], a[59]); SQRADDAC(a[18], a[58]); SQRADDAC(a[19], a[57]); SQRADDAC(a[20], a[56]); SQRADDAC(a[21], a[55]); SQRADDAC(a[22], a[54]); SQRADDAC(a[23], a[53]); SQRADDAC(a[24], a[52]); SQRADDAC(a[25], a[51]); SQRADDAC(a[26], a[50]); SQRADDAC(a[27], a[49]); SQRADDAC(a[28], a[48]); SQRADDAC(a[29], a[47]); SQRADDAC(a[30], a[46]); SQRADDAC(a[31], a[45]); SQRADDAC(a[32], a[44]); SQRADDAC(a[33], a[43]); SQRADDAC(a[34], a[42]); SQRADDAC(a[35], a[41]); SQRADDAC(a[36], a[40]); SQRADDAC(a[37], a[39]); SQRADDDB; SQRADD(a[38], a[38]); + COMBA_STORE(b[76]); + + /* output 77 */ + CARRY_FORWARD; + SQRADDSC(a[14], a[63]); SQRADDAC(a[15], a[62]); SQRADDAC(a[16], a[61]); SQRADDAC(a[17], a[60]); SQRADDAC(a[18], a[59]); SQRADDAC(a[19], a[58]); SQRADDAC(a[20], a[57]); SQRADDAC(a[21], a[56]); SQRADDAC(a[22], a[55]); SQRADDAC(a[23], a[54]); SQRADDAC(a[24], a[53]); SQRADDAC(a[25], a[52]); SQRADDAC(a[26], a[51]); SQRADDAC(a[27], a[50]); SQRADDAC(a[28], a[49]); SQRADDAC(a[29], a[48]); SQRADDAC(a[30], a[47]); SQRADDAC(a[31], a[46]); SQRADDAC(a[32], a[45]); SQRADDAC(a[33], a[44]); SQRADDAC(a[34], a[43]); SQRADDAC(a[35], a[42]); SQRADDAC(a[36], a[41]); SQRADDAC(a[37], a[40]); SQRADDAC(a[38], a[39]); SQRADDDB; + COMBA_STORE(b[77]); + + /* output 78 */ + CARRY_FORWARD; + SQRADDSC(a[15], a[63]); SQRADDAC(a[16], a[62]); SQRADDAC(a[17], a[61]); SQRADDAC(a[18], a[60]); SQRADDAC(a[19], a[59]); SQRADDAC(a[20], a[58]); SQRADDAC(a[21], a[57]); SQRADDAC(a[22], a[56]); SQRADDAC(a[23], a[55]); SQRADDAC(a[24], a[54]); SQRADDAC(a[25], a[53]); SQRADDAC(a[26], a[52]); SQRADDAC(a[27], a[51]); SQRADDAC(a[28], a[50]); SQRADDAC(a[29], a[49]); SQRADDAC(a[30], a[48]); SQRADDAC(a[31], a[47]); SQRADDAC(a[32], a[46]); SQRADDAC(a[33], a[45]); SQRADDAC(a[34], a[44]); SQRADDAC(a[35], a[43]); SQRADDAC(a[36], a[42]); SQRADDAC(a[37], a[41]); SQRADDAC(a[38], a[40]); SQRADDDB; SQRADD(a[39], a[39]); + COMBA_STORE(b[78]); + + /* output 79 */ + CARRY_FORWARD; + SQRADDSC(a[16], a[63]); SQRADDAC(a[17], a[62]); SQRADDAC(a[18], a[61]); SQRADDAC(a[19], a[60]); SQRADDAC(a[20], a[59]); SQRADDAC(a[21], a[58]); SQRADDAC(a[22], a[57]); SQRADDAC(a[23], a[56]); SQRADDAC(a[24], a[55]); SQRADDAC(a[25], a[54]); SQRADDAC(a[26], a[53]); SQRADDAC(a[27], a[52]); SQRADDAC(a[28], a[51]); SQRADDAC(a[29], a[50]); SQRADDAC(a[30], a[49]); SQRADDAC(a[31], a[48]); SQRADDAC(a[32], a[47]); SQRADDAC(a[33], a[46]); SQRADDAC(a[34], a[45]); SQRADDAC(a[35], a[44]); SQRADDAC(a[36], a[43]); SQRADDAC(a[37], a[42]); SQRADDAC(a[38], a[41]); SQRADDAC(a[39], a[40]); SQRADDDB; + COMBA_STORE(b[79]); + + /* output 80 */ + CARRY_FORWARD; + SQRADDSC(a[17], a[63]); SQRADDAC(a[18], a[62]); SQRADDAC(a[19], a[61]); SQRADDAC(a[20], a[60]); SQRADDAC(a[21], a[59]); SQRADDAC(a[22], a[58]); SQRADDAC(a[23], a[57]); SQRADDAC(a[24], a[56]); SQRADDAC(a[25], a[55]); SQRADDAC(a[26], a[54]); SQRADDAC(a[27], a[53]); SQRADDAC(a[28], a[52]); SQRADDAC(a[29], a[51]); SQRADDAC(a[30], a[50]); SQRADDAC(a[31], a[49]); SQRADDAC(a[32], a[48]); SQRADDAC(a[33], a[47]); SQRADDAC(a[34], a[46]); SQRADDAC(a[35], a[45]); SQRADDAC(a[36], a[44]); SQRADDAC(a[37], a[43]); SQRADDAC(a[38], a[42]); SQRADDAC(a[39], a[41]); SQRADDDB; SQRADD(a[40], a[40]); + COMBA_STORE(b[80]); + + /* output 81 */ + CARRY_FORWARD; + SQRADDSC(a[18], a[63]); SQRADDAC(a[19], a[62]); SQRADDAC(a[20], a[61]); SQRADDAC(a[21], a[60]); SQRADDAC(a[22], a[59]); SQRADDAC(a[23], a[58]); SQRADDAC(a[24], a[57]); SQRADDAC(a[25], a[56]); SQRADDAC(a[26], a[55]); SQRADDAC(a[27], a[54]); SQRADDAC(a[28], a[53]); SQRADDAC(a[29], a[52]); SQRADDAC(a[30], a[51]); SQRADDAC(a[31], a[50]); SQRADDAC(a[32], a[49]); SQRADDAC(a[33], a[48]); SQRADDAC(a[34], a[47]); SQRADDAC(a[35], a[46]); SQRADDAC(a[36], a[45]); SQRADDAC(a[37], a[44]); SQRADDAC(a[38], a[43]); SQRADDAC(a[39], a[42]); SQRADDAC(a[40], a[41]); SQRADDDB; + COMBA_STORE(b[81]); + + /* output 82 */ + CARRY_FORWARD; + SQRADDSC(a[19], a[63]); SQRADDAC(a[20], a[62]); SQRADDAC(a[21], a[61]); SQRADDAC(a[22], a[60]); SQRADDAC(a[23], a[59]); SQRADDAC(a[24], a[58]); SQRADDAC(a[25], a[57]); SQRADDAC(a[26], a[56]); SQRADDAC(a[27], a[55]); SQRADDAC(a[28], a[54]); SQRADDAC(a[29], a[53]); SQRADDAC(a[30], a[52]); SQRADDAC(a[31], a[51]); SQRADDAC(a[32], a[50]); SQRADDAC(a[33], a[49]); SQRADDAC(a[34], a[48]); SQRADDAC(a[35], a[47]); SQRADDAC(a[36], a[46]); SQRADDAC(a[37], a[45]); SQRADDAC(a[38], a[44]); SQRADDAC(a[39], a[43]); SQRADDAC(a[40], a[42]); SQRADDDB; SQRADD(a[41], a[41]); + COMBA_STORE(b[82]); + + /* output 83 */ + CARRY_FORWARD; + SQRADDSC(a[20], a[63]); SQRADDAC(a[21], a[62]); SQRADDAC(a[22], a[61]); SQRADDAC(a[23], a[60]); SQRADDAC(a[24], a[59]); SQRADDAC(a[25], a[58]); SQRADDAC(a[26], a[57]); SQRADDAC(a[27], a[56]); SQRADDAC(a[28], a[55]); SQRADDAC(a[29], a[54]); SQRADDAC(a[30], a[53]); SQRADDAC(a[31], a[52]); SQRADDAC(a[32], a[51]); SQRADDAC(a[33], a[50]); SQRADDAC(a[34], a[49]); SQRADDAC(a[35], a[48]); SQRADDAC(a[36], a[47]); SQRADDAC(a[37], a[46]); SQRADDAC(a[38], a[45]); SQRADDAC(a[39], a[44]); SQRADDAC(a[40], a[43]); SQRADDAC(a[41], a[42]); SQRADDDB; + COMBA_STORE(b[83]); + + /* output 84 */ + CARRY_FORWARD; + SQRADDSC(a[21], a[63]); SQRADDAC(a[22], a[62]); SQRADDAC(a[23], a[61]); SQRADDAC(a[24], a[60]); SQRADDAC(a[25], a[59]); SQRADDAC(a[26], a[58]); SQRADDAC(a[27], a[57]); SQRADDAC(a[28], a[56]); SQRADDAC(a[29], a[55]); SQRADDAC(a[30], a[54]); SQRADDAC(a[31], a[53]); SQRADDAC(a[32], a[52]); SQRADDAC(a[33], a[51]); SQRADDAC(a[34], a[50]); SQRADDAC(a[35], a[49]); SQRADDAC(a[36], a[48]); SQRADDAC(a[37], a[47]); SQRADDAC(a[38], a[46]); SQRADDAC(a[39], a[45]); SQRADDAC(a[40], a[44]); SQRADDAC(a[41], a[43]); SQRADDDB; SQRADD(a[42], a[42]); + COMBA_STORE(b[84]); + + /* output 85 */ + CARRY_FORWARD; + SQRADDSC(a[22], a[63]); SQRADDAC(a[23], a[62]); SQRADDAC(a[24], a[61]); SQRADDAC(a[25], a[60]); SQRADDAC(a[26], a[59]); SQRADDAC(a[27], a[58]); SQRADDAC(a[28], a[57]); SQRADDAC(a[29], a[56]); SQRADDAC(a[30], a[55]); SQRADDAC(a[31], a[54]); SQRADDAC(a[32], a[53]); SQRADDAC(a[33], a[52]); SQRADDAC(a[34], a[51]); SQRADDAC(a[35], a[50]); SQRADDAC(a[36], a[49]); SQRADDAC(a[37], a[48]); SQRADDAC(a[38], a[47]); SQRADDAC(a[39], a[46]); SQRADDAC(a[40], a[45]); SQRADDAC(a[41], a[44]); SQRADDAC(a[42], a[43]); SQRADDDB; + COMBA_STORE(b[85]); + + /* output 86 */ + CARRY_FORWARD; + SQRADDSC(a[23], a[63]); SQRADDAC(a[24], a[62]); SQRADDAC(a[25], a[61]); SQRADDAC(a[26], a[60]); SQRADDAC(a[27], a[59]); SQRADDAC(a[28], a[58]); SQRADDAC(a[29], a[57]); SQRADDAC(a[30], a[56]); SQRADDAC(a[31], a[55]); SQRADDAC(a[32], a[54]); SQRADDAC(a[33], a[53]); SQRADDAC(a[34], a[52]); SQRADDAC(a[35], a[51]); SQRADDAC(a[36], a[50]); SQRADDAC(a[37], a[49]); SQRADDAC(a[38], a[48]); SQRADDAC(a[39], a[47]); SQRADDAC(a[40], a[46]); SQRADDAC(a[41], a[45]); SQRADDAC(a[42], a[44]); SQRADDDB; SQRADD(a[43], a[43]); + COMBA_STORE(b[86]); + + /* output 87 */ + CARRY_FORWARD; + SQRADDSC(a[24], a[63]); SQRADDAC(a[25], a[62]); SQRADDAC(a[26], a[61]); SQRADDAC(a[27], a[60]); SQRADDAC(a[28], a[59]); SQRADDAC(a[29], a[58]); SQRADDAC(a[30], a[57]); SQRADDAC(a[31], a[56]); SQRADDAC(a[32], a[55]); SQRADDAC(a[33], a[54]); SQRADDAC(a[34], a[53]); SQRADDAC(a[35], a[52]); SQRADDAC(a[36], a[51]); SQRADDAC(a[37], a[50]); SQRADDAC(a[38], a[49]); SQRADDAC(a[39], a[48]); SQRADDAC(a[40], a[47]); SQRADDAC(a[41], a[46]); SQRADDAC(a[42], a[45]); SQRADDAC(a[43], a[44]); SQRADDDB; + COMBA_STORE(b[87]); + + /* output 88 */ + CARRY_FORWARD; + SQRADDSC(a[25], a[63]); SQRADDAC(a[26], a[62]); SQRADDAC(a[27], a[61]); SQRADDAC(a[28], a[60]); SQRADDAC(a[29], a[59]); SQRADDAC(a[30], a[58]); SQRADDAC(a[31], a[57]); SQRADDAC(a[32], a[56]); SQRADDAC(a[33], a[55]); SQRADDAC(a[34], a[54]); SQRADDAC(a[35], a[53]); SQRADDAC(a[36], a[52]); SQRADDAC(a[37], a[51]); SQRADDAC(a[38], a[50]); SQRADDAC(a[39], a[49]); SQRADDAC(a[40], a[48]); SQRADDAC(a[41], a[47]); SQRADDAC(a[42], a[46]); SQRADDAC(a[43], a[45]); SQRADDDB; SQRADD(a[44], a[44]); + COMBA_STORE(b[88]); + + /* output 89 */ + CARRY_FORWARD; + SQRADDSC(a[26], a[63]); SQRADDAC(a[27], a[62]); SQRADDAC(a[28], a[61]); SQRADDAC(a[29], a[60]); SQRADDAC(a[30], a[59]); SQRADDAC(a[31], a[58]); SQRADDAC(a[32], a[57]); SQRADDAC(a[33], a[56]); SQRADDAC(a[34], a[55]); SQRADDAC(a[35], a[54]); SQRADDAC(a[36], a[53]); SQRADDAC(a[37], a[52]); SQRADDAC(a[38], a[51]); SQRADDAC(a[39], a[50]); SQRADDAC(a[40], a[49]); SQRADDAC(a[41], a[48]); SQRADDAC(a[42], a[47]); SQRADDAC(a[43], a[46]); SQRADDAC(a[44], a[45]); SQRADDDB; + COMBA_STORE(b[89]); + + /* output 90 */ + CARRY_FORWARD; + SQRADDSC(a[27], a[63]); SQRADDAC(a[28], a[62]); SQRADDAC(a[29], a[61]); SQRADDAC(a[30], a[60]); SQRADDAC(a[31], a[59]); SQRADDAC(a[32], a[58]); SQRADDAC(a[33], a[57]); SQRADDAC(a[34], a[56]); SQRADDAC(a[35], a[55]); SQRADDAC(a[36], a[54]); SQRADDAC(a[37], a[53]); SQRADDAC(a[38], a[52]); SQRADDAC(a[39], a[51]); SQRADDAC(a[40], a[50]); SQRADDAC(a[41], a[49]); SQRADDAC(a[42], a[48]); SQRADDAC(a[43], a[47]); SQRADDAC(a[44], a[46]); SQRADDDB; SQRADD(a[45], a[45]); + COMBA_STORE(b[90]); + + /* output 91 */ + CARRY_FORWARD; + SQRADDSC(a[28], a[63]); SQRADDAC(a[29], a[62]); SQRADDAC(a[30], a[61]); SQRADDAC(a[31], a[60]); SQRADDAC(a[32], a[59]); SQRADDAC(a[33], a[58]); SQRADDAC(a[34], a[57]); SQRADDAC(a[35], a[56]); SQRADDAC(a[36], a[55]); SQRADDAC(a[37], a[54]); SQRADDAC(a[38], a[53]); SQRADDAC(a[39], a[52]); SQRADDAC(a[40], a[51]); SQRADDAC(a[41], a[50]); SQRADDAC(a[42], a[49]); SQRADDAC(a[43], a[48]); SQRADDAC(a[44], a[47]); SQRADDAC(a[45], a[46]); SQRADDDB; + COMBA_STORE(b[91]); + + /* output 92 */ + CARRY_FORWARD; + SQRADDSC(a[29], a[63]); SQRADDAC(a[30], a[62]); SQRADDAC(a[31], a[61]); SQRADDAC(a[32], a[60]); SQRADDAC(a[33], a[59]); SQRADDAC(a[34], a[58]); SQRADDAC(a[35], a[57]); SQRADDAC(a[36], a[56]); SQRADDAC(a[37], a[55]); SQRADDAC(a[38], a[54]); SQRADDAC(a[39], a[53]); SQRADDAC(a[40], a[52]); SQRADDAC(a[41], a[51]); SQRADDAC(a[42], a[50]); SQRADDAC(a[43], a[49]); SQRADDAC(a[44], a[48]); SQRADDAC(a[45], a[47]); SQRADDDB; SQRADD(a[46], a[46]); + COMBA_STORE(b[92]); + + /* output 93 */ + CARRY_FORWARD; + SQRADDSC(a[30], a[63]); SQRADDAC(a[31], a[62]); SQRADDAC(a[32], a[61]); SQRADDAC(a[33], a[60]); SQRADDAC(a[34], a[59]); SQRADDAC(a[35], a[58]); SQRADDAC(a[36], a[57]); SQRADDAC(a[37], a[56]); SQRADDAC(a[38], a[55]); SQRADDAC(a[39], a[54]); SQRADDAC(a[40], a[53]); SQRADDAC(a[41], a[52]); SQRADDAC(a[42], a[51]); SQRADDAC(a[43], a[50]); SQRADDAC(a[44], a[49]); SQRADDAC(a[45], a[48]); SQRADDAC(a[46], a[47]); SQRADDDB; + COMBA_STORE(b[93]); + + /* output 94 */ + CARRY_FORWARD; + SQRADDSC(a[31], a[63]); SQRADDAC(a[32], a[62]); SQRADDAC(a[33], a[61]); SQRADDAC(a[34], a[60]); SQRADDAC(a[35], a[59]); SQRADDAC(a[36], a[58]); SQRADDAC(a[37], a[57]); SQRADDAC(a[38], a[56]); SQRADDAC(a[39], a[55]); SQRADDAC(a[40], a[54]); SQRADDAC(a[41], a[53]); SQRADDAC(a[42], a[52]); SQRADDAC(a[43], a[51]); SQRADDAC(a[44], a[50]); SQRADDAC(a[45], a[49]); SQRADDAC(a[46], a[48]); SQRADDDB; SQRADD(a[47], a[47]); + COMBA_STORE(b[94]); + + /* output 95 */ + CARRY_FORWARD; + SQRADDSC(a[32], a[63]); SQRADDAC(a[33], a[62]); SQRADDAC(a[34], a[61]); SQRADDAC(a[35], a[60]); SQRADDAC(a[36], a[59]); SQRADDAC(a[37], a[58]); SQRADDAC(a[38], a[57]); SQRADDAC(a[39], a[56]); SQRADDAC(a[40], a[55]); SQRADDAC(a[41], a[54]); SQRADDAC(a[42], a[53]); SQRADDAC(a[43], a[52]); SQRADDAC(a[44], a[51]); SQRADDAC(a[45], a[50]); SQRADDAC(a[46], a[49]); SQRADDAC(a[47], a[48]); SQRADDDB; + COMBA_STORE(b[95]); + + /* output 96 */ + CARRY_FORWARD; + SQRADDSC(a[33], a[63]); SQRADDAC(a[34], a[62]); SQRADDAC(a[35], a[61]); SQRADDAC(a[36], a[60]); SQRADDAC(a[37], a[59]); SQRADDAC(a[38], a[58]); SQRADDAC(a[39], a[57]); SQRADDAC(a[40], a[56]); SQRADDAC(a[41], a[55]); SQRADDAC(a[42], a[54]); SQRADDAC(a[43], a[53]); SQRADDAC(a[44], a[52]); SQRADDAC(a[45], a[51]); SQRADDAC(a[46], a[50]); SQRADDAC(a[47], a[49]); SQRADDDB; SQRADD(a[48], a[48]); + COMBA_STORE(b[96]); + + /* output 97 */ + CARRY_FORWARD; + SQRADDSC(a[34], a[63]); SQRADDAC(a[35], a[62]); SQRADDAC(a[36], a[61]); SQRADDAC(a[37], a[60]); SQRADDAC(a[38], a[59]); SQRADDAC(a[39], a[58]); SQRADDAC(a[40], a[57]); SQRADDAC(a[41], a[56]); SQRADDAC(a[42], a[55]); SQRADDAC(a[43], a[54]); SQRADDAC(a[44], a[53]); SQRADDAC(a[45], a[52]); SQRADDAC(a[46], a[51]); SQRADDAC(a[47], a[50]); SQRADDAC(a[48], a[49]); SQRADDDB; + COMBA_STORE(b[97]); + + /* output 98 */ + CARRY_FORWARD; + SQRADDSC(a[35], a[63]); SQRADDAC(a[36], a[62]); SQRADDAC(a[37], a[61]); SQRADDAC(a[38], a[60]); SQRADDAC(a[39], a[59]); SQRADDAC(a[40], a[58]); SQRADDAC(a[41], a[57]); SQRADDAC(a[42], a[56]); SQRADDAC(a[43], a[55]); SQRADDAC(a[44], a[54]); SQRADDAC(a[45], a[53]); SQRADDAC(a[46], a[52]); SQRADDAC(a[47], a[51]); SQRADDAC(a[48], a[50]); SQRADDDB; SQRADD(a[49], a[49]); + COMBA_STORE(b[98]); + + /* output 99 */ + CARRY_FORWARD; + SQRADDSC(a[36], a[63]); SQRADDAC(a[37], a[62]); SQRADDAC(a[38], a[61]); SQRADDAC(a[39], a[60]); SQRADDAC(a[40], a[59]); SQRADDAC(a[41], a[58]); SQRADDAC(a[42], a[57]); SQRADDAC(a[43], a[56]); SQRADDAC(a[44], a[55]); SQRADDAC(a[45], a[54]); SQRADDAC(a[46], a[53]); SQRADDAC(a[47], a[52]); SQRADDAC(a[48], a[51]); SQRADDAC(a[49], a[50]); SQRADDDB; + COMBA_STORE(b[99]); + + /* output 100 */ + CARRY_FORWARD; + SQRADDSC(a[37], a[63]); SQRADDAC(a[38], a[62]); SQRADDAC(a[39], a[61]); SQRADDAC(a[40], a[60]); SQRADDAC(a[41], a[59]); SQRADDAC(a[42], a[58]); SQRADDAC(a[43], a[57]); SQRADDAC(a[44], a[56]); SQRADDAC(a[45], a[55]); SQRADDAC(a[46], a[54]); SQRADDAC(a[47], a[53]); SQRADDAC(a[48], a[52]); SQRADDAC(a[49], a[51]); SQRADDDB; SQRADD(a[50], a[50]); + COMBA_STORE(b[100]); + + /* output 101 */ + CARRY_FORWARD; + SQRADDSC(a[38], a[63]); SQRADDAC(a[39], a[62]); SQRADDAC(a[40], a[61]); SQRADDAC(a[41], a[60]); SQRADDAC(a[42], a[59]); SQRADDAC(a[43], a[58]); SQRADDAC(a[44], a[57]); SQRADDAC(a[45], a[56]); SQRADDAC(a[46], a[55]); SQRADDAC(a[47], a[54]); SQRADDAC(a[48], a[53]); SQRADDAC(a[49], a[52]); SQRADDAC(a[50], a[51]); SQRADDDB; + COMBA_STORE(b[101]); + + /* output 102 */ + CARRY_FORWARD; + SQRADDSC(a[39], a[63]); SQRADDAC(a[40], a[62]); SQRADDAC(a[41], a[61]); SQRADDAC(a[42], a[60]); SQRADDAC(a[43], a[59]); SQRADDAC(a[44], a[58]); SQRADDAC(a[45], a[57]); SQRADDAC(a[46], a[56]); SQRADDAC(a[47], a[55]); SQRADDAC(a[48], a[54]); SQRADDAC(a[49], a[53]); SQRADDAC(a[50], a[52]); SQRADDDB; SQRADD(a[51], a[51]); + COMBA_STORE(b[102]); + + /* output 103 */ + CARRY_FORWARD; + SQRADDSC(a[40], a[63]); SQRADDAC(a[41], a[62]); SQRADDAC(a[42], a[61]); SQRADDAC(a[43], a[60]); SQRADDAC(a[44], a[59]); SQRADDAC(a[45], a[58]); SQRADDAC(a[46], a[57]); SQRADDAC(a[47], a[56]); SQRADDAC(a[48], a[55]); SQRADDAC(a[49], a[54]); SQRADDAC(a[50], a[53]); SQRADDAC(a[51], a[52]); SQRADDDB; + COMBA_STORE(b[103]); + + /* output 104 */ + CARRY_FORWARD; + SQRADDSC(a[41], a[63]); SQRADDAC(a[42], a[62]); SQRADDAC(a[43], a[61]); SQRADDAC(a[44], a[60]); SQRADDAC(a[45], a[59]); SQRADDAC(a[46], a[58]); SQRADDAC(a[47], a[57]); SQRADDAC(a[48], a[56]); SQRADDAC(a[49], a[55]); SQRADDAC(a[50], a[54]); SQRADDAC(a[51], a[53]); SQRADDDB; SQRADD(a[52], a[52]); + COMBA_STORE(b[104]); + + /* output 105 */ + CARRY_FORWARD; + SQRADDSC(a[42], a[63]); SQRADDAC(a[43], a[62]); SQRADDAC(a[44], a[61]); SQRADDAC(a[45], a[60]); SQRADDAC(a[46], a[59]); SQRADDAC(a[47], a[58]); SQRADDAC(a[48], a[57]); SQRADDAC(a[49], a[56]); SQRADDAC(a[50], a[55]); SQRADDAC(a[51], a[54]); SQRADDAC(a[52], a[53]); SQRADDDB; + COMBA_STORE(b[105]); + + /* output 106 */ + CARRY_FORWARD; + SQRADDSC(a[43], a[63]); SQRADDAC(a[44], a[62]); SQRADDAC(a[45], a[61]); SQRADDAC(a[46], a[60]); SQRADDAC(a[47], a[59]); SQRADDAC(a[48], a[58]); SQRADDAC(a[49], a[57]); SQRADDAC(a[50], a[56]); SQRADDAC(a[51], a[55]); SQRADDAC(a[52], a[54]); SQRADDDB; SQRADD(a[53], a[53]); + COMBA_STORE(b[106]); + + /* output 107 */ + CARRY_FORWARD; + SQRADDSC(a[44], a[63]); SQRADDAC(a[45], a[62]); SQRADDAC(a[46], a[61]); SQRADDAC(a[47], a[60]); SQRADDAC(a[48], a[59]); SQRADDAC(a[49], a[58]); SQRADDAC(a[50], a[57]); SQRADDAC(a[51], a[56]); SQRADDAC(a[52], a[55]); SQRADDAC(a[53], a[54]); SQRADDDB; + COMBA_STORE(b[107]); + + /* output 108 */ + CARRY_FORWARD; + SQRADDSC(a[45], a[63]); SQRADDAC(a[46], a[62]); SQRADDAC(a[47], a[61]); SQRADDAC(a[48], a[60]); SQRADDAC(a[49], a[59]); SQRADDAC(a[50], a[58]); SQRADDAC(a[51], a[57]); SQRADDAC(a[52], a[56]); SQRADDAC(a[53], a[55]); SQRADDDB; SQRADD(a[54], a[54]); + COMBA_STORE(b[108]); + + /* output 109 */ + CARRY_FORWARD; + SQRADDSC(a[46], a[63]); SQRADDAC(a[47], a[62]); SQRADDAC(a[48], a[61]); SQRADDAC(a[49], a[60]); SQRADDAC(a[50], a[59]); SQRADDAC(a[51], a[58]); SQRADDAC(a[52], a[57]); SQRADDAC(a[53], a[56]); SQRADDAC(a[54], a[55]); SQRADDDB; + COMBA_STORE(b[109]); + + /* output 110 */ + CARRY_FORWARD; + SQRADDSC(a[47], a[63]); SQRADDAC(a[48], a[62]); SQRADDAC(a[49], a[61]); SQRADDAC(a[50], a[60]); SQRADDAC(a[51], a[59]); SQRADDAC(a[52], a[58]); SQRADDAC(a[53], a[57]); SQRADDAC(a[54], a[56]); SQRADDDB; SQRADD(a[55], a[55]); + COMBA_STORE(b[110]); + + /* output 111 */ + CARRY_FORWARD; + SQRADDSC(a[48], a[63]); SQRADDAC(a[49], a[62]); SQRADDAC(a[50], a[61]); SQRADDAC(a[51], a[60]); SQRADDAC(a[52], a[59]); SQRADDAC(a[53], a[58]); SQRADDAC(a[54], a[57]); SQRADDAC(a[55], a[56]); SQRADDDB; + COMBA_STORE(b[111]); + + /* output 112 */ + CARRY_FORWARD; + SQRADDSC(a[49], a[63]); SQRADDAC(a[50], a[62]); SQRADDAC(a[51], a[61]); SQRADDAC(a[52], a[60]); SQRADDAC(a[53], a[59]); SQRADDAC(a[54], a[58]); SQRADDAC(a[55], a[57]); SQRADDDB; SQRADD(a[56], a[56]); + COMBA_STORE(b[112]); + + /* output 113 */ + CARRY_FORWARD; + SQRADDSC(a[50], a[63]); SQRADDAC(a[51], a[62]); SQRADDAC(a[52], a[61]); SQRADDAC(a[53], a[60]); SQRADDAC(a[54], a[59]); SQRADDAC(a[55], a[58]); SQRADDAC(a[56], a[57]); SQRADDDB; + COMBA_STORE(b[113]); + + /* output 114 */ + CARRY_FORWARD; + SQRADDSC(a[51], a[63]); SQRADDAC(a[52], a[62]); SQRADDAC(a[53], a[61]); SQRADDAC(a[54], a[60]); SQRADDAC(a[55], a[59]); SQRADDAC(a[56], a[58]); SQRADDDB; SQRADD(a[57], a[57]); + COMBA_STORE(b[114]); + + /* output 115 */ + CARRY_FORWARD; + SQRADDSC(a[52], a[63]); SQRADDAC(a[53], a[62]); SQRADDAC(a[54], a[61]); SQRADDAC(a[55], a[60]); SQRADDAC(a[56], a[59]); SQRADDAC(a[57], a[58]); SQRADDDB; + COMBA_STORE(b[115]); + + /* output 116 */ + CARRY_FORWARD; + SQRADDSC(a[53], a[63]); SQRADDAC(a[54], a[62]); SQRADDAC(a[55], a[61]); SQRADDAC(a[56], a[60]); SQRADDAC(a[57], a[59]); SQRADDDB; SQRADD(a[58], a[58]); + COMBA_STORE(b[116]); + + /* output 117 */ + CARRY_FORWARD; + SQRADDSC(a[54], a[63]); SQRADDAC(a[55], a[62]); SQRADDAC(a[56], a[61]); SQRADDAC(a[57], a[60]); SQRADDAC(a[58], a[59]); SQRADDDB; + COMBA_STORE(b[117]); + + /* output 118 */ + CARRY_FORWARD; + SQRADDSC(a[55], a[63]); SQRADDAC(a[56], a[62]); SQRADDAC(a[57], a[61]); SQRADDAC(a[58], a[60]); SQRADDDB; SQRADD(a[59], a[59]); + COMBA_STORE(b[118]); + + /* output 119 */ + CARRY_FORWARD; + SQRADDSC(a[56], a[63]); SQRADDAC(a[57], a[62]); SQRADDAC(a[58], a[61]); SQRADDAC(a[59], a[60]); SQRADDDB; + COMBA_STORE(b[119]); + + /* output 120 */ + CARRY_FORWARD; + SQRADDSC(a[57], a[63]); SQRADDAC(a[58], a[62]); SQRADDAC(a[59], a[61]); SQRADDDB; SQRADD(a[60], a[60]); + COMBA_STORE(b[120]); + + /* output 121 */ + CARRY_FORWARD; + SQRADDSC(a[58], a[63]); SQRADDAC(a[59], a[62]); SQRADDAC(a[60], a[61]); SQRADDDB; + COMBA_STORE(b[121]); + + /* output 122 */ + CARRY_FORWARD; + SQRADD2(a[59], a[63]); SQRADD2(a[60], a[62]); SQRADD(a[61], a[61]); + COMBA_STORE(b[122]); + + /* output 123 */ + CARRY_FORWARD; + SQRADD2(a[60], a[63]); SQRADD2(a[61], a[62]); + COMBA_STORE(b[123]); + + /* output 124 */ + CARRY_FORWARD; + SQRADD2(a[61], a[63]); SQRADD(a[62], a[62]); + COMBA_STORE(b[124]); + + /* output 125 */ + CARRY_FORWARD; + SQRADD2(a[62], a[63]); + COMBA_STORE(b[125]); + + /* output 126 */ + CARRY_FORWARD; + SQRADD(a[63], a[63]); + COMBA_STORE(b[126]); + COMBA_STORE2(b[127]); + COMBA_FINI; + + B->used = 128; + B->sign = FP_ZPOS; + memcpy(B->dp, b, 128 * sizeof(fp_digit)); + fp_clamp(B); +} +#endif + + diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_7.i b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_7.i new file mode 100644 index 000000000..1d620fce6 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_7.i @@ -0,0 +1,107 @@ +/* fp_sqr_comba_7.i + * + * Copyright (C) 2006-2011 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifdef TFM_SQR7 +void fp_sqr_comba7(fp_int *A, fp_int *B) +{ + fp_digit *a, b[14], c0, c1, c2, sc0, sc1, sc2; + + a = A->dp; + COMBA_START; + + /* clear carries */ + CLEAR_CARRY; + + /* output 0 */ + SQRADD(a[0],a[0]); + COMBA_STORE(b[0]); + + /* output 1 */ + CARRY_FORWARD; + SQRADD2(a[0], a[1]); + COMBA_STORE(b[1]); + + /* output 2 */ + CARRY_FORWARD; + SQRADD2(a[0], a[2]); SQRADD(a[1], a[1]); + COMBA_STORE(b[2]); + + /* output 3 */ + CARRY_FORWARD; + SQRADD2(a[0], a[3]); SQRADD2(a[1], a[2]); + COMBA_STORE(b[3]); + + /* output 4 */ + CARRY_FORWARD; + SQRADD2(a[0], a[4]); SQRADD2(a[1], a[3]); SQRADD(a[2], a[2]); + COMBA_STORE(b[4]); + + /* output 5 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[5]); SQRADDAC(a[1], a[4]); SQRADDAC(a[2], a[3]); SQRADDDB; + COMBA_STORE(b[5]); + + /* output 6 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[6]); SQRADDAC(a[1], a[5]); SQRADDAC(a[2], a[4]); SQRADDDB; SQRADD(a[3], a[3]); + COMBA_STORE(b[6]); + + /* output 7 */ + CARRY_FORWARD; + SQRADDSC(a[1], a[6]); SQRADDAC(a[2], a[5]); SQRADDAC(a[3], a[4]); SQRADDDB; + COMBA_STORE(b[7]); + + /* output 8 */ + CARRY_FORWARD; + SQRADD2(a[2], a[6]); SQRADD2(a[3], a[5]); SQRADD(a[4], a[4]); + COMBA_STORE(b[8]); + + /* output 9 */ + CARRY_FORWARD; + SQRADD2(a[3], a[6]); SQRADD2(a[4], a[5]); + COMBA_STORE(b[9]); + + /* output 10 */ + CARRY_FORWARD; + SQRADD2(a[4], a[6]); SQRADD(a[5], a[5]); + COMBA_STORE(b[10]); + + /* output 11 */ + CARRY_FORWARD; + SQRADD2(a[5], a[6]); + COMBA_STORE(b[11]); + + /* output 12 */ + CARRY_FORWARD; + SQRADD(a[6], a[6]); + COMBA_STORE(b[12]); + COMBA_STORE2(b[13]); + COMBA_FINI; + + B->used = 14; + B->sign = FP_ZPOS; + memcpy(B->dp, b, 14 * sizeof(fp_digit)); + fp_clamp(B); +} +#endif + + diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_8.i b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_8.i new file mode 100644 index 000000000..7d7e58f3f --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_8.i @@ -0,0 +1,117 @@ +/* fp_sqr_comba_8.i + * + * Copyright (C) 2006-2011 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifdef TFM_SQR8 +void fp_sqr_comba8(fp_int *A, fp_int *B) +{ + fp_digit *a, b[16], c0, c1, c2, sc0, sc1, sc2; + + a = A->dp; + COMBA_START; + + /* clear carries */ + CLEAR_CARRY; + + /* output 0 */ + SQRADD(a[0],a[0]); + COMBA_STORE(b[0]); + + /* output 1 */ + CARRY_FORWARD; + SQRADD2(a[0], a[1]); + COMBA_STORE(b[1]); + + /* output 2 */ + CARRY_FORWARD; + SQRADD2(a[0], a[2]); SQRADD(a[1], a[1]); + COMBA_STORE(b[2]); + + /* output 3 */ + CARRY_FORWARD; + SQRADD2(a[0], a[3]); SQRADD2(a[1], a[2]); + COMBA_STORE(b[3]); + + /* output 4 */ + CARRY_FORWARD; + SQRADD2(a[0], a[4]); SQRADD2(a[1], a[3]); SQRADD(a[2], a[2]); + COMBA_STORE(b[4]); + + /* output 5 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[5]); SQRADDAC(a[1], a[4]); SQRADDAC(a[2], a[3]); SQRADDDB; + COMBA_STORE(b[5]); + + /* output 6 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[6]); SQRADDAC(a[1], a[5]); SQRADDAC(a[2], a[4]); SQRADDDB; SQRADD(a[3], a[3]); + COMBA_STORE(b[6]); + + /* output 7 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[7]); SQRADDAC(a[1], a[6]); SQRADDAC(a[2], a[5]); SQRADDAC(a[3], a[4]); SQRADDDB; + COMBA_STORE(b[7]); + + /* output 8 */ + CARRY_FORWARD; + SQRADDSC(a[1], a[7]); SQRADDAC(a[2], a[6]); SQRADDAC(a[3], a[5]); SQRADDDB; SQRADD(a[4], a[4]); + COMBA_STORE(b[8]); + + /* output 9 */ + CARRY_FORWARD; + SQRADDSC(a[2], a[7]); SQRADDAC(a[3], a[6]); SQRADDAC(a[4], a[5]); SQRADDDB; + COMBA_STORE(b[9]); + + /* output 10 */ + CARRY_FORWARD; + SQRADD2(a[3], a[7]); SQRADD2(a[4], a[6]); SQRADD(a[5], a[5]); + COMBA_STORE(b[10]); + + /* output 11 */ + CARRY_FORWARD; + SQRADD2(a[4], a[7]); SQRADD2(a[5], a[6]); + COMBA_STORE(b[11]); + + /* output 12 */ + CARRY_FORWARD; + SQRADD2(a[5], a[7]); SQRADD(a[6], a[6]); + COMBA_STORE(b[12]); + + /* output 13 */ + CARRY_FORWARD; + SQRADD2(a[6], a[7]); + COMBA_STORE(b[13]); + + /* output 14 */ + CARRY_FORWARD; + SQRADD(a[7], a[7]); + COMBA_STORE(b[14]); + COMBA_STORE2(b[15]); + COMBA_FINI; + + B->used = 16; + B->sign = FP_ZPOS; + memcpy(B->dp, b, 16 * sizeof(fp_digit)); + fp_clamp(B); +} +#endif + + diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_9.i b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_9.i new file mode 100644 index 000000000..f0b04b645 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_9.i @@ -0,0 +1,127 @@ +/* fp_sqr_comba_9.i + * + * Copyright (C) 2006-2011 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifdef TFM_SQR9 +void fp_sqr_comba9(fp_int *A, fp_int *B) +{ + fp_digit *a, b[18], c0, c1, c2, sc0, sc1, sc2; + + a = A->dp; + COMBA_START; + + /* clear carries */ + CLEAR_CARRY; + + /* output 0 */ + SQRADD(a[0],a[0]); + COMBA_STORE(b[0]); + + /* output 1 */ + CARRY_FORWARD; + SQRADD2(a[0], a[1]); + COMBA_STORE(b[1]); + + /* output 2 */ + CARRY_FORWARD; + SQRADD2(a[0], a[2]); SQRADD(a[1], a[1]); + COMBA_STORE(b[2]); + + /* output 3 */ + CARRY_FORWARD; + SQRADD2(a[0], a[3]); SQRADD2(a[1], a[2]); + COMBA_STORE(b[3]); + + /* output 4 */ + CARRY_FORWARD; + SQRADD2(a[0], a[4]); SQRADD2(a[1], a[3]); SQRADD(a[2], a[2]); + COMBA_STORE(b[4]); + + /* output 5 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[5]); SQRADDAC(a[1], a[4]); SQRADDAC(a[2], a[3]); SQRADDDB; + COMBA_STORE(b[5]); + + /* output 6 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[6]); SQRADDAC(a[1], a[5]); SQRADDAC(a[2], a[4]); SQRADDDB; SQRADD(a[3], a[3]); + COMBA_STORE(b[6]); + + /* output 7 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[7]); SQRADDAC(a[1], a[6]); SQRADDAC(a[2], a[5]); SQRADDAC(a[3], a[4]); SQRADDDB; + COMBA_STORE(b[7]); + + /* output 8 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[8]); SQRADDAC(a[1], a[7]); SQRADDAC(a[2], a[6]); SQRADDAC(a[3], a[5]); SQRADDDB; SQRADD(a[4], a[4]); + COMBA_STORE(b[8]); + + /* output 9 */ + CARRY_FORWARD; + SQRADDSC(a[1], a[8]); SQRADDAC(a[2], a[7]); SQRADDAC(a[3], a[6]); SQRADDAC(a[4], a[5]); SQRADDDB; + COMBA_STORE(b[9]); + + /* output 10 */ + CARRY_FORWARD; + SQRADDSC(a[2], a[8]); SQRADDAC(a[3], a[7]); SQRADDAC(a[4], a[6]); SQRADDDB; SQRADD(a[5], a[5]); + COMBA_STORE(b[10]); + + /* output 11 */ + CARRY_FORWARD; + SQRADDSC(a[3], a[8]); SQRADDAC(a[4], a[7]); SQRADDAC(a[5], a[6]); SQRADDDB; + COMBA_STORE(b[11]); + + /* output 12 */ + CARRY_FORWARD; + SQRADD2(a[4], a[8]); SQRADD2(a[5], a[7]); SQRADD(a[6], a[6]); + COMBA_STORE(b[12]); + + /* output 13 */ + CARRY_FORWARD; + SQRADD2(a[5], a[8]); SQRADD2(a[6], a[7]); + COMBA_STORE(b[13]); + + /* output 14 */ + CARRY_FORWARD; + SQRADD2(a[6], a[8]); SQRADD(a[7], a[7]); + COMBA_STORE(b[14]); + + /* output 15 */ + CARRY_FORWARD; + SQRADD2(a[7], a[8]); + COMBA_STORE(b[15]); + + /* output 16 */ + CARRY_FORWARD; + SQRADD(a[8], a[8]); + COMBA_STORE(b[16]); + COMBA_STORE2(b[17]); + COMBA_FINI; + + B->used = 18; + B->sign = FP_ZPOS; + memcpy(B->dp, b, 18 * sizeof(fp_digit)); + fp_clamp(B); +} +#endif + + diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_small_set.i b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_small_set.i new file mode 100644 index 000000000..140c4361f --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/fp_sqr_comba_small_set.i @@ -0,0 +1,1540 @@ +/* fp_sqr_comba_small_set.i + * + * Copyright (C) 2006-2011 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#if defined(TFM_SMALL_SET) +void fp_sqr_comba_small(fp_int *A, fp_int *B) +{ + fp_digit *a, b[32], c0, c1, c2, sc0, sc1, sc2; +#ifdef TFM_ISO + fp_word tt; +#endif + switch (A->used) { + case 1: + a = A->dp; + COMBA_START; + + /* clear carries */ + CLEAR_CARRY; + + /* output 0 */ + SQRADD(a[0],a[0]); + COMBA_STORE(b[0]); + COMBA_STORE2(b[1]); + COMBA_FINI; + + B->used = 2; + B->sign = FP_ZPOS; + memcpy(B->dp, b, 2 * sizeof(fp_digit)); + fp_clamp(B); + break; + + case 2: + a = A->dp; + COMBA_START; + + /* clear carries */ + CLEAR_CARRY; + + /* output 0 */ + SQRADD(a[0],a[0]); + COMBA_STORE(b[0]); + + /* output 1 */ + CARRY_FORWARD; + SQRADD2(a[0], a[1]); + COMBA_STORE(b[1]); + + /* output 2 */ + CARRY_FORWARD; + SQRADD(a[1], a[1]); + COMBA_STORE(b[2]); + COMBA_STORE2(b[3]); + COMBA_FINI; + + B->used = 4; + B->sign = FP_ZPOS; + memcpy(B->dp, b, 4 * sizeof(fp_digit)); + fp_clamp(B); + break; + + case 3: + a = A->dp; + COMBA_START; + + /* clear carries */ + CLEAR_CARRY; + + /* output 0 */ + SQRADD(a[0],a[0]); + COMBA_STORE(b[0]); + + /* output 1 */ + CARRY_FORWARD; + SQRADD2(a[0], a[1]); + COMBA_STORE(b[1]); + + /* output 2 */ + CARRY_FORWARD; + SQRADD2(a[0], a[2]); SQRADD(a[1], a[1]); + COMBA_STORE(b[2]); + + /* output 3 */ + CARRY_FORWARD; + SQRADD2(a[1], a[2]); + COMBA_STORE(b[3]); + + /* output 4 */ + CARRY_FORWARD; + SQRADD(a[2], a[2]); + COMBA_STORE(b[4]); + COMBA_STORE2(b[5]); + COMBA_FINI; + + B->used = 6; + B->sign = FP_ZPOS; + memcpy(B->dp, b, 6 * sizeof(fp_digit)); + fp_clamp(B); + break; + + case 4: + a = A->dp; + COMBA_START; + + /* clear carries */ + CLEAR_CARRY; + + /* output 0 */ + SQRADD(a[0],a[0]); + COMBA_STORE(b[0]); + + /* output 1 */ + CARRY_FORWARD; + SQRADD2(a[0], a[1]); + COMBA_STORE(b[1]); + + /* output 2 */ + CARRY_FORWARD; + SQRADD2(a[0], a[2]); SQRADD(a[1], a[1]); + COMBA_STORE(b[2]); + + /* output 3 */ + CARRY_FORWARD; + SQRADD2(a[0], a[3]); SQRADD2(a[1], a[2]); + COMBA_STORE(b[3]); + + /* output 4 */ + CARRY_FORWARD; + SQRADD2(a[1], a[3]); SQRADD(a[2], a[2]); + COMBA_STORE(b[4]); + + /* output 5 */ + CARRY_FORWARD; + SQRADD2(a[2], a[3]); + COMBA_STORE(b[5]); + + /* output 6 */ + CARRY_FORWARD; + SQRADD(a[3], a[3]); + COMBA_STORE(b[6]); + COMBA_STORE2(b[7]); + COMBA_FINI; + + B->used = 8; + B->sign = FP_ZPOS; + memcpy(B->dp, b, 8 * sizeof(fp_digit)); + fp_clamp(B); + break; + + case 5: + a = A->dp; + COMBA_START; + + /* clear carries */ + CLEAR_CARRY; + + /* output 0 */ + SQRADD(a[0],a[0]); + COMBA_STORE(b[0]); + + /* output 1 */ + CARRY_FORWARD; + SQRADD2(a[0], a[1]); + COMBA_STORE(b[1]); + + /* output 2 */ + CARRY_FORWARD; + SQRADD2(a[0], a[2]); SQRADD(a[1], a[1]); + COMBA_STORE(b[2]); + + /* output 3 */ + CARRY_FORWARD; + SQRADD2(a[0], a[3]); SQRADD2(a[1], a[2]); + COMBA_STORE(b[3]); + + /* output 4 */ + CARRY_FORWARD; + SQRADD2(a[0], a[4]); SQRADD2(a[1], a[3]); SQRADD(a[2], a[2]); + COMBA_STORE(b[4]); + + /* output 5 */ + CARRY_FORWARD; + SQRADD2(a[1], a[4]); SQRADD2(a[2], a[3]); + COMBA_STORE(b[5]); + + /* output 6 */ + CARRY_FORWARD; + SQRADD2(a[2], a[4]); SQRADD(a[3], a[3]); + COMBA_STORE(b[6]); + + /* output 7 */ + CARRY_FORWARD; + SQRADD2(a[3], a[4]); + COMBA_STORE(b[7]); + + /* output 8 */ + CARRY_FORWARD; + SQRADD(a[4], a[4]); + COMBA_STORE(b[8]); + COMBA_STORE2(b[9]); + COMBA_FINI; + + B->used = 10; + B->sign = FP_ZPOS; + memcpy(B->dp, b, 10 * sizeof(fp_digit)); + fp_clamp(B); + break; + + case 6: + a = A->dp; + COMBA_START; + + /* clear carries */ + CLEAR_CARRY; + + /* output 0 */ + SQRADD(a[0],a[0]); + COMBA_STORE(b[0]); + + /* output 1 */ + CARRY_FORWARD; + SQRADD2(a[0], a[1]); + COMBA_STORE(b[1]); + + /* output 2 */ + CARRY_FORWARD; + SQRADD2(a[0], a[2]); SQRADD(a[1], a[1]); + COMBA_STORE(b[2]); + + /* output 3 */ + CARRY_FORWARD; + SQRADD2(a[0], a[3]); SQRADD2(a[1], a[2]); + COMBA_STORE(b[3]); + + /* output 4 */ + CARRY_FORWARD; + SQRADD2(a[0], a[4]); SQRADD2(a[1], a[3]); SQRADD(a[2], a[2]); + COMBA_STORE(b[4]); + + /* output 5 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[5]); SQRADDAC(a[1], a[4]); SQRADDAC(a[2], a[3]); SQRADDDB; + COMBA_STORE(b[5]); + + /* output 6 */ + CARRY_FORWARD; + SQRADD2(a[1], a[5]); SQRADD2(a[2], a[4]); SQRADD(a[3], a[3]); + COMBA_STORE(b[6]); + + /* output 7 */ + CARRY_FORWARD; + SQRADD2(a[2], a[5]); SQRADD2(a[3], a[4]); + COMBA_STORE(b[7]); + + /* output 8 */ + CARRY_FORWARD; + SQRADD2(a[3], a[5]); SQRADD(a[4], a[4]); + COMBA_STORE(b[8]); + + /* output 9 */ + CARRY_FORWARD; + SQRADD2(a[4], a[5]); + COMBA_STORE(b[9]); + + /* output 10 */ + CARRY_FORWARD; + SQRADD(a[5], a[5]); + COMBA_STORE(b[10]); + COMBA_STORE2(b[11]); + COMBA_FINI; + + B->used = 12; + B->sign = FP_ZPOS; + memcpy(B->dp, b, 12 * sizeof(fp_digit)); + fp_clamp(B); + break; + + case 7: + a = A->dp; + COMBA_START; + + /* clear carries */ + CLEAR_CARRY; + + /* output 0 */ + SQRADD(a[0],a[0]); + COMBA_STORE(b[0]); + + /* output 1 */ + CARRY_FORWARD; + SQRADD2(a[0], a[1]); + COMBA_STORE(b[1]); + + /* output 2 */ + CARRY_FORWARD; + SQRADD2(a[0], a[2]); SQRADD(a[1], a[1]); + COMBA_STORE(b[2]); + + /* output 3 */ + CARRY_FORWARD; + SQRADD2(a[0], a[3]); SQRADD2(a[1], a[2]); + COMBA_STORE(b[3]); + + /* output 4 */ + CARRY_FORWARD; + SQRADD2(a[0], a[4]); SQRADD2(a[1], a[3]); SQRADD(a[2], a[2]); + COMBA_STORE(b[4]); + + /* output 5 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[5]); SQRADDAC(a[1], a[4]); SQRADDAC(a[2], a[3]); SQRADDDB; + COMBA_STORE(b[5]); + + /* output 6 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[6]); SQRADDAC(a[1], a[5]); SQRADDAC(a[2], a[4]); SQRADDDB; SQRADD(a[3], a[3]); + COMBA_STORE(b[6]); + + /* output 7 */ + CARRY_FORWARD; + SQRADDSC(a[1], a[6]); SQRADDAC(a[2], a[5]); SQRADDAC(a[3], a[4]); SQRADDDB; + COMBA_STORE(b[7]); + + /* output 8 */ + CARRY_FORWARD; + SQRADD2(a[2], a[6]); SQRADD2(a[3], a[5]); SQRADD(a[4], a[4]); + COMBA_STORE(b[8]); + + /* output 9 */ + CARRY_FORWARD; + SQRADD2(a[3], a[6]); SQRADD2(a[4], a[5]); + COMBA_STORE(b[9]); + + /* output 10 */ + CARRY_FORWARD; + SQRADD2(a[4], a[6]); SQRADD(a[5], a[5]); + COMBA_STORE(b[10]); + + /* output 11 */ + CARRY_FORWARD; + SQRADD2(a[5], a[6]); + COMBA_STORE(b[11]); + + /* output 12 */ + CARRY_FORWARD; + SQRADD(a[6], a[6]); + COMBA_STORE(b[12]); + COMBA_STORE2(b[13]); + COMBA_FINI; + + B->used = 14; + B->sign = FP_ZPOS; + memcpy(B->dp, b, 14 * sizeof(fp_digit)); + fp_clamp(B); + break; + + case 8: + a = A->dp; + COMBA_START; + + /* clear carries */ + CLEAR_CARRY; + + /* output 0 */ + SQRADD(a[0],a[0]); + COMBA_STORE(b[0]); + + /* output 1 */ + CARRY_FORWARD; + SQRADD2(a[0], a[1]); + COMBA_STORE(b[1]); + + /* output 2 */ + CARRY_FORWARD; + SQRADD2(a[0], a[2]); SQRADD(a[1], a[1]); + COMBA_STORE(b[2]); + + /* output 3 */ + CARRY_FORWARD; + SQRADD2(a[0], a[3]); SQRADD2(a[1], a[2]); + COMBA_STORE(b[3]); + + /* output 4 */ + CARRY_FORWARD; + SQRADD2(a[0], a[4]); SQRADD2(a[1], a[3]); SQRADD(a[2], a[2]); + COMBA_STORE(b[4]); + + /* output 5 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[5]); SQRADDAC(a[1], a[4]); SQRADDAC(a[2], a[3]); SQRADDDB; + COMBA_STORE(b[5]); + + /* output 6 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[6]); SQRADDAC(a[1], a[5]); SQRADDAC(a[2], a[4]); SQRADDDB; SQRADD(a[3], a[3]); + COMBA_STORE(b[6]); + + /* output 7 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[7]); SQRADDAC(a[1], a[6]); SQRADDAC(a[2], a[5]); SQRADDAC(a[3], a[4]); SQRADDDB; + COMBA_STORE(b[7]); + + /* output 8 */ + CARRY_FORWARD; + SQRADDSC(a[1], a[7]); SQRADDAC(a[2], a[6]); SQRADDAC(a[3], a[5]); SQRADDDB; SQRADD(a[4], a[4]); + COMBA_STORE(b[8]); + + /* output 9 */ + CARRY_FORWARD; + SQRADDSC(a[2], a[7]); SQRADDAC(a[3], a[6]); SQRADDAC(a[4], a[5]); SQRADDDB; + COMBA_STORE(b[9]); + + /* output 10 */ + CARRY_FORWARD; + SQRADD2(a[3], a[7]); SQRADD2(a[4], a[6]); SQRADD(a[5], a[5]); + COMBA_STORE(b[10]); + + /* output 11 */ + CARRY_FORWARD; + SQRADD2(a[4], a[7]); SQRADD2(a[5], a[6]); + COMBA_STORE(b[11]); + + /* output 12 */ + CARRY_FORWARD; + SQRADD2(a[5], a[7]); SQRADD(a[6], a[6]); + COMBA_STORE(b[12]); + + /* output 13 */ + CARRY_FORWARD; + SQRADD2(a[6], a[7]); + COMBA_STORE(b[13]); + + /* output 14 */ + CARRY_FORWARD; + SQRADD(a[7], a[7]); + COMBA_STORE(b[14]); + COMBA_STORE2(b[15]); + COMBA_FINI; + + B->used = 16; + B->sign = FP_ZPOS; + memcpy(B->dp, b, 16 * sizeof(fp_digit)); + fp_clamp(B); + break; + + case 9: + a = A->dp; + COMBA_START; + + /* clear carries */ + CLEAR_CARRY; + + /* output 0 */ + SQRADD(a[0],a[0]); + COMBA_STORE(b[0]); + + /* output 1 */ + CARRY_FORWARD; + SQRADD2(a[0], a[1]); + COMBA_STORE(b[1]); + + /* output 2 */ + CARRY_FORWARD; + SQRADD2(a[0], a[2]); SQRADD(a[1], a[1]); + COMBA_STORE(b[2]); + + /* output 3 */ + CARRY_FORWARD; + SQRADD2(a[0], a[3]); SQRADD2(a[1], a[2]); + COMBA_STORE(b[3]); + + /* output 4 */ + CARRY_FORWARD; + SQRADD2(a[0], a[4]); SQRADD2(a[1], a[3]); SQRADD(a[2], a[2]); + COMBA_STORE(b[4]); + + /* output 5 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[5]); SQRADDAC(a[1], a[4]); SQRADDAC(a[2], a[3]); SQRADDDB; + COMBA_STORE(b[5]); + + /* output 6 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[6]); SQRADDAC(a[1], a[5]); SQRADDAC(a[2], a[4]); SQRADDDB; SQRADD(a[3], a[3]); + COMBA_STORE(b[6]); + + /* output 7 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[7]); SQRADDAC(a[1], a[6]); SQRADDAC(a[2], a[5]); SQRADDAC(a[3], a[4]); SQRADDDB; + COMBA_STORE(b[7]); + + /* output 8 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[8]); SQRADDAC(a[1], a[7]); SQRADDAC(a[2], a[6]); SQRADDAC(a[3], a[5]); SQRADDDB; SQRADD(a[4], a[4]); + COMBA_STORE(b[8]); + + /* output 9 */ + CARRY_FORWARD; + SQRADDSC(a[1], a[8]); SQRADDAC(a[2], a[7]); SQRADDAC(a[3], a[6]); SQRADDAC(a[4], a[5]); SQRADDDB; + COMBA_STORE(b[9]); + + /* output 10 */ + CARRY_FORWARD; + SQRADDSC(a[2], a[8]); SQRADDAC(a[3], a[7]); SQRADDAC(a[4], a[6]); SQRADDDB; SQRADD(a[5], a[5]); + COMBA_STORE(b[10]); + + /* output 11 */ + CARRY_FORWARD; + SQRADDSC(a[3], a[8]); SQRADDAC(a[4], a[7]); SQRADDAC(a[5], a[6]); SQRADDDB; + COMBA_STORE(b[11]); + + /* output 12 */ + CARRY_FORWARD; + SQRADD2(a[4], a[8]); SQRADD2(a[5], a[7]); SQRADD(a[6], a[6]); + COMBA_STORE(b[12]); + + /* output 13 */ + CARRY_FORWARD; + SQRADD2(a[5], a[8]); SQRADD2(a[6], a[7]); + COMBA_STORE(b[13]); + + /* output 14 */ + CARRY_FORWARD; + SQRADD2(a[6], a[8]); SQRADD(a[7], a[7]); + COMBA_STORE(b[14]); + + /* output 15 */ + CARRY_FORWARD; + SQRADD2(a[7], a[8]); + COMBA_STORE(b[15]); + + /* output 16 */ + CARRY_FORWARD; + SQRADD(a[8], a[8]); + COMBA_STORE(b[16]); + COMBA_STORE2(b[17]); + COMBA_FINI; + + B->used = 18; + B->sign = FP_ZPOS; + memcpy(B->dp, b, 18 * sizeof(fp_digit)); + fp_clamp(B); + break; + + case 10: + a = A->dp; + COMBA_START; + + /* clear carries */ + CLEAR_CARRY; + + /* output 0 */ + SQRADD(a[0],a[0]); + COMBA_STORE(b[0]); + + /* output 1 */ + CARRY_FORWARD; + SQRADD2(a[0], a[1]); + COMBA_STORE(b[1]); + + /* output 2 */ + CARRY_FORWARD; + SQRADD2(a[0], a[2]); SQRADD(a[1], a[1]); + COMBA_STORE(b[2]); + + /* output 3 */ + CARRY_FORWARD; + SQRADD2(a[0], a[3]); SQRADD2(a[1], a[2]); + COMBA_STORE(b[3]); + + /* output 4 */ + CARRY_FORWARD; + SQRADD2(a[0], a[4]); SQRADD2(a[1], a[3]); SQRADD(a[2], a[2]); + COMBA_STORE(b[4]); + + /* output 5 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[5]); SQRADDAC(a[1], a[4]); SQRADDAC(a[2], a[3]); SQRADDDB; + COMBA_STORE(b[5]); + + /* output 6 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[6]); SQRADDAC(a[1], a[5]); SQRADDAC(a[2], a[4]); SQRADDDB; SQRADD(a[3], a[3]); + COMBA_STORE(b[6]); + + /* output 7 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[7]); SQRADDAC(a[1], a[6]); SQRADDAC(a[2], a[5]); SQRADDAC(a[3], a[4]); SQRADDDB; + COMBA_STORE(b[7]); + + /* output 8 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[8]); SQRADDAC(a[1], a[7]); SQRADDAC(a[2], a[6]); SQRADDAC(a[3], a[5]); SQRADDDB; SQRADD(a[4], a[4]); + COMBA_STORE(b[8]); + + /* output 9 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[9]); SQRADDAC(a[1], a[8]); SQRADDAC(a[2], a[7]); SQRADDAC(a[3], a[6]); SQRADDAC(a[4], a[5]); SQRADDDB; + COMBA_STORE(b[9]); + + /* output 10 */ + CARRY_FORWARD; + SQRADDSC(a[1], a[9]); SQRADDAC(a[2], a[8]); SQRADDAC(a[3], a[7]); SQRADDAC(a[4], a[6]); SQRADDDB; SQRADD(a[5], a[5]); + COMBA_STORE(b[10]); + + /* output 11 */ + CARRY_FORWARD; + SQRADDSC(a[2], a[9]); SQRADDAC(a[3], a[8]); SQRADDAC(a[4], a[7]); SQRADDAC(a[5], a[6]); SQRADDDB; + COMBA_STORE(b[11]); + + /* output 12 */ + CARRY_FORWARD; + SQRADDSC(a[3], a[9]); SQRADDAC(a[4], a[8]); SQRADDAC(a[5], a[7]); SQRADDDB; SQRADD(a[6], a[6]); + COMBA_STORE(b[12]); + + /* output 13 */ + CARRY_FORWARD; + SQRADDSC(a[4], a[9]); SQRADDAC(a[5], a[8]); SQRADDAC(a[6], a[7]); SQRADDDB; + COMBA_STORE(b[13]); + + /* output 14 */ + CARRY_FORWARD; + SQRADD2(a[5], a[9]); SQRADD2(a[6], a[8]); SQRADD(a[7], a[7]); + COMBA_STORE(b[14]); + + /* output 15 */ + CARRY_FORWARD; + SQRADD2(a[6], a[9]); SQRADD2(a[7], a[8]); + COMBA_STORE(b[15]); + + /* output 16 */ + CARRY_FORWARD; + SQRADD2(a[7], a[9]); SQRADD(a[8], a[8]); + COMBA_STORE(b[16]); + + /* output 17 */ + CARRY_FORWARD; + SQRADD2(a[8], a[9]); + COMBA_STORE(b[17]); + + /* output 18 */ + CARRY_FORWARD; + SQRADD(a[9], a[9]); + COMBA_STORE(b[18]); + COMBA_STORE2(b[19]); + COMBA_FINI; + + B->used = 20; + B->sign = FP_ZPOS; + memcpy(B->dp, b, 20 * sizeof(fp_digit)); + fp_clamp(B); + break; + + case 11: + a = A->dp; + COMBA_START; + + /* clear carries */ + CLEAR_CARRY; + + /* output 0 */ + SQRADD(a[0],a[0]); + COMBA_STORE(b[0]); + + /* output 1 */ + CARRY_FORWARD; + SQRADD2(a[0], a[1]); + COMBA_STORE(b[1]); + + /* output 2 */ + CARRY_FORWARD; + SQRADD2(a[0], a[2]); SQRADD(a[1], a[1]); + COMBA_STORE(b[2]); + + /* output 3 */ + CARRY_FORWARD; + SQRADD2(a[0], a[3]); SQRADD2(a[1], a[2]); + COMBA_STORE(b[3]); + + /* output 4 */ + CARRY_FORWARD; + SQRADD2(a[0], a[4]); SQRADD2(a[1], a[3]); SQRADD(a[2], a[2]); + COMBA_STORE(b[4]); + + /* output 5 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[5]); SQRADDAC(a[1], a[4]); SQRADDAC(a[2], a[3]); SQRADDDB; + COMBA_STORE(b[5]); + + /* output 6 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[6]); SQRADDAC(a[1], a[5]); SQRADDAC(a[2], a[4]); SQRADDDB; SQRADD(a[3], a[3]); + COMBA_STORE(b[6]); + + /* output 7 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[7]); SQRADDAC(a[1], a[6]); SQRADDAC(a[2], a[5]); SQRADDAC(a[3], a[4]); SQRADDDB; + COMBA_STORE(b[7]); + + /* output 8 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[8]); SQRADDAC(a[1], a[7]); SQRADDAC(a[2], a[6]); SQRADDAC(a[3], a[5]); SQRADDDB; SQRADD(a[4], a[4]); + COMBA_STORE(b[8]); + + /* output 9 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[9]); SQRADDAC(a[1], a[8]); SQRADDAC(a[2], a[7]); SQRADDAC(a[3], a[6]); SQRADDAC(a[4], a[5]); SQRADDDB; + COMBA_STORE(b[9]); + + /* output 10 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[10]); SQRADDAC(a[1], a[9]); SQRADDAC(a[2], a[8]); SQRADDAC(a[3], a[7]); SQRADDAC(a[4], a[6]); SQRADDDB; SQRADD(a[5], a[5]); + COMBA_STORE(b[10]); + + /* output 11 */ + CARRY_FORWARD; + SQRADDSC(a[1], a[10]); SQRADDAC(a[2], a[9]); SQRADDAC(a[3], a[8]); SQRADDAC(a[4], a[7]); SQRADDAC(a[5], a[6]); SQRADDDB; + COMBA_STORE(b[11]); + + /* output 12 */ + CARRY_FORWARD; + SQRADDSC(a[2], a[10]); SQRADDAC(a[3], a[9]); SQRADDAC(a[4], a[8]); SQRADDAC(a[5], a[7]); SQRADDDB; SQRADD(a[6], a[6]); + COMBA_STORE(b[12]); + + /* output 13 */ + CARRY_FORWARD; + SQRADDSC(a[3], a[10]); SQRADDAC(a[4], a[9]); SQRADDAC(a[5], a[8]); SQRADDAC(a[6], a[7]); SQRADDDB; + COMBA_STORE(b[13]); + + /* output 14 */ + CARRY_FORWARD; + SQRADDSC(a[4], a[10]); SQRADDAC(a[5], a[9]); SQRADDAC(a[6], a[8]); SQRADDDB; SQRADD(a[7], a[7]); + COMBA_STORE(b[14]); + + /* output 15 */ + CARRY_FORWARD; + SQRADDSC(a[5], a[10]); SQRADDAC(a[6], a[9]); SQRADDAC(a[7], a[8]); SQRADDDB; + COMBA_STORE(b[15]); + + /* output 16 */ + CARRY_FORWARD; + SQRADD2(a[6], a[10]); SQRADD2(a[7], a[9]); SQRADD(a[8], a[8]); + COMBA_STORE(b[16]); + + /* output 17 */ + CARRY_FORWARD; + SQRADD2(a[7], a[10]); SQRADD2(a[8], a[9]); + COMBA_STORE(b[17]); + + /* output 18 */ + CARRY_FORWARD; + SQRADD2(a[8], a[10]); SQRADD(a[9], a[9]); + COMBA_STORE(b[18]); + + /* output 19 */ + CARRY_FORWARD; + SQRADD2(a[9], a[10]); + COMBA_STORE(b[19]); + + /* output 20 */ + CARRY_FORWARD; + SQRADD(a[10], a[10]); + COMBA_STORE(b[20]); + COMBA_STORE2(b[21]); + COMBA_FINI; + + B->used = 22; + B->sign = FP_ZPOS; + memcpy(B->dp, b, 22 * sizeof(fp_digit)); + fp_clamp(B); + break; + + case 12: + a = A->dp; + COMBA_START; + + /* clear carries */ + CLEAR_CARRY; + + /* output 0 */ + SQRADD(a[0],a[0]); + COMBA_STORE(b[0]); + + /* output 1 */ + CARRY_FORWARD; + SQRADD2(a[0], a[1]); + COMBA_STORE(b[1]); + + /* output 2 */ + CARRY_FORWARD; + SQRADD2(a[0], a[2]); SQRADD(a[1], a[1]); + COMBA_STORE(b[2]); + + /* output 3 */ + CARRY_FORWARD; + SQRADD2(a[0], a[3]); SQRADD2(a[1], a[2]); + COMBA_STORE(b[3]); + + /* output 4 */ + CARRY_FORWARD; + SQRADD2(a[0], a[4]); SQRADD2(a[1], a[3]); SQRADD(a[2], a[2]); + COMBA_STORE(b[4]); + + /* output 5 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[5]); SQRADDAC(a[1], a[4]); SQRADDAC(a[2], a[3]); SQRADDDB; + COMBA_STORE(b[5]); + + /* output 6 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[6]); SQRADDAC(a[1], a[5]); SQRADDAC(a[2], a[4]); SQRADDDB; SQRADD(a[3], a[3]); + COMBA_STORE(b[6]); + + /* output 7 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[7]); SQRADDAC(a[1], a[6]); SQRADDAC(a[2], a[5]); SQRADDAC(a[3], a[4]); SQRADDDB; + COMBA_STORE(b[7]); + + /* output 8 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[8]); SQRADDAC(a[1], a[7]); SQRADDAC(a[2], a[6]); SQRADDAC(a[3], a[5]); SQRADDDB; SQRADD(a[4], a[4]); + COMBA_STORE(b[8]); + + /* output 9 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[9]); SQRADDAC(a[1], a[8]); SQRADDAC(a[2], a[7]); SQRADDAC(a[3], a[6]); SQRADDAC(a[4], a[5]); SQRADDDB; + COMBA_STORE(b[9]); + + /* output 10 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[10]); SQRADDAC(a[1], a[9]); SQRADDAC(a[2], a[8]); SQRADDAC(a[3], a[7]); SQRADDAC(a[4], a[6]); SQRADDDB; SQRADD(a[5], a[5]); + COMBA_STORE(b[10]); + + /* output 11 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[11]); SQRADDAC(a[1], a[10]); SQRADDAC(a[2], a[9]); SQRADDAC(a[3], a[8]); SQRADDAC(a[4], a[7]); SQRADDAC(a[5], a[6]); SQRADDDB; + COMBA_STORE(b[11]); + + /* output 12 */ + CARRY_FORWARD; + SQRADDSC(a[1], a[11]); SQRADDAC(a[2], a[10]); SQRADDAC(a[3], a[9]); SQRADDAC(a[4], a[8]); SQRADDAC(a[5], a[7]); SQRADDDB; SQRADD(a[6], a[6]); + COMBA_STORE(b[12]); + + /* output 13 */ + CARRY_FORWARD; + SQRADDSC(a[2], a[11]); SQRADDAC(a[3], a[10]); SQRADDAC(a[4], a[9]); SQRADDAC(a[5], a[8]); SQRADDAC(a[6], a[7]); SQRADDDB; + COMBA_STORE(b[13]); + + /* output 14 */ + CARRY_FORWARD; + SQRADDSC(a[3], a[11]); SQRADDAC(a[4], a[10]); SQRADDAC(a[5], a[9]); SQRADDAC(a[6], a[8]); SQRADDDB; SQRADD(a[7], a[7]); + COMBA_STORE(b[14]); + + /* output 15 */ + CARRY_FORWARD; + SQRADDSC(a[4], a[11]); SQRADDAC(a[5], a[10]); SQRADDAC(a[6], a[9]); SQRADDAC(a[7], a[8]); SQRADDDB; + COMBA_STORE(b[15]); + + /* output 16 */ + CARRY_FORWARD; + SQRADDSC(a[5], a[11]); SQRADDAC(a[6], a[10]); SQRADDAC(a[7], a[9]); SQRADDDB; SQRADD(a[8], a[8]); + COMBA_STORE(b[16]); + + /* output 17 */ + CARRY_FORWARD; + SQRADDSC(a[6], a[11]); SQRADDAC(a[7], a[10]); SQRADDAC(a[8], a[9]); SQRADDDB; + COMBA_STORE(b[17]); + + /* output 18 */ + CARRY_FORWARD; + SQRADD2(a[7], a[11]); SQRADD2(a[8], a[10]); SQRADD(a[9], a[9]); + COMBA_STORE(b[18]); + + /* output 19 */ + CARRY_FORWARD; + SQRADD2(a[8], a[11]); SQRADD2(a[9], a[10]); + COMBA_STORE(b[19]); + + /* output 20 */ + CARRY_FORWARD; + SQRADD2(a[9], a[11]); SQRADD(a[10], a[10]); + COMBA_STORE(b[20]); + + /* output 21 */ + CARRY_FORWARD; + SQRADD2(a[10], a[11]); + COMBA_STORE(b[21]); + + /* output 22 */ + CARRY_FORWARD; + SQRADD(a[11], a[11]); + COMBA_STORE(b[22]); + COMBA_STORE2(b[23]); + COMBA_FINI; + + B->used = 24; + B->sign = FP_ZPOS; + memcpy(B->dp, b, 24 * sizeof(fp_digit)); + fp_clamp(B); + break; + + case 13: + a = A->dp; + COMBA_START; + + /* clear carries */ + CLEAR_CARRY; + + /* output 0 */ + SQRADD(a[0],a[0]); + COMBA_STORE(b[0]); + + /* output 1 */ + CARRY_FORWARD; + SQRADD2(a[0], a[1]); + COMBA_STORE(b[1]); + + /* output 2 */ + CARRY_FORWARD; + SQRADD2(a[0], a[2]); SQRADD(a[1], a[1]); + COMBA_STORE(b[2]); + + /* output 3 */ + CARRY_FORWARD; + SQRADD2(a[0], a[3]); SQRADD2(a[1], a[2]); + COMBA_STORE(b[3]); + + /* output 4 */ + CARRY_FORWARD; + SQRADD2(a[0], a[4]); SQRADD2(a[1], a[3]); SQRADD(a[2], a[2]); + COMBA_STORE(b[4]); + + /* output 5 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[5]); SQRADDAC(a[1], a[4]); SQRADDAC(a[2], a[3]); SQRADDDB; + COMBA_STORE(b[5]); + + /* output 6 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[6]); SQRADDAC(a[1], a[5]); SQRADDAC(a[2], a[4]); SQRADDDB; SQRADD(a[3], a[3]); + COMBA_STORE(b[6]); + + /* output 7 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[7]); SQRADDAC(a[1], a[6]); SQRADDAC(a[2], a[5]); SQRADDAC(a[3], a[4]); SQRADDDB; + COMBA_STORE(b[7]); + + /* output 8 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[8]); SQRADDAC(a[1], a[7]); SQRADDAC(a[2], a[6]); SQRADDAC(a[3], a[5]); SQRADDDB; SQRADD(a[4], a[4]); + COMBA_STORE(b[8]); + + /* output 9 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[9]); SQRADDAC(a[1], a[8]); SQRADDAC(a[2], a[7]); SQRADDAC(a[3], a[6]); SQRADDAC(a[4], a[5]); SQRADDDB; + COMBA_STORE(b[9]); + + /* output 10 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[10]); SQRADDAC(a[1], a[9]); SQRADDAC(a[2], a[8]); SQRADDAC(a[3], a[7]); SQRADDAC(a[4], a[6]); SQRADDDB; SQRADD(a[5], a[5]); + COMBA_STORE(b[10]); + + /* output 11 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[11]); SQRADDAC(a[1], a[10]); SQRADDAC(a[2], a[9]); SQRADDAC(a[3], a[8]); SQRADDAC(a[4], a[7]); SQRADDAC(a[5], a[6]); SQRADDDB; + COMBA_STORE(b[11]); + + /* output 12 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[12]); SQRADDAC(a[1], a[11]); SQRADDAC(a[2], a[10]); SQRADDAC(a[3], a[9]); SQRADDAC(a[4], a[8]); SQRADDAC(a[5], a[7]); SQRADDDB; SQRADD(a[6], a[6]); + COMBA_STORE(b[12]); + + /* output 13 */ + CARRY_FORWARD; + SQRADDSC(a[1], a[12]); SQRADDAC(a[2], a[11]); SQRADDAC(a[3], a[10]); SQRADDAC(a[4], a[9]); SQRADDAC(a[5], a[8]); SQRADDAC(a[6], a[7]); SQRADDDB; + COMBA_STORE(b[13]); + + /* output 14 */ + CARRY_FORWARD; + SQRADDSC(a[2], a[12]); SQRADDAC(a[3], a[11]); SQRADDAC(a[4], a[10]); SQRADDAC(a[5], a[9]); SQRADDAC(a[6], a[8]); SQRADDDB; SQRADD(a[7], a[7]); + COMBA_STORE(b[14]); + + /* output 15 */ + CARRY_FORWARD; + SQRADDSC(a[3], a[12]); SQRADDAC(a[4], a[11]); SQRADDAC(a[5], a[10]); SQRADDAC(a[6], a[9]); SQRADDAC(a[7], a[8]); SQRADDDB; + COMBA_STORE(b[15]); + + /* output 16 */ + CARRY_FORWARD; + SQRADDSC(a[4], a[12]); SQRADDAC(a[5], a[11]); SQRADDAC(a[6], a[10]); SQRADDAC(a[7], a[9]); SQRADDDB; SQRADD(a[8], a[8]); + COMBA_STORE(b[16]); + + /* output 17 */ + CARRY_FORWARD; + SQRADDSC(a[5], a[12]); SQRADDAC(a[6], a[11]); SQRADDAC(a[7], a[10]); SQRADDAC(a[8], a[9]); SQRADDDB; + COMBA_STORE(b[17]); + + /* output 18 */ + CARRY_FORWARD; + SQRADDSC(a[6], a[12]); SQRADDAC(a[7], a[11]); SQRADDAC(a[8], a[10]); SQRADDDB; SQRADD(a[9], a[9]); + COMBA_STORE(b[18]); + + /* output 19 */ + CARRY_FORWARD; + SQRADDSC(a[7], a[12]); SQRADDAC(a[8], a[11]); SQRADDAC(a[9], a[10]); SQRADDDB; + COMBA_STORE(b[19]); + + /* output 20 */ + CARRY_FORWARD; + SQRADD2(a[8], a[12]); SQRADD2(a[9], a[11]); SQRADD(a[10], a[10]); + COMBA_STORE(b[20]); + + /* output 21 */ + CARRY_FORWARD; + SQRADD2(a[9], a[12]); SQRADD2(a[10], a[11]); + COMBA_STORE(b[21]); + + /* output 22 */ + CARRY_FORWARD; + SQRADD2(a[10], a[12]); SQRADD(a[11], a[11]); + COMBA_STORE(b[22]); + + /* output 23 */ + CARRY_FORWARD; + SQRADD2(a[11], a[12]); + COMBA_STORE(b[23]); + + /* output 24 */ + CARRY_FORWARD; + SQRADD(a[12], a[12]); + COMBA_STORE(b[24]); + COMBA_STORE2(b[25]); + COMBA_FINI; + + B->used = 26; + B->sign = FP_ZPOS; + memcpy(B->dp, b, 26 * sizeof(fp_digit)); + fp_clamp(B); + break; + + case 14: + a = A->dp; + COMBA_START; + + /* clear carries */ + CLEAR_CARRY; + + /* output 0 */ + SQRADD(a[0],a[0]); + COMBA_STORE(b[0]); + + /* output 1 */ + CARRY_FORWARD; + SQRADD2(a[0], a[1]); + COMBA_STORE(b[1]); + + /* output 2 */ + CARRY_FORWARD; + SQRADD2(a[0], a[2]); SQRADD(a[1], a[1]); + COMBA_STORE(b[2]); + + /* output 3 */ + CARRY_FORWARD; + SQRADD2(a[0], a[3]); SQRADD2(a[1], a[2]); + COMBA_STORE(b[3]); + + /* output 4 */ + CARRY_FORWARD; + SQRADD2(a[0], a[4]); SQRADD2(a[1], a[3]); SQRADD(a[2], a[2]); + COMBA_STORE(b[4]); + + /* output 5 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[5]); SQRADDAC(a[1], a[4]); SQRADDAC(a[2], a[3]); SQRADDDB; + COMBA_STORE(b[5]); + + /* output 6 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[6]); SQRADDAC(a[1], a[5]); SQRADDAC(a[2], a[4]); SQRADDDB; SQRADD(a[3], a[3]); + COMBA_STORE(b[6]); + + /* output 7 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[7]); SQRADDAC(a[1], a[6]); SQRADDAC(a[2], a[5]); SQRADDAC(a[3], a[4]); SQRADDDB; + COMBA_STORE(b[7]); + + /* output 8 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[8]); SQRADDAC(a[1], a[7]); SQRADDAC(a[2], a[6]); SQRADDAC(a[3], a[5]); SQRADDDB; SQRADD(a[4], a[4]); + COMBA_STORE(b[8]); + + /* output 9 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[9]); SQRADDAC(a[1], a[8]); SQRADDAC(a[2], a[7]); SQRADDAC(a[3], a[6]); SQRADDAC(a[4], a[5]); SQRADDDB; + COMBA_STORE(b[9]); + + /* output 10 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[10]); SQRADDAC(a[1], a[9]); SQRADDAC(a[2], a[8]); SQRADDAC(a[3], a[7]); SQRADDAC(a[4], a[6]); SQRADDDB; SQRADD(a[5], a[5]); + COMBA_STORE(b[10]); + + /* output 11 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[11]); SQRADDAC(a[1], a[10]); SQRADDAC(a[2], a[9]); SQRADDAC(a[3], a[8]); SQRADDAC(a[4], a[7]); SQRADDAC(a[5], a[6]); SQRADDDB; + COMBA_STORE(b[11]); + + /* output 12 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[12]); SQRADDAC(a[1], a[11]); SQRADDAC(a[2], a[10]); SQRADDAC(a[3], a[9]); SQRADDAC(a[4], a[8]); SQRADDAC(a[5], a[7]); SQRADDDB; SQRADD(a[6], a[6]); + COMBA_STORE(b[12]); + + /* output 13 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[13]); SQRADDAC(a[1], a[12]); SQRADDAC(a[2], a[11]); SQRADDAC(a[3], a[10]); SQRADDAC(a[4], a[9]); SQRADDAC(a[5], a[8]); SQRADDAC(a[6], a[7]); SQRADDDB; + COMBA_STORE(b[13]); + + /* output 14 */ + CARRY_FORWARD; + SQRADDSC(a[1], a[13]); SQRADDAC(a[2], a[12]); SQRADDAC(a[3], a[11]); SQRADDAC(a[4], a[10]); SQRADDAC(a[5], a[9]); SQRADDAC(a[6], a[8]); SQRADDDB; SQRADD(a[7], a[7]); + COMBA_STORE(b[14]); + + /* output 15 */ + CARRY_FORWARD; + SQRADDSC(a[2], a[13]); SQRADDAC(a[3], a[12]); SQRADDAC(a[4], a[11]); SQRADDAC(a[5], a[10]); SQRADDAC(a[6], a[9]); SQRADDAC(a[7], a[8]); SQRADDDB; + COMBA_STORE(b[15]); + + /* output 16 */ + CARRY_FORWARD; + SQRADDSC(a[3], a[13]); SQRADDAC(a[4], a[12]); SQRADDAC(a[5], a[11]); SQRADDAC(a[6], a[10]); SQRADDAC(a[7], a[9]); SQRADDDB; SQRADD(a[8], a[8]); + COMBA_STORE(b[16]); + + /* output 17 */ + CARRY_FORWARD; + SQRADDSC(a[4], a[13]); SQRADDAC(a[5], a[12]); SQRADDAC(a[6], a[11]); SQRADDAC(a[7], a[10]); SQRADDAC(a[8], a[9]); SQRADDDB; + COMBA_STORE(b[17]); + + /* output 18 */ + CARRY_FORWARD; + SQRADDSC(a[5], a[13]); SQRADDAC(a[6], a[12]); SQRADDAC(a[7], a[11]); SQRADDAC(a[8], a[10]); SQRADDDB; SQRADD(a[9], a[9]); + COMBA_STORE(b[18]); + + /* output 19 */ + CARRY_FORWARD; + SQRADDSC(a[6], a[13]); SQRADDAC(a[7], a[12]); SQRADDAC(a[8], a[11]); SQRADDAC(a[9], a[10]); SQRADDDB; + COMBA_STORE(b[19]); + + /* output 20 */ + CARRY_FORWARD; + SQRADDSC(a[7], a[13]); SQRADDAC(a[8], a[12]); SQRADDAC(a[9], a[11]); SQRADDDB; SQRADD(a[10], a[10]); + COMBA_STORE(b[20]); + + /* output 21 */ + CARRY_FORWARD; + SQRADDSC(a[8], a[13]); SQRADDAC(a[9], a[12]); SQRADDAC(a[10], a[11]); SQRADDDB; + COMBA_STORE(b[21]); + + /* output 22 */ + CARRY_FORWARD; + SQRADD2(a[9], a[13]); SQRADD2(a[10], a[12]); SQRADD(a[11], a[11]); + COMBA_STORE(b[22]); + + /* output 23 */ + CARRY_FORWARD; + SQRADD2(a[10], a[13]); SQRADD2(a[11], a[12]); + COMBA_STORE(b[23]); + + /* output 24 */ + CARRY_FORWARD; + SQRADD2(a[11], a[13]); SQRADD(a[12], a[12]); + COMBA_STORE(b[24]); + + /* output 25 */ + CARRY_FORWARD; + SQRADD2(a[12], a[13]); + COMBA_STORE(b[25]); + + /* output 26 */ + CARRY_FORWARD; + SQRADD(a[13], a[13]); + COMBA_STORE(b[26]); + COMBA_STORE2(b[27]); + COMBA_FINI; + + B->used = 28; + B->sign = FP_ZPOS; + memcpy(B->dp, b, 28 * sizeof(fp_digit)); + fp_clamp(B); + break; + + case 15: + a = A->dp; + COMBA_START; + + /* clear carries */ + CLEAR_CARRY; + + /* output 0 */ + SQRADD(a[0],a[0]); + COMBA_STORE(b[0]); + + /* output 1 */ + CARRY_FORWARD; + SQRADD2(a[0], a[1]); + COMBA_STORE(b[1]); + + /* output 2 */ + CARRY_FORWARD; + SQRADD2(a[0], a[2]); SQRADD(a[1], a[1]); + COMBA_STORE(b[2]); + + /* output 3 */ + CARRY_FORWARD; + SQRADD2(a[0], a[3]); SQRADD2(a[1], a[2]); + COMBA_STORE(b[3]); + + /* output 4 */ + CARRY_FORWARD; + SQRADD2(a[0], a[4]); SQRADD2(a[1], a[3]); SQRADD(a[2], a[2]); + COMBA_STORE(b[4]); + + /* output 5 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[5]); SQRADDAC(a[1], a[4]); SQRADDAC(a[2], a[3]); SQRADDDB; + COMBA_STORE(b[5]); + + /* output 6 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[6]); SQRADDAC(a[1], a[5]); SQRADDAC(a[2], a[4]); SQRADDDB; SQRADD(a[3], a[3]); + COMBA_STORE(b[6]); + + /* output 7 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[7]); SQRADDAC(a[1], a[6]); SQRADDAC(a[2], a[5]); SQRADDAC(a[3], a[4]); SQRADDDB; + COMBA_STORE(b[7]); + + /* output 8 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[8]); SQRADDAC(a[1], a[7]); SQRADDAC(a[2], a[6]); SQRADDAC(a[3], a[5]); SQRADDDB; SQRADD(a[4], a[4]); + COMBA_STORE(b[8]); + + /* output 9 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[9]); SQRADDAC(a[1], a[8]); SQRADDAC(a[2], a[7]); SQRADDAC(a[3], a[6]); SQRADDAC(a[4], a[5]); SQRADDDB; + COMBA_STORE(b[9]); + + /* output 10 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[10]); SQRADDAC(a[1], a[9]); SQRADDAC(a[2], a[8]); SQRADDAC(a[3], a[7]); SQRADDAC(a[4], a[6]); SQRADDDB; SQRADD(a[5], a[5]); + COMBA_STORE(b[10]); + + /* output 11 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[11]); SQRADDAC(a[1], a[10]); SQRADDAC(a[2], a[9]); SQRADDAC(a[3], a[8]); SQRADDAC(a[4], a[7]); SQRADDAC(a[5], a[6]); SQRADDDB; + COMBA_STORE(b[11]); + + /* output 12 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[12]); SQRADDAC(a[1], a[11]); SQRADDAC(a[2], a[10]); SQRADDAC(a[3], a[9]); SQRADDAC(a[4], a[8]); SQRADDAC(a[5], a[7]); SQRADDDB; SQRADD(a[6], a[6]); + COMBA_STORE(b[12]); + + /* output 13 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[13]); SQRADDAC(a[1], a[12]); SQRADDAC(a[2], a[11]); SQRADDAC(a[3], a[10]); SQRADDAC(a[4], a[9]); SQRADDAC(a[5], a[8]); SQRADDAC(a[6], a[7]); SQRADDDB; + COMBA_STORE(b[13]); + + /* output 14 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[14]); SQRADDAC(a[1], a[13]); SQRADDAC(a[2], a[12]); SQRADDAC(a[3], a[11]); SQRADDAC(a[4], a[10]); SQRADDAC(a[5], a[9]); SQRADDAC(a[6], a[8]); SQRADDDB; SQRADD(a[7], a[7]); + COMBA_STORE(b[14]); + + /* output 15 */ + CARRY_FORWARD; + SQRADDSC(a[1], a[14]); SQRADDAC(a[2], a[13]); SQRADDAC(a[3], a[12]); SQRADDAC(a[4], a[11]); SQRADDAC(a[5], a[10]); SQRADDAC(a[6], a[9]); SQRADDAC(a[7], a[8]); SQRADDDB; + COMBA_STORE(b[15]); + + /* output 16 */ + CARRY_FORWARD; + SQRADDSC(a[2], a[14]); SQRADDAC(a[3], a[13]); SQRADDAC(a[4], a[12]); SQRADDAC(a[5], a[11]); SQRADDAC(a[6], a[10]); SQRADDAC(a[7], a[9]); SQRADDDB; SQRADD(a[8], a[8]); + COMBA_STORE(b[16]); + + /* output 17 */ + CARRY_FORWARD; + SQRADDSC(a[3], a[14]); SQRADDAC(a[4], a[13]); SQRADDAC(a[5], a[12]); SQRADDAC(a[6], a[11]); SQRADDAC(a[7], a[10]); SQRADDAC(a[8], a[9]); SQRADDDB; + COMBA_STORE(b[17]); + + /* output 18 */ + CARRY_FORWARD; + SQRADDSC(a[4], a[14]); SQRADDAC(a[5], a[13]); SQRADDAC(a[6], a[12]); SQRADDAC(a[7], a[11]); SQRADDAC(a[8], a[10]); SQRADDDB; SQRADD(a[9], a[9]); + COMBA_STORE(b[18]); + + /* output 19 */ + CARRY_FORWARD; + SQRADDSC(a[5], a[14]); SQRADDAC(a[6], a[13]); SQRADDAC(a[7], a[12]); SQRADDAC(a[8], a[11]); SQRADDAC(a[9], a[10]); SQRADDDB; + COMBA_STORE(b[19]); + + /* output 20 */ + CARRY_FORWARD; + SQRADDSC(a[6], a[14]); SQRADDAC(a[7], a[13]); SQRADDAC(a[8], a[12]); SQRADDAC(a[9], a[11]); SQRADDDB; SQRADD(a[10], a[10]); + COMBA_STORE(b[20]); + + /* output 21 */ + CARRY_FORWARD; + SQRADDSC(a[7], a[14]); SQRADDAC(a[8], a[13]); SQRADDAC(a[9], a[12]); SQRADDAC(a[10], a[11]); SQRADDDB; + COMBA_STORE(b[21]); + + /* output 22 */ + CARRY_FORWARD; + SQRADDSC(a[8], a[14]); SQRADDAC(a[9], a[13]); SQRADDAC(a[10], a[12]); SQRADDDB; SQRADD(a[11], a[11]); + COMBA_STORE(b[22]); + + /* output 23 */ + CARRY_FORWARD; + SQRADDSC(a[9], a[14]); SQRADDAC(a[10], a[13]); SQRADDAC(a[11], a[12]); SQRADDDB; + COMBA_STORE(b[23]); + + /* output 24 */ + CARRY_FORWARD; + SQRADD2(a[10], a[14]); SQRADD2(a[11], a[13]); SQRADD(a[12], a[12]); + COMBA_STORE(b[24]); + + /* output 25 */ + CARRY_FORWARD; + SQRADD2(a[11], a[14]); SQRADD2(a[12], a[13]); + COMBA_STORE(b[25]); + + /* output 26 */ + CARRY_FORWARD; + SQRADD2(a[12], a[14]); SQRADD(a[13], a[13]); + COMBA_STORE(b[26]); + + /* output 27 */ + CARRY_FORWARD; + SQRADD2(a[13], a[14]); + COMBA_STORE(b[27]); + + /* output 28 */ + CARRY_FORWARD; + SQRADD(a[14], a[14]); + COMBA_STORE(b[28]); + COMBA_STORE2(b[29]); + COMBA_FINI; + + B->used = 30; + B->sign = FP_ZPOS; + memcpy(B->dp, b, 30 * sizeof(fp_digit)); + fp_clamp(B); + break; + + case 16: + a = A->dp; + COMBA_START; + + /* clear carries */ + CLEAR_CARRY; + + /* output 0 */ + SQRADD(a[0],a[0]); + COMBA_STORE(b[0]); + + /* output 1 */ + CARRY_FORWARD; + SQRADD2(a[0], a[1]); + COMBA_STORE(b[1]); + + /* output 2 */ + CARRY_FORWARD; + SQRADD2(a[0], a[2]); SQRADD(a[1], a[1]); + COMBA_STORE(b[2]); + + /* output 3 */ + CARRY_FORWARD; + SQRADD2(a[0], a[3]); SQRADD2(a[1], a[2]); + COMBA_STORE(b[3]); + + /* output 4 */ + CARRY_FORWARD; + SQRADD2(a[0], a[4]); SQRADD2(a[1], a[3]); SQRADD(a[2], a[2]); + COMBA_STORE(b[4]); + + /* output 5 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[5]); SQRADDAC(a[1], a[4]); SQRADDAC(a[2], a[3]); SQRADDDB; + COMBA_STORE(b[5]); + + /* output 6 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[6]); SQRADDAC(a[1], a[5]); SQRADDAC(a[2], a[4]); SQRADDDB; SQRADD(a[3], a[3]); + COMBA_STORE(b[6]); + + /* output 7 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[7]); SQRADDAC(a[1], a[6]); SQRADDAC(a[2], a[5]); SQRADDAC(a[3], a[4]); SQRADDDB; + COMBA_STORE(b[7]); + + /* output 8 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[8]); SQRADDAC(a[1], a[7]); SQRADDAC(a[2], a[6]); SQRADDAC(a[3], a[5]); SQRADDDB; SQRADD(a[4], a[4]); + COMBA_STORE(b[8]); + + /* output 9 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[9]); SQRADDAC(a[1], a[8]); SQRADDAC(a[2], a[7]); SQRADDAC(a[3], a[6]); SQRADDAC(a[4], a[5]); SQRADDDB; + COMBA_STORE(b[9]); + + /* output 10 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[10]); SQRADDAC(a[1], a[9]); SQRADDAC(a[2], a[8]); SQRADDAC(a[3], a[7]); SQRADDAC(a[4], a[6]); SQRADDDB; SQRADD(a[5], a[5]); + COMBA_STORE(b[10]); + + /* output 11 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[11]); SQRADDAC(a[1], a[10]); SQRADDAC(a[2], a[9]); SQRADDAC(a[3], a[8]); SQRADDAC(a[4], a[7]); SQRADDAC(a[5], a[6]); SQRADDDB; + COMBA_STORE(b[11]); + + /* output 12 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[12]); SQRADDAC(a[1], a[11]); SQRADDAC(a[2], a[10]); SQRADDAC(a[3], a[9]); SQRADDAC(a[4], a[8]); SQRADDAC(a[5], a[7]); SQRADDDB; SQRADD(a[6], a[6]); + COMBA_STORE(b[12]); + + /* output 13 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[13]); SQRADDAC(a[1], a[12]); SQRADDAC(a[2], a[11]); SQRADDAC(a[3], a[10]); SQRADDAC(a[4], a[9]); SQRADDAC(a[5], a[8]); SQRADDAC(a[6], a[7]); SQRADDDB; + COMBA_STORE(b[13]); + + /* output 14 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[14]); SQRADDAC(a[1], a[13]); SQRADDAC(a[2], a[12]); SQRADDAC(a[3], a[11]); SQRADDAC(a[4], a[10]); SQRADDAC(a[5], a[9]); SQRADDAC(a[6], a[8]); SQRADDDB; SQRADD(a[7], a[7]); + COMBA_STORE(b[14]); + + /* output 15 */ + CARRY_FORWARD; + SQRADDSC(a[0], a[15]); SQRADDAC(a[1], a[14]); SQRADDAC(a[2], a[13]); SQRADDAC(a[3], a[12]); SQRADDAC(a[4], a[11]); SQRADDAC(a[5], a[10]); SQRADDAC(a[6], a[9]); SQRADDAC(a[7], a[8]); SQRADDDB; + COMBA_STORE(b[15]); + + /* output 16 */ + CARRY_FORWARD; + SQRADDSC(a[1], a[15]); SQRADDAC(a[2], a[14]); SQRADDAC(a[3], a[13]); SQRADDAC(a[4], a[12]); SQRADDAC(a[5], a[11]); SQRADDAC(a[6], a[10]); SQRADDAC(a[7], a[9]); SQRADDDB; SQRADD(a[8], a[8]); + COMBA_STORE(b[16]); + + /* output 17 */ + CARRY_FORWARD; + SQRADDSC(a[2], a[15]); SQRADDAC(a[3], a[14]); SQRADDAC(a[4], a[13]); SQRADDAC(a[5], a[12]); SQRADDAC(a[6], a[11]); SQRADDAC(a[7], a[10]); SQRADDAC(a[8], a[9]); SQRADDDB; + COMBA_STORE(b[17]); + + /* output 18 */ + CARRY_FORWARD; + SQRADDSC(a[3], a[15]); SQRADDAC(a[4], a[14]); SQRADDAC(a[5], a[13]); SQRADDAC(a[6], a[12]); SQRADDAC(a[7], a[11]); SQRADDAC(a[8], a[10]); SQRADDDB; SQRADD(a[9], a[9]); + COMBA_STORE(b[18]); + + /* output 19 */ + CARRY_FORWARD; + SQRADDSC(a[4], a[15]); SQRADDAC(a[5], a[14]); SQRADDAC(a[6], a[13]); SQRADDAC(a[7], a[12]); SQRADDAC(a[8], a[11]); SQRADDAC(a[9], a[10]); SQRADDDB; + COMBA_STORE(b[19]); + + /* output 20 */ + CARRY_FORWARD; + SQRADDSC(a[5], a[15]); SQRADDAC(a[6], a[14]); SQRADDAC(a[7], a[13]); SQRADDAC(a[8], a[12]); SQRADDAC(a[9], a[11]); SQRADDDB; SQRADD(a[10], a[10]); + COMBA_STORE(b[20]); + + /* output 21 */ + CARRY_FORWARD; + SQRADDSC(a[6], a[15]); SQRADDAC(a[7], a[14]); SQRADDAC(a[8], a[13]); SQRADDAC(a[9], a[12]); SQRADDAC(a[10], a[11]); SQRADDDB; + COMBA_STORE(b[21]); + + /* output 22 */ + CARRY_FORWARD; + SQRADDSC(a[7], a[15]); SQRADDAC(a[8], a[14]); SQRADDAC(a[9], a[13]); SQRADDAC(a[10], a[12]); SQRADDDB; SQRADD(a[11], a[11]); + COMBA_STORE(b[22]); + + /* output 23 */ + CARRY_FORWARD; + SQRADDSC(a[8], a[15]); SQRADDAC(a[9], a[14]); SQRADDAC(a[10], a[13]); SQRADDAC(a[11], a[12]); SQRADDDB; + COMBA_STORE(b[23]); + + /* output 24 */ + CARRY_FORWARD; + SQRADDSC(a[9], a[15]); SQRADDAC(a[10], a[14]); SQRADDAC(a[11], a[13]); SQRADDDB; SQRADD(a[12], a[12]); + COMBA_STORE(b[24]); + + /* output 25 */ + CARRY_FORWARD; + SQRADDSC(a[10], a[15]); SQRADDAC(a[11], a[14]); SQRADDAC(a[12], a[13]); SQRADDDB; + COMBA_STORE(b[25]); + + /* output 26 */ + CARRY_FORWARD; + SQRADD2(a[11], a[15]); SQRADD2(a[12], a[14]); SQRADD(a[13], a[13]); + COMBA_STORE(b[26]); + + /* output 27 */ + CARRY_FORWARD; + SQRADD2(a[12], a[15]); SQRADD2(a[13], a[14]); + COMBA_STORE(b[27]); + + /* output 28 */ + CARRY_FORWARD; + SQRADD2(a[13], a[15]); SQRADD(a[14], a[14]); + COMBA_STORE(b[28]); + + /* output 29 */ + CARRY_FORWARD; + SQRADD2(a[14], a[15]); + COMBA_STORE(b[29]); + + /* output 30 */ + CARRY_FORWARD; + SQRADD(a[15], a[15]); + COMBA_STORE(b[30]); + COMBA_STORE2(b[31]); + COMBA_FINI; + + B->used = 32; + B->sign = FP_ZPOS; + memcpy(B->dp, b, 32 * sizeof(fp_digit)); + fp_clamp(B); + break; + + default: + break; +} +} + +#endif /* TFM_SMALL_SET */ diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/hc128.c b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/hc128.c new file mode 100644 index 000000000..20081fc54 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/hc128.c @@ -0,0 +1,333 @@ +/* hc128.c + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +#ifdef HAVE_CONFIG_H + #include +#endif + +#ifdef HAVE_HC128 + +#include +#ifdef NO_INLINE + #include +#else + #include +#endif + + +#ifdef BIG_ENDIAN_ORDER + #define LITTLE32(x) ByteReverseWord32(x) +#else + #define LITTLE32(x) (x) +#endif + + +/*h1 function*/ +#define h1(ctx, x, y) { \ + byte a,c; \ + a = (byte) (x); \ + c = (byte) ((x) >> 16); \ + y = (ctx->T[512+a])+(ctx->T[512+256+c]); \ +} + +/*h2 function*/ +#define h2(ctx, x, y) { \ + byte a,c; \ + a = (byte) (x); \ + c = (byte) ((x) >> 16); \ + y = (ctx->T[a])+(ctx->T[256+c]); \ +} + +/*one step of HC-128, update P and generate 32 bits keystream*/ +#define step_P(ctx,u,v,a,b,c,d,n){ \ + word32 tem0,tem1,tem2,tem3; \ + h1((ctx),(ctx->X[(d)]),tem3); \ + tem0 = rotrFixed((ctx->T[(v)]),23); \ + tem1 = rotrFixed((ctx->X[(c)]),10); \ + tem2 = rotrFixed((ctx->X[(b)]),8); \ + (ctx->T[(u)]) += tem2+(tem0 ^ tem1); \ + (ctx->X[(a)]) = (ctx->T[(u)]); \ + (n) = tem3 ^ (ctx->T[(u)]) ; \ +} + +/*one step of HC-128, update Q and generate 32 bits keystream*/ +#define step_Q(ctx,u,v,a,b,c,d,n){ \ + word32 tem0,tem1,tem2,tem3; \ + h2((ctx),(ctx->Y[(d)]),tem3); \ + tem0 = rotrFixed((ctx->T[(v)]),(32-23)); \ + tem1 = rotrFixed((ctx->Y[(c)]),(32-10)); \ + tem2 = rotrFixed((ctx->Y[(b)]),(32-8)); \ + (ctx->T[(u)]) += tem2 + (tem0 ^ tem1); \ + (ctx->Y[(a)]) = (ctx->T[(u)]); \ + (n) = tem3 ^ (ctx->T[(u)]) ; \ +} + +/*16 steps of HC-128, generate 512 bits keystream*/ +static void generate_keystream(HC128* ctx, word32* keystream) +{ + word32 cc,dd; + cc = ctx->counter1024 & 0x1ff; + dd = (cc+16)&0x1ff; + + if (ctx->counter1024 < 512) + { + ctx->counter1024 = (ctx->counter1024 + 16) & 0x3ff; + step_P(ctx, cc+0, cc+1, 0, 6, 13,4, keystream[0]); + step_P(ctx, cc+1, cc+2, 1, 7, 14,5, keystream[1]); + step_P(ctx, cc+2, cc+3, 2, 8, 15,6, keystream[2]); + step_P(ctx, cc+3, cc+4, 3, 9, 0, 7, keystream[3]); + step_P(ctx, cc+4, cc+5, 4, 10,1, 8, keystream[4]); + step_P(ctx, cc+5, cc+6, 5, 11,2, 9, keystream[5]); + step_P(ctx, cc+6, cc+7, 6, 12,3, 10,keystream[6]); + step_P(ctx, cc+7, cc+8, 7, 13,4, 11,keystream[7]); + step_P(ctx, cc+8, cc+9, 8, 14,5, 12,keystream[8]); + step_P(ctx, cc+9, cc+10,9, 15,6, 13,keystream[9]); + step_P(ctx, cc+10,cc+11,10,0, 7, 14,keystream[10]); + step_P(ctx, cc+11,cc+12,11,1, 8, 15,keystream[11]); + step_P(ctx, cc+12,cc+13,12,2, 9, 0, keystream[12]); + step_P(ctx, cc+13,cc+14,13,3, 10,1, keystream[13]); + step_P(ctx, cc+14,cc+15,14,4, 11,2, keystream[14]); + step_P(ctx, cc+15,dd+0, 15,5, 12,3, keystream[15]); + } + else + { + ctx->counter1024 = (ctx->counter1024 + 16) & 0x3ff; + step_Q(ctx, 512+cc+0, 512+cc+1, 0, 6, 13,4, keystream[0]); + step_Q(ctx, 512+cc+1, 512+cc+2, 1, 7, 14,5, keystream[1]); + step_Q(ctx, 512+cc+2, 512+cc+3, 2, 8, 15,6, keystream[2]); + step_Q(ctx, 512+cc+3, 512+cc+4, 3, 9, 0, 7, keystream[3]); + step_Q(ctx, 512+cc+4, 512+cc+5, 4, 10,1, 8, keystream[4]); + step_Q(ctx, 512+cc+5, 512+cc+6, 5, 11,2, 9, keystream[5]); + step_Q(ctx, 512+cc+6, 512+cc+7, 6, 12,3, 10,keystream[6]); + step_Q(ctx, 512+cc+7, 512+cc+8, 7, 13,4, 11,keystream[7]); + step_Q(ctx, 512+cc+8, 512+cc+9, 8, 14,5, 12,keystream[8]); + step_Q(ctx, 512+cc+9, 512+cc+10,9, 15,6, 13,keystream[9]); + step_Q(ctx, 512+cc+10,512+cc+11,10,0, 7, 14,keystream[10]); + step_Q(ctx, 512+cc+11,512+cc+12,11,1, 8, 15,keystream[11]); + step_Q(ctx, 512+cc+12,512+cc+13,12,2, 9, 0, keystream[12]); + step_Q(ctx, 512+cc+13,512+cc+14,13,3, 10,1, keystream[13]); + step_Q(ctx, 512+cc+14,512+cc+15,14,4, 11,2, keystream[14]); + step_Q(ctx, 512+cc+15,512+dd+0, 15,5, 12,3, keystream[15]); + } +} + + +/* The following defines the initialization functions */ +#define f1(x) (rotrFixed((x),7) ^ rotrFixed((x),18) ^ ((x) >> 3)) +#define f2(x) (rotrFixed((x),17) ^ rotrFixed((x),19) ^ ((x) >> 10)) + +/*update table P*/ +#define update_P(ctx,u,v,a,b,c,d){ \ + word32 tem0,tem1,tem2,tem3; \ + tem0 = rotrFixed((ctx->T[(v)]),23); \ + tem1 = rotrFixed((ctx->X[(c)]),10); \ + tem2 = rotrFixed((ctx->X[(b)]),8); \ + h1((ctx),(ctx->X[(d)]),tem3); \ + (ctx->T[(u)]) = ((ctx->T[(u)]) + tem2+(tem0^tem1)) ^ tem3; \ + (ctx->X[(a)]) = (ctx->T[(u)]); \ +} + +/*update table Q*/ +#define update_Q(ctx,u,v,a,b,c,d){ \ + word32 tem0,tem1,tem2,tem3; \ + tem0 = rotrFixed((ctx->T[(v)]),(32-23)); \ + tem1 = rotrFixed((ctx->Y[(c)]),(32-10)); \ + tem2 = rotrFixed((ctx->Y[(b)]),(32-8)); \ + h2((ctx),(ctx->Y[(d)]),tem3); \ + (ctx->T[(u)]) = ((ctx->T[(u)]) + tem2+(tem0^tem1)) ^ tem3; \ + (ctx->Y[(a)]) = (ctx->T[(u)]); \ +} + +/*16 steps of HC-128, without generating keystream, */ +/*but use the outputs to update P and Q*/ +static void setup_update(HC128* ctx) /*each time 16 steps*/ +{ + word32 cc,dd; + cc = ctx->counter1024 & 0x1ff; + dd = (cc+16)&0x1ff; + + if (ctx->counter1024 < 512) + { + ctx->counter1024 = (ctx->counter1024 + 16) & 0x3ff; + update_P(ctx, cc+0, cc+1, 0, 6, 13, 4); + update_P(ctx, cc+1, cc+2, 1, 7, 14, 5); + update_P(ctx, cc+2, cc+3, 2, 8, 15, 6); + update_P(ctx, cc+3, cc+4, 3, 9, 0, 7); + update_P(ctx, cc+4, cc+5, 4, 10,1, 8); + update_P(ctx, cc+5, cc+6, 5, 11,2, 9); + update_P(ctx, cc+6, cc+7, 6, 12,3, 10); + update_P(ctx, cc+7, cc+8, 7, 13,4, 11); + update_P(ctx, cc+8, cc+9, 8, 14,5, 12); + update_P(ctx, cc+9, cc+10,9, 15,6, 13); + update_P(ctx, cc+10,cc+11,10,0, 7, 14); + update_P(ctx, cc+11,cc+12,11,1, 8, 15); + update_P(ctx, cc+12,cc+13,12,2, 9, 0); + update_P(ctx, cc+13,cc+14,13,3, 10, 1); + update_P(ctx, cc+14,cc+15,14,4, 11, 2); + update_P(ctx, cc+15,dd+0, 15,5, 12, 3); + } + else + { + ctx->counter1024 = (ctx->counter1024 + 16) & 0x3ff; + update_Q(ctx, 512+cc+0, 512+cc+1, 0, 6, 13, 4); + update_Q(ctx, 512+cc+1, 512+cc+2, 1, 7, 14, 5); + update_Q(ctx, 512+cc+2, 512+cc+3, 2, 8, 15, 6); + update_Q(ctx, 512+cc+3, 512+cc+4, 3, 9, 0, 7); + update_Q(ctx, 512+cc+4, 512+cc+5, 4, 10,1, 8); + update_Q(ctx, 512+cc+5, 512+cc+6, 5, 11,2, 9); + update_Q(ctx, 512+cc+6, 512+cc+7, 6, 12,3, 10); + update_Q(ctx, 512+cc+7, 512+cc+8, 7, 13,4, 11); + update_Q(ctx, 512+cc+8, 512+cc+9, 8, 14,5, 12); + update_Q(ctx, 512+cc+9, 512+cc+10,9, 15,6, 13); + update_Q(ctx, 512+cc+10,512+cc+11,10,0, 7, 14); + update_Q(ctx, 512+cc+11,512+cc+12,11,1, 8, 15); + update_Q(ctx, 512+cc+12,512+cc+13,12,2, 9, 0); + update_Q(ctx, 512+cc+13,512+cc+14,13,3, 10, 1); + update_Q(ctx, 512+cc+14,512+cc+15,14,4, 11, 2); + update_Q(ctx, 512+cc+15,512+dd+0, 15,5, 12, 3); + } +} + + +/* for the 128-bit key: key[0]...key[15] +* key[0] is the least significant byte of ctx->key[0] (K_0); +* key[3] is the most significant byte of ctx->key[0] (K_0); +* ... +* key[12] is the least significant byte of ctx->key[3] (K_3) +* key[15] is the most significant byte of ctx->key[3] (K_3) +* +* for the 128-bit iv: iv[0]...iv[15] +* iv[0] is the least significant byte of ctx->iv[0] (IV_0); +* iv[3] is the most significant byte of ctx->iv[0] (IV_0); +* ... +* iv[12] is the least significant byte of ctx->iv[3] (IV_3) +* iv[15] is the most significant byte of ctx->iv[3] (IV_3) +*/ + + + +static void Hc128_SetIV(HC128* ctx, const byte* iv) +{ + word32 i; + + for (i = 0; i < (128 >> 5); i++) + ctx->iv[i] = LITTLE32(((word32*)iv)[i]); + + for (; i < 8; i++) ctx->iv[i] = ctx->iv[i-4]; + + /* expand the key and IV into the table T */ + /* (expand the key and IV into the table P and Q) */ + + for (i = 0; i < 8; i++) ctx->T[i] = ctx->key[i]; + for (i = 8; i < 16; i++) ctx->T[i] = ctx->iv[i-8]; + + for (i = 16; i < (256+16); i++) + ctx->T[i] = f2(ctx->T[i-2]) + ctx->T[i-7] + f1(ctx->T[i-15]) + + ctx->T[i-16]+i; + + for (i = 0; i < 16; i++) ctx->T[i] = ctx->T[256+i]; + + for (i = 16; i < 1024; i++) + ctx->T[i] = f2(ctx->T[i-2]) + ctx->T[i-7] + f1(ctx->T[i-15]) + + ctx->T[i-16]+256+i; + + /* initialize counter1024, X and Y */ + ctx->counter1024 = 0; + for (i = 0; i < 16; i++) ctx->X[i] = ctx->T[512-16+i]; + for (i = 0; i < 16; i++) ctx->Y[i] = ctx->T[512+512-16+i]; + + /* run the cipher 1024 steps before generating the output */ + for (i = 0; i < 64; i++) setup_update(ctx); +} + + +void Hc128_SetKey(HC128* ctx, const byte* key, const byte* iv) +{ + word32 i; + + /* Key size in bits 128 */ + for (i = 0; i < (128 >> 5); i++) + ctx->key[i] = LITTLE32(((word32*)key)[i]); + + for ( ; i < 8 ; i++) ctx->key[i] = ctx->key[i-4]; + + Hc128_SetIV(ctx, iv); +} + + +/* The following defines the encryption of data stream */ +void Hc128_Process(HC128* ctx, byte* output, const byte* input, word32 msglen) +{ + word32 i, keystream[16]; + + for ( ; msglen >= 64; msglen -= 64, input += 64, output += 64) + { + generate_keystream(ctx, keystream); + + /* unroll loop */ + ((word32*)output)[0] = ((word32*)input)[0] ^ LITTLE32(keystream[0]); + ((word32*)output)[1] = ((word32*)input)[1] ^ LITTLE32(keystream[1]); + ((word32*)output)[2] = ((word32*)input)[2] ^ LITTLE32(keystream[2]); + ((word32*)output)[3] = ((word32*)input)[3] ^ LITTLE32(keystream[3]); + ((word32*)output)[4] = ((word32*)input)[4] ^ LITTLE32(keystream[4]); + ((word32*)output)[5] = ((word32*)input)[5] ^ LITTLE32(keystream[5]); + ((word32*)output)[6] = ((word32*)input)[6] ^ LITTLE32(keystream[6]); + ((word32*)output)[7] = ((word32*)input)[7] ^ LITTLE32(keystream[7]); + ((word32*)output)[8] = ((word32*)input)[8] ^ LITTLE32(keystream[8]); + ((word32*)output)[9] = ((word32*)input)[9] ^ LITTLE32(keystream[9]); + ((word32*)output)[10] = ((word32*)input)[10] ^ LITTLE32(keystream[10]); + ((word32*)output)[11] = ((word32*)input)[11] ^ LITTLE32(keystream[11]); + ((word32*)output)[12] = ((word32*)input)[12] ^ LITTLE32(keystream[12]); + ((word32*)output)[13] = ((word32*)input)[13] ^ LITTLE32(keystream[13]); + ((word32*)output)[14] = ((word32*)input)[14] ^ LITTLE32(keystream[14]); + ((word32*)output)[15] = ((word32*)input)[15] ^ LITTLE32(keystream[15]); + } + + if (msglen > 0) + { + generate_keystream(ctx, keystream); + +#ifdef BIG_ENDIAN_ORDER + { + word32 wordsLeft = msglen / sizeof(word32); + if (msglen % sizeof(word32)) wordsLeft++; + + ByteReverseWords(keystream, keystream, wordsLeft * sizeof(word32)); + } +#endif + + for (i = 0; i < msglen; i++) + output[i] = input[i] ^ ((byte*)keystream)[i]; + } + +} + + +#else /* HAVE_HC128 */ + + +#ifdef _MSC_VER + /* 4206 warning for blank file */ + #pragma warning(disable: 4206) +#endif + + +#endif /* HAVE_HC128 */ diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/hmac.c b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/hmac.c new file mode 100644 index 000000000..1f777ab5b --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/hmac.c @@ -0,0 +1,161 @@ +/* hmac.c + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +#ifdef HAVE_CONFIG_H + #include +#endif + +#ifndef NO_HMAC + +#include +#include + + +static int InitHmac(Hmac* hmac, int type) +{ + hmac->innerHashKeyed = 0; + hmac->macType = (byte)type; + + if (!(type == MD5 || type == SHA || type == SHA256)) + return BAD_FUNC_ARG; + + if (type == MD5) + InitMd5(&hmac->hash.md5); + else if (type == SHA) + InitSha(&hmac->hash.sha); +#ifndef NO_SHA256 + else if (type == SHA256) + InitSha256(&hmac->hash.sha256); +#endif + + return 0; +} + + +void HmacSetKey(Hmac* hmac, int type, const byte* key, word32 length) +{ + byte* ip = (byte*) hmac->ipad; + byte* op = (byte*) hmac->opad; + word32 i; + + InitHmac(hmac, type); + + if (length <= HMAC_BLOCK_SIZE) + XMEMCPY(ip, key, length); + else { + if (hmac->macType == MD5) { + Md5Update(&hmac->hash.md5, key, length); + Md5Final(&hmac->hash.md5, ip); + length = MD5_DIGEST_SIZE; + } + else if (hmac->macType == SHA) { + ShaUpdate(&hmac->hash.sha, key, length); + ShaFinal(&hmac->hash.sha, ip); + length = SHA_DIGEST_SIZE; + } +#ifndef NO_SHA256 + else if (hmac->macType == SHA256) { + Sha256Update(&hmac->hash.sha256, key, length); + Sha256Final(&hmac->hash.sha256, ip); + length = SHA256_DIGEST_SIZE; + } +#endif + } + XMEMSET(ip + length, 0, HMAC_BLOCK_SIZE - length); + + for(i = 0; i < HMAC_BLOCK_SIZE; i++) { + op[i] = ip[i] ^ OPAD; + ip[i] ^= IPAD; + } +} + + +static void HmacKeyInnerHash(Hmac* hmac) +{ + if (hmac->macType == MD5) + Md5Update(&hmac->hash.md5, (byte*) hmac->ipad, HMAC_BLOCK_SIZE); + else if (hmac->macType == SHA) + ShaUpdate(&hmac->hash.sha, (byte*) hmac->ipad, HMAC_BLOCK_SIZE); +#ifndef NO_SHA256 + else if (hmac->macType == SHA256) + Sha256Update(&hmac->hash.sha256, (byte*) hmac->ipad, HMAC_BLOCK_SIZE); +#endif + + hmac->innerHashKeyed = 1; +} + + +void HmacUpdate(Hmac* hmac, const byte* msg, word32 length) +{ + if (!hmac->innerHashKeyed) + HmacKeyInnerHash(hmac); + + if (hmac->macType == MD5) + Md5Update(&hmac->hash.md5, msg, length); + else if (hmac->macType == SHA) + ShaUpdate(&hmac->hash.sha, msg, length); +#ifndef NO_SHA256 + else if (hmac->macType == SHA256) + Sha256Update(&hmac->hash.sha256, msg, length); +#endif + +} + + +void HmacFinal(Hmac* hmac, byte* hash) +{ + if (!hmac->innerHashKeyed) + HmacKeyInnerHash(hmac); + + if (hmac->macType == MD5) { + Md5Final(&hmac->hash.md5, (byte*) hmac->innerHash); + + Md5Update(&hmac->hash.md5, (byte*) hmac->opad, HMAC_BLOCK_SIZE); + Md5Update(&hmac->hash.md5, (byte*) hmac->innerHash, MD5_DIGEST_SIZE); + + Md5Final(&hmac->hash.md5, hash); + } + else if (hmac->macType ==SHA) { + ShaFinal(&hmac->hash.sha, (byte*) hmac->innerHash); + + ShaUpdate(&hmac->hash.sha, (byte*) hmac->opad, HMAC_BLOCK_SIZE); + ShaUpdate(&hmac->hash.sha, (byte*) hmac->innerHash, SHA_DIGEST_SIZE); + + ShaFinal(&hmac->hash.sha, hash); + } +#ifndef NO_SHA256 + else if (hmac->macType ==SHA256) { + Sha256Final(&hmac->hash.sha256, (byte*) hmac->innerHash); + + Sha256Update(&hmac->hash.sha256, (byte*) hmac->opad, HMAC_BLOCK_SIZE); + Sha256Update(&hmac->hash.sha256, (byte*) hmac->innerHash, + SHA256_DIGEST_SIZE); + + Sha256Final(&hmac->hash.sha256, hash); + } +#endif + + hmac->innerHashKeyed = 0; +} + + +#endif /* NO_HMAC */ + diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/include.am b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/include.am new file mode 100644 index 000000000..580d3f553 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/include.am @@ -0,0 +1,39 @@ +# vim:ft=automake +# All paths should be given relative to the root + +EXTRA_DIST += ctaocrypt/src/misc.c +EXTRA_DIST += ctaocrypt/src/asm.c + +EXTRA_DIST += \ + ctaocrypt/src/ecc_fp.c \ + ctaocrypt/src/fp_mont_small.i \ + ctaocrypt/src/fp_mul_comba_12.i \ + ctaocrypt/src/fp_mul_comba_17.i \ + ctaocrypt/src/fp_mul_comba_20.i \ + ctaocrypt/src/fp_mul_comba_24.i \ + ctaocrypt/src/fp_mul_comba_28.i \ + ctaocrypt/src/fp_mul_comba_32.i \ + ctaocrypt/src/fp_mul_comba_3.i \ + ctaocrypt/src/fp_mul_comba_48.i \ + ctaocrypt/src/fp_mul_comba_4.i \ + ctaocrypt/src/fp_mul_comba_64.i \ + ctaocrypt/src/fp_mul_comba_6.i \ + ctaocrypt/src/fp_mul_comba_7.i \ + ctaocrypt/src/fp_mul_comba_8.i \ + ctaocrypt/src/fp_mul_comba_9.i \ + ctaocrypt/src/fp_mul_comba_small_set.i \ + ctaocrypt/src/fp_sqr_comba_12.i \ + ctaocrypt/src/fp_sqr_comba_17.i \ + ctaocrypt/src/fp_sqr_comba_20.i \ + ctaocrypt/src/fp_sqr_comba_24.i \ + ctaocrypt/src/fp_sqr_comba_28.i \ + ctaocrypt/src/fp_sqr_comba_32.i \ + ctaocrypt/src/fp_sqr_comba_3.i \ + ctaocrypt/src/fp_sqr_comba_48.i \ + ctaocrypt/src/fp_sqr_comba_4.i \ + ctaocrypt/src/fp_sqr_comba_64.i \ + ctaocrypt/src/fp_sqr_comba_6.i \ + ctaocrypt/src/fp_sqr_comba_7.i \ + ctaocrypt/src/fp_sqr_comba_8.i \ + ctaocrypt/src/fp_sqr_comba_9.i \ + ctaocrypt/src/fp_sqr_comba_small_set.i diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/integer.c b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/integer.c new file mode 100644 index 000000000..996dad062 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/integer.c @@ -0,0 +1,4436 @@ +/* integer.c + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +/* + * Based on public domain LibTomMath 0.38 by Tom St Denis, tomstdenis@iahu.ca, + * http://math.libtomcrypt.com + */ + + +#ifdef HAVE_CONFIG_H + #include +#endif + +/* in case user set USE_FAST_MATH there */ +#include + +#ifndef USE_FAST_MATH + +#include + + +/* math settings check */ +word32 CheckRunTimeSettings(void) +{ + return CTC_SETTINGS; +} + + +/* handle up to 6 inits */ +int mp_init_multi(mp_int* a, mp_int* b, mp_int* c, mp_int* d, mp_int* e, + mp_int* f) +{ + int res = MP_OKAY; + + if (a && ((res = mp_init(a)) != MP_OKAY)) + return res; + + if (b && ((res = mp_init(b)) != MP_OKAY)) { + mp_clear(a); + return res; + } + + if (c && ((res = mp_init(c)) != MP_OKAY)) { + mp_clear(a); mp_clear(b); + return res; + } + + if (d && ((res = mp_init(d)) != MP_OKAY)) { + mp_clear(a); mp_clear(b); mp_clear(c); + return res; + } + + if (e && ((res = mp_init(e)) != MP_OKAY)) { + mp_clear(a); mp_clear(b); mp_clear(c); mp_clear(d); + return res; + } + + if (f && ((res = mp_init(f)) != MP_OKAY)) { + mp_clear(a); mp_clear(b); mp_clear(c); mp_clear(d); mp_clear(e); + return res; + } + + return res; +} + + +/* init a new mp_int */ +int mp_init (mp_int * a) +{ + int i; + + /* allocate memory required and clear it */ + a->dp = OPT_CAST(mp_digit) XMALLOC (sizeof (mp_digit) * MP_PREC, 0, + DYNAMIC_TYPE_BIGINT); + if (a->dp == NULL) { + return MP_MEM; + } + + /* set the digits to zero */ + for (i = 0; i < MP_PREC; i++) { + a->dp[i] = 0; + } + + /* set the used to zero, allocated digits to the default precision + * and sign to positive */ + a->used = 0; + a->alloc = MP_PREC; + a->sign = MP_ZPOS; + + return MP_OKAY; +} + + +/* clear one (frees) */ +void +mp_clear (mp_int * a) +{ + int i; + + /* only do anything if a hasn't been freed previously */ + if (a->dp != NULL) { + /* first zero the digits */ + for (i = 0; i < a->used; i++) { + a->dp[i] = 0; + } + + /* free ram */ + XFREE(a->dp, 0, DYNAMIC_TYPE_BIGINT); + + /* reset members to make debugging easier */ + a->dp = NULL; + a->alloc = a->used = 0; + a->sign = MP_ZPOS; + } +} + + +/* get the size for an unsigned equivalent */ +int mp_unsigned_bin_size (mp_int * a) +{ + int size = mp_count_bits (a); + return (size / 8 + ((size & 7) != 0 ? 1 : 0)); +} + + +/* returns the number of bits in an int */ +int +mp_count_bits (mp_int * a) +{ + int r; + mp_digit q; + + /* shortcut */ + if (a->used == 0) { + return 0; + } + + /* get number of digits and add that */ + r = (a->used - 1) * DIGIT_BIT; + + /* take the last digit and count the bits in it */ + q = a->dp[a->used - 1]; + while (q > ((mp_digit) 0)) { + ++r; + q >>= ((mp_digit) 1); + } + return r; +} + + +/* store in unsigned [big endian] format */ +int mp_to_unsigned_bin (mp_int * a, unsigned char *b) +{ + int x, res; + mp_int t; + + if ((res = mp_init_copy (&t, a)) != MP_OKAY) { + return res; + } + + x = 0; + while (mp_iszero (&t) == 0) { +#ifndef MP_8BIT + b[x++] = (unsigned char) (t.dp[0] & 255); +#else + b[x++] = (unsigned char) (t.dp[0] | ((t.dp[1] & 0x01) << 7)); +#endif + if ((res = mp_div_2d (&t, 8, &t, NULL)) != MP_OKAY) { + mp_clear (&t); + return res; + } + } + bn_reverse (b, x); + mp_clear (&t); + return MP_OKAY; +} + + +/* creates "a" then copies b into it */ +int mp_init_copy (mp_int * a, mp_int * b) +{ + int res; + + if ((res = mp_init (a)) != MP_OKAY) { + return res; + } + return mp_copy (b, a); +} + + +/* copy, b = a */ +int +mp_copy (mp_int * a, mp_int * b) +{ + int res, n; + + /* if dst == src do nothing */ + if (a == b) { + return MP_OKAY; + } + + /* grow dest */ + if (b->alloc < a->used) { + if ((res = mp_grow (b, a->used)) != MP_OKAY) { + return res; + } + } + + /* zero b and copy the parameters over */ + { + register mp_digit *tmpa, *tmpb; + + /* pointer aliases */ + + /* source */ + tmpa = a->dp; + + /* destination */ + tmpb = b->dp; + + /* copy all the digits */ + for (n = 0; n < a->used; n++) { + *tmpb++ = *tmpa++; + } + + /* clear high digits */ + for (; n < b->used; n++) { + *tmpb++ = 0; + } + } + + /* copy used count and sign */ + b->used = a->used; + b->sign = a->sign; + return MP_OKAY; +} + + +/* grow as required */ +int mp_grow (mp_int * a, int size) +{ + int i; + mp_digit *tmp; + + /* if the alloc size is smaller alloc more ram */ + if (a->alloc < size) { + /* ensure there are always at least MP_PREC digits extra on top */ + size += (MP_PREC * 2) - (size % MP_PREC); + + /* reallocate the array a->dp + * + * We store the return in a temporary variable + * in case the operation failed we don't want + * to overwrite the dp member of a. + */ + tmp = OPT_CAST(mp_digit) XREALLOC (a->dp, sizeof (mp_digit) * size, 0, + DYNAMIC_TYPE_BIGINT); + if (tmp == NULL) { + /* reallocation failed but "a" is still valid [can be freed] */ + return MP_MEM; + } + + /* reallocation succeeded so set a->dp */ + a->dp = tmp; + + /* zero excess digits */ + i = a->alloc; + a->alloc = size; + for (; i < a->alloc; i++) { + a->dp[i] = 0; + } + } + return MP_OKAY; +} + + +/* reverse an array, used for radix code */ +void +bn_reverse (unsigned char *s, int len) +{ + int ix, iy; + unsigned char t; + + ix = 0; + iy = len - 1; + while (ix < iy) { + t = s[ix]; + s[ix] = s[iy]; + s[iy] = t; + ++ix; + --iy; + } +} + + +/* shift right by a certain bit count (store quotient in c, optional + remainder in d) */ +int mp_div_2d (mp_int * a, int b, mp_int * c, mp_int * d) +{ + mp_digit D, r, rr; + int x, res; + mp_int t; + + + /* if the shift count is <= 0 then we do no work */ + if (b <= 0) { + res = mp_copy (a, c); + if (d != NULL) { + mp_zero (d); + } + return res; + } + + if ((res = mp_init (&t)) != MP_OKAY) { + return res; + } + + /* get the remainder */ + if (d != NULL) { + if ((res = mp_mod_2d (a, b, &t)) != MP_OKAY) { + mp_clear (&t); + return res; + } + } + + /* copy */ + if ((res = mp_copy (a, c)) != MP_OKAY) { + mp_clear (&t); + return res; + } + + /* shift by as many digits in the bit count */ + if (b >= (int)DIGIT_BIT) { + mp_rshd (c, b / DIGIT_BIT); + } + + /* shift any bit count < DIGIT_BIT */ + D = (mp_digit) (b % DIGIT_BIT); + if (D != 0) { + register mp_digit *tmpc, mask, shift; + + /* mask */ + mask = (((mp_digit)1) << D) - 1; + + /* shift for lsb */ + shift = DIGIT_BIT - D; + + /* alias */ + tmpc = c->dp + (c->used - 1); + + /* carry */ + r = 0; + for (x = c->used - 1; x >= 0; x--) { + /* get the lower bits of this word in a temp */ + rr = *tmpc & mask; + + /* shift the current word and mix in the carry bits from the previous + word */ + *tmpc = (*tmpc >> D) | (r << shift); + --tmpc; + + /* set the carry to the carry bits of the current word found above */ + r = rr; + } + } + mp_clamp (c); + if (d != NULL) { + mp_exch (&t, d); + } + mp_clear (&t); + return MP_OKAY; +} + + +/* set to zero */ +void mp_zero (mp_int * a) +{ + int n; + mp_digit *tmp; + + a->sign = MP_ZPOS; + a->used = 0; + + tmp = a->dp; + for (n = 0; n < a->alloc; n++) { + *tmp++ = 0; + } +} + + +/* trim unused digits + * + * This is used to ensure that leading zero digits are + * trimed and the leading "used" digit will be non-zero + * Typically very fast. Also fixes the sign if there + * are no more leading digits + */ +void +mp_clamp (mp_int * a) +{ + /* decrease used while the most significant digit is + * zero. + */ + while (a->used > 0 && a->dp[a->used - 1] == 0) { + --(a->used); + } + + /* reset the sign flag if used == 0 */ + if (a->used == 0) { + a->sign = MP_ZPOS; + } +} + + +/* swap the elements of two integers, for cases where you can't simply swap the + * mp_int pointers around + */ +void +mp_exch (mp_int * a, mp_int * b) +{ + mp_int t; + + t = *a; + *a = *b; + *b = t; +} + + +/* shift right a certain amount of digits */ +void mp_rshd (mp_int * a, int b) +{ + int x; + + /* if b <= 0 then ignore it */ + if (b <= 0) { + return; + } + + /* if b > used then simply zero it and return */ + if (a->used <= b) { + mp_zero (a); + return; + } + + { + register mp_digit *bottom, *top; + + /* shift the digits down */ + + /* bottom */ + bottom = a->dp; + + /* top [offset into digits] */ + top = a->dp + b; + + /* this is implemented as a sliding window where + * the window is b-digits long and digits from + * the top of the window are copied to the bottom + * + * e.g. + + b-2 | b-1 | b0 | b1 | b2 | ... | bb | ----> + /\ | ----> + \-------------------/ ----> + */ + for (x = 0; x < (a->used - b); x++) { + *bottom++ = *top++; + } + + /* zero the top digits */ + for (; x < a->used; x++) { + *bottom++ = 0; + } + } + + /* remove excess digits */ + a->used -= b; +} + + +/* calc a value mod 2**b */ +int +mp_mod_2d (mp_int * a, int b, mp_int * c) +{ + int x, res; + + /* if b is <= 0 then zero the int */ + if (b <= 0) { + mp_zero (c); + return MP_OKAY; + } + + /* if the modulus is larger than the value than return */ + if (b >= (int) (a->used * DIGIT_BIT)) { + res = mp_copy (a, c); + return res; + } + + /* copy */ + if ((res = mp_copy (a, c)) != MP_OKAY) { + return res; + } + + /* zero digits above the last digit of the modulus */ + for (x = (b / DIGIT_BIT) + ((b % DIGIT_BIT) == 0 ? 0 : 1); x < c->used; x++) { + c->dp[x] = 0; + } + /* clear the digit that is not completely outside/inside the modulus */ + c->dp[b / DIGIT_BIT] &= (mp_digit) ((((mp_digit) 1) << + (((mp_digit) b) % DIGIT_BIT)) - ((mp_digit) 1)); + mp_clamp (c); + return MP_OKAY; +} + + +/* reads a unsigned char array, assumes the msb is stored first [big endian] */ +int mp_read_unsigned_bin (mp_int * a, const unsigned char *b, int c) +{ + int res; + + /* make sure there are at least two digits */ + if (a->alloc < 2) { + if ((res = mp_grow(a, 2)) != MP_OKAY) { + return res; + } + } + + /* zero the int */ + mp_zero (a); + + /* read the bytes in */ + while (c-- > 0) { + if ((res = mp_mul_2d (a, 8, a)) != MP_OKAY) { + return res; + } + +#ifndef MP_8BIT + a->dp[0] |= *b++; + a->used += 1; +#else + a->dp[0] = (*b & MP_MASK); + a->dp[1] |= ((*b++ >> 7U) & 1); + a->used += 2; +#endif + } + mp_clamp (a); + return MP_OKAY; +} + + +/* shift left by a certain bit count */ +int mp_mul_2d (mp_int * a, int b, mp_int * c) +{ + mp_digit d; + int res; + + /* copy */ + if (a != c) { + if ((res = mp_copy (a, c)) != MP_OKAY) { + return res; + } + } + + if (c->alloc < (int)(c->used + b/DIGIT_BIT + 1)) { + if ((res = mp_grow (c, c->used + b / DIGIT_BIT + 1)) != MP_OKAY) { + return res; + } + } + + /* shift by as many digits in the bit count */ + if (b >= (int)DIGIT_BIT) { + if ((res = mp_lshd (c, b / DIGIT_BIT)) != MP_OKAY) { + return res; + } + } + + /* shift any bit count < DIGIT_BIT */ + d = (mp_digit) (b % DIGIT_BIT); + if (d != 0) { + register mp_digit *tmpc, shift, mask, r, rr; + register int x; + + /* bitmask for carries */ + mask = (((mp_digit)1) << d) - 1; + + /* shift for msbs */ + shift = DIGIT_BIT - d; + + /* alias */ + tmpc = c->dp; + + /* carry */ + r = 0; + for (x = 0; x < c->used; x++) { + /* get the higher bits of the current word */ + rr = (*tmpc >> shift) & mask; + + /* shift the current word and OR in the carry */ + *tmpc = ((*tmpc << d) | r) & MP_MASK; + ++tmpc; + + /* set the carry to the carry bits of the current word */ + r = rr; + } + + /* set final carry */ + if (r != 0) { + c->dp[(c->used)++] = r; + } + } + mp_clamp (c); + return MP_OKAY; +} + + +/* shift left a certain amount of digits */ +int mp_lshd (mp_int * a, int b) +{ + int x, res; + + /* if its less than zero return */ + if (b <= 0) { + return MP_OKAY; + } + + /* grow to fit the new digits */ + if (a->alloc < a->used + b) { + if ((res = mp_grow (a, a->used + b)) != MP_OKAY) { + return res; + } + } + + { + register mp_digit *top, *bottom; + + /* increment the used by the shift amount then copy upwards */ + a->used += b; + + /* top */ + top = a->dp + a->used - 1; + + /* base */ + bottom = a->dp + a->used - 1 - b; + + /* much like mp_rshd this is implemented using a sliding window + * except the window goes the otherway around. Copying from + * the bottom to the top. see bn_mp_rshd.c for more info. + */ + for (x = a->used - 1; x >= b; x--) { + *top-- = *bottom--; + } + + /* zero the lower digits */ + top = a->dp; + for (x = 0; x < b; x++) { + *top++ = 0; + } + } + return MP_OKAY; +} + + +/* this is a shell function that calls either the normal or Montgomery + * exptmod functions. Originally the call to the montgomery code was + * embedded in the normal function but that wasted alot of stack space + * for nothing (since 99% of the time the Montgomery code would be called) + */ +int mp_exptmod (mp_int * G, mp_int * X, mp_int * P, mp_int * Y) +{ + int dr; + + /* modulus P must be positive */ + if (P->sign == MP_NEG) { + return MP_VAL; + } + + /* if exponent X is negative we have to recurse */ + if (X->sign == MP_NEG) { +#ifdef BN_MP_INVMOD_C + mp_int tmpG, tmpX; + int err; + + /* first compute 1/G mod P */ + if ((err = mp_init(&tmpG)) != MP_OKAY) { + return err; + } + if ((err = mp_invmod(G, P, &tmpG)) != MP_OKAY) { + mp_clear(&tmpG); + return err; + } + + /* now get |X| */ + if ((err = mp_init(&tmpX)) != MP_OKAY) { + mp_clear(&tmpG); + return err; + } + if ((err = mp_abs(X, &tmpX)) != MP_OKAY) { + mp_clear(&tmpG); + mp_clear(&tmpX); + return err; + } + + /* and now compute (1/G)**|X| instead of G**X [X < 0] */ + err = mp_exptmod(&tmpG, &tmpX, P, Y); + mp_clear(&tmpG); + mp_clear(&tmpX); + return err; +#else + /* no invmod */ + return MP_VAL; +#endif + } + +/* modified diminished radix reduction */ +#if defined(BN_MP_REDUCE_IS_2K_L_C) && defined(BN_MP_REDUCE_2K_L_C) && \ + defined(BN_S_MP_EXPTMOD_C) + if (mp_reduce_is_2k_l(P) == MP_YES) { + return s_mp_exptmod(G, X, P, Y, 1); + } +#endif + +#ifdef BN_MP_DR_IS_MODULUS_C + /* is it a DR modulus? */ + dr = mp_dr_is_modulus(P); +#else + /* default to no */ + dr = 0; +#endif + +#ifdef BN_MP_REDUCE_IS_2K_C + /* if not, is it a unrestricted DR modulus? */ + if (dr == 0) { + dr = mp_reduce_is_2k(P) << 1; + } +#endif + + /* if the modulus is odd or dr != 0 use the montgomery method */ +#ifdef BN_MP_EXPTMOD_FAST_C + if (mp_isodd (P) == 1 || dr != 0) { + return mp_exptmod_fast (G, X, P, Y, dr); + } else { +#endif +#ifdef BN_S_MP_EXPTMOD_C + /* otherwise use the generic Barrett reduction technique */ + return s_mp_exptmod (G, X, P, Y, 0); +#else + /* no exptmod for evens */ + return MP_VAL; +#endif +#ifdef BN_MP_EXPTMOD_FAST_C + } +#endif +} + + +/* b = |a| + * + * Simple function copies the input and fixes the sign to positive + */ +int +mp_abs (mp_int * a, mp_int * b) +{ + int res; + + /* copy a to b */ + if (a != b) { + if ((res = mp_copy (a, b)) != MP_OKAY) { + return res; + } + } + + /* force the sign of b to positive */ + b->sign = MP_ZPOS; + + return MP_OKAY; +} + + +/* hac 14.61, pp608 */ +int mp_invmod (mp_int * a, mp_int * b, mp_int * c) +{ + /* b cannot be negative */ + if (b->sign == MP_NEG || mp_iszero(b) == 1) { + return MP_VAL; + } + +#ifdef BN_FAST_MP_INVMOD_C + /* if the modulus is odd we can use a faster routine instead */ + if (mp_isodd (b) == 1) { + return fast_mp_invmod (a, b, c); + } +#endif + +#ifdef BN_MP_INVMOD_SLOW_C + return mp_invmod_slow(a, b, c); +#endif +} + + +/* computes the modular inverse via binary extended euclidean algorithm, + * that is c = 1/a mod b + * + * Based on slow invmod except this is optimized for the case where b is + * odd as per HAC Note 14.64 on pp. 610 + */ +int fast_mp_invmod (mp_int * a, mp_int * b, mp_int * c) +{ + mp_int x, y, u, v, B, D; + int res, neg; + + /* 2. [modified] b must be odd */ + if (mp_iseven (b) == 1) { + return MP_VAL; + } + + /* init all our temps */ + if ((res = mp_init_multi(&x, &y, &u, &v, &B, &D)) != MP_OKAY) { + return res; + } + + /* x == modulus, y == value to invert */ + if ((res = mp_copy (b, &x)) != MP_OKAY) { + goto LBL_ERR; + } + + /* we need y = |a| */ + if ((res = mp_mod (a, b, &y)) != MP_OKAY) { + goto LBL_ERR; + } + + /* 3. u=x, v=y, A=1, B=0, C=0,D=1 */ + if ((res = mp_copy (&x, &u)) != MP_OKAY) { + goto LBL_ERR; + } + if ((res = mp_copy (&y, &v)) != MP_OKAY) { + goto LBL_ERR; + } + mp_set (&D, 1); + +top: + /* 4. while u is even do */ + while (mp_iseven (&u) == 1) { + /* 4.1 u = u/2 */ + if ((res = mp_div_2 (&u, &u)) != MP_OKAY) { + goto LBL_ERR; + } + /* 4.2 if B is odd then */ + if (mp_isodd (&B) == 1) { + if ((res = mp_sub (&B, &x, &B)) != MP_OKAY) { + goto LBL_ERR; + } + } + /* B = B/2 */ + if ((res = mp_div_2 (&B, &B)) != MP_OKAY) { + goto LBL_ERR; + } + } + + /* 5. while v is even do */ + while (mp_iseven (&v) == 1) { + /* 5.1 v = v/2 */ + if ((res = mp_div_2 (&v, &v)) != MP_OKAY) { + goto LBL_ERR; + } + /* 5.2 if D is odd then */ + if (mp_isodd (&D) == 1) { + /* D = (D-x)/2 */ + if ((res = mp_sub (&D, &x, &D)) != MP_OKAY) { + goto LBL_ERR; + } + } + /* D = D/2 */ + if ((res = mp_div_2 (&D, &D)) != MP_OKAY) { + goto LBL_ERR; + } + } + + /* 6. if u >= v then */ + if (mp_cmp (&u, &v) != MP_LT) { + /* u = u - v, B = B - D */ + if ((res = mp_sub (&u, &v, &u)) != MP_OKAY) { + goto LBL_ERR; + } + + if ((res = mp_sub (&B, &D, &B)) != MP_OKAY) { + goto LBL_ERR; + } + } else { + /* v - v - u, D = D - B */ + if ((res = mp_sub (&v, &u, &v)) != MP_OKAY) { + goto LBL_ERR; + } + + if ((res = mp_sub (&D, &B, &D)) != MP_OKAY) { + goto LBL_ERR; + } + } + + /* if not zero goto step 4 */ + if (mp_iszero (&u) == 0) { + goto top; + } + + /* now a = C, b = D, gcd == g*v */ + + /* if v != 1 then there is no inverse */ + if (mp_cmp_d (&v, 1) != MP_EQ) { + res = MP_VAL; + goto LBL_ERR; + } + + /* b is now the inverse */ + neg = a->sign; + while (D.sign == MP_NEG) { + if ((res = mp_add (&D, b, &D)) != MP_OKAY) { + goto LBL_ERR; + } + } + mp_exch (&D, c); + c->sign = neg; + res = MP_OKAY; + +LBL_ERR:mp_clear(&x); + mp_clear(&y); + mp_clear(&u); + mp_clear(&v); + mp_clear(&B); + mp_clear(&D); + return res; +} + + +/* hac 14.61, pp608 */ +int mp_invmod_slow (mp_int * a, mp_int * b, mp_int * c) +{ + mp_int x, y, u, v, A, B, C, D; + int res; + + /* b cannot be negative */ + if (b->sign == MP_NEG || mp_iszero(b) == 1) { + return MP_VAL; + } + + /* init temps */ + if ((res = mp_init_multi(&x, &y, &u, &v, + &A, &B)) != MP_OKAY) { + return res; + } + + /* init rest of tmps temps */ + if ((res = mp_init_multi(&C, &D, 0, 0, 0, 0)) != MP_OKAY) { + return res; + } + + /* x = a, y = b */ + if ((res = mp_mod(a, b, &x)) != MP_OKAY) { + goto LBL_ERR; + } + if ((res = mp_copy (b, &y)) != MP_OKAY) { + goto LBL_ERR; + } + + /* 2. [modified] if x,y are both even then return an error! */ + if (mp_iseven (&x) == 1 && mp_iseven (&y) == 1) { + res = MP_VAL; + goto LBL_ERR; + } + + /* 3. u=x, v=y, A=1, B=0, C=0,D=1 */ + if ((res = mp_copy (&x, &u)) != MP_OKAY) { + goto LBL_ERR; + } + if ((res = mp_copy (&y, &v)) != MP_OKAY) { + goto LBL_ERR; + } + mp_set (&A, 1); + mp_set (&D, 1); + +top: + /* 4. while u is even do */ + while (mp_iseven (&u) == 1) { + /* 4.1 u = u/2 */ + if ((res = mp_div_2 (&u, &u)) != MP_OKAY) { + goto LBL_ERR; + } + /* 4.2 if A or B is odd then */ + if (mp_isodd (&A) == 1 || mp_isodd (&B) == 1) { + /* A = (A+y)/2, B = (B-x)/2 */ + if ((res = mp_add (&A, &y, &A)) != MP_OKAY) { + goto LBL_ERR; + } + if ((res = mp_sub (&B, &x, &B)) != MP_OKAY) { + goto LBL_ERR; + } + } + /* A = A/2, B = B/2 */ + if ((res = mp_div_2 (&A, &A)) != MP_OKAY) { + goto LBL_ERR; + } + if ((res = mp_div_2 (&B, &B)) != MP_OKAY) { + goto LBL_ERR; + } + } + + /* 5. while v is even do */ + while (mp_iseven (&v) == 1) { + /* 5.1 v = v/2 */ + if ((res = mp_div_2 (&v, &v)) != MP_OKAY) { + goto LBL_ERR; + } + /* 5.2 if C or D is odd then */ + if (mp_isodd (&C) == 1 || mp_isodd (&D) == 1) { + /* C = (C+y)/2, D = (D-x)/2 */ + if ((res = mp_add (&C, &y, &C)) != MP_OKAY) { + goto LBL_ERR; + } + if ((res = mp_sub (&D, &x, &D)) != MP_OKAY) { + goto LBL_ERR; + } + } + /* C = C/2, D = D/2 */ + if ((res = mp_div_2 (&C, &C)) != MP_OKAY) { + goto LBL_ERR; + } + if ((res = mp_div_2 (&D, &D)) != MP_OKAY) { + goto LBL_ERR; + } + } + + /* 6. if u >= v then */ + if (mp_cmp (&u, &v) != MP_LT) { + /* u = u - v, A = A - C, B = B - D */ + if ((res = mp_sub (&u, &v, &u)) != MP_OKAY) { + goto LBL_ERR; + } + + if ((res = mp_sub (&A, &C, &A)) != MP_OKAY) { + goto LBL_ERR; + } + + if ((res = mp_sub (&B, &D, &B)) != MP_OKAY) { + goto LBL_ERR; + } + } else { + /* v - v - u, C = C - A, D = D - B */ + if ((res = mp_sub (&v, &u, &v)) != MP_OKAY) { + goto LBL_ERR; + } + + if ((res = mp_sub (&C, &A, &C)) != MP_OKAY) { + goto LBL_ERR; + } + + if ((res = mp_sub (&D, &B, &D)) != MP_OKAY) { + goto LBL_ERR; + } + } + + /* if not zero goto step 4 */ + if (mp_iszero (&u) == 0) + goto top; + + /* now a = C, b = D, gcd == g*v */ + + /* if v != 1 then there is no inverse */ + if (mp_cmp_d (&v, 1) != MP_EQ) { + res = MP_VAL; + goto LBL_ERR; + } + + /* if its too low */ + while (mp_cmp_d(&C, 0) == MP_LT) { + if ((res = mp_add(&C, b, &C)) != MP_OKAY) { + goto LBL_ERR; + } + } + + /* too big */ + while (mp_cmp_mag(&C, b) != MP_LT) { + if ((res = mp_sub(&C, b, &C)) != MP_OKAY) { + goto LBL_ERR; + } + } + + /* C is now the inverse */ + mp_exch (&C, c); + res = MP_OKAY; +LBL_ERR:mp_clear(&x); + mp_clear(&y); + mp_clear(&u); + mp_clear(&v); + mp_clear(&A); + mp_clear(&B); + mp_clear(&C); + mp_clear(&D); + return res; +} + + +/* compare maginitude of two ints (unsigned) */ +int mp_cmp_mag (mp_int * a, mp_int * b) +{ + int n; + mp_digit *tmpa, *tmpb; + + /* compare based on # of non-zero digits */ + if (a->used > b->used) { + return MP_GT; + } + + if (a->used < b->used) { + return MP_LT; + } + + /* alias for a */ + tmpa = a->dp + (a->used - 1); + + /* alias for b */ + tmpb = b->dp + (a->used - 1); + + /* compare based on digits */ + for (n = 0; n < a->used; ++n, --tmpa, --tmpb) { + if (*tmpa > *tmpb) { + return MP_GT; + } + + if (*tmpa < *tmpb) { + return MP_LT; + } + } + return MP_EQ; +} + + +/* compare two ints (signed)*/ +int +mp_cmp (mp_int * a, mp_int * b) +{ + /* compare based on sign */ + if (a->sign != b->sign) { + if (a->sign == MP_NEG) { + return MP_LT; + } else { + return MP_GT; + } + } + + /* compare digits */ + if (a->sign == MP_NEG) { + /* if negative compare opposite direction */ + return mp_cmp_mag(b, a); + } else { + return mp_cmp_mag(a, b); + } +} + + +/* compare a digit */ +int mp_cmp_d(mp_int * a, mp_digit b) +{ + /* compare based on sign */ + if (a->sign == MP_NEG) { + return MP_LT; + } + + /* compare based on magnitude */ + if (a->used > 1) { + return MP_GT; + } + + /* compare the only digit of a to b */ + if (a->dp[0] > b) { + return MP_GT; + } else if (a->dp[0] < b) { + return MP_LT; + } else { + return MP_EQ; + } +} + + +/* set to a digit */ +void mp_set (mp_int * a, mp_digit b) +{ + mp_zero (a); + a->dp[0] = b & MP_MASK; + a->used = (a->dp[0] != 0) ? 1 : 0; +} + + +/* c = a mod b, 0 <= c < b */ +int +mp_mod (mp_int * a, mp_int * b, mp_int * c) +{ + mp_int t; + int res; + + if ((res = mp_init (&t)) != MP_OKAY) { + return res; + } + + if ((res = mp_div (a, b, NULL, &t)) != MP_OKAY) { + mp_clear (&t); + return res; + } + + if (t.sign != b->sign) { + res = mp_add (b, &t, c); + } else { + res = MP_OKAY; + mp_exch (&t, c); + } + + mp_clear (&t); + return res; +} + + +/* slower bit-bang division... also smaller */ +int mp_div(mp_int * a, mp_int * b, mp_int * c, mp_int * d) +{ + mp_int ta, tb, tq, q; + int res, n, n2; + + /* is divisor zero ? */ + if (mp_iszero (b) == 1) { + return MP_VAL; + } + + /* if a < b then q=0, r = a */ + if (mp_cmp_mag (a, b) == MP_LT) { + if (d != NULL) { + res = mp_copy (a, d); + } else { + res = MP_OKAY; + } + if (c != NULL) { + mp_zero (c); + } + return res; + } + + /* init our temps */ + if ((res = mp_init_multi(&ta, &tb, &tq, &q, 0, 0)) != MP_OKAY) { + return res; + } + + + mp_set(&tq, 1); + n = mp_count_bits(a) - mp_count_bits(b); + if (((res = mp_abs(a, &ta)) != MP_OKAY) || + ((res = mp_abs(b, &tb)) != MP_OKAY) || + ((res = mp_mul_2d(&tb, n, &tb)) != MP_OKAY) || + ((res = mp_mul_2d(&tq, n, &tq)) != MP_OKAY)) { + goto LBL_ERR; + } + + while (n-- >= 0) { + if (mp_cmp(&tb, &ta) != MP_GT) { + if (((res = mp_sub(&ta, &tb, &ta)) != MP_OKAY) || + ((res = mp_add(&q, &tq, &q)) != MP_OKAY)) { + goto LBL_ERR; + } + } + if (((res = mp_div_2d(&tb, 1, &tb, NULL)) != MP_OKAY) || + ((res = mp_div_2d(&tq, 1, &tq, NULL)) != MP_OKAY)) { + goto LBL_ERR; + } + } + + /* now q == quotient and ta == remainder */ + n = a->sign; + n2 = (a->sign == b->sign ? MP_ZPOS : MP_NEG); + if (c != NULL) { + mp_exch(c, &q); + c->sign = (mp_iszero(c) == MP_YES) ? MP_ZPOS : n2; + } + if (d != NULL) { + mp_exch(d, &ta); + d->sign = (mp_iszero(d) == MP_YES) ? MP_ZPOS : n; + } +LBL_ERR: + mp_clear(&ta); + mp_clear(&tb); + mp_clear(&tq); + mp_clear(&q); + return res; +} + + +/* b = a/2 */ +int mp_div_2(mp_int * a, mp_int * b) +{ + int x, res, oldused; + + /* copy */ + if (b->alloc < a->used) { + if ((res = mp_grow (b, a->used)) != MP_OKAY) { + return res; + } + } + + oldused = b->used; + b->used = a->used; + { + register mp_digit r, rr, *tmpa, *tmpb; + + /* source alias */ + tmpa = a->dp + b->used - 1; + + /* dest alias */ + tmpb = b->dp + b->used - 1; + + /* carry */ + r = 0; + for (x = b->used - 1; x >= 0; x--) { + /* get the carry for the next iteration */ + rr = *tmpa & 1; + + /* shift the current digit, add in carry and store */ + *tmpb-- = (*tmpa-- >> 1) | (r << (DIGIT_BIT - 1)); + + /* forward carry to next iteration */ + r = rr; + } + + /* zero excess digits */ + tmpb = b->dp + b->used; + for (x = b->used; x < oldused; x++) { + *tmpb++ = 0; + } + } + b->sign = a->sign; + mp_clamp (b); + return MP_OKAY; +} + + +/* high level addition (handles signs) */ +int mp_add (mp_int * a, mp_int * b, mp_int * c) +{ + int sa, sb, res; + + /* get sign of both inputs */ + sa = a->sign; + sb = b->sign; + + /* handle two cases, not four */ + if (sa == sb) { + /* both positive or both negative */ + /* add their magnitudes, copy the sign */ + c->sign = sa; + res = s_mp_add (a, b, c); + } else { + /* one positive, the other negative */ + /* subtract the one with the greater magnitude from */ + /* the one of the lesser magnitude. The result gets */ + /* the sign of the one with the greater magnitude. */ + if (mp_cmp_mag (a, b) == MP_LT) { + c->sign = sb; + res = s_mp_sub (b, a, c); + } else { + c->sign = sa; + res = s_mp_sub (a, b, c); + } + } + return res; +} + + +/* low level addition, based on HAC pp.594, Algorithm 14.7 */ +int +s_mp_add (mp_int * a, mp_int * b, mp_int * c) +{ + mp_int *x; + int olduse, res, min, max; + + /* find sizes, we let |a| <= |b| which means we have to sort + * them. "x" will point to the input with the most digits + */ + if (a->used > b->used) { + min = b->used; + max = a->used; + x = a; + } else { + min = a->used; + max = b->used; + x = b; + } + + /* init result */ + if (c->alloc < max + 1) { + if ((res = mp_grow (c, max + 1)) != MP_OKAY) { + return res; + } + } + + /* get old used digit count and set new one */ + olduse = c->used; + c->used = max + 1; + + { + register mp_digit u, *tmpa, *tmpb, *tmpc; + register int i; + + /* alias for digit pointers */ + + /* first input */ + tmpa = a->dp; + + /* second input */ + tmpb = b->dp; + + /* destination */ + tmpc = c->dp; + + /* zero the carry */ + u = 0; + for (i = 0; i < min; i++) { + /* Compute the sum at one digit, T[i] = A[i] + B[i] + U */ + *tmpc = *tmpa++ + *tmpb++ + u; + + /* U = carry bit of T[i] */ + u = *tmpc >> ((mp_digit)DIGIT_BIT); + + /* take away carry bit from T[i] */ + *tmpc++ &= MP_MASK; + } + + /* now copy higher words if any, that is in A+B + * if A or B has more digits add those in + */ + if (min != max) { + for (; i < max; i++) { + /* T[i] = X[i] + U */ + *tmpc = x->dp[i] + u; + + /* U = carry bit of T[i] */ + u = *tmpc >> ((mp_digit)DIGIT_BIT); + + /* take away carry bit from T[i] */ + *tmpc++ &= MP_MASK; + } + } + + /* add carry */ + *tmpc++ = u; + + /* clear digits above oldused */ + for (i = c->used; i < olduse; i++) { + *tmpc++ = 0; + } + } + + mp_clamp (c); + return MP_OKAY; +} + + +/* low level subtraction (assumes |a| > |b|), HAC pp.595 Algorithm 14.9 */ +int +s_mp_sub (mp_int * a, mp_int * b, mp_int * c) +{ + int olduse, res, min, max; + + /* find sizes */ + min = b->used; + max = a->used; + + /* init result */ + if (c->alloc < max) { + if ((res = mp_grow (c, max)) != MP_OKAY) { + return res; + } + } + olduse = c->used; + c->used = max; + + { + register mp_digit u, *tmpa, *tmpb, *tmpc; + register int i; + + /* alias for digit pointers */ + tmpa = a->dp; + tmpb = b->dp; + tmpc = c->dp; + + /* set carry to zero */ + u = 0; + for (i = 0; i < min; i++) { + /* T[i] = A[i] - B[i] - U */ + *tmpc = *tmpa++ - *tmpb++ - u; + + /* U = carry bit of T[i] + * Note this saves performing an AND operation since + * if a carry does occur it will propagate all the way to the + * MSB. As a result a single shift is enough to get the carry + */ + u = *tmpc >> ((mp_digit)(CHAR_BIT * sizeof (mp_digit) - 1)); + + /* Clear carry from T[i] */ + *tmpc++ &= MP_MASK; + } + + /* now copy higher words if any, e.g. if A has more digits than B */ + for (; i < max; i++) { + /* T[i] = A[i] - U */ + *tmpc = *tmpa++ - u; + + /* U = carry bit of T[i] */ + u = *tmpc >> ((mp_digit)(CHAR_BIT * sizeof (mp_digit) - 1)); + + /* Clear carry from T[i] */ + *tmpc++ &= MP_MASK; + } + + /* clear digits above used (since we may not have grown result above) */ + for (i = c->used; i < olduse; i++) { + *tmpc++ = 0; + } + } + + mp_clamp (c); + return MP_OKAY; +} + + +/* high level subtraction (handles signs) */ +int +mp_sub (mp_int * a, mp_int * b, mp_int * c) +{ + int sa, sb, res; + + sa = a->sign; + sb = b->sign; + + if (sa != sb) { + /* subtract a negative from a positive, OR */ + /* subtract a positive from a negative. */ + /* In either case, ADD their magnitudes, */ + /* and use the sign of the first number. */ + c->sign = sa; + res = s_mp_add (a, b, c); + } else { + /* subtract a positive from a positive, OR */ + /* subtract a negative from a negative. */ + /* First, take the difference between their */ + /* magnitudes, then... */ + if (mp_cmp_mag (a, b) != MP_LT) { + /* Copy the sign from the first */ + c->sign = sa; + /* The first has a larger or equal magnitude */ + res = s_mp_sub (a, b, c); + } else { + /* The result has the *opposite* sign from */ + /* the first number. */ + c->sign = (sa == MP_ZPOS) ? MP_NEG : MP_ZPOS; + /* The second has a larger magnitude */ + res = s_mp_sub (b, a, c); + } + } + return res; +} + + +/* determines if reduce_2k_l can be used */ +int mp_reduce_is_2k_l(mp_int *a) +{ + int ix, iy; + + if (a->used == 0) { + return MP_NO; + } else if (a->used == 1) { + return MP_YES; + } else if (a->used > 1) { + /* if more than half of the digits are -1 we're sold */ + for (iy = ix = 0; ix < a->used; ix++) { + if (a->dp[ix] == MP_MASK) { + ++iy; + } + } + return (iy >= (a->used/2)) ? MP_YES : MP_NO; + + } + return MP_NO; +} + + +/* determines if mp_reduce_2k can be used */ +int mp_reduce_is_2k(mp_int *a) +{ + int ix, iy, iw; + mp_digit iz; + + if (a->used == 0) { + return MP_NO; + } else if (a->used == 1) { + return MP_YES; + } else if (a->used > 1) { + iy = mp_count_bits(a); + iz = 1; + iw = 1; + + /* Test every bit from the second digit up, must be 1 */ + for (ix = DIGIT_BIT; ix < iy; ix++) { + if ((a->dp[iw] & iz) == 0) { + return MP_NO; + } + iz <<= 1; + if (iz > (mp_digit)MP_MASK) { + ++iw; + iz = 1; + } + } + } + return MP_YES; +} + + +/* determines if a number is a valid DR modulus */ +int mp_dr_is_modulus(mp_int *a) +{ + int ix; + + /* must be at least two digits */ + if (a->used < 2) { + return 0; + } + + /* must be of the form b**k - a [a <= b] so all + * but the first digit must be equal to -1 (mod b). + */ + for (ix = 1; ix < a->used; ix++) { + if (a->dp[ix] != MP_MASK) { + return 0; + } + } + return 1; +} + + +/* computes Y == G**X mod P, HAC pp.616, Algorithm 14.85 + * + * Uses a left-to-right k-ary sliding window to compute the modular + * exponentiation. + * The value of k changes based on the size of the exponent. + * + * Uses Montgomery or Diminished Radix reduction [whichever appropriate] + */ + +#ifdef MP_LOW_MEM + #define TAB_SIZE 32 +#else + #define TAB_SIZE 256 +#endif + +int mp_exptmod_fast (mp_int * G, mp_int * X, mp_int * P, mp_int * Y, + int redmode) +{ + mp_int M[TAB_SIZE], res; + mp_digit buf, mp; + int err, bitbuf, bitcpy, bitcnt, mode, digidx, x, y, winsize; + + /* use a pointer to the reduction algorithm. This allows us to use + * one of many reduction algorithms without modding the guts of + * the code with if statements everywhere. + */ + int (*redux)(mp_int*,mp_int*,mp_digit); + + /* find window size */ + x = mp_count_bits (X); + if (x <= 7) { + winsize = 2; + } else if (x <= 36) { + winsize = 3; + } else if (x <= 140) { + winsize = 4; + } else if (x <= 450) { + winsize = 5; + } else if (x <= 1303) { + winsize = 6; + } else if (x <= 3529) { + winsize = 7; + } else { + winsize = 8; + } + +#ifdef MP_LOW_MEM + if (winsize > 5) { + winsize = 5; + } +#endif + + /* init M array */ + /* init first cell */ + if ((err = mp_init(&M[1])) != MP_OKAY) { + return err; + } + + /* now init the second half of the array */ + for (x = 1<<(winsize-1); x < (1 << winsize); x++) { + if ((err = mp_init(&M[x])) != MP_OKAY) { + for (y = 1<<(winsize-1); y < x; y++) { + mp_clear (&M[y]); + } + mp_clear(&M[1]); + return err; + } + } + + /* determine and setup reduction code */ + if (redmode == 0) { +#ifdef BN_MP_MONTGOMERY_SETUP_C + /* now setup montgomery */ + if ((err = mp_montgomery_setup (P, &mp)) != MP_OKAY) { + goto LBL_M; + } +#else + err = MP_VAL; + goto LBL_M; +#endif + + /* automatically pick the comba one if available (saves quite a few + calls/ifs) */ +#ifdef BN_FAST_MP_MONTGOMERY_REDUCE_C + if (((P->used * 2 + 1) < MP_WARRAY) && + P->used < (1 << ((CHAR_BIT * sizeof (mp_word)) - (2 * DIGIT_BIT)))) { + redux = fast_mp_montgomery_reduce; + } else +#endif + { +#ifdef BN_MP_MONTGOMERY_REDUCE_C + /* use slower baseline Montgomery method */ + redux = mp_montgomery_reduce; +#else + err = MP_VAL; + goto LBL_M; +#endif + } + } else if (redmode == 1) { +#if defined(BN_MP_DR_SETUP_C) && defined(BN_MP_DR_REDUCE_C) + /* setup DR reduction for moduli of the form B**k - b */ + mp_dr_setup(P, &mp); + redux = mp_dr_reduce; +#else + err = MP_VAL; + goto LBL_M; +#endif + } else { +#if defined(BN_MP_REDUCE_2K_SETUP_C) && defined(BN_MP_REDUCE_2K_C) + /* setup DR reduction for moduli of the form 2**k - b */ + if ((err = mp_reduce_2k_setup(P, &mp)) != MP_OKAY) { + goto LBL_M; + } + redux = mp_reduce_2k; +#else + err = MP_VAL; + goto LBL_M; +#endif + } + + /* setup result */ + if ((err = mp_init (&res)) != MP_OKAY) { + goto LBL_M; + } + + /* create M table + * + + * + * The first half of the table is not computed though accept for M[0] and M[1] + */ + + if (redmode == 0) { +#ifdef BN_MP_MONTGOMERY_CALC_NORMALIZATION_C + /* now we need R mod m */ + if ((err = mp_montgomery_calc_normalization (&res, P)) != MP_OKAY) { + goto LBL_RES; + } +#else + err = MP_VAL; + goto LBL_RES; +#endif + + /* now set M[1] to G * R mod m */ + if ((err = mp_mulmod (G, &res, P, &M[1])) != MP_OKAY) { + goto LBL_RES; + } + } else { + mp_set(&res, 1); + if ((err = mp_mod(G, P, &M[1])) != MP_OKAY) { + goto LBL_RES; + } + } + + /* compute the value at M[1<<(winsize-1)] by squaring M[1] (winsize-1) times*/ + if ((err = mp_copy (&M[1], &M[1 << (winsize - 1)])) != MP_OKAY) { + goto LBL_RES; + } + + for (x = 0; x < (winsize - 1); x++) { + if ((err = mp_sqr (&M[1 << (winsize - 1)], &M[1 << (winsize - 1)])) != MP_OKAY) { + goto LBL_RES; + } + if ((err = redux (&M[1 << (winsize - 1)], P, mp)) != MP_OKAY) { + goto LBL_RES; + } + } + + /* create upper table */ + for (x = (1 << (winsize - 1)) + 1; x < (1 << winsize); x++) { + if ((err = mp_mul (&M[x - 1], &M[1], &M[x])) != MP_OKAY) { + goto LBL_RES; + } + if ((err = redux (&M[x], P, mp)) != MP_OKAY) { + goto LBL_RES; + } + } + + /* set initial mode and bit cnt */ + mode = 0; + bitcnt = 1; + buf = 0; + digidx = X->used - 1; + bitcpy = 0; + bitbuf = 0; + + for (;;) { + /* grab next digit as required */ + if (--bitcnt == 0) { + /* if digidx == -1 we are out of digits so break */ + if (digidx == -1) { + break; + } + /* read next digit and reset bitcnt */ + buf = X->dp[digidx--]; + bitcnt = (int)DIGIT_BIT; + } + + /* grab the next msb from the exponent */ + y = (mp_digit)(buf >> (DIGIT_BIT - 1)) & 1; + buf <<= (mp_digit)1; + + /* if the bit is zero and mode == 0 then we ignore it + * These represent the leading zero bits before the first 1 bit + * in the exponent. Technically this opt is not required but it + * does lower the # of trivial squaring/reductions used + */ + if (mode == 0 && y == 0) { + continue; + } + + /* if the bit is zero and mode == 1 then we square */ + if (mode == 1 && y == 0) { + if ((err = mp_sqr (&res, &res)) != MP_OKAY) { + goto LBL_RES; + } + if ((err = redux (&res, P, mp)) != MP_OKAY) { + goto LBL_RES; + } + continue; + } + + /* else we add it to the window */ + bitbuf |= (y << (winsize - ++bitcpy)); + mode = 2; + + if (bitcpy == winsize) { + /* ok window is filled so square as required and multiply */ + /* square first */ + for (x = 0; x < winsize; x++) { + if ((err = mp_sqr (&res, &res)) != MP_OKAY) { + goto LBL_RES; + } + if ((err = redux (&res, P, mp)) != MP_OKAY) { + goto LBL_RES; + } + } + + /* then multiply */ + if ((err = mp_mul (&res, &M[bitbuf], &res)) != MP_OKAY) { + goto LBL_RES; + } + if ((err = redux (&res, P, mp)) != MP_OKAY) { + goto LBL_RES; + } + + /* empty window and reset */ + bitcpy = 0; + bitbuf = 0; + mode = 1; + } + } + + /* if bits remain then square/multiply */ + if (mode == 2 && bitcpy > 0) { + /* square then multiply if the bit is set */ + for (x = 0; x < bitcpy; x++) { + if ((err = mp_sqr (&res, &res)) != MP_OKAY) { + goto LBL_RES; + } + if ((err = redux (&res, P, mp)) != MP_OKAY) { + goto LBL_RES; + } + + /* get next bit of the window */ + bitbuf <<= 1; + if ((bitbuf & (1 << winsize)) != 0) { + /* then multiply */ + if ((err = mp_mul (&res, &M[1], &res)) != MP_OKAY) { + goto LBL_RES; + } + if ((err = redux (&res, P, mp)) != MP_OKAY) { + goto LBL_RES; + } + } + } + } + + if (redmode == 0) { + /* fixup result if Montgomery reduction is used + * recall that any value in a Montgomery system is + * actually multiplied by R mod n. So we have + * to reduce one more time to cancel out the factor + * of R. + */ + if ((err = redux(&res, P, mp)) != MP_OKAY) { + goto LBL_RES; + } + } + + /* swap res with Y */ + mp_exch (&res, Y); + err = MP_OKAY; +LBL_RES:mp_clear (&res); +LBL_M: + mp_clear(&M[1]); + for (x = 1<<(winsize-1); x < (1 << winsize); x++) { + mp_clear (&M[x]); + } + return err; +} + + +/* setups the montgomery reduction stuff */ +int +mp_montgomery_setup (mp_int * n, mp_digit * rho) +{ + mp_digit x, b; + +/* fast inversion mod 2**k + * + * Based on the fact that + * + * XA = 1 (mod 2**n) => (X(2-XA)) A = 1 (mod 2**2n) + * => 2*X*A - X*X*A*A = 1 + * => 2*(1) - (1) = 1 + */ + b = n->dp[0]; + + if ((b & 1) == 0) { + return MP_VAL; + } + + x = (((b + 2) & 4) << 1) + b; /* here x*a==1 mod 2**4 */ + x *= 2 - b * x; /* here x*a==1 mod 2**8 */ +#if !defined(MP_8BIT) + x *= 2 - b * x; /* here x*a==1 mod 2**16 */ +#endif +#if defined(MP_64BIT) || !(defined(MP_8BIT) || defined(MP_16BIT)) + x *= 2 - b * x; /* here x*a==1 mod 2**32 */ +#endif +#ifdef MP_64BIT + x *= 2 - b * x; /* here x*a==1 mod 2**64 */ +#endif + + /* rho = -1/m mod b */ + /* TAO, switched mp_word casts to mp_digit to shut up compiler */ + *rho = (((mp_digit)1 << ((mp_digit) DIGIT_BIT)) - x) & MP_MASK; + + return MP_OKAY; +} + + +/* computes xR**-1 == x (mod N) via Montgomery Reduction + * + * This is an optimized implementation of montgomery_reduce + * which uses the comba method to quickly calculate the columns of the + * reduction. + * + * Based on Algorithm 14.32 on pp.601 of HAC. +*/ +int fast_mp_montgomery_reduce (mp_int * x, mp_int * n, mp_digit rho) +{ + int ix, res, olduse; +#ifdef CYASSL_SMALL_STACK + mp_word* W; /* uses dynamic memory and slower */ +#else + mp_word W[MP_WARRAY]; +#endif + + /* get old used count */ + olduse = x->used; + + /* grow a as required */ + if (x->alloc < n->used + 1) { + if ((res = mp_grow (x, n->used + 1)) != MP_OKAY) { + return res; + } + } + +#ifdef CYASSL_SMALL_STACK + W = (mp_word*)XMALLOC(sizeof(mp_word) * MP_WARRAY, 0, DYNAMIC_TYPE_BIGINT); + if (W == NULL) + return MP_MEM; +#endif + + /* first we have to get the digits of the input into + * an array of double precision words W[...] + */ + { + register mp_word *_W; + register mp_digit *tmpx; + + /* alias for the W[] array */ + _W = W; + + /* alias for the digits of x*/ + tmpx = x->dp; + + /* copy the digits of a into W[0..a->used-1] */ + for (ix = 0; ix < x->used; ix++) { + *_W++ = *tmpx++; + } + + /* zero the high words of W[a->used..m->used*2] */ + for (; ix < n->used * 2 + 1; ix++) { + *_W++ = 0; + } + } + + /* now we proceed to zero successive digits + * from the least significant upwards + */ + for (ix = 0; ix < n->used; ix++) { + /* mu = ai * m' mod b + * + * We avoid a double precision multiplication (which isn't required) + * by casting the value down to a mp_digit. Note this requires + * that W[ix-1] have the carry cleared (see after the inner loop) + */ + register mp_digit mu; + mu = (mp_digit) (((W[ix] & MP_MASK) * rho) & MP_MASK); + + /* a = a + mu * m * b**i + * + * This is computed in place and on the fly. The multiplication + * by b**i is handled by offseting which columns the results + * are added to. + * + * Note the comba method normally doesn't handle carries in the + * inner loop In this case we fix the carry from the previous + * column since the Montgomery reduction requires digits of the + * result (so far) [see above] to work. This is + * handled by fixing up one carry after the inner loop. The + * carry fixups are done in order so after these loops the + * first m->used words of W[] have the carries fixed + */ + { + register int iy; + register mp_digit *tmpn; + register mp_word *_W; + + /* alias for the digits of the modulus */ + tmpn = n->dp; + + /* Alias for the columns set by an offset of ix */ + _W = W + ix; + + /* inner loop */ + for (iy = 0; iy < n->used; iy++) { + *_W++ += ((mp_word)mu) * ((mp_word)*tmpn++); + } + } + + /* now fix carry for next digit, W[ix+1] */ + W[ix + 1] += W[ix] >> ((mp_word) DIGIT_BIT); + } + + /* now we have to propagate the carries and + * shift the words downward [all those least + * significant digits we zeroed]. + */ + { + register mp_digit *tmpx; + register mp_word *_W, *_W1; + + /* nox fix rest of carries */ + + /* alias for current word */ + _W1 = W + ix; + + /* alias for next word, where the carry goes */ + _W = W + ++ix; + + for (; ix <= n->used * 2 + 1; ix++) { + *_W++ += *_W1++ >> ((mp_word) DIGIT_BIT); + } + + /* copy out, A = A/b**n + * + * The result is A/b**n but instead of converting from an + * array of mp_word to mp_digit than calling mp_rshd + * we just copy them in the right order + */ + + /* alias for destination word */ + tmpx = x->dp; + + /* alias for shifted double precision result */ + _W = W + n->used; + + for (ix = 0; ix < n->used + 1; ix++) { + *tmpx++ = (mp_digit)(*_W++ & ((mp_word) MP_MASK)); + } + + /* zero oldused digits, if the input a was larger than + * m->used+1 we'll have to clear the digits + */ + for (; ix < olduse; ix++) { + *tmpx++ = 0; + } + } + + /* set the max used and clamp */ + x->used = n->used + 1; + mp_clamp (x); + +#ifdef CYASSL_SMALL_STACK + XFREE(W, 0, DYNAMIC_TYPE_BIGINT); +#endif + + /* if A >= m then A = A - m */ + if (mp_cmp_mag (x, n) != MP_LT) { + return s_mp_sub (x, n, x); + } + return MP_OKAY; +} + + +/* computes xR**-1 == x (mod N) via Montgomery Reduction */ +int +mp_montgomery_reduce (mp_int * x, mp_int * n, mp_digit rho) +{ + int ix, res, digs; + mp_digit mu; + + /* can the fast reduction [comba] method be used? + * + * Note that unlike in mul you're safely allowed *less* + * than the available columns [255 per default] since carries + * are fixed up in the inner loop. + */ + digs = n->used * 2 + 1; + if ((digs < MP_WARRAY) && + n->used < + (1 << ((CHAR_BIT * sizeof (mp_word)) - (2 * DIGIT_BIT)))) { + return fast_mp_montgomery_reduce (x, n, rho); + } + + /* grow the input as required */ + if (x->alloc < digs) { + if ((res = mp_grow (x, digs)) != MP_OKAY) { + return res; + } + } + x->used = digs; + + for (ix = 0; ix < n->used; ix++) { + /* mu = ai * rho mod b + * + * The value of rho must be precalculated via + * montgomery_setup() such that + * it equals -1/n0 mod b this allows the + * following inner loop to reduce the + * input one digit at a time + */ + mu = (mp_digit) (((mp_word)x->dp[ix]) * ((mp_word)rho) & MP_MASK); + + /* a = a + mu * m * b**i */ + { + register int iy; + register mp_digit *tmpn, *tmpx, u; + register mp_word r; + + /* alias for digits of the modulus */ + tmpn = n->dp; + + /* alias for the digits of x [the input] */ + tmpx = x->dp + ix; + + /* set the carry to zero */ + u = 0; + + /* Multiply and add in place */ + for (iy = 0; iy < n->used; iy++) { + /* compute product and sum */ + r = ((mp_word)mu) * ((mp_word)*tmpn++) + + ((mp_word) u) + ((mp_word) * tmpx); + + /* get carry */ + u = (mp_digit)(r >> ((mp_word) DIGIT_BIT)); + + /* fix digit */ + *tmpx++ = (mp_digit)(r & ((mp_word) MP_MASK)); + } + /* At this point the ix'th digit of x should be zero */ + + + /* propagate carries upwards as required*/ + while (u) { + *tmpx += u; + u = *tmpx >> DIGIT_BIT; + *tmpx++ &= MP_MASK; + } + } + } + + /* at this point the n.used'th least + * significant digits of x are all zero + * which means we can shift x to the + * right by n.used digits and the + * residue is unchanged. + */ + + /* x = x/b**n.used */ + mp_clamp(x); + mp_rshd (x, n->used); + + /* if x >= n then x = x - n */ + if (mp_cmp_mag (x, n) != MP_LT) { + return s_mp_sub (x, n, x); + } + + return MP_OKAY; +} + + +/* determines the setup value */ +void mp_dr_setup(mp_int *a, mp_digit *d) +{ + /* the casts are required if DIGIT_BIT is one less than + * the number of bits in a mp_digit [e.g. DIGIT_BIT==31] + */ + *d = (mp_digit)((((mp_word)1) << ((mp_word)DIGIT_BIT)) - + ((mp_word)a->dp[0])); +} + + +/* reduce "x" in place modulo "n" using the Diminished Radix algorithm. + * + * Based on algorithm from the paper + * + * "Generating Efficient Primes for Discrete Log Cryptosystems" + * Chae Hoon Lim, Pil Joong Lee, + * POSTECH Information Research Laboratories + * + * The modulus must be of a special format [see manual] + * + * Has been modified to use algorithm 7.10 from the LTM book instead + * + * Input x must be in the range 0 <= x <= (n-1)**2 + */ +int +mp_dr_reduce (mp_int * x, mp_int * n, mp_digit k) +{ + int err, i, m; + mp_word r; + mp_digit mu, *tmpx1, *tmpx2; + + /* m = digits in modulus */ + m = n->used; + + /* ensure that "x" has at least 2m digits */ + if (x->alloc < m + m) { + if ((err = mp_grow (x, m + m)) != MP_OKAY) { + return err; + } + } + +/* top of loop, this is where the code resumes if + * another reduction pass is required. + */ +top: + /* aliases for digits */ + /* alias for lower half of x */ + tmpx1 = x->dp; + + /* alias for upper half of x, or x/B**m */ + tmpx2 = x->dp + m; + + /* set carry to zero */ + mu = 0; + + /* compute (x mod B**m) + k * [x/B**m] inline and inplace */ + for (i = 0; i < m; i++) { + r = ((mp_word)*tmpx2++) * ((mp_word)k) + *tmpx1 + mu; + *tmpx1++ = (mp_digit)(r & MP_MASK); + mu = (mp_digit)(r >> ((mp_word)DIGIT_BIT)); + } + + /* set final carry */ + *tmpx1++ = mu; + + /* zero words above m */ + for (i = m + 1; i < x->used; i++) { + *tmpx1++ = 0; + } + + /* clamp, sub and return */ + mp_clamp (x); + + /* if x >= n then subtract and reduce again + * Each successive "recursion" makes the input smaller and smaller. + */ + if (mp_cmp_mag (x, n) != MP_LT) { + s_mp_sub(x, n, x); + goto top; + } + return MP_OKAY; +} + + +/* reduces a modulo n where n is of the form 2**p - d */ +int mp_reduce_2k(mp_int *a, mp_int *n, mp_digit d) +{ + mp_int q; + int p, res; + + if ((res = mp_init(&q)) != MP_OKAY) { + return res; + } + + p = mp_count_bits(n); +top: + /* q = a/2**p, a = a mod 2**p */ + if ((res = mp_div_2d(a, p, &q, a)) != MP_OKAY) { + goto ERR; + } + + if (d != 1) { + /* q = q * d */ + if ((res = mp_mul_d(&q, d, &q)) != MP_OKAY) { + goto ERR; + } + } + + /* a = a + q */ + if ((res = s_mp_add(a, &q, a)) != MP_OKAY) { + goto ERR; + } + + if (mp_cmp_mag(a, n) != MP_LT) { + s_mp_sub(a, n, a); + goto top; + } + +ERR: + mp_clear(&q); + return res; +} + + +/* determines the setup value */ +int mp_reduce_2k_setup(mp_int *a, mp_digit *d) +{ + int res, p; + mp_int tmp; + + if ((res = mp_init(&tmp)) != MP_OKAY) { + return res; + } + + p = mp_count_bits(a); + if ((res = mp_2expt(&tmp, p)) != MP_OKAY) { + mp_clear(&tmp); + return res; + } + + if ((res = s_mp_sub(&tmp, a, &tmp)) != MP_OKAY) { + mp_clear(&tmp); + return res; + } + + *d = tmp.dp[0]; + mp_clear(&tmp); + return MP_OKAY; +} + + +/* computes a = 2**b + * + * Simple algorithm which zeroes the int, grows it then just sets one bit + * as required. + */ +int +mp_2expt (mp_int * a, int b) +{ + int res; + + /* zero a as per default */ + mp_zero (a); + + /* grow a to accomodate the single bit */ + if ((res = mp_grow (a, b / DIGIT_BIT + 1)) != MP_OKAY) { + return res; + } + + /* set the used count of where the bit will go */ + a->used = b / DIGIT_BIT + 1; + + /* put the single bit in its place */ + a->dp[b / DIGIT_BIT] = ((mp_digit)1) << (b % DIGIT_BIT); + + return MP_OKAY; +} + + +/* multiply by a digit */ +int +mp_mul_d (mp_int * a, mp_digit b, mp_int * c) +{ + mp_digit u, *tmpa, *tmpc; + mp_word r; + int ix, res, olduse; + + /* make sure c is big enough to hold a*b */ + if (c->alloc < a->used + 1) { + if ((res = mp_grow (c, a->used + 1)) != MP_OKAY) { + return res; + } + } + + /* get the original destinations used count */ + olduse = c->used; + + /* set the sign */ + c->sign = a->sign; + + /* alias for a->dp [source] */ + tmpa = a->dp; + + /* alias for c->dp [dest] */ + tmpc = c->dp; + + /* zero carry */ + u = 0; + + /* compute columns */ + for (ix = 0; ix < a->used; ix++) { + /* compute product and carry sum for this term */ + r = ((mp_word) u) + ((mp_word)*tmpa++) * ((mp_word)b); + + /* mask off higher bits to get a single digit */ + *tmpc++ = (mp_digit) (r & ((mp_word) MP_MASK)); + + /* send carry into next iteration */ + u = (mp_digit) (r >> ((mp_word) DIGIT_BIT)); + } + + /* store final carry [if any] and increment ix offset */ + *tmpc++ = u; + ++ix; + + /* now zero digits above the top */ + while (ix++ < olduse) { + *tmpc++ = 0; + } + + /* set used count */ + c->used = a->used + 1; + mp_clamp(c); + + return MP_OKAY; +} + + +/* d = a * b (mod c) */ +int mp_mulmod (mp_int * a, mp_int * b, mp_int * c, mp_int * d) +{ + int res; + mp_int t; + + if ((res = mp_init (&t)) != MP_OKAY) { + return res; + } + + if ((res = mp_mul (a, b, &t)) != MP_OKAY) { + mp_clear (&t); + return res; + } + res = mp_mod (&t, c, d); + mp_clear (&t); + return res; +} + + +/* computes b = a*a */ +int +mp_sqr (mp_int * a, mp_int * b) +{ + int res; + + { +#ifdef BN_FAST_S_MP_SQR_C + /* can we use the fast comba multiplier? */ + if ((a->used * 2 + 1) < MP_WARRAY && + a->used < + (1 << (sizeof(mp_word) * CHAR_BIT - 2*DIGIT_BIT - 1))) { + res = fast_s_mp_sqr (a, b); + } else +#endif +#ifdef BN_S_MP_SQR_C + res = s_mp_sqr (a, b); +#else + res = MP_VAL; +#endif + } + b->sign = MP_ZPOS; + return res; +} + + +/* high level multiplication (handles sign) */ +int mp_mul (mp_int * a, mp_int * b, mp_int * c) +{ + int res, neg; + neg = (a->sign == b->sign) ? MP_ZPOS : MP_NEG; + + { + /* can we use the fast multiplier? + * + * The fast multiplier can be used if the output will + * have less than MP_WARRAY digits and the number of + * digits won't affect carry propagation + */ + int digs = a->used + b->used + 1; + +#ifdef BN_FAST_S_MP_MUL_DIGS_C + if ((digs < MP_WARRAY) && + MIN(a->used, b->used) <= + (1 << ((CHAR_BIT * sizeof (mp_word)) - (2 * DIGIT_BIT)))) { + res = fast_s_mp_mul_digs (a, b, c, digs); + } else +#endif +#ifdef BN_S_MP_MUL_DIGS_C + res = s_mp_mul (a, b, c); /* uses s_mp_mul_digs */ +#else + res = MP_VAL; +#endif + + } + c->sign = (c->used > 0) ? neg : MP_ZPOS; + return res; +} + + +/* b = a*2 */ +int mp_mul_2(mp_int * a, mp_int * b) +{ + int x, res, oldused; + + /* grow to accomodate result */ + if (b->alloc < a->used + 1) { + if ((res = mp_grow (b, a->used + 1)) != MP_OKAY) { + return res; + } + } + + oldused = b->used; + b->used = a->used; + + { + register mp_digit r, rr, *tmpa, *tmpb; + + /* alias for source */ + tmpa = a->dp; + + /* alias for dest */ + tmpb = b->dp; + + /* carry */ + r = 0; + for (x = 0; x < a->used; x++) { + + /* get what will be the *next* carry bit from the + * MSB of the current digit + */ + rr = *tmpa >> ((mp_digit)(DIGIT_BIT - 1)); + + /* now shift up this digit, add in the carry [from the previous] */ + *tmpb++ = ((*tmpa++ << ((mp_digit)1)) | r) & MP_MASK; + + /* copy the carry that would be from the source + * digit into the next iteration + */ + r = rr; + } + + /* new leading digit? */ + if (r != 0) { + /* add a MSB which is always 1 at this point */ + *tmpb = 1; + ++(b->used); + } + + /* now zero any excess digits on the destination + * that we didn't write to + */ + tmpb = b->dp + b->used; + for (x = b->used; x < oldused; x++) { + *tmpb++ = 0; + } + } + b->sign = a->sign; + return MP_OKAY; +} + + +/* divide by three (based on routine from MPI and the GMP manual) */ +int +mp_div_3 (mp_int * a, mp_int *c, mp_digit * d) +{ + mp_int q; + mp_word w, t; + mp_digit b; + int res, ix; + + /* b = 2**DIGIT_BIT / 3 */ + b = (((mp_word)1) << ((mp_word)DIGIT_BIT)) / ((mp_word)3); + + if ((res = mp_init_size(&q, a->used)) != MP_OKAY) { + return res; + } + + q.used = a->used; + q.sign = a->sign; + w = 0; + for (ix = a->used - 1; ix >= 0; ix--) { + w = (w << ((mp_word)DIGIT_BIT)) | ((mp_word)a->dp[ix]); + + if (w >= 3) { + /* multiply w by [1/3] */ + t = (w * ((mp_word)b)) >> ((mp_word)DIGIT_BIT); + + /* now subtract 3 * [w/3] from w, to get the remainder */ + w -= t+t+t; + + /* fixup the remainder as required since + * the optimization is not exact. + */ + while (w >= 3) { + t += 1; + w -= 3; + } + } else { + t = 0; + } + q.dp[ix] = (mp_digit)t; + } + + /* [optional] store the remainder */ + if (d != NULL) { + *d = (mp_digit)w; + } + + /* [optional] store the quotient */ + if (c != NULL) { + mp_clamp(&q); + mp_exch(&q, c); + } + mp_clear(&q); + + return res; +} + + +/* init an mp_init for a given size */ +int mp_init_size (mp_int * a, int size) +{ + int x; + + /* pad size so there are always extra digits */ + size += (MP_PREC * 2) - (size % MP_PREC); + + /* alloc mem */ + a->dp = OPT_CAST(mp_digit) XMALLOC (sizeof (mp_digit) * size, 0, + DYNAMIC_TYPE_BIGINT); + if (a->dp == NULL) { + return MP_MEM; + } + + /* set the members */ + a->used = 0; + a->alloc = size; + a->sign = MP_ZPOS; + + /* zero the digits */ + for (x = 0; x < size; x++) { + a->dp[x] = 0; + } + + return MP_OKAY; +} + + +/* the jist of squaring... + * you do like mult except the offset of the tmpx [one that + * starts closer to zero] can't equal the offset of tmpy. + * So basically you set up iy like before then you min it with + * (ty-tx) so that it never happens. You double all those + * you add in the inner loop + +After that loop you do the squares and add them in. +*/ + +int fast_s_mp_sqr (mp_int * a, mp_int * b) +{ + int olduse, res, pa, ix, iz; +#ifdef CYASSL_SMALL_STACK + mp_digit* W; /* uses dynamic memory and slower */ +#else + mp_digit W[MP_WARRAY]; +#endif + mp_digit *tmpx; + mp_word W1; + + /* grow the destination as required */ + pa = a->used + a->used; + if (b->alloc < pa) { + if ((res = mp_grow (b, pa)) != MP_OKAY) { + return res; + } + } + +#ifdef CYASSL_SMALL_STACK + W = (mp_digit*)XMALLOC(sizeof(mp_digit) * MP_WARRAY, 0, DYNAMIC_TYPE_BIGINT); + if (W == NULL) + return MP_MEM; +#endif + + /* number of output digits to produce */ + W1 = 0; + for (ix = 0; ix < pa; ix++) { + int tx, ty, iy; + mp_word _W; + mp_digit *tmpy; + + /* clear counter */ + _W = 0; + + /* get offsets into the two bignums */ + ty = MIN(a->used-1, ix); + tx = ix - ty; + + /* setup temp aliases */ + tmpx = a->dp + tx; + tmpy = a->dp + ty; + + /* this is the number of times the loop will iterrate, essentially + while (tx++ < a->used && ty-- >= 0) { ... } + */ + iy = MIN(a->used-tx, ty+1); + + /* now for squaring tx can never equal ty + * we halve the distance since they approach at a rate of 2x + * and we have to round because odd cases need to be executed + */ + iy = MIN(iy, (ty-tx+1)>>1); + + /* execute loop */ + for (iz = 0; iz < iy; iz++) { + _W += ((mp_word)*tmpx++)*((mp_word)*tmpy--); + } + + /* double the inner product and add carry */ + _W = _W + _W + W1; + + /* even columns have the square term in them */ + if ((ix&1) == 0) { + _W += ((mp_word)a->dp[ix>>1])*((mp_word)a->dp[ix>>1]); + } + + /* store it */ + W[ix] = (mp_digit)(_W & MP_MASK); + + /* make next carry */ + W1 = _W >> ((mp_word)DIGIT_BIT); + } + + /* setup dest */ + olduse = b->used; + b->used = a->used+a->used; + + { + mp_digit *tmpb; + tmpb = b->dp; + for (ix = 0; ix < pa; ix++) { + *tmpb++ = W[ix] & MP_MASK; + } + + /* clear unused digits [that existed in the old copy of c] */ + for (; ix < olduse; ix++) { + *tmpb++ = 0; + } + } + mp_clamp (b); + +#ifdef CYASSL_SMALL_STACK + XFREE(W, 0, DYNAMIC_TYPE_BIGINT); +#endif + + return MP_OKAY; +} + + +/* Fast (comba) multiplier + * + * This is the fast column-array [comba] multiplier. It is + * designed to compute the columns of the product first + * then handle the carries afterwards. This has the effect + * of making the nested loops that compute the columns very + * simple and schedulable on super-scalar processors. + * + * This has been modified to produce a variable number of + * digits of output so if say only a half-product is required + * you don't have to compute the upper half (a feature + * required for fast Barrett reduction). + * + * Based on Algorithm 14.12 on pp.595 of HAC. + * + */ +int fast_s_mp_mul_digs (mp_int * a, mp_int * b, mp_int * c, int digs) +{ + int olduse, res, pa, ix, iz; +#ifdef CYASSL_SMALL_STACK + mp_digit* W; /* uses dynamic memory and slower */ +#else + mp_digit W[MP_WARRAY]; +#endif + register mp_word _W; + + /* grow the destination as required */ + if (c->alloc < digs) { + if ((res = mp_grow (c, digs)) != MP_OKAY) { + return res; + } + } + + /* number of output digits to produce */ + pa = MIN(digs, a->used + b->used); + +#ifdef CYASSL_SMALL_STACK + W = (mp_digit*)XMALLOC(sizeof(mp_digit) * MP_WARRAY, 0, DYNAMIC_TYPE_BIGINT); + if (W == NULL) + return MP_MEM; +#endif + + /* clear the carry */ + _W = 0; + for (ix = 0; ix < pa; ix++) { + int tx, ty; + int iy; + mp_digit *tmpx, *tmpy; + + /* get offsets into the two bignums */ + ty = MIN(b->used-1, ix); + tx = ix - ty; + + /* setup temp aliases */ + tmpx = a->dp + tx; + tmpy = b->dp + ty; + + /* this is the number of times the loop will iterrate, essentially + while (tx++ < a->used && ty-- >= 0) { ... } + */ + iy = MIN(a->used-tx, ty+1); + + /* execute loop */ + for (iz = 0; iz < iy; ++iz) { + _W += ((mp_word)*tmpx++)*((mp_word)*tmpy--); + + } + + /* store term */ + W[ix] = ((mp_digit)_W) & MP_MASK; + + /* make next carry */ + _W = _W >> ((mp_word)DIGIT_BIT); + } + + /* setup dest */ + olduse = c->used; + c->used = pa; + + { + register mp_digit *tmpc; + tmpc = c->dp; + for (ix = 0; ix < pa+1; ix++) { + /* now extract the previous digit [below the carry] */ + *tmpc++ = W[ix]; + } + + /* clear unused digits [that existed in the old copy of c] */ + for (; ix < olduse; ix++) { + *tmpc++ = 0; + } + } + mp_clamp (c); + +#ifdef CYASSL_SMALL_STACK + XFREE(W, 0, DYNAMIC_TYPE_BIGINT); +#endif + + return MP_OKAY; +} + + +/* low level squaring, b = a*a, HAC pp.596-597, Algorithm 14.16 */ +int s_mp_sqr (mp_int * a, mp_int * b) +{ + mp_int t; + int res, ix, iy, pa; + mp_word r; + mp_digit u, tmpx, *tmpt; + + pa = a->used; + if ((res = mp_init_size (&t, 2*pa + 1)) != MP_OKAY) { + return res; + } + + /* default used is maximum possible size */ + t.used = 2*pa + 1; + + for (ix = 0; ix < pa; ix++) { + /* first calculate the digit at 2*ix */ + /* calculate double precision result */ + r = ((mp_word) t.dp[2*ix]) + + ((mp_word)a->dp[ix])*((mp_word)a->dp[ix]); + + /* store lower part in result */ + t.dp[ix+ix] = (mp_digit) (r & ((mp_word) MP_MASK)); + + /* get the carry */ + u = (mp_digit)(r >> ((mp_word) DIGIT_BIT)); + + /* left hand side of A[ix] * A[iy] */ + tmpx = a->dp[ix]; + + /* alias for where to store the results */ + tmpt = t.dp + (2*ix + 1); + + for (iy = ix + 1; iy < pa; iy++) { + /* first calculate the product */ + r = ((mp_word)tmpx) * ((mp_word)a->dp[iy]); + + /* now calculate the double precision result, note we use + * addition instead of *2 since it's easier to optimize + */ + r = ((mp_word) *tmpt) + r + r + ((mp_word) u); + + /* store lower part */ + *tmpt++ = (mp_digit) (r & ((mp_word) MP_MASK)); + + /* get carry */ + u = (mp_digit)(r >> ((mp_word) DIGIT_BIT)); + } + /* propagate upwards */ + while (u != ((mp_digit) 0)) { + r = ((mp_word) *tmpt) + ((mp_word) u); + *tmpt++ = (mp_digit) (r & ((mp_word) MP_MASK)); + u = (mp_digit)(r >> ((mp_word) DIGIT_BIT)); + } + } + + mp_clamp (&t); + mp_exch (&t, b); + mp_clear (&t); + return MP_OKAY; +} + + +/* multiplies |a| * |b| and only computes upto digs digits of result + * HAC pp. 595, Algorithm 14.12 Modified so you can control how + * many digits of output are created. + */ +int s_mp_mul_digs (mp_int * a, mp_int * b, mp_int * c, int digs) +{ + mp_int t; + int res, pa, pb, ix, iy; + mp_digit u; + mp_word r; + mp_digit tmpx, *tmpt, *tmpy; + + /* can we use the fast multiplier? */ + if (((digs) < MP_WARRAY) && + MIN (a->used, b->used) < + (1 << ((CHAR_BIT * sizeof (mp_word)) - (2 * DIGIT_BIT)))) { + return fast_s_mp_mul_digs (a, b, c, digs); + } + + if ((res = mp_init_size (&t, digs)) != MP_OKAY) { + return res; + } + t.used = digs; + + /* compute the digits of the product directly */ + pa = a->used; + for (ix = 0; ix < pa; ix++) { + /* set the carry to zero */ + u = 0; + + /* limit ourselves to making digs digits of output */ + pb = MIN (b->used, digs - ix); + + /* setup some aliases */ + /* copy of the digit from a used within the nested loop */ + tmpx = a->dp[ix]; + + /* an alias for the destination shifted ix places */ + tmpt = t.dp + ix; + + /* an alias for the digits of b */ + tmpy = b->dp; + + /* compute the columns of the output and propagate the carry */ + for (iy = 0; iy < pb; iy++) { + /* compute the column as a mp_word */ + r = ((mp_word)*tmpt) + + ((mp_word)tmpx) * ((mp_word)*tmpy++) + + ((mp_word) u); + + /* the new column is the lower part of the result */ + *tmpt++ = (mp_digit) (r & ((mp_word) MP_MASK)); + + /* get the carry word from the result */ + u = (mp_digit) (r >> ((mp_word) DIGIT_BIT)); + } + /* set carry if it is placed below digs */ + if (ix + iy < digs) { + *tmpt = u; + } + } + + mp_clamp (&t); + mp_exch (&t, c); + + mp_clear (&t); + return MP_OKAY; +} + + +/* + * shifts with subtractions when the result is greater than b. + * + * The method is slightly modified to shift B unconditionally upto just under + * the leading bit of b. This saves alot of multiple precision shifting. + */ +int mp_montgomery_calc_normalization (mp_int * a, mp_int * b) +{ + int x, bits, res; + + /* how many bits of last digit does b use */ + bits = mp_count_bits (b) % DIGIT_BIT; + + if (b->used > 1) { + if ((res = mp_2expt (a, (b->used - 1) * DIGIT_BIT + bits - 1)) != MP_OKAY) { + return res; + } + } else { + mp_set(a, 1); + bits = 1; + } + + + /* now compute C = A * B mod b */ + for (x = bits - 1; x < (int)DIGIT_BIT; x++) { + if ((res = mp_mul_2 (a, a)) != MP_OKAY) { + return res; + } + if (mp_cmp_mag (a, b) != MP_LT) { + if ((res = s_mp_sub (a, b, a)) != MP_OKAY) { + return res; + } + } + } + + return MP_OKAY; +} + + +#ifdef MP_LOW_MEM + #define TAB_SIZE 32 +#else + #define TAB_SIZE 256 +#endif + +int s_mp_exptmod (mp_int * G, mp_int * X, mp_int * P, mp_int * Y, int redmode) +{ + mp_int M[TAB_SIZE], res, mu; + mp_digit buf; + int err, bitbuf, bitcpy, bitcnt, mode, digidx, x, y, winsize; + int (*redux)(mp_int*,mp_int*,mp_int*); + + /* find window size */ + x = mp_count_bits (X); + if (x <= 7) { + winsize = 2; + } else if (x <= 36) { + winsize = 3; + } else if (x <= 140) { + winsize = 4; + } else if (x <= 450) { + winsize = 5; + } else if (x <= 1303) { + winsize = 6; + } else if (x <= 3529) { + winsize = 7; + } else { + winsize = 8; + } + +#ifdef MP_LOW_MEM + if (winsize > 5) { + winsize = 5; + } +#endif + + /* init M array */ + /* init first cell */ + if ((err = mp_init(&M[1])) != MP_OKAY) { + return err; + } + + /* now init the second half of the array */ + for (x = 1<<(winsize-1); x < (1 << winsize); x++) { + if ((err = mp_init(&M[x])) != MP_OKAY) { + for (y = 1<<(winsize-1); y < x; y++) { + mp_clear (&M[y]); + } + mp_clear(&M[1]); + return err; + } + } + + /* create mu, used for Barrett reduction */ + if ((err = mp_init (&mu)) != MP_OKAY) { + goto LBL_M; + } + + if (redmode == 0) { + if ((err = mp_reduce_setup (&mu, P)) != MP_OKAY) { + goto LBL_MU; + } + redux = mp_reduce; + } else { + if ((err = mp_reduce_2k_setup_l (P, &mu)) != MP_OKAY) { + goto LBL_MU; + } + redux = mp_reduce_2k_l; + } + + /* create M table + * + * The M table contains powers of the base, + * e.g. M[x] = G**x mod P + * + * The first half of the table is not + * computed though accept for M[0] and M[1] + */ + if ((err = mp_mod (G, P, &M[1])) != MP_OKAY) { + goto LBL_MU; + } + + /* compute the value at M[1<<(winsize-1)] by squaring + * M[1] (winsize-1) times + */ + if ((err = mp_copy (&M[1], &M[1 << (winsize - 1)])) != MP_OKAY) { + goto LBL_MU; + } + + for (x = 0; x < (winsize - 1); x++) { + /* square it */ + if ((err = mp_sqr (&M[1 << (winsize - 1)], + &M[1 << (winsize - 1)])) != MP_OKAY) { + goto LBL_MU; + } + + /* reduce modulo P */ + if ((err = redux (&M[1 << (winsize - 1)], P, &mu)) != MP_OKAY) { + goto LBL_MU; + } + } + + /* create upper table, that is M[x] = M[x-1] * M[1] (mod P) + * for x = (2**(winsize - 1) + 1) to (2**winsize - 1) + */ + for (x = (1 << (winsize - 1)) + 1; x < (1 << winsize); x++) { + if ((err = mp_mul (&M[x - 1], &M[1], &M[x])) != MP_OKAY) { + goto LBL_MU; + } + if ((err = redux (&M[x], P, &mu)) != MP_OKAY) { + goto LBL_MU; + } + } + + /* setup result */ + if ((err = mp_init (&res)) != MP_OKAY) { + goto LBL_MU; + } + mp_set (&res, 1); + + /* set initial mode and bit cnt */ + mode = 0; + bitcnt = 1; + buf = 0; + digidx = X->used - 1; + bitcpy = 0; + bitbuf = 0; + + for (;;) { + /* grab next digit as required */ + if (--bitcnt == 0) { + /* if digidx == -1 we are out of digits */ + if (digidx == -1) { + break; + } + /* read next digit and reset the bitcnt */ + buf = X->dp[digidx--]; + bitcnt = (int) DIGIT_BIT; + } + + /* grab the next msb from the exponent */ + y = (buf >> (mp_digit)(DIGIT_BIT - 1)) & 1; + buf <<= (mp_digit)1; + + /* if the bit is zero and mode == 0 then we ignore it + * These represent the leading zero bits before the first 1 bit + * in the exponent. Technically this opt is not required but it + * does lower the # of trivial squaring/reductions used + */ + if (mode == 0 && y == 0) { + continue; + } + + /* if the bit is zero and mode == 1 then we square */ + if (mode == 1 && y == 0) { + if ((err = mp_sqr (&res, &res)) != MP_OKAY) { + goto LBL_RES; + } + if ((err = redux (&res, P, &mu)) != MP_OKAY) { + goto LBL_RES; + } + continue; + } + + /* else we add it to the window */ + bitbuf |= (y << (winsize - ++bitcpy)); + mode = 2; + + if (bitcpy == winsize) { + /* ok window is filled so square as required and multiply */ + /* square first */ + for (x = 0; x < winsize; x++) { + if ((err = mp_sqr (&res, &res)) != MP_OKAY) { + goto LBL_RES; + } + if ((err = redux (&res, P, &mu)) != MP_OKAY) { + goto LBL_RES; + } + } + + /* then multiply */ + if ((err = mp_mul (&res, &M[bitbuf], &res)) != MP_OKAY) { + goto LBL_RES; + } + if ((err = redux (&res, P, &mu)) != MP_OKAY) { + goto LBL_RES; + } + + /* empty window and reset */ + bitcpy = 0; + bitbuf = 0; + mode = 1; + } + } + + /* if bits remain then square/multiply */ + if (mode == 2 && bitcpy > 0) { + /* square then multiply if the bit is set */ + for (x = 0; x < bitcpy; x++) { + if ((err = mp_sqr (&res, &res)) != MP_OKAY) { + goto LBL_RES; + } + if ((err = redux (&res, P, &mu)) != MP_OKAY) { + goto LBL_RES; + } + + bitbuf <<= 1; + if ((bitbuf & (1 << winsize)) != 0) { + /* then multiply */ + if ((err = mp_mul (&res, &M[1], &res)) != MP_OKAY) { + goto LBL_RES; + } + if ((err = redux (&res, P, &mu)) != MP_OKAY) { + goto LBL_RES; + } + } + } + } + + mp_exch (&res, Y); + err = MP_OKAY; +LBL_RES:mp_clear (&res); +LBL_MU:mp_clear (&mu); +LBL_M: + mp_clear(&M[1]); + for (x = 1<<(winsize-1); x < (1 << winsize); x++) { + mp_clear (&M[x]); + } + return err; +} + + +/* pre-calculate the value required for Barrett reduction + * For a given modulus "b" it calulates the value required in "a" + */ +int mp_reduce_setup (mp_int * a, mp_int * b) +{ + int res; + + if ((res = mp_2expt (a, b->used * 2 * DIGIT_BIT)) != MP_OKAY) { + return res; + } + return mp_div (a, b, a, NULL); +} + + +/* reduces x mod m, assumes 0 < x < m**2, mu is + * precomputed via mp_reduce_setup. + * From HAC pp.604 Algorithm 14.42 + */ +int mp_reduce (mp_int * x, mp_int * m, mp_int * mu) +{ + mp_int q; + int res, um = m->used; + + /* q = x */ + if ((res = mp_init_copy (&q, x)) != MP_OKAY) { + return res; + } + + /* q1 = x / b**(k-1) */ + mp_rshd (&q, um - 1); + + /* according to HAC this optimization is ok */ + if (((unsigned long) um) > (((mp_digit)1) << (DIGIT_BIT - 1))) { + if ((res = mp_mul (&q, mu, &q)) != MP_OKAY) { + goto CLEANUP; + } + } else { +#ifdef BN_S_MP_MUL_HIGH_DIGS_C + if ((res = s_mp_mul_high_digs (&q, mu, &q, um)) != MP_OKAY) { + goto CLEANUP; + } +#elif defined(BN_FAST_S_MP_MUL_HIGH_DIGS_C) + if ((res = fast_s_mp_mul_high_digs (&q, mu, &q, um)) != MP_OKAY) { + goto CLEANUP; + } +#else + { + res = MP_VAL; + goto CLEANUP; + } +#endif + } + + /* q3 = q2 / b**(k+1) */ + mp_rshd (&q, um + 1); + + /* x = x mod b**(k+1), quick (no division) */ + if ((res = mp_mod_2d (x, DIGIT_BIT * (um + 1), x)) != MP_OKAY) { + goto CLEANUP; + } + + /* q = q * m mod b**(k+1), quick (no division) */ + if ((res = s_mp_mul_digs (&q, m, &q, um + 1)) != MP_OKAY) { + goto CLEANUP; + } + + /* x = x - q */ + if ((res = mp_sub (x, &q, x)) != MP_OKAY) { + goto CLEANUP; + } + + /* If x < 0, add b**(k+1) to it */ + if (mp_cmp_d (x, 0) == MP_LT) { + mp_set (&q, 1); + if ((res = mp_lshd (&q, um + 1)) != MP_OKAY) + goto CLEANUP; + if ((res = mp_add (x, &q, x)) != MP_OKAY) + goto CLEANUP; + } + + /* Back off if it's too big */ + while (mp_cmp (x, m) != MP_LT) { + if ((res = s_mp_sub (x, m, x)) != MP_OKAY) { + goto CLEANUP; + } + } + +CLEANUP: + mp_clear (&q); + + return res; +} + + +/* reduces a modulo n where n is of the form 2**p - d + This differs from reduce_2k since "d" can be larger + than a single digit. +*/ +int mp_reduce_2k_l(mp_int *a, mp_int *n, mp_int *d) +{ + mp_int q; + int p, res; + + if ((res = mp_init(&q)) != MP_OKAY) { + return res; + } + + p = mp_count_bits(n); +top: + /* q = a/2**p, a = a mod 2**p */ + if ((res = mp_div_2d(a, p, &q, a)) != MP_OKAY) { + goto ERR; + } + + /* q = q * d */ + if ((res = mp_mul(&q, d, &q)) != MP_OKAY) { + goto ERR; + } + + /* a = a + q */ + if ((res = s_mp_add(a, &q, a)) != MP_OKAY) { + goto ERR; + } + + if (mp_cmp_mag(a, n) != MP_LT) { + s_mp_sub(a, n, a); + goto top; + } + +ERR: + mp_clear(&q); + return res; +} + + +/* determines the setup value */ +int mp_reduce_2k_setup_l(mp_int *a, mp_int *d) +{ + int res; + mp_int tmp; + + if ((res = mp_init(&tmp)) != MP_OKAY) { + return res; + } + + if ((res = mp_2expt(&tmp, mp_count_bits(a))) != MP_OKAY) { + goto ERR; + } + + if ((res = s_mp_sub(&tmp, a, d)) != MP_OKAY) { + goto ERR; + } + +ERR: + mp_clear(&tmp); + return res; +} + + +/* multiplies |a| * |b| and does not compute the lower digs digits + * [meant to get the higher part of the product] + */ +int +s_mp_mul_high_digs (mp_int * a, mp_int * b, mp_int * c, int digs) +{ + mp_int t; + int res, pa, pb, ix, iy; + mp_digit u; + mp_word r; + mp_digit tmpx, *tmpt, *tmpy; + + /* can we use the fast multiplier? */ +#ifdef BN_FAST_S_MP_MUL_HIGH_DIGS_C + if (((a->used + b->used + 1) < MP_WARRAY) + && MIN (a->used, b->used) < (1 << ((CHAR_BIT * sizeof (mp_word)) - (2 * DIGIT_BIT)))) { + return fast_s_mp_mul_high_digs (a, b, c, digs); + } +#endif + + if ((res = mp_init_size (&t, a->used + b->used + 1)) != MP_OKAY) { + return res; + } + t.used = a->used + b->used + 1; + + pa = a->used; + pb = b->used; + for (ix = 0; ix < pa; ix++) { + /* clear the carry */ + u = 0; + + /* left hand side of A[ix] * B[iy] */ + tmpx = a->dp[ix]; + + /* alias to the address of where the digits will be stored */ + tmpt = &(t.dp[digs]); + + /* alias for where to read the right hand side from */ + tmpy = b->dp + (digs - ix); + + for (iy = digs - ix; iy < pb; iy++) { + /* calculate the double precision result */ + r = ((mp_word)*tmpt) + + ((mp_word)tmpx) * ((mp_word)*tmpy++) + + ((mp_word) u); + + /* get the lower part */ + *tmpt++ = (mp_digit) (r & ((mp_word) MP_MASK)); + + /* carry the carry */ + u = (mp_digit) (r >> ((mp_word) DIGIT_BIT)); + } + *tmpt = u; + } + mp_clamp (&t); + mp_exch (&t, c); + mp_clear (&t); + return MP_OKAY; +} + + +/* this is a modified version of fast_s_mul_digs that only produces + * output digits *above* digs. See the comments for fast_s_mul_digs + * to see how it works. + * + * This is used in the Barrett reduction since for one of the multiplications + * only the higher digits were needed. This essentially halves the work. + * + * Based on Algorithm 14.12 on pp.595 of HAC. + */ +int fast_s_mp_mul_high_digs (mp_int * a, mp_int * b, mp_int * c, int digs) +{ + int olduse, res, pa, ix, iz; +#ifdef CYASSL_SMALL_STACK + mp_digit* W; /* uses dynamic memory and slower */ +#else + mp_digit W[MP_WARRAY]; +#endif + mp_word _W; + + /* grow the destination as required */ + pa = a->used + b->used; + if (c->alloc < pa) { + if ((res = mp_grow (c, pa)) != MP_OKAY) { + return res; + } + } + +#ifdef CYASSL_SMALL_STACK + W = (mp_digit*)XMALLOC(sizeof(mp_digit) * MP_WARRAY, 0, DYNAMIC_TYPE_BIGINT); + if (W == NULL) + return MP_MEM; +#endif + + /* number of output digits to produce */ + pa = a->used + b->used; + _W = 0; + for (ix = digs; ix < pa; ix++) { + int tx, ty, iy; + mp_digit *tmpx, *tmpy; + + /* get offsets into the two bignums */ + ty = MIN(b->used-1, ix); + tx = ix - ty; + + /* setup temp aliases */ + tmpx = a->dp + tx; + tmpy = b->dp + ty; + + /* this is the number of times the loop will iterrate, essentially its + while (tx++ < a->used && ty-- >= 0) { ... } + */ + iy = MIN(a->used-tx, ty+1); + + /* execute loop */ + for (iz = 0; iz < iy; iz++) { + _W += ((mp_word)*tmpx++)*((mp_word)*tmpy--); + } + + /* store term */ + W[ix] = ((mp_digit)_W) & MP_MASK; + + /* make next carry */ + _W = _W >> ((mp_word)DIGIT_BIT); + } + + /* setup dest */ + olduse = c->used; + c->used = pa; + + { + register mp_digit *tmpc; + + tmpc = c->dp + digs; + for (ix = digs; ix <= pa; ix++) { + /* now extract the previous digit [below the carry] */ + *tmpc++ = W[ix]; + } + + /* clear unused digits [that existed in the old copy of c] */ + for (; ix < olduse; ix++) { + *tmpc++ = 0; + } + } + mp_clamp (c); + +#ifdef CYASSL_SMALL_STACK + XFREE(W, 0, DYNAMIC_TYPE_BIGINT); +#endif + + return MP_OKAY; +} + + +/* set a 32-bit const */ +int mp_set_int (mp_int * a, unsigned long b) +{ + int x, res; + + mp_zero (a); + + /* set four bits at a time */ + for (x = 0; x < 8; x++) { + /* shift the number up four bits */ + if ((res = mp_mul_2d (a, 4, a)) != MP_OKAY) { + return res; + } + + /* OR in the top four bits of the source */ + a->dp[0] |= (b >> 28) & 15; + + /* shift the source up to the next four bits */ + b <<= 4; + + /* ensure that digits are not clamped off */ + a->used += 1; + } + mp_clamp (a); + return MP_OKAY; +} + + +#if defined(CYASSL_KEY_GEN) || defined(HAVE_ECC) + +/* c = a * a (mod b) */ +int mp_sqrmod (mp_int * a, mp_int * b, mp_int * c) +{ + int res; + mp_int t; + + if ((res = mp_init (&t)) != MP_OKAY) { + return res; + } + + if ((res = mp_sqr (a, &t)) != MP_OKAY) { + mp_clear (&t); + return res; + } + res = mp_mod (&t, b, c); + mp_clear (&t); + return res; +} + +#endif + + +#if defined(CYASSL_KEY_GEN) || defined(HAVE_ECC) || !defined(NO_PWDBASED) + +/* single digit addition */ +int mp_add_d (mp_int* a, mp_digit b, mp_int* c) +{ + int res, ix, oldused; + mp_digit *tmpa, *tmpc, mu; + + /* grow c as required */ + if (c->alloc < a->used + 1) { + if ((res = mp_grow(c, a->used + 1)) != MP_OKAY) { + return res; + } + } + + /* if a is negative and |a| >= b, call c = |a| - b */ + if (a->sign == MP_NEG && (a->used > 1 || a->dp[0] >= b)) { + /* temporarily fix sign of a */ + a->sign = MP_ZPOS; + + /* c = |a| - b */ + res = mp_sub_d(a, b, c); + + /* fix sign */ + a->sign = c->sign = MP_NEG; + + /* clamp */ + mp_clamp(c); + + return res; + } + + /* old number of used digits in c */ + oldused = c->used; + + /* sign always positive */ + c->sign = MP_ZPOS; + + /* source alias */ + tmpa = a->dp; + + /* destination alias */ + tmpc = c->dp; + + /* if a is positive */ + if (a->sign == MP_ZPOS) { + /* add digit, after this we're propagating + * the carry. + */ + *tmpc = *tmpa++ + b; + mu = *tmpc >> DIGIT_BIT; + *tmpc++ &= MP_MASK; + + /* now handle rest of the digits */ + for (ix = 1; ix < a->used; ix++) { + *tmpc = *tmpa++ + mu; + mu = *tmpc >> DIGIT_BIT; + *tmpc++ &= MP_MASK; + } + /* set final carry */ + ix++; + *tmpc++ = mu; + + /* setup size */ + c->used = a->used + 1; + } else { + /* a was negative and |a| < b */ + c->used = 1; + + /* the result is a single digit */ + if (a->used == 1) { + *tmpc++ = b - a->dp[0]; + } else { + *tmpc++ = b; + } + + /* setup count so the clearing of oldused + * can fall through correctly + */ + ix = 1; + } + + /* now zero to oldused */ + while (ix++ < oldused) { + *tmpc++ = 0; + } + mp_clamp(c); + + return MP_OKAY; +} + + +/* single digit subtraction */ +int mp_sub_d (mp_int * a, mp_digit b, mp_int * c) +{ + mp_digit *tmpa, *tmpc, mu; + int res, ix, oldused; + + /* grow c as required */ + if (c->alloc < a->used + 1) { + if ((res = mp_grow(c, a->used + 1)) != MP_OKAY) { + return res; + } + } + + /* if a is negative just do an unsigned + * addition [with fudged signs] + */ + if (a->sign == MP_NEG) { + a->sign = MP_ZPOS; + res = mp_add_d(a, b, c); + a->sign = c->sign = MP_NEG; + + /* clamp */ + mp_clamp(c); + + return res; + } + + /* setup regs */ + oldused = c->used; + tmpa = a->dp; + tmpc = c->dp; + + /* if a <= b simply fix the single digit */ + if ((a->used == 1 && a->dp[0] <= b) || a->used == 0) { + if (a->used == 1) { + *tmpc++ = b - *tmpa; + } else { + *tmpc++ = b; + } + ix = 1; + + /* negative/1digit */ + c->sign = MP_NEG; + c->used = 1; + } else { + /* positive/size */ + c->sign = MP_ZPOS; + c->used = a->used; + + /* subtract first digit */ + *tmpc = *tmpa++ - b; + mu = *tmpc >> (sizeof(mp_digit) * CHAR_BIT - 1); + *tmpc++ &= MP_MASK; + + /* handle rest of the digits */ + for (ix = 1; ix < a->used; ix++) { + *tmpc = *tmpa++ - mu; + mu = *tmpc >> (sizeof(mp_digit) * CHAR_BIT - 1); + *tmpc++ &= MP_MASK; + } + } + + /* zero excess digits */ + while (ix++ < oldused) { + *tmpc++ = 0; + } + mp_clamp(c); + return MP_OKAY; +} + +#endif /* CYASSL_KEY_GEN || HAVE_ECC */ + + +#ifdef CYASSL_KEY_GEN + +int mp_cnt_lsb(mp_int *a); + +static int s_is_power_of_two(mp_digit b, int *p) +{ + int x; + + /* fast return if no power of two */ + if ((b==0) || (b & (b-1))) { + return 0; + } + + for (x = 0; x < DIGIT_BIT; x++) { + if (b == (((mp_digit)1)<dp[0] & ((((mp_digit)1)<used)) != MP_OKAY) { + return res; + } + + q.used = a->used; + q.sign = a->sign; + w = 0; + for (ix = a->used - 1; ix >= 0; ix--) { + w = (w << ((mp_word)DIGIT_BIT)) | ((mp_word)a->dp[ix]); + + if (w >= b) { + t = (mp_digit)(w / b); + w -= ((mp_word)t) * ((mp_word)b); + } else { + t = 0; + } + q.dp[ix] = (mp_digit)t; + } + + if (d != NULL) { + *d = (mp_digit)w; + } + + if (c != NULL) { + mp_clamp(&q); + mp_exch(&q, c); + } + mp_clear(&q); + + return res; +} + + +static int mp_mod_d (mp_int * a, mp_digit b, mp_digit * c) +{ + return mp_div_d(a, b, NULL, c); +} + + +const mp_digit ltm_prime_tab[] = { + 0x0002, 0x0003, 0x0005, 0x0007, 0x000B, 0x000D, 0x0011, 0x0013, + 0x0017, 0x001D, 0x001F, 0x0025, 0x0029, 0x002B, 0x002F, 0x0035, + 0x003B, 0x003D, 0x0043, 0x0047, 0x0049, 0x004F, 0x0053, 0x0059, + 0x0061, 0x0065, 0x0067, 0x006B, 0x006D, 0x0071, 0x007F, +#ifndef MP_8BIT + 0x0083, + 0x0089, 0x008B, 0x0095, 0x0097, 0x009D, 0x00A3, 0x00A7, 0x00AD, + 0x00B3, 0x00B5, 0x00BF, 0x00C1, 0x00C5, 0x00C7, 0x00D3, 0x00DF, + 0x00E3, 0x00E5, 0x00E9, 0x00EF, 0x00F1, 0x00FB, 0x0101, 0x0107, + 0x010D, 0x010F, 0x0115, 0x0119, 0x011B, 0x0125, 0x0133, 0x0137, + + 0x0139, 0x013D, 0x014B, 0x0151, 0x015B, 0x015D, 0x0161, 0x0167, + 0x016F, 0x0175, 0x017B, 0x017F, 0x0185, 0x018D, 0x0191, 0x0199, + 0x01A3, 0x01A5, 0x01AF, 0x01B1, 0x01B7, 0x01BB, 0x01C1, 0x01C9, + 0x01CD, 0x01CF, 0x01D3, 0x01DF, 0x01E7, 0x01EB, 0x01F3, 0x01F7, + 0x01FD, 0x0209, 0x020B, 0x021D, 0x0223, 0x022D, 0x0233, 0x0239, + 0x023B, 0x0241, 0x024B, 0x0251, 0x0257, 0x0259, 0x025F, 0x0265, + 0x0269, 0x026B, 0x0277, 0x0281, 0x0283, 0x0287, 0x028D, 0x0293, + 0x0295, 0x02A1, 0x02A5, 0x02AB, 0x02B3, 0x02BD, 0x02C5, 0x02CF, + + 0x02D7, 0x02DD, 0x02E3, 0x02E7, 0x02EF, 0x02F5, 0x02F9, 0x0301, + 0x0305, 0x0313, 0x031D, 0x0329, 0x032B, 0x0335, 0x0337, 0x033B, + 0x033D, 0x0347, 0x0355, 0x0359, 0x035B, 0x035F, 0x036D, 0x0371, + 0x0373, 0x0377, 0x038B, 0x038F, 0x0397, 0x03A1, 0x03A9, 0x03AD, + 0x03B3, 0x03B9, 0x03C7, 0x03CB, 0x03D1, 0x03D7, 0x03DF, 0x03E5, + 0x03F1, 0x03F5, 0x03FB, 0x03FD, 0x0407, 0x0409, 0x040F, 0x0419, + 0x041B, 0x0425, 0x0427, 0x042D, 0x043F, 0x0443, 0x0445, 0x0449, + 0x044F, 0x0455, 0x045D, 0x0463, 0x0469, 0x047F, 0x0481, 0x048B, + + 0x0493, 0x049D, 0x04A3, 0x04A9, 0x04B1, 0x04BD, 0x04C1, 0x04C7, + 0x04CD, 0x04CF, 0x04D5, 0x04E1, 0x04EB, 0x04FD, 0x04FF, 0x0503, + 0x0509, 0x050B, 0x0511, 0x0515, 0x0517, 0x051B, 0x0527, 0x0529, + 0x052F, 0x0551, 0x0557, 0x055D, 0x0565, 0x0577, 0x0581, 0x058F, + 0x0593, 0x0595, 0x0599, 0x059F, 0x05A7, 0x05AB, 0x05AD, 0x05B3, + 0x05BF, 0x05C9, 0x05CB, 0x05CF, 0x05D1, 0x05D5, 0x05DB, 0x05E7, + 0x05F3, 0x05FB, 0x0607, 0x060D, 0x0611, 0x0617, 0x061F, 0x0623, + 0x062B, 0x062F, 0x063D, 0x0641, 0x0647, 0x0649, 0x064D, 0x0653 +#endif +}; + + +/* Miller-Rabin test of "a" to the base of "b" as described in + * HAC pp. 139 Algorithm 4.24 + * + * Sets result to 0 if definitely composite or 1 if probably prime. + * Randomly the chance of error is no more than 1/4 and often + * very much lower. + */ +static int mp_prime_miller_rabin (mp_int * a, mp_int * b, int *result) +{ + mp_int n1, y, r; + int s, j, err; + + /* default */ + *result = MP_NO; + + /* ensure b > 1 */ + if (mp_cmp_d(b, 1) != MP_GT) { + return MP_VAL; + } + + /* get n1 = a - 1 */ + if ((err = mp_init_copy (&n1, a)) != MP_OKAY) { + return err; + } + if ((err = mp_sub_d (&n1, 1, &n1)) != MP_OKAY) { + goto LBL_N1; + } + + /* set 2**s * r = n1 */ + if ((err = mp_init_copy (&r, &n1)) != MP_OKAY) { + goto LBL_N1; + } + + /* count the number of least significant bits + * which are zero + */ + s = mp_cnt_lsb(&r); + + /* now divide n - 1 by 2**s */ + if ((err = mp_div_2d (&r, s, &r, NULL)) != MP_OKAY) { + goto LBL_R; + } + + /* compute y = b**r mod a */ + if ((err = mp_init (&y)) != MP_OKAY) { + goto LBL_R; + } + if ((err = mp_exptmod (b, &r, a, &y)) != MP_OKAY) { + goto LBL_Y; + } + + /* if y != 1 and y != n1 do */ + if (mp_cmp_d (&y, 1) != MP_EQ && mp_cmp (&y, &n1) != MP_EQ) { + j = 1; + /* while j <= s-1 and y != n1 */ + while ((j <= (s - 1)) && mp_cmp (&y, &n1) != MP_EQ) { + if ((err = mp_sqrmod (&y, a, &y)) != MP_OKAY) { + goto LBL_Y; + } + + /* if y == 1 then composite */ + if (mp_cmp_d (&y, 1) == MP_EQ) { + goto LBL_Y; + } + + ++j; + } + + /* if y != n1 then composite */ + if (mp_cmp (&y, &n1) != MP_EQ) { + goto LBL_Y; + } + } + + /* probably prime now */ + *result = MP_YES; +LBL_Y:mp_clear (&y); +LBL_R:mp_clear (&r); +LBL_N1:mp_clear (&n1); + return err; +} + + +/* determines if an integers is divisible by one + * of the first PRIME_SIZE primes or not + * + * sets result to 0 if not, 1 if yes + */ +static int mp_prime_is_divisible (mp_int * a, int *result) +{ + int err, ix; + mp_digit res; + + /* default to not */ + *result = MP_NO; + + for (ix = 0; ix < PRIME_SIZE; ix++) { + /* what is a mod LBL_prime_tab[ix] */ + if ((err = mp_mod_d (a, ltm_prime_tab[ix], &res)) != MP_OKAY) { + return err; + } + + /* is the residue zero? */ + if (res == 0) { + *result = MP_YES; + return MP_OKAY; + } + } + + return MP_OKAY; +} + + +/* + * Sets result to 1 if probably prime, 0 otherwise + */ +int mp_prime_is_prime (mp_int * a, int t, int *result) +{ + mp_int b; + int ix, err, res; + + /* default to no */ + *result = MP_NO; + + /* valid value of t? */ + if (t <= 0 || t > PRIME_SIZE) { + return MP_VAL; + } + + /* is the input equal to one of the primes in the table? */ + for (ix = 0; ix < PRIME_SIZE; ix++) { + if (mp_cmp_d(a, ltm_prime_tab[ix]) == MP_EQ) { + *result = 1; + return MP_OKAY; + } + } + + /* first perform trial division */ + if ((err = mp_prime_is_divisible (a, &res)) != MP_OKAY) { + return err; + } + + /* return if it was trivially divisible */ + if (res == MP_YES) { + return MP_OKAY; + } + + /* now perform the miller-rabin rounds */ + if ((err = mp_init (&b)) != MP_OKAY) { + return err; + } + + for (ix = 0; ix < t; ix++) { + /* set the prime */ + mp_set (&b, ltm_prime_tab[ix]); + + if ((err = mp_prime_miller_rabin (a, &b, &res)) != MP_OKAY) { + goto LBL_B; + } + + if (res == MP_NO) { + goto LBL_B; + } + } + + /* passed the test */ + *result = MP_YES; +LBL_B:mp_clear (&b); + return err; +} + + +/* computes least common multiple as |a*b|/(a, b) */ +int mp_lcm (mp_int * a, mp_int * b, mp_int * c) +{ + int res; + mp_int t1, t2; + + + if ((res = mp_init_multi (&t1, &t2, NULL, NULL, NULL, NULL)) != MP_OKAY) { + return res; + } + + /* t1 = get the GCD of the two inputs */ + if ((res = mp_gcd (a, b, &t1)) != MP_OKAY) { + goto LBL_T; + } + + /* divide the smallest by the GCD */ + if (mp_cmp_mag(a, b) == MP_LT) { + /* store quotient in t2 such that t2 * b is the LCM */ + if ((res = mp_div(a, &t1, &t2, NULL)) != MP_OKAY) { + goto LBL_T; + } + res = mp_mul(b, &t2, c); + } else { + /* store quotient in t2 such that t2 * a is the LCM */ + if ((res = mp_div(b, &t1, &t2, NULL)) != MP_OKAY) { + goto LBL_T; + } + res = mp_mul(a, &t2, c); + } + + /* fix the sign to positive */ + c->sign = MP_ZPOS; + +LBL_T: + mp_clear(&t1); + mp_clear(&t2); + return res; +} + + +static const int lnz[16] = { + 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0 +}; + +/* Counts the number of lsbs which are zero before the first zero bit */ +int mp_cnt_lsb(mp_int *a) +{ + int x; + mp_digit q, qq; + + /* easy out */ + if (mp_iszero(a) == 1) { + return 0; + } + + /* scan lower digits until non-zero */ + for (x = 0; x < a->used && a->dp[x] == 0; x++); + q = a->dp[x]; + x *= DIGIT_BIT; + + /* now scan this digit until a 1 is found */ + if ((q & 1) == 0) { + do { + qq = q & 15; + x += lnz[qq]; + q >>= 4; + } while (qq == 0); + } + return x; +} + + +/* Greatest Common Divisor using the binary method */ +int mp_gcd (mp_int * a, mp_int * b, mp_int * c) +{ + mp_int u, v; + int k, u_lsb, v_lsb, res; + + /* either zero than gcd is the largest */ + if (mp_iszero (a) == MP_YES) { + return mp_abs (b, c); + } + if (mp_iszero (b) == MP_YES) { + return mp_abs (a, c); + } + + /* get copies of a and b we can modify */ + if ((res = mp_init_copy (&u, a)) != MP_OKAY) { + return res; + } + + if ((res = mp_init_copy (&v, b)) != MP_OKAY) { + goto LBL_U; + } + + /* must be positive for the remainder of the algorithm */ + u.sign = v.sign = MP_ZPOS; + + /* B1. Find the common power of two for u and v */ + u_lsb = mp_cnt_lsb(&u); + v_lsb = mp_cnt_lsb(&v); + k = MIN(u_lsb, v_lsb); + + if (k > 0) { + /* divide the power of two out */ + if ((res = mp_div_2d(&u, k, &u, NULL)) != MP_OKAY) { + goto LBL_V; + } + + if ((res = mp_div_2d(&v, k, &v, NULL)) != MP_OKAY) { + goto LBL_V; + } + } + + /* divide any remaining factors of two out */ + if (u_lsb != k) { + if ((res = mp_div_2d(&u, u_lsb - k, &u, NULL)) != MP_OKAY) { + goto LBL_V; + } + } + + if (v_lsb != k) { + if ((res = mp_div_2d(&v, v_lsb - k, &v, NULL)) != MP_OKAY) { + goto LBL_V; + } + } + + while (mp_iszero(&v) == 0) { + /* make sure v is the largest */ + if (mp_cmp_mag(&u, &v) == MP_GT) { + /* swap u and v to make sure v is >= u */ + mp_exch(&u, &v); + } + + /* subtract smallest from largest */ + if ((res = s_mp_sub(&v, &u, &v)) != MP_OKAY) { + goto LBL_V; + } + + /* Divide out all factors of two */ + if ((res = mp_div_2d(&v, mp_cnt_lsb(&v), &v, NULL)) != MP_OKAY) { + goto LBL_V; + } + } + + /* multiply by 2**k which we divided out at the beginning */ + if ((res = mp_mul_2d (&u, k, c)) != MP_OKAY) { + goto LBL_V; + } + c->sign = MP_ZPOS; + res = MP_OKAY; +LBL_V:mp_clear (&u); +LBL_U:mp_clear (&v); + return res; +} + + + +#endif /* CYASSL_KEY_GEN */ + + +#ifdef HAVE_ECC + +/* chars used in radix conversions */ +const char *mp_s_rmap = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/"; + +/* read a string [ASCII] in a given radix */ +int mp_read_radix (mp_int * a, const char *str, int radix) +{ + int y, res, neg; + char ch; + + /* zero the digit bignum */ + mp_zero(a); + + /* make sure the radix is ok */ + if (radix < 2 || radix > 64) { + return MP_VAL; + } + + /* if the leading digit is a + * minus set the sign to negative. + */ + if (*str == '-') { + ++str; + neg = MP_NEG; + } else { + neg = MP_ZPOS; + } + + /* set the integer to the default of zero */ + mp_zero (a); + + /* process each digit of the string */ + while (*str) { + /* if the radix < 36 the conversion is case insensitive + * this allows numbers like 1AB and 1ab to represent the same value + * [e.g. in hex] + */ + ch = (char) ((radix < 36) ? XTOUPPER(*str) : *str); + for (y = 0; y < 64; y++) { + if (ch == mp_s_rmap[y]) { + break; + } + } + + /* if the char was found in the map + * and is less than the given radix add it + * to the number, otherwise exit the loop. + */ + if (y < radix) { + if ((res = mp_mul_d (a, (mp_digit) radix, a)) != MP_OKAY) { + return res; + } + if ((res = mp_add_d (a, (mp_digit) y, a)) != MP_OKAY) { + return res; + } + } else { + break; + } + ++str; + } + + /* set the sign only if a != 0 */ + if (mp_iszero(a) != 1) { + a->sign = neg; + } + return MP_OKAY; +} + +#endif /* HAVE_ECC */ + +#endif /* USE_FAST_MATH */ + diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/logging.c b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/logging.c new file mode 100644 index 000000000..584d1dda9 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/logging.c @@ -0,0 +1,153 @@ +/* logging.c + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +#ifdef HAVE_CONFIG_H + #include +#endif + +/* submitted by eof */ + +#include +#include +#include + + +#ifdef __cplusplus + extern "C" { +#endif + CYASSL_API int CyaSSL_Debugging_ON(void); + CYASSL_API void CyaSSL_Debugging_OFF(void); +#ifdef __cplusplus + } +#endif + + +#ifdef DEBUG_CYASSL + +/* Set these to default values initially. */ +static CyaSSL_Logging_cb log_function = 0; +static int loggingEnabled = 0; + +#endif /* DEBUG_CYASSL */ + + +int CyaSSL_SetLoggingCb(CyaSSL_Logging_cb f) +{ +#ifdef DEBUG_CYASSL + int res = 0; + + if (f) + log_function = f; + else + res = BAD_FUNC_ARG; + + return res; +#else + (void)f; + return NOT_COMPILED_IN; +#endif +} + + +int CyaSSL_Debugging_ON(void) +{ +#ifdef DEBUG_CYASSL + loggingEnabled = 1; + return 0; +#else + return NOT_COMPILED_IN; +#endif +} + + +void CyaSSL_Debugging_OFF(void) +{ +#ifdef DEBUG_CYASSL + loggingEnabled = 0; +#endif +} + + +#ifdef DEBUG_CYASSL + +#include /* for default printf stuff */ + +#ifdef THREADX + int dc_log_printf(char*, ...); +#endif + +static void cyassl_log(const int logLevel, const char *const logMessage) +{ + if (log_function) + log_function(logLevel, logMessage); + else { + if (loggingEnabled) { +#ifdef THREADX + dc_log_printf("%s\n", logMessage); +#elif defined(MICRIUM) + #if (NET_SECURE_MGR_CFG_EN == DEF_ENABLED) + NetSecure_TraceOut((CPU_CHAR *)logMessage); + #endif +#else + fprintf(stderr, "%s\n", logMessage); +#endif + } + } +} + + +void CYASSL_MSG(const char* msg) +{ + if (loggingEnabled) + cyassl_log(INFO_LOG , msg); +} + + +void CYASSL_ENTER(const char* msg) +{ + if (loggingEnabled) { + char buffer[80]; + sprintf(buffer, "CyaSSL Entering %s", msg); + cyassl_log(ENTER_LOG , buffer); + } +} + + +void CYASSL_LEAVE(const char* msg, int ret) +{ + if (loggingEnabled) { + char buffer[80]; + sprintf(buffer, "CyaSSL Leaving %s, return %d", msg, ret); + cyassl_log(LEAVE_LOG , buffer); + } +} + + +void CYASSL_ERROR(int error) +{ + if (loggingEnabled) { + char buffer[80]; + sprintf(buffer, "CyaSSL error occured, error = %d", error); + cyassl_log(ERROR_LOG , buffer); + } +} + +#endif /* DEBUG_CYASSL */ diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/md4.c b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/md4.c new file mode 100644 index 000000000..e47c43277 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/md4.c @@ -0,0 +1,218 @@ +/* md4.c + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +#ifdef HAVE_CONFIG_H + #include +#endif + + +#ifndef NO_MD4 + +#include +#ifdef NO_INLINE + #include +#else + #include +#endif + + +#ifndef min + + static INLINE word32 min(word32 a, word32 b) + { + return a > b ? b : a; + } + +#endif /* min */ + + +void InitMd4(Md4* md4) +{ + md4->digest[0] = 0x67452301L; + md4->digest[1] = 0xefcdab89L; + md4->digest[2] = 0x98badcfeL; + md4->digest[3] = 0x10325476L; + + md4->buffLen = 0; + md4->loLen = 0; + md4->hiLen = 0; +} + + +static void Transform(Md4* md4) +{ +#define F(x, y, z) ((z) ^ ((x) & ((y) ^ (z)))) +#define G(x, y, z) (((x) & (y)) | ((x) & (z)) | ((y) & (z))) +#define H(x, y, z) ((x) ^ (y) ^ (z)) + + /* Copy context->state[] to working vars */ + word32 A = md4->digest[0]; + word32 B = md4->digest[1]; + word32 C = md4->digest[2]; + word32 D = md4->digest[3]; + +#define function(a,b,c,d,k,s) a=rotlFixed(a+F(b,c,d)+md4->buffer[k],s); + function(A,B,C,D, 0, 3); + function(D,A,B,C, 1, 7); + function(C,D,A,B, 2,11); + function(B,C,D,A, 3,19); + function(A,B,C,D, 4, 3); + function(D,A,B,C, 5, 7); + function(C,D,A,B, 6,11); + function(B,C,D,A, 7,19); + function(A,B,C,D, 8, 3); + function(D,A,B,C, 9, 7); + function(C,D,A,B,10,11); + function(B,C,D,A,11,19); + function(A,B,C,D,12, 3); + function(D,A,B,C,13, 7); + function(C,D,A,B,14,11); + function(B,C,D,A,15,19); + +#undef function +#define function(a,b,c,d,k,s) \ + a=rotlFixed(a+G(b,c,d)+md4->buffer[k]+0x5a827999,s); + + function(A,B,C,D, 0, 3); + function(D,A,B,C, 4, 5); + function(C,D,A,B, 8, 9); + function(B,C,D,A,12,13); + function(A,B,C,D, 1, 3); + function(D,A,B,C, 5, 5); + function(C,D,A,B, 9, 9); + function(B,C,D,A,13,13); + function(A,B,C,D, 2, 3); + function(D,A,B,C, 6, 5); + function(C,D,A,B,10, 9); + function(B,C,D,A,14,13); + function(A,B,C,D, 3, 3); + function(D,A,B,C, 7, 5); + function(C,D,A,B,11, 9); + function(B,C,D,A,15,13); + +#undef function +#define function(a,b,c,d,k,s) \ + a=rotlFixed(a+H(b,c,d)+md4->buffer[k]+0x6ed9eba1,s); + + function(A,B,C,D, 0, 3); + function(D,A,B,C, 8, 9); + function(C,D,A,B, 4,11); + function(B,C,D,A,12,15); + function(A,B,C,D, 2, 3); + function(D,A,B,C,10, 9); + function(C,D,A,B, 6,11); + function(B,C,D,A,14,15); + function(A,B,C,D, 1, 3); + function(D,A,B,C, 9, 9); + function(C,D,A,B, 5,11); + function(B,C,D,A,13,15); + function(A,B,C,D, 3, 3); + function(D,A,B,C,11, 9); + function(C,D,A,B, 7,11); + function(B,C,D,A,15,15); + + /* Add the working vars back into digest state[] */ + md4->digest[0] += A; + md4->digest[1] += B; + md4->digest[2] += C; + md4->digest[3] += D; +} + + +static INLINE void AddLength(Md4* md4, word32 len) +{ + word32 tmp = md4->loLen; + if ( (md4->loLen += len) < tmp) + md4->hiLen++; /* carry low to high */ +} + + +void Md4Update(Md4* md4, const byte* data, word32 len) +{ + /* do block size increments */ + byte* local = (byte*)md4->buffer; + + while (len) { + word32 add = min(len, MD4_BLOCK_SIZE - md4->buffLen); + XMEMCPY(&local[md4->buffLen], data, add); + + md4->buffLen += add; + data += add; + len -= add; + + if (md4->buffLen == MD4_BLOCK_SIZE) { + #ifdef BIG_ENDIAN_ORDER + ByteReverseBytes(local, local, MD4_BLOCK_SIZE); + #endif + Transform(md4); + AddLength(md4, MD4_BLOCK_SIZE); + md4->buffLen = 0; + } + } +} + + +void Md4Final(Md4* md4, byte* hash) +{ + byte* local = (byte*)md4->buffer; + + AddLength(md4, md4->buffLen); /* before adding pads */ + + local[md4->buffLen++] = 0x80; /* add 1 */ + + /* pad with zeros */ + if (md4->buffLen > MD4_PAD_SIZE) { + XMEMSET(&local[md4->buffLen], 0, MD4_BLOCK_SIZE - md4->buffLen); + md4->buffLen += MD4_BLOCK_SIZE - md4->buffLen; + + #ifdef BIG_ENDIAN_ORDER + ByteReverseBytes(local, local, MD4_BLOCK_SIZE); + #endif + Transform(md4); + md4->buffLen = 0; + } + XMEMSET(&local[md4->buffLen], 0, MD4_PAD_SIZE - md4->buffLen); + + /* put lengths in bits */ + md4->hiLen = (md4->loLen >> (8*sizeof(md4->loLen) - 3)) + + (md4->hiLen << 3); + md4->loLen = md4->loLen << 3; + + /* store lengths */ + #ifdef BIG_ENDIAN_ORDER + ByteReverseBytes(local, local, MD4_BLOCK_SIZE); + #endif + /* ! length ordering dependent on digest endian type ! */ + XMEMCPY(&local[MD4_PAD_SIZE], &md4->loLen, sizeof(word32)); + XMEMCPY(&local[MD4_PAD_SIZE + sizeof(word32)], &md4->hiLen, sizeof(word32)); + + Transform(md4); + #ifdef BIG_ENDIAN_ORDER + ByteReverseWords(md4->digest, md4->digest, MD4_DIGEST_SIZE); + #endif + XMEMCPY(hash, md4->digest, MD4_DIGEST_SIZE); + + InitMd4(md4); /* reset state */ +} + + +#endif /* NO_MD4 */ + diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/md5.c b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/md5.c new file mode 100644 index 000000000..f735c74d2 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/md5.c @@ -0,0 +1,226 @@ +/* md5.c + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifdef HAVE_CONFIG_H + #include +#endif + +#include + +#ifdef NO_INLINE + #include +#else + #include +#endif + + +#ifndef min + + static INLINE word32 min(word32 a, word32 b) + { + return a > b ? b : a; + } + +#endif /* min */ + + +void InitMd5(Md5* md5) +{ + md5->digest[0] = 0x67452301L; + md5->digest[1] = 0xefcdab89L; + md5->digest[2] = 0x98badcfeL; + md5->digest[3] = 0x10325476L; + + md5->buffLen = 0; + md5->loLen = 0; + md5->hiLen = 0; +} + + +static void Transform(Md5* md5) +{ +#define F1(x, y, z) (z ^ (x & (y ^ z))) +#define F2(x, y, z) F1(z, x, y) +#define F3(x, y, z) (x ^ y ^ z) +#define F4(x, y, z) (y ^ (x | ~z)) + +#define MD5STEP(f, w, x, y, z, data, s) \ + w = rotlFixed(w + f(x, y, z) + data, s) + x + + /* Copy context->state[] to working vars */ + word32 a = md5->digest[0]; + word32 b = md5->digest[1]; + word32 c = md5->digest[2]; + word32 d = md5->digest[3]; + + MD5STEP(F1, a, b, c, d, md5->buffer[0] + 0xd76aa478, 7); + MD5STEP(F1, d, a, b, c, md5->buffer[1] + 0xe8c7b756, 12); + MD5STEP(F1, c, d, a, b, md5->buffer[2] + 0x242070db, 17); + MD5STEP(F1, b, c, d, a, md5->buffer[3] + 0xc1bdceee, 22); + MD5STEP(F1, a, b, c, d, md5->buffer[4] + 0xf57c0faf, 7); + MD5STEP(F1, d, a, b, c, md5->buffer[5] + 0x4787c62a, 12); + MD5STEP(F1, c, d, a, b, md5->buffer[6] + 0xa8304613, 17); + MD5STEP(F1, b, c, d, a, md5->buffer[7] + 0xfd469501, 22); + MD5STEP(F1, a, b, c, d, md5->buffer[8] + 0x698098d8, 7); + MD5STEP(F1, d, a, b, c, md5->buffer[9] + 0x8b44f7af, 12); + MD5STEP(F1, c, d, a, b, md5->buffer[10] + 0xffff5bb1, 17); + MD5STEP(F1, b, c, d, a, md5->buffer[11] + 0x895cd7be, 22); + MD5STEP(F1, a, b, c, d, md5->buffer[12] + 0x6b901122, 7); + MD5STEP(F1, d, a, b, c, md5->buffer[13] + 0xfd987193, 12); + MD5STEP(F1, c, d, a, b, md5->buffer[14] + 0xa679438e, 17); + MD5STEP(F1, b, c, d, a, md5->buffer[15] + 0x49b40821, 22); + + MD5STEP(F2, a, b, c, d, md5->buffer[1] + 0xf61e2562, 5); + MD5STEP(F2, d, a, b, c, md5->buffer[6] + 0xc040b340, 9); + MD5STEP(F2, c, d, a, b, md5->buffer[11] + 0x265e5a51, 14); + MD5STEP(F2, b, c, d, a, md5->buffer[0] + 0xe9b6c7aa, 20); + MD5STEP(F2, a, b, c, d, md5->buffer[5] + 0xd62f105d, 5); + MD5STEP(F2, d, a, b, c, md5->buffer[10] + 0x02441453, 9); + MD5STEP(F2, c, d, a, b, md5->buffer[15] + 0xd8a1e681, 14); + MD5STEP(F2, b, c, d, a, md5->buffer[4] + 0xe7d3fbc8, 20); + MD5STEP(F2, a, b, c, d, md5->buffer[9] + 0x21e1cde6, 5); + MD5STEP(F2, d, a, b, c, md5->buffer[14] + 0xc33707d6, 9); + MD5STEP(F2, c, d, a, b, md5->buffer[3] + 0xf4d50d87, 14); + MD5STEP(F2, b, c, d, a, md5->buffer[8] + 0x455a14ed, 20); + MD5STEP(F2, a, b, c, d, md5->buffer[13] + 0xa9e3e905, 5); + MD5STEP(F2, d, a, b, c, md5->buffer[2] + 0xfcefa3f8, 9); + MD5STEP(F2, c, d, a, b, md5->buffer[7] + 0x676f02d9, 14); + MD5STEP(F2, b, c, d, a, md5->buffer[12] + 0x8d2a4c8a, 20); + + MD5STEP(F3, a, b, c, d, md5->buffer[5] + 0xfffa3942, 4); + MD5STEP(F3, d, a, b, c, md5->buffer[8] + 0x8771f681, 11); + MD5STEP(F3, c, d, a, b, md5->buffer[11] + 0x6d9d6122, 16); + MD5STEP(F3, b, c, d, a, md5->buffer[14] + 0xfde5380c, 23); + MD5STEP(F3, a, b, c, d, md5->buffer[1] + 0xa4beea44, 4); + MD5STEP(F3, d, a, b, c, md5->buffer[4] + 0x4bdecfa9, 11); + MD5STEP(F3, c, d, a, b, md5->buffer[7] + 0xf6bb4b60, 16); + MD5STEP(F3, b, c, d, a, md5->buffer[10] + 0xbebfbc70, 23); + MD5STEP(F3, a, b, c, d, md5->buffer[13] + 0x289b7ec6, 4); + MD5STEP(F3, d, a, b, c, md5->buffer[0] + 0xeaa127fa, 11); + MD5STEP(F3, c, d, a, b, md5->buffer[3] + 0xd4ef3085, 16); + MD5STEP(F3, b, c, d, a, md5->buffer[6] + 0x04881d05, 23); + MD5STEP(F3, a, b, c, d, md5->buffer[9] + 0xd9d4d039, 4); + MD5STEP(F3, d, a, b, c, md5->buffer[12] + 0xe6db99e5, 11); + MD5STEP(F3, c, d, a, b, md5->buffer[15] + 0x1fa27cf8, 16); + MD5STEP(F3, b, c, d, a, md5->buffer[2] + 0xc4ac5665, 23); + + MD5STEP(F4, a, b, c, d, md5->buffer[0] + 0xf4292244, 6); + MD5STEP(F4, d, a, b, c, md5->buffer[7] + 0x432aff97, 10); + MD5STEP(F4, c, d, a, b, md5->buffer[14] + 0xab9423a7, 15); + MD5STEP(F4, b, c, d, a, md5->buffer[5] + 0xfc93a039, 21); + MD5STEP(F4, a, b, c, d, md5->buffer[12] + 0x655b59c3, 6); + MD5STEP(F4, d, a, b, c, md5->buffer[3] + 0x8f0ccc92, 10); + MD5STEP(F4, c, d, a, b, md5->buffer[10] + 0xffeff47d, 15); + MD5STEP(F4, b, c, d, a, md5->buffer[1] + 0x85845dd1, 21); + MD5STEP(F4, a, b, c, d, md5->buffer[8] + 0x6fa87e4f, 6); + MD5STEP(F4, d, a, b, c, md5->buffer[15] + 0xfe2ce6e0, 10); + MD5STEP(F4, c, d, a, b, md5->buffer[6] + 0xa3014314, 15); + MD5STEP(F4, b, c, d, a, md5->buffer[13] + 0x4e0811a1, 21); + MD5STEP(F4, a, b, c, d, md5->buffer[4] + 0xf7537e82, 6); + MD5STEP(F4, d, a, b, c, md5->buffer[11] + 0xbd3af235, 10); + MD5STEP(F4, c, d, a, b, md5->buffer[2] + 0x2ad7d2bb, 15); + MD5STEP(F4, b, c, d, a, md5->buffer[9] + 0xeb86d391, 21); + + /* Add the working vars back into digest state[] */ + md5->digest[0] += a; + md5->digest[1] += b; + md5->digest[2] += c; + md5->digest[3] += d; +} + + +static INLINE void AddLength(Md5* md5, word32 len) +{ + word32 tmp = md5->loLen; + if ( (md5->loLen += len) < tmp) + md5->hiLen++; /* carry low to high */ +} + + +void Md5Update(Md5* md5, const byte* data, word32 len) +{ + /* do block size increments */ + byte* local = (byte*)md5->buffer; + + while (len) { + word32 add = min(len, MD5_BLOCK_SIZE - md5->buffLen); + XMEMCPY(&local[md5->buffLen], data, add); + + md5->buffLen += add; + data += add; + len -= add; + + if (md5->buffLen == MD5_BLOCK_SIZE) { + #ifdef BIG_ENDIAN_ORDER + ByteReverseBytes(local, local, MD5_BLOCK_SIZE); + #endif + Transform(md5); + AddLength(md5, MD5_BLOCK_SIZE); + md5->buffLen = 0; + } + } +} + + +void Md5Final(Md5* md5, byte* hash) +{ + byte* local = (byte*)md5->buffer; + + AddLength(md5, md5->buffLen); /* before adding pads */ + + local[md5->buffLen++] = 0x80; /* add 1 */ + + /* pad with zeros */ + if (md5->buffLen > MD5_PAD_SIZE) { + XMEMSET(&local[md5->buffLen], 0, MD5_BLOCK_SIZE - md5->buffLen); + md5->buffLen += MD5_BLOCK_SIZE - md5->buffLen; + + #ifdef BIG_ENDIAN_ORDER + ByteReverseBytes(local, local, MD5_BLOCK_SIZE); + #endif + Transform(md5); + md5->buffLen = 0; + } + XMEMSET(&local[md5->buffLen], 0, MD5_PAD_SIZE - md5->buffLen); + + /* put lengths in bits */ + md5->hiLen = (md5->loLen >> (8*sizeof(md5->loLen) - 3)) + + (md5->hiLen << 3); + md5->loLen = md5->loLen << 3; + + /* store lengths */ + #ifdef BIG_ENDIAN_ORDER + ByteReverseBytes(local, local, MD5_BLOCK_SIZE); + #endif + /* ! length ordering dependent on digest endian type ! */ + XMEMCPY(&local[MD5_PAD_SIZE], &md5->loLen, sizeof(word32)); + XMEMCPY(&local[MD5_PAD_SIZE + sizeof(word32)], &md5->hiLen, sizeof(word32)); + + Transform(md5); + #ifdef BIG_ENDIAN_ORDER + ByteReverseWords(md5->digest, md5->digest, MD5_DIGEST_SIZE); + #endif + XMEMCPY(hash, md5->digest, MD5_DIGEST_SIZE); + + InitMd5(md5); /* reset state */ +} + diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/memory.c b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/memory.c new file mode 100644 index 000000000..b98e548ad --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/memory.c @@ -0,0 +1,99 @@ +/* memory.c + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +#ifdef HAVE_CONFIG_H + #include +#endif + +/* submitted by eof */ + + +#include + +#ifdef USE_CYASSL_MEMORY + +#include +#include + + +/* Set these to default values initially. */ +static CyaSSL_Malloc_cb malloc_function = 0; +static CyaSSL_Free_cb free_function = 0; +static CyaSSL_Realloc_cb realloc_function = 0; + +int CyaSSL_SetAllocators(CyaSSL_Malloc_cb mf, + CyaSSL_Free_cb ff, + CyaSSL_Realloc_cb rf) +{ + int res = 0; + + if (mf) + malloc_function = mf; + else + res = BAD_FUNC_ARG; + + if (ff) + free_function = ff; + else + res = BAD_FUNC_ARG; + + if (rf) + realloc_function = rf; + else + res = BAD_FUNC_ARG; + + return res; +} + + +void* CyaSSL_Malloc(size_t size) +{ + void* res = 0; + + if (malloc_function) + res = malloc_function(size); + else + res = malloc(size); + + return res; +} + +void CyaSSL_Free(void *ptr) +{ + if (free_function) + free_function(ptr); + else + free(ptr); +} + +void* CyaSSL_Realloc(void *ptr, size_t size) +{ + void* res = 0; + + if (realloc_function) + res = realloc_function(ptr, size); + else + res = realloc(ptr, size); + + return res; +} + +#endif /* USE_CYASSL_MEMORY */ diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/misc.c b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/misc.c new file mode 100644 index 000000000..b9d88b56a --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/misc.c @@ -0,0 +1,174 @@ +/* misc.c + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +#ifdef HAVE_CONFIG_H + #include +#endif + +#include + +/* inlining these functions is a huge speed increase and a small size decrease, + because the functions are smaller than function call setup/cleanup, e.g., + md5 benchmark is twice as fast with inline. If you don't want it, then + define NO_INLINE and compile this file into cyassl, otherwise it's used as + a source header + */ + +#ifdef NO_INLINE + #define STATIC +#else + #define STATIC static +#endif + + +#ifdef INTEL_INTRINSICS + + #include /* get intrinsic definitions */ + + #pragma intrinsic(_lrotl, _lrotr) + + STATIC INLINE word32 rotlFixed(word32 x, word32 y) + { + return y ? _lrotl(x, y) : x; + } + + STATIC INLINE word32 rotrFixed(word32 x, word32 y) + { + return y ? _lrotr(x, y) : x; + } + +#else /* generic */ + + STATIC INLINE word32 rotlFixed(word32 x, word32 y) + { + return (x << y) | (x >> (sizeof(y) * 8 - y)); + } + + + STATIC INLINE word32 rotrFixed(word32 x, word32 y) + { + return (x >> y) | (x << (sizeof(y) * 8 - y)); + } + +#endif + + +STATIC INLINE word32 ByteReverseWord32(word32 value) +{ +#ifdef PPC_INTRINSICS + /* PPC: load reverse indexed instruction */ + return (word32)__lwbrx(&value,0); +#elif defined(FAST_ROTATE) + /* 5 instructions with rotate instruction, 9 without */ + return (rotrFixed(value, 8U) & 0xff00ff00) | + (rotlFixed(value, 8U) & 0x00ff00ff); +#else + /* 6 instructions with rotate instruction, 8 without */ + value = ((value & 0xFF00FF00) >> 8) | ((value & 0x00FF00FF) << 8); + return rotlFixed(value, 16U); +#endif +} + + +STATIC INLINE void ByteReverseWords(word32* out, const word32* in, + word32 byteCount) +{ + word32 count = byteCount/sizeof(word32), i; + + for (i = 0; i < count; i++) + out[i] = ByteReverseWord32(in[i]); + +} + + +#ifdef WORD64_AVAILABLE + + +STATIC INLINE word64 rotlFixed64(word64 x, word64 y) +{ + return (x << y) | (x >> (sizeof(y) * 8 - y)); +} + + +STATIC INLINE word64 rotrFixed64(word64 x, word64 y) +{ + return (x >> y) | (x << (sizeof(y) * 8 - y)); +} + + +STATIC INLINE word64 ByteReverseWord64(word64 value) +{ +#ifdef CTAOCRYPT_SLOW_WORD64 + return (word64)(ByteReverseWord32((word32)value)) << 32 | + ByteReverseWord32((word32)(value>>32)); +#else + value = ((value & W64LIT(0xFF00FF00FF00FF00)) >> 8) | + ((value & W64LIT(0x00FF00FF00FF00FF)) << 8); + value = ((value & W64LIT(0xFFFF0000FFFF0000)) >> 16) | + ((value & W64LIT(0x0000FFFF0000FFFF)) << 16); + return rotlFixed64(value, 32U); +#endif +} + + +STATIC INLINE void ByteReverseWords64(word64* out, const word64* in, + word32 byteCount) +{ + word32 count = byteCount/sizeof(word64), i; + + for (i = 0; i < count; i++) + out[i] = ByteReverseWord64(in[i]); + +} + +#endif /* WORD64_AVAILABLE */ + + +STATIC INLINE void ByteReverseBytes(byte* out, const byte* in, word32 byteCount) +{ + word32* op = (word32*)out; + const word32* ip = (const word32*)in; + + ByteReverseWords(op, ip, byteCount); +} + + +STATIC INLINE void XorWords(word* r, const word* a, word32 n) +{ + word32 i; + + for (i = 0; i < n; i++) r[i] ^= a[i]; +} + + +STATIC INLINE void xorbuf(byte* buf, const byte* mask, word32 count) +{ + if (((word)buf | (word)mask | count) % WORD_SIZE == 0) + XorWords( (word*)buf, (const word*)mask, count / WORD_SIZE); + else { + word32 i; + for (i = 0; i < count; i++) buf[i] ^= mask[i]; + } +} + + +#undef STATIC + diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/pwdbased.c b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/pwdbased.c new file mode 100644 index 000000000..d36f7e9aa --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/pwdbased.c @@ -0,0 +1,319 @@ +/* pwdbased.c + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +#ifdef HAVE_CONFIG_H + #include +#endif + +#ifndef NO_PWDBASED + +#include +#include +#include +#include +#ifdef CYASSL_SHA512 + #include +#endif +#ifdef NO_INLINE + #include +#else + #include +#endif + + +#ifndef min + + static INLINE word32 min(word32 a, word32 b) + { + return a > b ? b : a; + } + +#endif /* min */ + + +int PBKDF1(byte* output, const byte* passwd, int pLen, const byte* salt, + int sLen, int iterations, int kLen, int hashType) +{ + Md5 md5; + Sha sha; + int hLen = (hashType == MD5) ? MD5_DIGEST_SIZE : SHA_DIGEST_SIZE; + int i; + byte buffer[SHA_DIGEST_SIZE]; /* max size */ + + if (hashType != MD5 && hashType != SHA) + return BAD_FUNC_ARG; + + if (kLen > hLen) + return BAD_FUNC_ARG; + + if (iterations < 1) + return BAD_FUNC_ARG; + + if (hashType == MD5) { + InitMd5(&md5); + Md5Update(&md5, passwd, pLen); + Md5Update(&md5, salt, sLen); + Md5Final(&md5, buffer); + } + else { + InitSha(&sha); + ShaUpdate(&sha, passwd, pLen); + ShaUpdate(&sha, salt, sLen); + ShaFinal(&sha, buffer); + } + + for (i = 1; i < iterations; i++) { + if (hashType == MD5) { + Md5Update(&md5, buffer, hLen); + Md5Final(&md5, buffer); + } + else { + ShaUpdate(&sha, buffer, hLen); + ShaFinal(&sha, buffer); + } + } + XMEMCPY(output, buffer, kLen); + + return 0; +} + + +int PBKDF2(byte* output, const byte* passwd, int pLen, const byte* salt, + int sLen, int iterations, int kLen, int hashType) +{ + word32 i = 1; + int hLen; + int j; + Hmac hmac; + byte buffer[INNER_HASH_SIZE]; /* max size */ + + if (hashType == MD5) { + hLen = MD5_DIGEST_SIZE; + } + else if (hashType == SHA) { + hLen = SHA_DIGEST_SIZE; + } +#ifndef NO_SHA256 + else if (hashType == SHA256) { + hLen = SHA256_DIGEST_SIZE; + } +#endif +#ifdef CYASSL_SHA512 + else if (hashType == SHA512) { + hLen = SHA512_DIGEST_SIZE; + } +#endif + else + return BAD_FUNC_ARG; + + HmacSetKey(&hmac, hashType, passwd, pLen); + + while (kLen) { + int currentLen; + HmacUpdate(&hmac, salt, sLen); + + /* encode i */ + for (j = 0; j < 4; j++) { + byte b = (byte)(i >> ((3-j) * 8)); + HmacUpdate(&hmac, &b, 1); + } + HmacFinal(&hmac, buffer); + + currentLen = min(kLen, hLen); + XMEMCPY(output, buffer, currentLen); + + for (j = 1; j < iterations; j++) { + HmacUpdate(&hmac, buffer, hLen); + HmacFinal(&hmac, buffer); + xorbuf(output, buffer, currentLen); + } + + output += currentLen; + kLen -= currentLen; + i++; + } + + return 0; +} + + +int PKCS12_PBKDF(byte* output, const byte* passwd, int passLen,const byte* salt, + int saltLen, int iterations, int kLen, int hashType, int id) +{ + /* all in bytes instead of bits */ + word32 u, v, dLen, pLen, iLen, sLen, totalLen; + int dynamic = 0; + int ret = 0; + int i; + byte *D, *S, *P, *I; + byte staticBuffer[1024]; + byte* buffer = staticBuffer; +#ifdef CYASSL_SHA512 + byte Ai[SHA512_DIGEST_SIZE]; + byte B[SHA512_BLOCK_SIZE]; +#elif !defined(NO_SHA256) + byte Ai[SHA256_DIGEST_SIZE]; + byte B[SHA256_BLOCK_SIZE]; +#else + byte Ai[SHA_DIGEST_SIZE]; + byte B[SHA_BLOCK_SIZE]; +#endif + + if (!iterations) + iterations = 1; + + if (hashType == MD5) { + v = MD5_BLOCK_SIZE; + u = MD5_DIGEST_SIZE; + } + else if (hashType == SHA) { + v = SHA_BLOCK_SIZE; + u = SHA_DIGEST_SIZE; + } +#ifndef NO_SHA256 + else if (hashType == SHA256) { + v = SHA256_BLOCK_SIZE; + u = SHA256_DIGEST_SIZE; + } +#endif +#ifdef CYASSL_SHA512 + else if (hashType == SHA512) { + v = SHA512_BLOCK_SIZE; + u = SHA512_DIGEST_SIZE; + } +#endif + else + return BAD_FUNC_ARG; + + dLen = v; + sLen = v * ((saltLen + v - 1) / v); + if (passLen) + pLen = v * ((passLen + v - 1) / v); + else + pLen = 0; + iLen = sLen + pLen; + + totalLen = dLen + sLen + pLen; + + if (totalLen > sizeof(staticBuffer)) { + buffer = (byte*)XMALLOC(totalLen, 0, DYNAMIC_TYPE_KEY); + if (buffer == NULL) return MEMORY_E; + dynamic = 1; + } + + D = buffer; + S = D + dLen; + P = S + sLen; + I = S; + + XMEMSET(D, id, dLen); + + for (i = 0; i < (int)sLen; i++) + S[i] = salt[i % saltLen]; + for (i = 0; i < (int)pLen; i++) + P[i] = passwd[i % passLen]; + + while (kLen > 0) { + word32 currentLen; + mp_int B1; + + if (hashType == MD5) { + } + else if (hashType == SHA) { + Sha sha; + + InitSha(&sha); + ShaUpdate(&sha, buffer, totalLen); + ShaFinal(&sha, Ai); + + for (i = 1; i < iterations; i++) { + ShaUpdate(&sha, Ai, u); + ShaFinal(&sha, Ai); + } + } +#ifndef NO_SHA256 + else if (hashType == SHA256) { + } +#endif +#ifdef CYASSL_SHA512 + else if (hashType == SHA512) { + } +#endif + + for (i = 0; i < (int)v; i++) + B[i] = Ai[i % u]; + + mp_init(&B1); + if (mp_read_unsigned_bin(&B1, B, v) != MP_OKAY) + ret = MP_READ_E; + else if (mp_add_d(&B1, (mp_digit)1, &B1) != MP_OKAY) { + ret = MP_ADD_E; + mp_clear(&B1); + break; + } + + for (i = 0; i < (int)iLen; i += v) { + int outSz; + mp_int i1; + mp_int res; + + mp_init(&i1); + mp_init(&res); + + if (mp_read_unsigned_bin(&i1, I + i, v) != MP_OKAY) + ret = MP_READ_E; + else if (mp_add(&i1, &B1, &res) != MP_OKAY) + ret = MP_ADD_E; + else if ( (outSz = mp_unsigned_bin_size(&res)) < 0) + ret = MP_TO_E; + else { + if (outSz > (int)v) { + /* take off MSB */ + byte tmp[129]; + mp_to_unsigned_bin(&res, tmp); + XMEMCPY(I + i, tmp + 1, v); + } + else if (outSz < (int)v) { + XMEMSET(I + i, 0, v - outSz); + mp_to_unsigned_bin(&res, I + i + v - outSz); + } + else + mp_to_unsigned_bin(&res, I + i); + } + + mp_clear(&i1); + mp_clear(&res); + if (ret < 0) break; + } + + currentLen = min(kLen, (int)u); + XMEMCPY(output, Ai, currentLen); + output += currentLen; + kLen -= currentLen; + mp_clear(&B1); + } + + if (dynamic) XFREE(buffer, 0, DYNAMIC_TYPE_KEY); + return ret; +} + +#endif /* NO_PWDBASED */ + diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/rabbit.c b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/rabbit.c new file mode 100644 index 000000000..79f5b3e92 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/rabbit.c @@ -0,0 +1,246 @@ +/* rabbit.c + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +#ifdef HAVE_CONFIG_H + #include +#endif + +#ifndef NO_RABBIT + +#include +#ifdef NO_INLINE + #include +#else + #include +#endif + + +#ifdef BIG_ENDIAN_ORDER + #define LITTLE32(x) ByteReverseWord32(x) +#else + #define LITTLE32(x) (x) +#endif + +#define U32V(x) (word32)(x) + + +/* Square a 32-bit unsigned integer to obtain the 64-bit result and return */ +/* the upper 32 bits XOR the lower 32 bits */ +static word32 RABBIT_g_func(word32 x) +{ + /* Temporary variables */ + word32 a, b, h, l; + + /* Construct high and low argument for squaring */ + a = x&0xFFFF; + b = x>>16; + + /* Calculate high and low result of squaring */ + h = (((U32V(a*a)>>17) + U32V(a*b))>>15) + b*b; + l = x*x; + + /* Return high XOR low */ + return U32V(h^l); +} + + +/* Calculate the next internal state */ +static void RABBIT_next_state(RabbitCtx* ctx) +{ + /* Temporary variables */ + word32 g[8], c_old[8], i; + + /* Save old counter values */ + for (i=0; i<8; i++) + c_old[i] = ctx->c[i]; + + /* Calculate new counter values */ + ctx->c[0] = U32V(ctx->c[0] + 0x4D34D34D + ctx->carry); + ctx->c[1] = U32V(ctx->c[1] + 0xD34D34D3 + (ctx->c[0] < c_old[0])); + ctx->c[2] = U32V(ctx->c[2] + 0x34D34D34 + (ctx->c[1] < c_old[1])); + ctx->c[3] = U32V(ctx->c[3] + 0x4D34D34D + (ctx->c[2] < c_old[2])); + ctx->c[4] = U32V(ctx->c[4] + 0xD34D34D3 + (ctx->c[3] < c_old[3])); + ctx->c[5] = U32V(ctx->c[5] + 0x34D34D34 + (ctx->c[4] < c_old[4])); + ctx->c[6] = U32V(ctx->c[6] + 0x4D34D34D + (ctx->c[5] < c_old[5])); + ctx->c[7] = U32V(ctx->c[7] + 0xD34D34D3 + (ctx->c[6] < c_old[6])); + ctx->carry = (ctx->c[7] < c_old[7]); + + /* Calculate the g-values */ + for (i=0;i<8;i++) + g[i] = RABBIT_g_func(U32V(ctx->x[i] + ctx->c[i])); + + /* Calculate new state values */ + ctx->x[0] = U32V(g[0] + rotlFixed(g[7],16) + rotlFixed(g[6], 16)); + ctx->x[1] = U32V(g[1] + rotlFixed(g[0], 8) + g[7]); + ctx->x[2] = U32V(g[2] + rotlFixed(g[1],16) + rotlFixed(g[0], 16)); + ctx->x[3] = U32V(g[3] + rotlFixed(g[2], 8) + g[1]); + ctx->x[4] = U32V(g[4] + rotlFixed(g[3],16) + rotlFixed(g[2], 16)); + ctx->x[5] = U32V(g[5] + rotlFixed(g[4], 8) + g[3]); + ctx->x[6] = U32V(g[6] + rotlFixed(g[5],16) + rotlFixed(g[4], 16)); + ctx->x[7] = U32V(g[7] + rotlFixed(g[6], 8) + g[5]); +} + + +/* IV setup */ +static void RabbitSetIV(Rabbit* ctx, const byte* iv) +{ + /* Temporary variables */ + word32 i0, i1, i2, i3, i; + + /* Generate four subvectors */ + i0 = LITTLE32(*(word32*)(iv+0)); + i2 = LITTLE32(*(word32*)(iv+4)); + i1 = (i0>>16) | (i2&0xFFFF0000); + i3 = (i2<<16) | (i0&0x0000FFFF); + + /* Modify counter values */ + ctx->workCtx.c[0] = ctx->masterCtx.c[0] ^ i0; + ctx->workCtx.c[1] = ctx->masterCtx.c[1] ^ i1; + ctx->workCtx.c[2] = ctx->masterCtx.c[2] ^ i2; + ctx->workCtx.c[3] = ctx->masterCtx.c[3] ^ i3; + ctx->workCtx.c[4] = ctx->masterCtx.c[4] ^ i0; + ctx->workCtx.c[5] = ctx->masterCtx.c[5] ^ i1; + ctx->workCtx.c[6] = ctx->masterCtx.c[6] ^ i2; + ctx->workCtx.c[7] = ctx->masterCtx.c[7] ^ i3; + + /* Copy state variables */ + for (i=0; i<8; i++) + ctx->workCtx.x[i] = ctx->masterCtx.x[i]; + ctx->workCtx.carry = ctx->masterCtx.carry; + + /* Iterate the system four times */ + for (i=0; i<4; i++) + RABBIT_next_state(&(ctx->workCtx)); +} + + +/* Key setup */ +void RabbitSetKey(Rabbit* ctx, const byte* key, const byte* iv) +{ + /* Temporary variables */ + word32 k0, k1, k2, k3, i; + + /* Generate four subkeys */ + k0 = LITTLE32(*(word32*)(key+ 0)); + k1 = LITTLE32(*(word32*)(key+ 4)); + k2 = LITTLE32(*(word32*)(key+ 8)); + k3 = LITTLE32(*(word32*)(key+12)); + + /* Generate initial state variables */ + ctx->masterCtx.x[0] = k0; + ctx->masterCtx.x[2] = k1; + ctx->masterCtx.x[4] = k2; + ctx->masterCtx.x[6] = k3; + ctx->masterCtx.x[1] = U32V(k3<<16) | (k2>>16); + ctx->masterCtx.x[3] = U32V(k0<<16) | (k3>>16); + ctx->masterCtx.x[5] = U32V(k1<<16) | (k0>>16); + ctx->masterCtx.x[7] = U32V(k2<<16) | (k1>>16); + + /* Generate initial counter values */ + ctx->masterCtx.c[0] = rotlFixed(k2, 16); + ctx->masterCtx.c[2] = rotlFixed(k3, 16); + ctx->masterCtx.c[4] = rotlFixed(k0, 16); + ctx->masterCtx.c[6] = rotlFixed(k1, 16); + ctx->masterCtx.c[1] = (k0&0xFFFF0000) | (k1&0xFFFF); + ctx->masterCtx.c[3] = (k1&0xFFFF0000) | (k2&0xFFFF); + ctx->masterCtx.c[5] = (k2&0xFFFF0000) | (k3&0xFFFF); + ctx->masterCtx.c[7] = (k3&0xFFFF0000) | (k0&0xFFFF); + + /* Clear carry bit */ + ctx->masterCtx.carry = 0; + + /* Iterate the system four times */ + for (i=0; i<4; i++) + RABBIT_next_state(&(ctx->masterCtx)); + + /* Modify the counters */ + for (i=0; i<8; i++) + ctx->masterCtx.c[i] ^= ctx->masterCtx.x[(i+4)&0x7]; + + /* Copy master instance to work instance */ + for (i=0; i<8; i++) { + ctx->workCtx.x[i] = ctx->masterCtx.x[i]; + ctx->workCtx.c[i] = ctx->masterCtx.c[i]; + } + ctx->workCtx.carry = ctx->masterCtx.carry; + + if (iv) RabbitSetIV(ctx, iv); +} + + +/* Encrypt/decrypt a message of any size */ +void RabbitProcess(Rabbit* ctx, byte* output, const byte* input, word32 msglen) +{ + + /* Encrypt/decrypt all full blocks */ + while (msglen >= 16) { + /* Iterate the system */ + RABBIT_next_state(&(ctx->workCtx)); + + /* Encrypt/decrypt 16 bytes of data */ + *(word32*)(output+ 0) = *(word32*)(input+ 0) ^ + LITTLE32(ctx->workCtx.x[0] ^ (ctx->workCtx.x[5]>>16) ^ + U32V(ctx->workCtx.x[3]<<16)); + *(word32*)(output+ 4) = *(word32*)(input+ 4) ^ + LITTLE32(ctx->workCtx.x[2] ^ (ctx->workCtx.x[7]>>16) ^ + U32V(ctx->workCtx.x[5]<<16)); + *(word32*)(output+ 8) = *(word32*)(input+ 8) ^ + LITTLE32(ctx->workCtx.x[4] ^ (ctx->workCtx.x[1]>>16) ^ + U32V(ctx->workCtx.x[7]<<16)); + *(word32*)(output+12) = *(word32*)(input+12) ^ + LITTLE32(ctx->workCtx.x[6] ^ (ctx->workCtx.x[3]>>16) ^ + U32V(ctx->workCtx.x[1]<<16)); + + /* Increment pointers and decrement length */ + input += 16; + output += 16; + msglen -= 16; + } + + /* Encrypt/decrypt remaining data */ + if (msglen) { + + word32 i; + word32 tmp[4]; + byte* buffer = (byte*)tmp; + + /* Iterate the system */ + RABBIT_next_state(&(ctx->workCtx)); + + /* Generate 16 bytes of pseudo-random data */ + tmp[0] = LITTLE32(ctx->workCtx.x[0] ^ + (ctx->workCtx.x[5]>>16) ^ U32V(ctx->workCtx.x[3]<<16)); + tmp[1] = LITTLE32(ctx->workCtx.x[2] ^ + (ctx->workCtx.x[7]>>16) ^ U32V(ctx->workCtx.x[5]<<16)); + tmp[2] = LITTLE32(ctx->workCtx.x[4] ^ + (ctx->workCtx.x[1]>>16) ^ U32V(ctx->workCtx.x[7]<<16)); + tmp[3] = LITTLE32(ctx->workCtx.x[6] ^ + (ctx->workCtx.x[3]>>16) ^ U32V(ctx->workCtx.x[1]<<16)); + + /* Encrypt/decrypt the data */ + for (i=0; i +#endif + +/* on HPUX 11 you may need to install /dev/random see + http://h20293.www2.hp.com/portal/swdepot/displayProductInfo.do?productNumber=KRNG11I + +*/ + +#include +#include + + +#if defined(USE_WINDOWS_API) + #ifndef _WIN32_WINNT + #define _WIN32_WINNT 0x0400 + #endif + #include + #include +#else + #ifndef NO_DEV_RANDOM + #include + #include + #else + /* include headers that may be needed to get good seed */ + #endif +#endif /* USE_WINDOWS_API */ + + + +/* Get seed and key cipher */ +int InitRng(RNG* rng) +{ + byte key[32]; + byte junk[256]; + + int ret = GenerateSeed(&rng->seed, key, sizeof(key)); + + if (ret == 0) { + Arc4SetKey(&rng->cipher, key, sizeof(key)); + RNG_GenerateBlock(rng, junk, sizeof(junk)); /* rid initial state */ + } + + return ret; +} + + +/* place a generated block in output */ +void RNG_GenerateBlock(RNG* rng, byte* output, word32 sz) +{ + XMEMSET(output, 0, sz); + Arc4Process(&rng->cipher, output, output, sz); +} + + +byte RNG_GenerateByte(RNG* rng) +{ + byte b; + RNG_GenerateBlock(rng, &b, 1); + + return b; +} + + +#if defined(USE_WINDOWS_API) + + +int GenerateSeed(OS_Seed* os, byte* output, word32 sz) +{ + if(!CryptAcquireContext(&os->handle, 0, 0, PROV_RSA_FULL, + CRYPT_VERIFYCONTEXT)) + return WINCRYPT_E; + + if (!CryptGenRandom(os->handle, sz, output)) + return CRYPTGEN_E; + + CryptReleaseContext(os->handle, 0); + + return 0; +} + + +#elif defined(THREADX) + +#include "rtprand.h" /* rtp_rand () */ +#include "rtptime.h" /* rtp_get_system_msec() */ + + +int GenerateSeed(OS_Seed* os, byte* output, word32 sz) +{ + int i; + rtp_srand(rtp_get_system_msec()); + + for (i = 0; i < sz; i++ ) { + output[i] = rtp_rand() % 256; + if ( (i % 8) == 7) + rtp_srand(rtp_get_system_msec()); + } + + return 0; +} + + +#elif defined(MICRIUM) + +int GenerateSeed(OS_Seed* os, byte* output, word32 sz) +{ + #if (NET_SECURE_MGR_CFG_EN == DEF_ENABLED) + NetSecure_InitSeed(output, sz); + #endif + return 0; +} + +#elif defined(MBED) + +/* write a real one !!!, just for testing board */ +int GenerateSeed(OS_Seed* os, byte* output, word32 sz) +{ + int i; + for (i = 0; i < sz; i++ ) + output[i] = i; + + return 0; +} + +#elif defined(NO_DEV_RANDOM) + +#error "you need to write an os specific GenerateSeed() here" + + +#else /* !USE_WINDOWS_API && !THREADX && !MICRIUM && !NO_DEV_RANDOM */ + + +/* may block */ +int GenerateSeed(OS_Seed* os, byte* output, word32 sz) +{ + int ret = 0; + + os->fd = open("/dev/urandom",O_RDONLY); + if (os->fd == -1) { + /* may still have /dev/random */ + os->fd = open("/dev/random",O_RDONLY); + if (os->fd == -1) + return OPEN_RAN_E; + } + + while (sz) { + int len = read(os->fd, output, sz); + if (len == -1) { + ret = READ_RAN_E; + break; + } + + sz -= len; + output += len; + + if (sz) { +#ifdef BLOCKING + sleep(0); /* context switch */ +#else + ret = RAN_BLOCK_E; + break; +#endif + } + } + close(os->fd); + + return ret; +} + +#endif /* USE_WINDOWS_API */ + diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/ripemd.c b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/ripemd.c new file mode 100644 index 000000000..1cb6ae8f1 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/ripemd.c @@ -0,0 +1,351 @@ +/* ripemd.c + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifdef HAVE_CONFIG_H + #include +#endif + +#ifdef CYASSL_RIPEMD + +#include +#ifdef NO_INLINE + #include +#else + #include +#endif + + +#ifndef min + + static INLINE word32 min(word32 a, word32 b) + { + return a > b ? b : a; + } + +#endif /* min */ + + +void InitRipeMd(RipeMd* ripemd) +{ + ripemd->digest[0] = 0x67452301L; + ripemd->digest[1] = 0xEFCDAB89L; + ripemd->digest[2] = 0x98BADCFEL; + ripemd->digest[3] = 0x10325476L; + ripemd->digest[4] = 0xC3D2E1F0L; + + ripemd->buffLen = 0; + ripemd->loLen = 0; + ripemd->hiLen = 0; +} + + +/* for all */ +#define F(x, y, z) (x ^ y ^ z) +#define G(x, y, z) (z ^ (x & (y^z))) +#define H(x, y, z) (z ^ (x | ~y)) +#define I(x, y, z) (y ^ (z & (x^y))) +#define J(x, y, z) (x ^ (y | ~z)) + +#define k0 0 +#define k1 0x5a827999 +#define k2 0x6ed9eba1 +#define k3 0x8f1bbcdc +#define k4 0xa953fd4e +#define k5 0x50a28be6 +#define k6 0x5c4dd124 +#define k7 0x6d703ef3 +#define k8 0x7a6d76e9 +#define k9 0 + +/* for 160 and 320 */ +#define Subround(f, a, b, c, d, e, x, s, k) \ + a += f(b, c, d) + x + k;\ + a = rotlFixed((word32)a, s) + e;\ + c = rotlFixed((word32)c, 10U) + +static void Transform(RipeMd* ripemd) +{ + word32 a1, b1, c1, d1, e1, a2, b2, c2, d2, e2; + a1 = a2 = ripemd->digest[0]; + b1 = b2 = ripemd->digest[1]; + c1 = c2 = ripemd->digest[2]; + d1 = d2 = ripemd->digest[3]; + e1 = e2 = ripemd->digest[4]; + + Subround(F, a1, b1, c1, d1, e1, ripemd->buffer[ 0], 11, k0); + Subround(F, e1, a1, b1, c1, d1, ripemd->buffer[ 1], 14, k0); + Subround(F, d1, e1, a1, b1, c1, ripemd->buffer[ 2], 15, k0); + Subround(F, c1, d1, e1, a1, b1, ripemd->buffer[ 3], 12, k0); + Subround(F, b1, c1, d1, e1, a1, ripemd->buffer[ 4], 5, k0); + Subround(F, a1, b1, c1, d1, e1, ripemd->buffer[ 5], 8, k0); + Subround(F, e1, a1, b1, c1, d1, ripemd->buffer[ 6], 7, k0); + Subround(F, d1, e1, a1, b1, c1, ripemd->buffer[ 7], 9, k0); + Subround(F, c1, d1, e1, a1, b1, ripemd->buffer[ 8], 11, k0); + Subround(F, b1, c1, d1, e1, a1, ripemd->buffer[ 9], 13, k0); + Subround(F, a1, b1, c1, d1, e1, ripemd->buffer[10], 14, k0); + Subround(F, e1, a1, b1, c1, d1, ripemd->buffer[11], 15, k0); + Subround(F, d1, e1, a1, b1, c1, ripemd->buffer[12], 6, k0); + Subround(F, c1, d1, e1, a1, b1, ripemd->buffer[13], 7, k0); + Subround(F, b1, c1, d1, e1, a1, ripemd->buffer[14], 9, k0); + Subround(F, a1, b1, c1, d1, e1, ripemd->buffer[15], 8, k0); + + Subround(G, e1, a1, b1, c1, d1, ripemd->buffer[ 7], 7, k1); + Subround(G, d1, e1, a1, b1, c1, ripemd->buffer[ 4], 6, k1); + Subround(G, c1, d1, e1, a1, b1, ripemd->buffer[13], 8, k1); + Subround(G, b1, c1, d1, e1, a1, ripemd->buffer[ 1], 13, k1); + Subround(G, a1, b1, c1, d1, e1, ripemd->buffer[10], 11, k1); + Subround(G, e1, a1, b1, c1, d1, ripemd->buffer[ 6], 9, k1); + Subround(G, d1, e1, a1, b1, c1, ripemd->buffer[15], 7, k1); + Subround(G, c1, d1, e1, a1, b1, ripemd->buffer[ 3], 15, k1); + Subround(G, b1, c1, d1, e1, a1, ripemd->buffer[12], 7, k1); + Subround(G, a1, b1, c1, d1, e1, ripemd->buffer[ 0], 12, k1); + Subround(G, e1, a1, b1, c1, d1, ripemd->buffer[ 9], 15, k1); + Subround(G, d1, e1, a1, b1, c1, ripemd->buffer[ 5], 9, k1); + Subround(G, c1, d1, e1, a1, b1, ripemd->buffer[ 2], 11, k1); + Subround(G, b1, c1, d1, e1, a1, ripemd->buffer[14], 7, k1); + Subround(G, a1, b1, c1, d1, e1, ripemd->buffer[11], 13, k1); + Subround(G, e1, a1, b1, c1, d1, ripemd->buffer[ 8], 12, k1); + + Subround(H, d1, e1, a1, b1, c1, ripemd->buffer[ 3], 11, k2); + Subround(H, c1, d1, e1, a1, b1, ripemd->buffer[10], 13, k2); + Subround(H, b1, c1, d1, e1, a1, ripemd->buffer[14], 6, k2); + Subround(H, a1, b1, c1, d1, e1, ripemd->buffer[ 4], 7, k2); + Subround(H, e1, a1, b1, c1, d1, ripemd->buffer[ 9], 14, k2); + Subround(H, d1, e1, a1, b1, c1, ripemd->buffer[15], 9, k2); + Subround(H, c1, d1, e1, a1, b1, ripemd->buffer[ 8], 13, k2); + Subround(H, b1, c1, d1, e1, a1, ripemd->buffer[ 1], 15, k2); + Subround(H, a1, b1, c1, d1, e1, ripemd->buffer[ 2], 14, k2); + Subround(H, e1, a1, b1, c1, d1, ripemd->buffer[ 7], 8, k2); + Subround(H, d1, e1, a1, b1, c1, ripemd->buffer[ 0], 13, k2); + Subround(H, c1, d1, e1, a1, b1, ripemd->buffer[ 6], 6, k2); + Subround(H, b1, c1, d1, e1, a1, ripemd->buffer[13], 5, k2); + Subround(H, a1, b1, c1, d1, e1, ripemd->buffer[11], 12, k2); + Subround(H, e1, a1, b1, c1, d1, ripemd->buffer[ 5], 7, k2); + Subround(H, d1, e1, a1, b1, c1, ripemd->buffer[12], 5, k2); + + Subround(I, c1, d1, e1, a1, b1, ripemd->buffer[ 1], 11, k3); + Subround(I, b1, c1, d1, e1, a1, ripemd->buffer[ 9], 12, k3); + Subround(I, a1, b1, c1, d1, e1, ripemd->buffer[11], 14, k3); + Subround(I, e1, a1, b1, c1, d1, ripemd->buffer[10], 15, k3); + Subround(I, d1, e1, a1, b1, c1, ripemd->buffer[ 0], 14, k3); + Subround(I, c1, d1, e1, a1, b1, ripemd->buffer[ 8], 15, k3); + Subround(I, b1, c1, d1, e1, a1, ripemd->buffer[12], 9, k3); + Subround(I, a1, b1, c1, d1, e1, ripemd->buffer[ 4], 8, k3); + Subround(I, e1, a1, b1, c1, d1, ripemd->buffer[13], 9, k3); + Subround(I, d1, e1, a1, b1, c1, ripemd->buffer[ 3], 14, k3); + Subround(I, c1, d1, e1, a1, b1, ripemd->buffer[ 7], 5, k3); + Subround(I, b1, c1, d1, e1, a1, ripemd->buffer[15], 6, k3); + Subround(I, a1, b1, c1, d1, e1, ripemd->buffer[14], 8, k3); + Subround(I, e1, a1, b1, c1, d1, ripemd->buffer[ 5], 6, k3); + Subround(I, d1, e1, a1, b1, c1, ripemd->buffer[ 6], 5, k3); + Subround(I, c1, d1, e1, a1, b1, ripemd->buffer[ 2], 12, k3); + + Subround(J, b1, c1, d1, e1, a1, ripemd->buffer[ 4], 9, k4); + Subround(J, a1, b1, c1, d1, e1, ripemd->buffer[ 0], 15, k4); + Subround(J, e1, a1, b1, c1, d1, ripemd->buffer[ 5], 5, k4); + Subround(J, d1, e1, a1, b1, c1, ripemd->buffer[ 9], 11, k4); + Subround(J, c1, d1, e1, a1, b1, ripemd->buffer[ 7], 6, k4); + Subround(J, b1, c1, d1, e1, a1, ripemd->buffer[12], 8, k4); + Subround(J, a1, b1, c1, d1, e1, ripemd->buffer[ 2], 13, k4); + Subround(J, e1, a1, b1, c1, d1, ripemd->buffer[10], 12, k4); + Subround(J, d1, e1, a1, b1, c1, ripemd->buffer[14], 5, k4); + Subround(J, c1, d1, e1, a1, b1, ripemd->buffer[ 1], 12, k4); + Subround(J, b1, c1, d1, e1, a1, ripemd->buffer[ 3], 13, k4); + Subround(J, a1, b1, c1, d1, e1, ripemd->buffer[ 8], 14, k4); + Subround(J, e1, a1, b1, c1, d1, ripemd->buffer[11], 11, k4); + Subround(J, d1, e1, a1, b1, c1, ripemd->buffer[ 6], 8, k4); + Subround(J, c1, d1, e1, a1, b1, ripemd->buffer[15], 5, k4); + Subround(J, b1, c1, d1, e1, a1, ripemd->buffer[13], 6, k4); + + Subround(J, a2, b2, c2, d2, e2, ripemd->buffer[ 5], 8, k5); + Subround(J, e2, a2, b2, c2, d2, ripemd->buffer[14], 9, k5); + Subround(J, d2, e2, a2, b2, c2, ripemd->buffer[ 7], 9, k5); + Subround(J, c2, d2, e2, a2, b2, ripemd->buffer[ 0], 11, k5); + Subround(J, b2, c2, d2, e2, a2, ripemd->buffer[ 9], 13, k5); + Subround(J, a2, b2, c2, d2, e2, ripemd->buffer[ 2], 15, k5); + Subround(J, e2, a2, b2, c2, d2, ripemd->buffer[11], 15, k5); + Subround(J, d2, e2, a2, b2, c2, ripemd->buffer[ 4], 5, k5); + Subround(J, c2, d2, e2, a2, b2, ripemd->buffer[13], 7, k5); + Subround(J, b2, c2, d2, e2, a2, ripemd->buffer[ 6], 7, k5); + Subround(J, a2, b2, c2, d2, e2, ripemd->buffer[15], 8, k5); + Subround(J, e2, a2, b2, c2, d2, ripemd->buffer[ 8], 11, k5); + Subround(J, d2, e2, a2, b2, c2, ripemd->buffer[ 1], 14, k5); + Subround(J, c2, d2, e2, a2, b2, ripemd->buffer[10], 14, k5); + Subround(J, b2, c2, d2, e2, a2, ripemd->buffer[ 3], 12, k5); + Subround(J, a2, b2, c2, d2, e2, ripemd->buffer[12], 6, k5); + + Subround(I, e2, a2, b2, c2, d2, ripemd->buffer[ 6], 9, k6); + Subround(I, d2, e2, a2, b2, c2, ripemd->buffer[11], 13, k6); + Subround(I, c2, d2, e2, a2, b2, ripemd->buffer[ 3], 15, k6); + Subround(I, b2, c2, d2, e2, a2, ripemd->buffer[ 7], 7, k6); + Subround(I, a2, b2, c2, d2, e2, ripemd->buffer[ 0], 12, k6); + Subround(I, e2, a2, b2, c2, d2, ripemd->buffer[13], 8, k6); + Subround(I, d2, e2, a2, b2, c2, ripemd->buffer[ 5], 9, k6); + Subround(I, c2, d2, e2, a2, b2, ripemd->buffer[10], 11, k6); + Subround(I, b2, c2, d2, e2, a2, ripemd->buffer[14], 7, k6); + Subround(I, a2, b2, c2, d2, e2, ripemd->buffer[15], 7, k6); + Subround(I, e2, a2, b2, c2, d2, ripemd->buffer[ 8], 12, k6); + Subround(I, d2, e2, a2, b2, c2, ripemd->buffer[12], 7, k6); + Subround(I, c2, d2, e2, a2, b2, ripemd->buffer[ 4], 6, k6); + Subround(I, b2, c2, d2, e2, a2, ripemd->buffer[ 9], 15, k6); + Subround(I, a2, b2, c2, d2, e2, ripemd->buffer[ 1], 13, k6); + Subround(I, e2, a2, b2, c2, d2, ripemd->buffer[ 2], 11, k6); + + Subround(H, d2, e2, a2, b2, c2, ripemd->buffer[15], 9, k7); + Subround(H, c2, d2, e2, a2, b2, ripemd->buffer[ 5], 7, k7); + Subround(H, b2, c2, d2, e2, a2, ripemd->buffer[ 1], 15, k7); + Subround(H, a2, b2, c2, d2, e2, ripemd->buffer[ 3], 11, k7); + Subround(H, e2, a2, b2, c2, d2, ripemd->buffer[ 7], 8, k7); + Subround(H, d2, e2, a2, b2, c2, ripemd->buffer[14], 6, k7); + Subround(H, c2, d2, e2, a2, b2, ripemd->buffer[ 6], 6, k7); + Subround(H, b2, c2, d2, e2, a2, ripemd->buffer[ 9], 14, k7); + Subround(H, a2, b2, c2, d2, e2, ripemd->buffer[11], 12, k7); + Subround(H, e2, a2, b2, c2, d2, ripemd->buffer[ 8], 13, k7); + Subround(H, d2, e2, a2, b2, c2, ripemd->buffer[12], 5, k7); + Subround(H, c2, d2, e2, a2, b2, ripemd->buffer[ 2], 14, k7); + Subround(H, b2, c2, d2, e2, a2, ripemd->buffer[10], 13, k7); + Subround(H, a2, b2, c2, d2, e2, ripemd->buffer[ 0], 13, k7); + Subround(H, e2, a2, b2, c2, d2, ripemd->buffer[ 4], 7, k7); + Subround(H, d2, e2, a2, b2, c2, ripemd->buffer[13], 5, k7); + + Subround(G, c2, d2, e2, a2, b2, ripemd->buffer[ 8], 15, k8); + Subround(G, b2, c2, d2, e2, a2, ripemd->buffer[ 6], 5, k8); + Subround(G, a2, b2, c2, d2, e2, ripemd->buffer[ 4], 8, k8); + Subround(G, e2, a2, b2, c2, d2, ripemd->buffer[ 1], 11, k8); + Subround(G, d2, e2, a2, b2, c2, ripemd->buffer[ 3], 14, k8); + Subround(G, c2, d2, e2, a2, b2, ripemd->buffer[11], 14, k8); + Subround(G, b2, c2, d2, e2, a2, ripemd->buffer[15], 6, k8); + Subround(G, a2, b2, c2, d2, e2, ripemd->buffer[ 0], 14, k8); + Subround(G, e2, a2, b2, c2, d2, ripemd->buffer[ 5], 6, k8); + Subround(G, d2, e2, a2, b2, c2, ripemd->buffer[12], 9, k8); + Subround(G, c2, d2, e2, a2, b2, ripemd->buffer[ 2], 12, k8); + Subround(G, b2, c2, d2, e2, a2, ripemd->buffer[13], 9, k8); + Subround(G, a2, b2, c2, d2, e2, ripemd->buffer[ 9], 12, k8); + Subround(G, e2, a2, b2, c2, d2, ripemd->buffer[ 7], 5, k8); + Subround(G, d2, e2, a2, b2, c2, ripemd->buffer[10], 15, k8); + Subround(G, c2, d2, e2, a2, b2, ripemd->buffer[14], 8, k8); + + Subround(F, b2, c2, d2, e2, a2, ripemd->buffer[12], 8, k9); + Subround(F, a2, b2, c2, d2, e2, ripemd->buffer[15], 5, k9); + Subround(F, e2, a2, b2, c2, d2, ripemd->buffer[10], 12, k9); + Subround(F, d2, e2, a2, b2, c2, ripemd->buffer[ 4], 9, k9); + Subround(F, c2, d2, e2, a2, b2, ripemd->buffer[ 1], 12, k9); + Subround(F, b2, c2, d2, e2, a2, ripemd->buffer[ 5], 5, k9); + Subround(F, a2, b2, c2, d2, e2, ripemd->buffer[ 8], 14, k9); + Subround(F, e2, a2, b2, c2, d2, ripemd->buffer[ 7], 6, k9); + Subround(F, d2, e2, a2, b2, c2, ripemd->buffer[ 6], 8, k9); + Subround(F, c2, d2, e2, a2, b2, ripemd->buffer[ 2], 13, k9); + Subround(F, b2, c2, d2, e2, a2, ripemd->buffer[13], 6, k9); + Subround(F, a2, b2, c2, d2, e2, ripemd->buffer[14], 5, k9); + Subround(F, e2, a2, b2, c2, d2, ripemd->buffer[ 0], 15, k9); + Subround(F, d2, e2, a2, b2, c2, ripemd->buffer[ 3], 13, k9); + Subround(F, c2, d2, e2, a2, b2, ripemd->buffer[ 9], 11, k9); + Subround(F, b2, c2, d2, e2, a2, ripemd->buffer[11], 11, k9); + + c1 = ripemd->digest[1] + c1 + d2; + ripemd->digest[1] = ripemd->digest[2] + d1 + e2; + ripemd->digest[2] = ripemd->digest[3] + e1 + a2; + ripemd->digest[3] = ripemd->digest[4] + a1 + b2; + ripemd->digest[4] = ripemd->digest[0] + b1 + c2; + ripemd->digest[0] = c1; +} + + +static INLINE void AddLength(RipeMd* ripemd, word32 len) +{ + word32 tmp = ripemd->loLen; + if ( (ripemd->loLen += len) < tmp) + ripemd->hiLen++; /* carry low to high */ +} + + +void RipeMdUpdate(RipeMd* ripemd, const byte* data, word32 len) +{ + /* do block size increments */ + byte* local = (byte*)ripemd->buffer; + + while (len) { + word32 add = min(len, RIPEMD_BLOCK_SIZE - ripemd->buffLen); + XMEMCPY(&local[ripemd->buffLen], data, add); + + ripemd->buffLen += add; + data += add; + len -= add; + + if (ripemd->buffLen == RIPEMD_BLOCK_SIZE) { + #ifdef BIG_ENDIAN_ORDER + ByteReverseBytes(local, local, RIPEMD_BLOCK_SIZE); + #endif + Transform(ripemd); + AddLength(ripemd, RIPEMD_BLOCK_SIZE); + ripemd->buffLen = 0; + } + } +} + + +void RipeMdFinal(RipeMd* ripemd, byte* hash) +{ + byte* local = (byte*)ripemd->buffer; + + AddLength(ripemd, ripemd->buffLen); /* before adding pads */ + + local[ripemd->buffLen++] = 0x80; /* add 1 */ + + /* pad with zeros */ + if (ripemd->buffLen > RIPEMD_PAD_SIZE) { + XMEMSET(&local[ripemd->buffLen], 0, RIPEMD_BLOCK_SIZE - ripemd->buffLen); + ripemd->buffLen += RIPEMD_BLOCK_SIZE - ripemd->buffLen; + + #ifdef BIG_ENDIAN_ORDER + ByteReverseBytes(local, local, RIPEMD_BLOCK_SIZE); + #endif + Transform(ripemd); + ripemd->buffLen = 0; + } + XMEMSET(&local[ripemd->buffLen], 0, RIPEMD_PAD_SIZE - ripemd->buffLen); + + /* put lengths in bits */ + ripemd->loLen = ripemd->loLen << 3; + ripemd->hiLen = (ripemd->loLen >> (8*sizeof(ripemd->loLen) - 3)) + + (ripemd->hiLen << 3); + + /* store lengths */ + #ifdef BIG_ENDIAN_ORDER + ByteReverseBytes(local, local, RIPEMD_BLOCK_SIZE); + #endif + /* ! length ordering dependent on digest endian type ! */ + XMEMCPY(&local[RIPEMD_PAD_SIZE], &ripemd->loLen, sizeof(word32)); + XMEMCPY(&local[RIPEMD_PAD_SIZE + sizeof(word32)], &ripemd->hiLen, + sizeof(word32)); + + Transform(ripemd); + #ifdef BIG_ENDIAN_ORDER + ByteReverseWords(ripemd->digest, ripemd->digest, RIPEMD_DIGEST_SIZE); + #endif + XMEMCPY(hash, ripemd->digest, RIPEMD_DIGEST_SIZE); + + InitRipeMd(ripemd); /* reset state */ +} + + +#endif /* CYASSL_RIPEMD */ diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/rsa.c b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/rsa.c new file mode 100644 index 000000000..7f511df1c --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/rsa.c @@ -0,0 +1,557 @@ +/* rsa.c + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifdef HAVE_CONFIG_H + #include +#endif + +#include +#include +#include +#include + +#ifdef SHOW_GEN + #include +#endif + + +enum { + RSA_PUBLIC_ENCRYPT = 0, + RSA_PUBLIC_DECRYPT = 1, + RSA_PRIVATE_ENCRYPT = 2, + RSA_PRIVATE_DECRYPT = 3, + + RSA_BLOCK_TYPE_1 = 1, + RSA_BLOCK_TYPE_2 = 2, + + RSA_MIN_SIZE = 512, + RSA_MAX_SIZE = 4096, + + RSA_MIN_PAD_SZ = 11 /* seperator + 0 + pad value + 8 pads */ +}; + + +void InitRsaKey(RsaKey* key, void* heap) +{ + key->type = -1; /* haven't decided yet */ + key->heap = heap; + +/* TomsFastMath doesn't use memory allocation */ +#ifndef USE_FAST_MATH + key->n.dp = key->e.dp = 0; /* public alloc parts */ + + key->d.dp = key->p.dp = 0; /* private alloc parts */ + key->q.dp = key->dP.dp = 0; + key->u.dp = key->dQ.dp = 0; +#endif +} + + +void FreeRsaKey(RsaKey* key) +{ + (void)key; +/* TomsFastMath doesn't use memory allocation */ +#ifndef USE_FAST_MATH + if (key->type == RSA_PRIVATE) { + mp_clear(&key->u); + mp_clear(&key->dQ); + mp_clear(&key->dP); + mp_clear(&key->q); + mp_clear(&key->p); + mp_clear(&key->d); + } + mp_clear(&key->e); + mp_clear(&key->n); +#endif +} + +static void RsaPad(const byte* input, word32 inputLen, byte* pkcsBlock, + word32 pkcsBlockLen, byte padValue, RNG* rng) +{ + if (inputLen == 0) return; + + pkcsBlock[0] = 0x0; /* set first byte to zero and advance */ + pkcsBlock++; pkcsBlockLen--; + pkcsBlock[0] = padValue; /* insert padValue */ + + if (padValue == RSA_BLOCK_TYPE_1) + /* pad with 0xff bytes */ + XMEMSET(&pkcsBlock[1], 0xFF, pkcsBlockLen - inputLen - 2); + else { + /* pad with non-zero random bytes */ + word32 padLen = pkcsBlockLen - inputLen - 1, i; + RNG_GenerateBlock(rng, &pkcsBlock[1], padLen); + + /* remove zeros */ + for (i = 1; i < padLen; i++) + if (pkcsBlock[i] == 0) pkcsBlock[i] = 0x01; + } + + pkcsBlock[pkcsBlockLen-inputLen-1] = 0; /* separator */ + XMEMCPY(pkcsBlock+pkcsBlockLen-inputLen, input, inputLen); +} + + +static word32 RsaUnPad(const byte *pkcsBlock, unsigned int pkcsBlockLen, + byte **output, byte padValue) +{ + word32 maxOutputLen = (pkcsBlockLen > 10) ? (pkcsBlockLen - 10) : 0, + invalid = 0, + i = 1, + outputLen; + + if (pkcsBlock[0] != 0x0) /* skip past zero */ + invalid = 1; + pkcsBlock++; pkcsBlockLen--; + + /* Require block type padValue */ + invalid = (pkcsBlock[0] != padValue) || invalid; + + /* skip past the padding until we find the separator */ + while (i maxOutputLen) || invalid; + + if (invalid) { + CYASSL_MSG("RsaUnPad error, bad formatting"); + return 0; + } + + *output = (byte *)(pkcsBlock + i); + return outputLen; +} + + +static int RsaFunction(const byte* in, word32 inLen, byte* out, word32* outLen, + int type, RsaKey* key) +{ + #define ERROR_OUT(x) { ret = x; goto done;} + + mp_int tmp; + int ret = 0; + word32 keyLen, len; + + if (mp_init(&tmp) != MP_OKAY) + return MP_INIT_E; + + if (mp_read_unsigned_bin(&tmp, (byte*)in, inLen) != MP_OKAY) + ERROR_OUT(MP_READ_E); + + if (type == RSA_PRIVATE_DECRYPT || type == RSA_PRIVATE_ENCRYPT) { + #ifdef RSA_LOW_MEM /* half as much memory but twice as slow */ + if (mp_exptmod(&tmp, &key->d, &key->n, &tmp) != MP_OKAY) + ERROR_OUT(MP_EXPTMOD_E); + #else + #define INNER_ERROR_OUT(x) { ret = x; goto inner_done; } + + mp_int tmpa, tmpb; + + if (mp_init(&tmpa) != MP_OKAY) + ERROR_OUT(MP_INIT_E); + + if (mp_init(&tmpb) != MP_OKAY) { + mp_clear(&tmpa); + ERROR_OUT(MP_INIT_E); + } + + /* tmpa = tmp^dP mod p */ + if (mp_exptmod(&tmp, &key->dP, &key->p, &tmpa) != MP_OKAY) + INNER_ERROR_OUT(MP_EXPTMOD_E); + + /* tmpb = tmp^dQ mod q */ + if (mp_exptmod(&tmp, &key->dQ, &key->q, &tmpb) != MP_OKAY) + INNER_ERROR_OUT(MP_EXPTMOD_E); + + /* tmp = (tmpa - tmpb) * qInv (mod p) */ + if (mp_sub(&tmpa, &tmpb, &tmp) != MP_OKAY) + INNER_ERROR_OUT(MP_SUB_E); + + if (mp_mulmod(&tmp, &key->u, &key->p, &tmp) != MP_OKAY) + INNER_ERROR_OUT(MP_MULMOD_E); + + /* tmp = tmpb + q * tmp */ + if (mp_mul(&tmp, &key->q, &tmp) != MP_OKAY) + INNER_ERROR_OUT(MP_MUL_E); + + if (mp_add(&tmp, &tmpb, &tmp) != MP_OKAY) + INNER_ERROR_OUT(MP_ADD_E); + + inner_done: + mp_clear(&tmpa); + mp_clear(&tmpb); + + if (ret != 0) return ret; + + #endif /* RSA_LOW_MEM */ + } + else if (type == RSA_PUBLIC_ENCRYPT || type == RSA_PUBLIC_DECRYPT) { + if (mp_exptmod(&tmp, &key->e, &key->n, &tmp) != MP_OKAY) + ERROR_OUT(MP_EXPTMOD_E); + } + else + ERROR_OUT(RSA_WRONG_TYPE_E); + + keyLen = mp_unsigned_bin_size(&key->n); + if (keyLen > *outLen) + ERROR_OUT(RSA_BUFFER_E); + + len = mp_unsigned_bin_size(&tmp); + + /* pad front w/ zeros to match key length */ + while (len < keyLen) { + *out++ = 0x00; + len++; + } + + *outLen = keyLen; + + /* convert */ + if (mp_to_unsigned_bin(&tmp, out) != MP_OKAY) + ERROR_OUT(MP_TO_E); + +done: + mp_clear(&tmp); + return ret; +} + + +int RsaPublicEncrypt(const byte* in, word32 inLen, byte* out, word32 outLen, + RsaKey* key, RNG* rng) +{ + int sz = mp_unsigned_bin_size(&key->n), ret; + + if (sz > (int)outLen) + return RSA_BUFFER_E; + + if (inLen > (word32)(sz - RSA_MIN_PAD_SZ)) + return RSA_BUFFER_E; + + RsaPad(in, inLen, out, sz, RSA_BLOCK_TYPE_2, rng); + + if ((ret = RsaFunction(out, sz, out, &outLen, RSA_PUBLIC_ENCRYPT, key)) < 0) + sz = ret; + + return sz; +} + + +int RsaPrivateDecryptInline(byte* in, word32 inLen, byte** out, RsaKey* key) +{ + int plainLen, ret; + + if ((ret = RsaFunction(in, inLen, in, &inLen, RSA_PRIVATE_DECRYPT, key)) + < 0) { + return ret; + } + + plainLen = RsaUnPad(in, inLen, out, RSA_BLOCK_TYPE_2); + + return plainLen; +} + + +int RsaPrivateDecrypt(const byte* in, word32 inLen, byte* out, word32 outLen, + RsaKey* key) +{ + int plainLen, ret; + byte* tmp; + byte* pad = 0; + + tmp = (byte*)XMALLOC(inLen, key->heap, DYNAMIC_TYPE_RSA); + if (tmp == NULL) { + return MEMORY_E; + } + + XMEMCPY(tmp, in, inLen); + + if ((ret = plainLen = RsaPrivateDecryptInline(tmp, inLen, &pad, key)) + < 0) { + XFREE(tmp, key->heap, DYNAMIC_TYPE_RSA); + return ret; + } + if (plainLen > (int)outLen) + plainLen = BAD_FUNC_ARG; + else + XMEMCPY(out, pad, plainLen); + XMEMSET(tmp, 0x00, inLen); + + XFREE(tmp, key->heap, DYNAMIC_TYPE_RSA); + return plainLen; +} + + +/* for Rsa Verify */ +int RsaSSL_VerifyInline(byte* in, word32 inLen, byte** out, RsaKey* key) +{ + int plainLen, ret; + + if ((ret = RsaFunction(in, inLen, in, &inLen, RSA_PUBLIC_DECRYPT, key)) + < 0) { + return ret; + } + + plainLen = RsaUnPad(in, inLen, out, RSA_BLOCK_TYPE_1); + + return plainLen; +} + + +int RsaSSL_Verify(const byte* in, word32 inLen, byte* out, word32 outLen, + RsaKey* key) +{ + int plainLen, ret; + byte* tmp; + byte* pad = 0; + + tmp = (byte*)XMALLOC(inLen, key->heap, DYNAMIC_TYPE_RSA); + if (tmp == NULL) { + return MEMORY_E; + } + + XMEMCPY(tmp, in, inLen); + + if ((ret = plainLen = RsaSSL_VerifyInline(tmp, inLen, &pad, key)) + < 0) { + XFREE(tmp, key->heap, DYNAMIC_TYPE_RSA); + return ret; + } + + if (plainLen > (int)outLen) + plainLen = BAD_FUNC_ARG; + else + XMEMCPY(out, pad, plainLen); + XMEMSET(tmp, 0x00, inLen); + + XFREE(tmp, key->heap, DYNAMIC_TYPE_RSA); + return plainLen; +} + + +/* for Rsa Sign */ +int RsaSSL_Sign(const byte* in, word32 inLen, byte* out, word32 outLen, + RsaKey* key, RNG* rng) +{ + int sz = mp_unsigned_bin_size(&key->n), ret; + + if (sz > (int)outLen) + return RSA_BUFFER_E; + + if (inLen > (word32)(sz - RSA_MIN_PAD_SZ)) + return RSA_BUFFER_E; + + RsaPad(in, inLen, out, sz, RSA_BLOCK_TYPE_1, rng); + + if ((ret = RsaFunction(out, sz, out, &outLen, RSA_PRIVATE_ENCRYPT,key)) < 0) + sz = ret; + + return sz; +} + + +int RsaEncryptSize(RsaKey* key) +{ + return mp_unsigned_bin_size(&key->n); +} + + +#ifdef CYASSL_KEY_GEN + +static const int USE_BBS = 1; + +static int rand_prime(mp_int* N, int len, RNG* rng, void* heap) +{ + int err, res, type; + byte* buf; + + (void)heap; + if (N == NULL || rng == NULL) + return BAD_FUNC_ARG; + + /* get type */ + if (len < 0) { + type = USE_BBS; + len = -len; + } else { + type = 0; + } + + /* allow sizes between 2 and 512 bytes for a prime size */ + if (len < 2 || len > 512) { + return BAD_FUNC_ARG; + } + + /* allocate buffer to work with */ + buf = (byte*)XMALLOC(len, heap, DYNAMIC_TYPE_RSA); + if (buf == NULL) { + return MEMORY_E; + } + XMEMSET(buf, 0, len); + + do { +#ifdef SHOW_GEN + printf("."); + fflush(stdout); +#endif + /* generate value */ + RNG_GenerateBlock(rng, buf, len); + + /* munge bits */ + buf[0] |= 0x80 | 0x40; + buf[len-1] |= 0x01 | ((type & USE_BBS) ? 0x02 : 0x00); + + /* load value */ + if ((err = mp_read_unsigned_bin(N, buf, len)) != MP_OKAY) { + XFREE(buf, heap, DYNAMIC_TYPE_RSA); + return err; + } + + /* test */ + if ((err = mp_prime_is_prime(N, 8, &res)) != MP_OKAY) { + XFREE(buf, heap, DYNAMIC_TYPE_RSA); + return err; + } + } while (res == MP_NO); + +#ifdef LTC_CLEAN_STACK + XMEMSET(buf, 0, len); +#endif + + XFREE(buf, heap, DYNAMIC_TYPE_RSA); + return 0; +} + + +/* Make an RSA key for size bits, with e specified, 65537 is a good e */ +int MakeRsaKey(RsaKey* key, int size, long e, RNG* rng) +{ + mp_int p, q, tmp1, tmp2, tmp3; + int err; + + if (key == NULL || rng == NULL) + return BAD_FUNC_ARG; + + if (size < RSA_MIN_SIZE || size > RSA_MAX_SIZE) + return BAD_FUNC_ARG; + + if (e < 3 || (e & 1) == 0) + return BAD_FUNC_ARG; + + if ((err = mp_init_multi(&p, &q, &tmp1, &tmp2, &tmp3, NULL)) != MP_OKAY) + return err; + + err = mp_set_int(&tmp3, e); + + /* make p */ + if (err == MP_OKAY) { + do { + err = rand_prime(&p, size/16, rng, key->heap); /* size in bytes/2 */ + + if (err == MP_OKAY) + err = mp_sub_d(&p, 1, &tmp1); /* tmp1 = p-1 */ + + if (err == MP_OKAY) + err = mp_gcd(&tmp1, &tmp3, &tmp2); /* tmp2 = gcd(p-1, e) */ + } while (err == MP_OKAY && mp_cmp_d(&tmp2, 1) != 0); /* e divdes p-1 */ + } + + /* make q */ + if (err == MP_OKAY) { + do { + err = rand_prime(&q, size/16, rng, key->heap); /* size in bytes/2 */ + + if (err == MP_OKAY) + err = mp_sub_d(&q, 1, &tmp1); /* tmp1 = q-1 */ + + if (err == MP_OKAY) + err = mp_gcd(&tmp1, &tmp3, &tmp2); /* tmp2 = gcd(q-1, e) */ + } while (err == MP_OKAY && mp_cmp_d(&tmp2, 1) != 0); /* e divdes q-1 */ + } + + if (err == MP_OKAY) + err = mp_init_multi(&key->n, &key->e, &key->d, &key->p, &key->q, NULL); + + if (err == MP_OKAY) + err = mp_init_multi(&key->dP, &key->dP, &key->u, NULL, NULL, NULL); + + if (err == MP_OKAY) + err = mp_sub_d(&p, 1, &tmp2); /* tmp2 = p-1 */ + + if (err == MP_OKAY) + err = mp_lcm(&tmp1, &tmp2, &tmp1); /* tmp1 = lcm(p-1, q-1),last loop */ + + /* make key */ + if (err == MP_OKAY) + err = mp_set_int(&key->e, e); /* key->e = e */ + + if (err == MP_OKAY) /* key->d = 1/e mod lcm(p-1, q-1) */ + err = mp_invmod(&key->e, &tmp1, &key->d); + + if (err == MP_OKAY) + err = mp_mul(&p, &q, &key->n); /* key->n = pq */ + + if (err == MP_OKAY) + err = mp_sub_d(&p, 1, &tmp1); + + if (err == MP_OKAY) + err = mp_sub_d(&q, 1, &tmp2); + + if (err == MP_OKAY) + err = mp_mod(&key->d, &tmp1, &key->dP); + + if (err == MP_OKAY) + err = mp_mod(&key->d, &tmp2, &key->dQ); + + if (err == MP_OKAY) + err = mp_invmod(&q, &p, &key->u); + + if (err == MP_OKAY) + err = mp_copy(&p, &key->p); + + if (err == MP_OKAY) + err = mp_copy(&q, &key->q); + + if (err == MP_OKAY) + key->type = RSA_PRIVATE; + + mp_clear(&tmp3); + mp_clear(&tmp2); + mp_clear(&tmp1); + mp_clear(&q); + mp_clear(&p); + + if (err != MP_OKAY) { + FreeRsaKey(key); + return err; + } + + return 0; +} + + +#endif /* CYASLS_KEY_GEN */ + diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/sha.c b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/sha.c new file mode 100644 index 000000000..bad8c9f79 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/sha.c @@ -0,0 +1,201 @@ +/* sha.c + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +#ifdef HAVE_CONFIG_H + #include +#endif + +#include +#ifdef NO_INLINE + #include +#else + #include +#endif + + +#ifndef min + + static INLINE word32 min(word32 a, word32 b) + { + return a > b ? b : a; + } + +#endif /* min */ + + +void InitSha(Sha* sha) +{ + sha->digest[0] = 0x67452301L; + sha->digest[1] = 0xEFCDAB89L; + sha->digest[2] = 0x98BADCFEL; + sha->digest[3] = 0x10325476L; + sha->digest[4] = 0xC3D2E1F0L; + + sha->buffLen = 0; + sha->loLen = 0; + sha->hiLen = 0; +} + +#define blk0(i) (W[i] = sha->buffer[i]) +#define blk1(i) (W[i&15] = \ + rotlFixed(W[(i+13)&15]^W[(i+8)&15]^W[(i+2)&15]^W[i&15],1)) + +#define f1(x,y,z) (z^(x &(y^z))) +#define f2(x,y,z) (x^y^z) +#define f3(x,y,z) ((x&y)|(z&(x|y))) +#define f4(x,y,z) (x^y^z) + +/* (R0+R1), R2, R3, R4 are the different operations used in SHA1 */ +#define R0(v,w,x,y,z,i) z+= f1(w,x,y) + blk0(i) + 0x5A827999+ \ + rotlFixed(v,5); w = rotlFixed(w,30); +#define R1(v,w,x,y,z,i) z+= f1(w,x,y) + blk1(i) + 0x5A827999+ \ + rotlFixed(v,5); w = rotlFixed(w,30); +#define R2(v,w,x,y,z,i) z+= f2(w,x,y) + blk1(i) + 0x6ED9EBA1+ \ + rotlFixed(v,5); w = rotlFixed(w,30); +#define R3(v,w,x,y,z,i) z+= f3(w,x,y) + blk1(i) + 0x8F1BBCDC+ \ + rotlFixed(v,5); w = rotlFixed(w,30); +#define R4(v,w,x,y,z,i) z+= f4(w,x,y) + blk1(i) + 0xCA62C1D6+ \ + rotlFixed(v,5); w = rotlFixed(w,30); + + +static void Transform(Sha* sha) +{ + word32 W[SHA_BLOCK_SIZE / sizeof(word32)]; + + /* Copy context->state[] to working vars */ + word32 a = sha->digest[0]; + word32 b = sha->digest[1]; + word32 c = sha->digest[2]; + word32 d = sha->digest[3]; + word32 e = sha->digest[4]; + + /* nearly 1 K bigger in code size but 25% faster */ + /* 4 rounds of 20 operations each. Loop unrolled. */ + R0(a,b,c,d,e, 0); R0(e,a,b,c,d, 1); R0(d,e,a,b,c, 2); R0(c,d,e,a,b, 3); + R0(b,c,d,e,a, 4); R0(a,b,c,d,e, 5); R0(e,a,b,c,d, 6); R0(d,e,a,b,c, 7); + R0(c,d,e,a,b, 8); R0(b,c,d,e,a, 9); R0(a,b,c,d,e,10); R0(e,a,b,c,d,11); + R0(d,e,a,b,c,12); R0(c,d,e,a,b,13); R0(b,c,d,e,a,14); R0(a,b,c,d,e,15); + + R1(e,a,b,c,d,16); R1(d,e,a,b,c,17); R1(c,d,e,a,b,18); R1(b,c,d,e,a,19); + + R2(a,b,c,d,e,20); R2(e,a,b,c,d,21); R2(d,e,a,b,c,22); R2(c,d,e,a,b,23); + R2(b,c,d,e,a,24); R2(a,b,c,d,e,25); R2(e,a,b,c,d,26); R2(d,e,a,b,c,27); + R2(c,d,e,a,b,28); R2(b,c,d,e,a,29); R2(a,b,c,d,e,30); R2(e,a,b,c,d,31); + R2(d,e,a,b,c,32); R2(c,d,e,a,b,33); R2(b,c,d,e,a,34); R2(a,b,c,d,e,35); + R2(e,a,b,c,d,36); R2(d,e,a,b,c,37); R2(c,d,e,a,b,38); R2(b,c,d,e,a,39); + + R3(a,b,c,d,e,40); R3(e,a,b,c,d,41); R3(d,e,a,b,c,42); R3(c,d,e,a,b,43); + R3(b,c,d,e,a,44); R3(a,b,c,d,e,45); R3(e,a,b,c,d,46); R3(d,e,a,b,c,47); + R3(c,d,e,a,b,48); R3(b,c,d,e,a,49); R3(a,b,c,d,e,50); R3(e,a,b,c,d,51); + R3(d,e,a,b,c,52); R3(c,d,e,a,b,53); R3(b,c,d,e,a,54); R3(a,b,c,d,e,55); + R3(e,a,b,c,d,56); R3(d,e,a,b,c,57); R3(c,d,e,a,b,58); R3(b,c,d,e,a,59); + + R4(a,b,c,d,e,60); R4(e,a,b,c,d,61); R4(d,e,a,b,c,62); R4(c,d,e,a,b,63); + R4(b,c,d,e,a,64); R4(a,b,c,d,e,65); R4(e,a,b,c,d,66); R4(d,e,a,b,c,67); + R4(c,d,e,a,b,68); R4(b,c,d,e,a,69); R4(a,b,c,d,e,70); R4(e,a,b,c,d,71); + R4(d,e,a,b,c,72); R4(c,d,e,a,b,73); R4(b,c,d,e,a,74); R4(a,b,c,d,e,75); + R4(e,a,b,c,d,76); R4(d,e,a,b,c,77); R4(c,d,e,a,b,78); R4(b,c,d,e,a,79); + + /* Add the working vars back into digest state[] */ + sha->digest[0] += a; + sha->digest[1] += b; + sha->digest[2] += c; + sha->digest[3] += d; + sha->digest[4] += e; +} + + +static INLINE void AddLength(Sha* sha, word32 len) +{ + word32 tmp = sha->loLen; + if ( (sha->loLen += len) < tmp) + sha->hiLen++; /* carry low to high */ +} + + +void ShaUpdate(Sha* sha, const byte* data, word32 len) +{ + /* do block size increments */ + byte* local = (byte*)sha->buffer; + + while (len) { + word32 add = min(len, SHA_BLOCK_SIZE - sha->buffLen); + XMEMCPY(&local[sha->buffLen], data, add); + + sha->buffLen += add; + data += add; + len -= add; + + if (sha->buffLen == SHA_BLOCK_SIZE) { + #ifdef LITTLE_ENDIAN_ORDER + ByteReverseBytes(local, local, SHA_BLOCK_SIZE); + #endif + Transform(sha); + AddLength(sha, SHA_BLOCK_SIZE); + sha->buffLen = 0; + } + } +} + + +void ShaFinal(Sha* sha, byte* hash) +{ + byte* local = (byte*)sha->buffer; + + AddLength(sha, sha->buffLen); /* before adding pads */ + + local[sha->buffLen++] = 0x80; /* add 1 */ + + /* pad with zeros */ + if (sha->buffLen > SHA_PAD_SIZE) { + XMEMSET(&local[sha->buffLen], 0, SHA_BLOCK_SIZE - sha->buffLen); + sha->buffLen += SHA_BLOCK_SIZE - sha->buffLen; + + #ifdef LITTLE_ENDIAN_ORDER + ByteReverseBytes(local, local, SHA_BLOCK_SIZE); + #endif + Transform(sha); + sha->buffLen = 0; + } + XMEMSET(&local[sha->buffLen], 0, SHA_PAD_SIZE - sha->buffLen); + + /* put lengths in bits */ + sha->hiLen = (sha->loLen >> (8*sizeof(sha->loLen) - 3)) + + (sha->hiLen << 3); + sha->loLen = sha->loLen << 3; + + /* store lengths */ + #ifdef LITTLE_ENDIAN_ORDER + ByteReverseBytes(local, local, SHA_BLOCK_SIZE); + #endif + /* ! length ordering dependent on digest endian type ! */ + XMEMCPY(&local[SHA_PAD_SIZE], &sha->hiLen, sizeof(word32)); + XMEMCPY(&local[SHA_PAD_SIZE + sizeof(word32)], &sha->loLen, sizeof(word32)); + + Transform(sha); + #ifdef LITTLE_ENDIAN_ORDER + ByteReverseWords(sha->digest, sha->digest, SHA_DIGEST_SIZE); + #endif + XMEMCPY(hash, sha->digest, SHA_DIGEST_SIZE); + + InitSha(sha); /* reset state */ +} + diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/sha256.c b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/sha256.c new file mode 100644 index 000000000..9291dbc9c --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/sha256.c @@ -0,0 +1,209 @@ +/* sha256.c + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +/* code submitted by raphael.huck@efixo.com */ + +#ifdef HAVE_CONFIG_H + #include +#endif + +#ifndef NO_SHA256 + +#include +#ifdef NO_INLINE + #include +#else + #include +#endif + + +#ifndef min + + static INLINE word32 min(word32 a, word32 b) + { + return a > b ? b : a; + } + +#endif /* min */ + + +void InitSha256(Sha256* sha256) +{ + sha256->digest[0] = 0x6A09E667L; + sha256->digest[1] = 0xBB67AE85L; + sha256->digest[2] = 0x3C6EF372L; + sha256->digest[3] = 0xA54FF53AL; + sha256->digest[4] = 0x510E527FL; + sha256->digest[5] = 0x9B05688CL; + sha256->digest[6] = 0x1F83D9ABL; + sha256->digest[7] = 0x5BE0CD19L; + + sha256->buffLen = 0; + sha256->loLen = 0; + sha256->hiLen = 0; +} + +static const word32 K[64] = { + 0x428A2F98L, 0x71374491L, 0xB5C0FBCFL, 0xE9B5DBA5L, 0x3956C25BL, + 0x59F111F1L, 0x923F82A4L, 0xAB1C5ED5L, 0xD807AA98L, 0x12835B01L, + 0x243185BEL, 0x550C7DC3L, 0x72BE5D74L, 0x80DEB1FEL, 0x9BDC06A7L, + 0xC19BF174L, 0xE49B69C1L, 0xEFBE4786L, 0x0FC19DC6L, 0x240CA1CCL, + 0x2DE92C6FL, 0x4A7484AAL, 0x5CB0A9DCL, 0x76F988DAL, 0x983E5152L, + 0xA831C66DL, 0xB00327C8L, 0xBF597FC7L, 0xC6E00BF3L, 0xD5A79147L, + 0x06CA6351L, 0x14292967L, 0x27B70A85L, 0x2E1B2138L, 0x4D2C6DFCL, + 0x53380D13L, 0x650A7354L, 0x766A0ABBL, 0x81C2C92EL, 0x92722C85L, + 0xA2BFE8A1L, 0xA81A664BL, 0xC24B8B70L, 0xC76C51A3L, 0xD192E819L, + 0xD6990624L, 0xF40E3585L, 0x106AA070L, 0x19A4C116L, 0x1E376C08L, + 0x2748774CL, 0x34B0BCB5L, 0x391C0CB3L, 0x4ED8AA4AL, 0x5B9CCA4FL, + 0x682E6FF3L, 0x748F82EEL, 0x78A5636FL, 0x84C87814L, 0x8CC70208L, + 0x90BEFFFAL, 0xA4506CEBL, 0xBEF9A3F7L, 0xC67178F2L +}; + +#define Ch(x,y,z) (z ^ (x & (y ^ z))) +#define Maj(x,y,z) (((x | y) & z) | (x & y)) +#define S(x, n) rotrFixed(x, n) +#define R(x, n) (((x)&0xFFFFFFFFL)>>(n)) +#define Sigma0(x) (S(x, 2) ^ S(x, 13) ^ S(x, 22)) +#define Sigma1(x) (S(x, 6) ^ S(x, 11) ^ S(x, 25)) +#define Gamma0(x) (S(x, 7) ^ S(x, 18) ^ R(x, 3)) +#define Gamma1(x) (S(x, 17) ^ S(x, 19) ^ R(x, 10)) + +#define RND(a,b,c,d,e,f,g,h,i) \ + t0 = h + Sigma1(e) + Ch(e, f, g) + K[i] + W[i]; \ + t1 = Sigma0(a) + Maj(a, b, c); \ + d += t0; \ + h = t0 + t1; + + +static void Transform(Sha256* sha256) +{ + word32 S[8], W[64], t0, t1; + int i; + + /* Copy context->state[] to working vars */ + for (i = 0; i < 8; i++) + S[i] = sha256->digest[i]; + + for (i = 0; i < 16; i++) + W[i] = sha256->buffer[i]; + + for (i = 16; i < 64; i++) + W[i] = Gamma1(W[i-2]) + W[i-7] + Gamma0(W[i-15]) + W[i-16]; + + for (i = 0; i < 64; i += 8) { + RND(S[0],S[1],S[2],S[3],S[4],S[5],S[6],S[7],i+0); + RND(S[7],S[0],S[1],S[2],S[3],S[4],S[5],S[6],i+1); + RND(S[6],S[7],S[0],S[1],S[2],S[3],S[4],S[5],i+2); + RND(S[5],S[6],S[7],S[0],S[1],S[2],S[3],S[4],i+3); + RND(S[4],S[5],S[6],S[7],S[0],S[1],S[2],S[3],i+4); + RND(S[3],S[4],S[5],S[6],S[7],S[0],S[1],S[2],i+5); + RND(S[2],S[3],S[4],S[5],S[6],S[7],S[0],S[1],i+6); + RND(S[1],S[2],S[3],S[4],S[5],S[6],S[7],S[0],i+7); + } + + /* Add the working vars back into digest state[] */ + for (i = 0; i < 8; i++) { + sha256->digest[i] += S[i]; + } +} + + +static INLINE void AddLength(Sha256* sha256, word32 len) +{ + word32 tmp = sha256->loLen; + if ( (sha256->loLen += len) < tmp) + sha256->hiLen++; /* carry low to high */ +} + + +void Sha256Update(Sha256* sha256, const byte* data, word32 len) +{ + /* do block size increments */ + byte* local = (byte*)sha256->buffer; + + while (len) { + word32 add = min(len, SHA256_BLOCK_SIZE - sha256->buffLen); + XMEMCPY(&local[sha256->buffLen], data, add); + + sha256->buffLen += add; + data += add; + len -= add; + + if (sha256->buffLen == SHA256_BLOCK_SIZE) { + #ifdef LITTLE_ENDIAN_ORDER + ByteReverseBytes(local, local, SHA256_BLOCK_SIZE); + #endif + Transform(sha256); + AddLength(sha256, SHA256_BLOCK_SIZE); + sha256->buffLen = 0; + } + } +} + + +void Sha256Final(Sha256* sha256, byte* hash) +{ + byte* local = (byte*)sha256->buffer; + + AddLength(sha256, sha256->buffLen); /* before adding pads */ + + local[sha256->buffLen++] = 0x80; /* add 1 */ + + /* pad with zeros */ + if (sha256->buffLen > SHA256_PAD_SIZE) { + XMEMSET(&local[sha256->buffLen], 0, SHA256_BLOCK_SIZE - sha256->buffLen); + sha256->buffLen += SHA256_BLOCK_SIZE - sha256->buffLen; + + #ifdef LITTLE_ENDIAN_ORDER + ByteReverseBytes(local, local, SHA256_BLOCK_SIZE); + #endif + Transform(sha256); + sha256->buffLen = 0; + } + XMEMSET(&local[sha256->buffLen], 0, SHA256_PAD_SIZE - sha256->buffLen); + + /* put lengths in bits */ + sha256->hiLen = (sha256->loLen >> (8*sizeof(sha256->loLen) - 3)) + + (sha256->hiLen << 3); + sha256->loLen = sha256->loLen << 3; + + /* store lengths */ + #ifdef LITTLE_ENDIAN_ORDER + ByteReverseBytes(local, local, SHA256_BLOCK_SIZE); + #endif + /* ! length ordering dependent on digest endian type ! */ + XMEMCPY(&local[SHA256_PAD_SIZE], &sha256->hiLen, sizeof(word32)); + XMEMCPY(&local[SHA256_PAD_SIZE + sizeof(word32)], &sha256->loLen, + sizeof(word32)); + + Transform(sha256); + #ifdef LITTLE_ENDIAN_ORDER + ByteReverseWords(sha256->digest, sha256->digest, SHA256_DIGEST_SIZE); + #endif + XMEMCPY(hash, sha256->digest, SHA256_DIGEST_SIZE); + + InitSha256(sha256); /* reset state */ +} + + +#endif /* NO_SHA256 */ + diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/sha512.c b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/sha512.c new file mode 100644 index 000000000..f14efecff --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/sha512.c @@ -0,0 +1,386 @@ +/* sha512.c + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +#ifdef HAVE_CONFIG_H + #include +#endif + + +#ifdef CYASSL_SHA512 + +#include +#ifdef NO_INLINE + #include +#else + #include +#endif + + +#ifndef min + + static INLINE word32 min(word32 a, word32 b) + { + return a > b ? b : a; + } + +#endif /* min */ + + +void InitSha512(Sha512* sha512) +{ + sha512->digest[0] = W64LIT(0x6a09e667f3bcc908); + sha512->digest[1] = W64LIT(0xbb67ae8584caa73b); + sha512->digest[2] = W64LIT(0x3c6ef372fe94f82b); + sha512->digest[3] = W64LIT(0xa54ff53a5f1d36f1); + sha512->digest[4] = W64LIT(0x510e527fade682d1); + sha512->digest[5] = W64LIT(0x9b05688c2b3e6c1f); + sha512->digest[6] = W64LIT(0x1f83d9abfb41bd6b); + sha512->digest[7] = W64LIT(0x5be0cd19137e2179); + + sha512->buffLen = 0; + sha512->loLen = 0; + sha512->hiLen = 0; +} + + +static const word64 K512[80] = { + W64LIT(0x428a2f98d728ae22), W64LIT(0x7137449123ef65cd), + W64LIT(0xb5c0fbcfec4d3b2f), W64LIT(0xe9b5dba58189dbbc), + W64LIT(0x3956c25bf348b538), W64LIT(0x59f111f1b605d019), + W64LIT(0x923f82a4af194f9b), W64LIT(0xab1c5ed5da6d8118), + W64LIT(0xd807aa98a3030242), W64LIT(0x12835b0145706fbe), + W64LIT(0x243185be4ee4b28c), W64LIT(0x550c7dc3d5ffb4e2), + W64LIT(0x72be5d74f27b896f), W64LIT(0x80deb1fe3b1696b1), + W64LIT(0x9bdc06a725c71235), W64LIT(0xc19bf174cf692694), + W64LIT(0xe49b69c19ef14ad2), W64LIT(0xefbe4786384f25e3), + W64LIT(0x0fc19dc68b8cd5b5), W64LIT(0x240ca1cc77ac9c65), + W64LIT(0x2de92c6f592b0275), W64LIT(0x4a7484aa6ea6e483), + W64LIT(0x5cb0a9dcbd41fbd4), W64LIT(0x76f988da831153b5), + W64LIT(0x983e5152ee66dfab), W64LIT(0xa831c66d2db43210), + W64LIT(0xb00327c898fb213f), W64LIT(0xbf597fc7beef0ee4), + W64LIT(0xc6e00bf33da88fc2), W64LIT(0xd5a79147930aa725), + W64LIT(0x06ca6351e003826f), W64LIT(0x142929670a0e6e70), + W64LIT(0x27b70a8546d22ffc), W64LIT(0x2e1b21385c26c926), + W64LIT(0x4d2c6dfc5ac42aed), W64LIT(0x53380d139d95b3df), + W64LIT(0x650a73548baf63de), W64LIT(0x766a0abb3c77b2a8), + W64LIT(0x81c2c92e47edaee6), W64LIT(0x92722c851482353b), + W64LIT(0xa2bfe8a14cf10364), W64LIT(0xa81a664bbc423001), + W64LIT(0xc24b8b70d0f89791), W64LIT(0xc76c51a30654be30), + W64LIT(0xd192e819d6ef5218), W64LIT(0xd69906245565a910), + W64LIT(0xf40e35855771202a), W64LIT(0x106aa07032bbd1b8), + W64LIT(0x19a4c116b8d2d0c8), W64LIT(0x1e376c085141ab53), + W64LIT(0x2748774cdf8eeb99), W64LIT(0x34b0bcb5e19b48a8), + W64LIT(0x391c0cb3c5c95a63), W64LIT(0x4ed8aa4ae3418acb), + W64LIT(0x5b9cca4f7763e373), W64LIT(0x682e6ff3d6b2b8a3), + W64LIT(0x748f82ee5defb2fc), W64LIT(0x78a5636f43172f60), + W64LIT(0x84c87814a1f0ab72), W64LIT(0x8cc702081a6439ec), + W64LIT(0x90befffa23631e28), W64LIT(0xa4506cebde82bde9), + W64LIT(0xbef9a3f7b2c67915), W64LIT(0xc67178f2e372532b), + W64LIT(0xca273eceea26619c), W64LIT(0xd186b8c721c0c207), + W64LIT(0xeada7dd6cde0eb1e), W64LIT(0xf57d4f7fee6ed178), + W64LIT(0x06f067aa72176fba), W64LIT(0x0a637dc5a2c898a6), + W64LIT(0x113f9804bef90dae), W64LIT(0x1b710b35131c471b), + W64LIT(0x28db77f523047d84), W64LIT(0x32caab7b40c72493), + W64LIT(0x3c9ebe0a15c9bebc), W64LIT(0x431d67c49c100d4c), + W64LIT(0x4cc5d4becb3e42b6), W64LIT(0x597f299cfc657e2a), + W64LIT(0x5fcb6fab3ad6faec), W64LIT(0x6c44198c4a475817) +}; + + +#define blk0(i) (W[i] = sha512->buffer[i]) +#define blk2(i) (W[i&15]+=s1(W[(i-2)&15])+W[(i-7)&15]+s0(W[(i-15)&15])) + +#define Ch(x,y,z) (z^(x&(y^z))) +#define Maj(x,y,z) ((x&y)|(z&(x|y))) + +#define a(i) T[(0-i)&7] +#define b(i) T[(1-i)&7] +#define c(i) T[(2-i)&7] +#define d(i) T[(3-i)&7] +#define e(i) T[(4-i)&7] +#define f(i) T[(5-i)&7] +#define g(i) T[(6-i)&7] +#define h(i) T[(7-i)&7] + +#define S0(x) (rotrFixed64(x,28)^rotrFixed64(x,34)^rotrFixed64(x,39)) +#define S1(x) (rotrFixed64(x,14)^rotrFixed64(x,18)^rotrFixed64(x,41)) +#define s0(x) (rotrFixed64(x,1)^rotrFixed64(x,8)^(x>>7)) +#define s1(x) (rotrFixed64(x,19)^rotrFixed64(x,61)^(x>>6)) + +#define R(i) h(i)+=S1(e(i))+Ch(e(i),f(i),g(i))+K[i+j]+(j?blk2(i):blk0(i));\ + d(i)+=h(i);h(i)+=S0(a(i))+Maj(a(i),b(i),c(i)) + +#define blk384(i) (W[i] = sha384->buffer[i]) + +#define R2(i) h(i)+=S1(e(i))+Ch(e(i),f(i),g(i))+K[i+j]+(j?blk2(i):blk384(i));\ + d(i)+=h(i);h(i)+=S0(a(i))+Maj(a(i),b(i),c(i)) + + +static void Transform(Sha512* sha512) +{ + const word64* K = K512; + + word32 j; + word64 W[16]; + word64 T[8]; + + /* Copy digest to working vars */ + XMEMCPY(T, sha512->digest, sizeof(T)); + + /* 64 operations, partially loop unrolled */ + for (j = 0; j < 80; j += 16) { + R( 0); R( 1); R( 2); R( 3); + R( 4); R( 5); R( 6); R( 7); + R( 8); R( 9); R(10); R(11); + R(12); R(13); R(14); R(15); + } + + /* Add the working vars back into digest */ + + sha512->digest[0] += a(0); + sha512->digest[1] += b(0); + sha512->digest[2] += c(0); + sha512->digest[3] += d(0); + sha512->digest[4] += e(0); + sha512->digest[5] += f(0); + sha512->digest[6] += g(0); + sha512->digest[7] += h(0); + + /* Wipe variables */ + XMEMSET(W, 0, sizeof(W)); + XMEMSET(T, 0, sizeof(T)); +} + + +static INLINE void AddLength(Sha512* sha512, word32 len) +{ + word32 tmp = sha512->loLen; + if ( (sha512->loLen += len) < tmp) + sha512->hiLen++; /* carry low to high */ +} + + +void Sha512Update(Sha512* sha512, const byte* data, word32 len) +{ + /* do block size increments */ + byte* local = (byte*)sha512->buffer; + + while (len) { + word32 add = min(len, SHA512_BLOCK_SIZE - sha512->buffLen); + XMEMCPY(&local[sha512->buffLen], data, add); + + sha512->buffLen += add; + data += add; + len -= add; + + if (sha512->buffLen == SHA512_BLOCK_SIZE) { + #ifdef LITTLE_ENDIAN_ORDER + ByteReverseWords64(sha512->buffer, sha512->buffer, + SHA512_BLOCK_SIZE); + #endif + Transform(sha512); + AddLength(sha512, SHA512_BLOCK_SIZE); + sha512->buffLen = 0; + } + } +} + + +void Sha512Final(Sha512* sha512, byte* hash) +{ + byte* local = (byte*)sha512->buffer; + + AddLength(sha512, sha512->buffLen); /* before adding pads */ + + local[sha512->buffLen++] = 0x80; /* add 1 */ + + /* pad with zeros */ + if (sha512->buffLen > SHA512_PAD_SIZE) { + XMEMSET(&local[sha512->buffLen], 0, SHA512_BLOCK_SIZE -sha512->buffLen); + sha512->buffLen += SHA512_BLOCK_SIZE - sha512->buffLen; + + #ifdef LITTLE_ENDIAN_ORDER + ByteReverseWords64(sha512->buffer,sha512->buffer,SHA512_BLOCK_SIZE); + #endif + Transform(sha512); + sha512->buffLen = 0; + } + XMEMSET(&local[sha512->buffLen], 0, SHA512_PAD_SIZE - sha512->buffLen); + + /* put lengths in bits */ + sha512->hiLen = (sha512->loLen >> (8*sizeof(sha512->loLen) - 3)) + + (sha512->hiLen << 3); + sha512->loLen = sha512->loLen << 3; + + /* store lengths */ + #ifdef LITTLE_ENDIAN_ORDER + ByteReverseWords64(sha512->buffer, sha512->buffer, SHA512_PAD_SIZE); + #endif + /* ! length ordering dependent on digest endian type ! */ + sha512->buffer[SHA512_BLOCK_SIZE / sizeof(word64) - 2] = sha512->hiLen; + sha512->buffer[SHA512_BLOCK_SIZE / sizeof(word64) - 1] = sha512->loLen; + + Transform(sha512); + #ifdef LITTLE_ENDIAN_ORDER + ByteReverseWords64(sha512->digest, sha512->digest, SHA512_DIGEST_SIZE); + #endif + XMEMCPY(hash, sha512->digest, SHA512_DIGEST_SIZE); + + InitSha512(sha512); /* reset state */ +} + + + +#ifdef CYASSL_SHA384 + +void InitSha384(Sha384* sha384) +{ + sha384->digest[0] = W64LIT(0xcbbb9d5dc1059ed8); + sha384->digest[1] = W64LIT(0x629a292a367cd507); + sha384->digest[2] = W64LIT(0x9159015a3070dd17); + sha384->digest[3] = W64LIT(0x152fecd8f70e5939); + sha384->digest[4] = W64LIT(0x67332667ffc00b31); + sha384->digest[5] = W64LIT(0x8eb44a8768581511); + sha384->digest[6] = W64LIT(0xdb0c2e0d64f98fa7); + sha384->digest[7] = W64LIT(0x47b5481dbefa4fa4); + + sha384->buffLen = 0; + sha384->loLen = 0; + sha384->hiLen = 0; +} + + +static void Transform384(Sha384* sha384) +{ + const word64* K = K512; + + word32 j; + word64 W[16]; + word64 T[8]; + + /* Copy digest to working vars */ + XMEMCPY(T, sha384->digest, sizeof(T)); + + /* 64 operations, partially loop unrolled */ + for (j = 0; j < 80; j += 16) { + R2( 0); R2( 1); R2( 2); R2( 3); + R2( 4); R2( 5); R2( 6); R2( 7); + R2( 8); R2( 9); R2(10); R2(11); + R2(12); R2(13); R2(14); R2(15); + } + + /* Add the working vars back into digest */ + + sha384->digest[0] += a(0); + sha384->digest[1] += b(0); + sha384->digest[2] += c(0); + sha384->digest[3] += d(0); + sha384->digest[4] += e(0); + sha384->digest[5] += f(0); + sha384->digest[6] += g(0); + sha384->digest[7] += h(0); + + /* Wipe variables */ + XMEMSET(W, 0, sizeof(W)); + XMEMSET(T, 0, sizeof(T)); +} + + +static INLINE void AddLength384(Sha384* sha384, word32 len) +{ + word32 tmp = sha384->loLen; + if ( (sha384->loLen += len) < tmp) + sha384->hiLen++; /* carry low to high */ +} + + +void Sha384Update(Sha384* sha384, const byte* data, word32 len) +{ + /* do block size increments */ + byte* local = (byte*)sha384->buffer; + + while (len) { + word32 add = min(len, SHA384_BLOCK_SIZE - sha384->buffLen); + XMEMCPY(&local[sha384->buffLen], data, add); + + sha384->buffLen += add; + data += add; + len -= add; + + if (sha384->buffLen == SHA384_BLOCK_SIZE) { + #ifdef LITTLE_ENDIAN_ORDER + ByteReverseWords64(sha384->buffer, sha384->buffer, + SHA384_BLOCK_SIZE); + #endif + Transform384(sha384); + AddLength384(sha384, SHA384_BLOCK_SIZE); + sha384->buffLen = 0; + } + } +} + + +void Sha384Final(Sha384* sha384, byte* hash) +{ + byte* local = (byte*)sha384->buffer; + + AddLength384(sha384, sha384->buffLen); /* before adding pads */ + + local[sha384->buffLen++] = 0x80; /* add 1 */ + + /* pad with zeros */ + if (sha384->buffLen > SHA384_PAD_SIZE) { + XMEMSET(&local[sha384->buffLen], 0, SHA384_BLOCK_SIZE -sha384->buffLen); + sha384->buffLen += SHA384_BLOCK_SIZE - sha384->buffLen; + + #ifdef LITTLE_ENDIAN_ORDER + ByteReverseWords64(sha384->buffer,sha384->buffer,SHA384_BLOCK_SIZE); + #endif + Transform384(sha384); + sha384->buffLen = 0; + } + XMEMSET(&local[sha384->buffLen], 0, SHA384_PAD_SIZE - sha384->buffLen); + + /* put lengths in bits */ + sha384->hiLen = (sha384->loLen >> (8*sizeof(sha384->loLen) - 3)) + + (sha384->hiLen << 3); + sha384->loLen = sha384->loLen << 3; + + /* store lengths */ + #ifdef LITTLE_ENDIAN_ORDER + ByteReverseWords64(sha384->buffer, sha384->buffer, SHA384_PAD_SIZE); + #endif + /* ! length ordering dependent on digest endian type ! */ + sha384->buffer[SHA384_BLOCK_SIZE / sizeof(word64) - 2] = sha384->hiLen; + sha384->buffer[SHA384_BLOCK_SIZE / sizeof(word64) - 1] = sha384->loLen; + + Transform384(sha384); + #ifdef LITTLE_ENDIAN_ORDER + ByteReverseWords64(sha384->digest, sha384->digest, SHA384_DIGEST_SIZE); + #endif + XMEMCPY(hash, sha384->digest, SHA384_DIGEST_SIZE); + + InitSha384(sha384); /* reset state */ +} + +#endif /* CYASSL_SHA384 */ + +#endif /* CYASSL_SHA512 */ diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/tfm.c b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/tfm.c new file mode 100644 index 000000000..36c69f25d --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/tfm.c @@ -0,0 +1,2476 @@ +/* tfm.c + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +/* + * Based on public domain TomsFastMath 0.10 by Tom St Denis, tomstdenis@iahu.ca, + * http://math.libtomcrypt.com + */ + +/** + * Edited by Moisés Guimarães (moises.guimaraes@phoebus.com.br) + * to fit CyaSSL's needs. + */ + +#ifdef HAVE_CONFIG_H + #include +#endif + +/* in case user set USE_FAST_MATH there */ +#include + +#ifdef USE_FAST_MATH + +#include +#include /* will define asm MACROS or C ones */ + + +/* math settings check */ +word32 CheckRunTimeSettings(void) +{ + return CTC_SETTINGS; +} + + +/* math settings size check */ +word32 CheckRunTimeFastMath(void) +{ + return FP_SIZE; +} + + +/* Functions */ + +void fp_add(fp_int *a, fp_int *b, fp_int *c) +{ + int sa, sb; + + /* get sign of both inputs */ + sa = a->sign; + sb = b->sign; + + /* handle two cases, not four */ + if (sa == sb) { + /* both positive or both negative */ + /* add their magnitudes, copy the sign */ + c->sign = sa; + s_fp_add (a, b, c); + } else { + /* one positive, the other negative */ + /* subtract the one with the greater magnitude from */ + /* the one of the lesser magnitude. The result gets */ + /* the sign of the one with the greater magnitude. */ + if (fp_cmp_mag (a, b) == FP_LT) { + c->sign = sb; + s_fp_sub (b, a, c); + } else { + c->sign = sa; + s_fp_sub (a, b, c); + } + } +} + +/* unsigned addition */ +void s_fp_add(fp_int *a, fp_int *b, fp_int *c) +{ + int x, y, oldused; + register fp_word t; + + y = MAX(a->used, b->used); + oldused = c->used; + c->used = y; + + t = 0; + for (x = 0; x < y; x++) { + t += ((fp_word)a->dp[x]) + ((fp_word)b->dp[x]); + c->dp[x] = (fp_digit)t; + t >>= DIGIT_BIT; + } + if (t != 0 && x < FP_SIZE) { + c->dp[c->used++] = (fp_digit)t; + ++x; + } + + c->used = x; + for (; x < oldused; x++) { + c->dp[x] = 0; + } + fp_clamp(c); +} + +/* c = a - b */ +void fp_sub(fp_int *a, fp_int *b, fp_int *c) +{ + int sa, sb; + + sa = a->sign; + sb = b->sign; + + if (sa != sb) { + /* subtract a negative from a positive, OR */ + /* subtract a positive from a negative. */ + /* In either case, ADD their magnitudes, */ + /* and use the sign of the first number. */ + c->sign = sa; + s_fp_add (a, b, c); + } else { + /* subtract a positive from a positive, OR */ + /* subtract a negative from a negative. */ + /* First, take the difference between their */ + /* magnitudes, then... */ + if (fp_cmp_mag (a, b) != FP_LT) { + /* Copy the sign from the first */ + c->sign = sa; + /* The first has a larger or equal magnitude */ + s_fp_sub (a, b, c); + } else { + /* The result has the *opposite* sign from */ + /* the first number. */ + c->sign = (sa == FP_ZPOS) ? FP_NEG : FP_ZPOS; + /* The second has a larger magnitude */ + s_fp_sub (b, a, c); + } + } +} + +/* unsigned subtraction ||a|| >= ||b|| ALWAYS! */ +void s_fp_sub(fp_int *a, fp_int *b, fp_int *c) +{ + int x, oldbused, oldused; + fp_word t; + + oldused = c->used; + oldbused = b->used; + c->used = a->used; + t = 0; + for (x = 0; x < oldbused; x++) { + t = ((fp_word)a->dp[x]) - (((fp_word)b->dp[x]) + t); + c->dp[x] = (fp_digit)t; + t = (t >> DIGIT_BIT)&1; + } + for (; x < a->used; x++) { + t = ((fp_word)a->dp[x]) - t; + c->dp[x] = (fp_digit)t; + t = (t >> DIGIT_BIT); + } + for (; x < oldused; x++) { + c->dp[x] = 0; + } + fp_clamp(c); +} + +/* c = a * b */ +void fp_mul(fp_int *A, fp_int *B, fp_int *C) +{ + int y, yy; + + y = MAX(A->used, B->used); + yy = MIN(A->used, B->used); + + /* call generic if we're out of range */ + if (y + yy > FP_SIZE) { + fp_mul_comba(A, B, C); + return ; + } + + /* pick a comba (unrolled 4/8/16/32 x or rolled) based on the size + of the largest input. We also want to avoid doing excess mults if the + inputs are not close to the next power of two. That is, for example, + if say y=17 then we would do (32-17)^2 = 225 unneeded multiplications + */ + +#ifdef TFM_MUL3 + if (y <= 3) { + fp_mul_comba3(A,B,C); + return; + } +#endif +#ifdef TFM_MUL4 + if (y == 4) { + fp_mul_comba4(A,B,C); + return; + } +#endif +#ifdef TFM_MUL6 + if (y <= 6) { + fp_mul_comba6(A,B,C); + return; + } +#endif +#ifdef TFM_MUL7 + if (y == 7) { + fp_mul_comba7(A,B,C); + return; + } +#endif +#ifdef TFM_MUL8 + if (y == 8) { + fp_mul_comba8(A,B,C); + return; + } +#endif +#ifdef TFM_MUL9 + if (y == 9) { + fp_mul_comba9(A,B,C); + return; + } +#endif +#ifdef TFM_MUL12 + if (y <= 12) { + fp_mul_comba12(A,B,C); + return; + } +#endif +#ifdef TFM_MUL17 + if (y <= 17) { + fp_mul_comba17(A,B,C); + return; + } +#endif + +#ifdef TFM_SMALL_SET + if (y <= 16) { + fp_mul_comba_small(A,B,C); + return; + } +#endif +#if defined(TFM_MUL20) + if (y <= 20) { + fp_mul_comba20(A,B,C); + return; + } +#endif +#if defined(TFM_MUL24) + if (yy >= 16 && y <= 24) { + fp_mul_comba24(A,B,C); + return; + } +#endif +#if defined(TFM_MUL28) + if (yy >= 20 && y <= 28) { + fp_mul_comba28(A,B,C); + return; + } +#endif +#if defined(TFM_MUL32) + if (yy >= 24 && y <= 32) { + fp_mul_comba32(A,B,C); + return; + } +#endif +#if defined(TFM_MUL48) + if (yy >= 40 && y <= 48) { + fp_mul_comba48(A,B,C); + return; + } +#endif +#if defined(TFM_MUL64) + if (yy >= 56 && y <= 64) { + fp_mul_comba64(A,B,C); + return; + } +#endif + fp_mul_comba(A,B,C); +} + +void fp_mul_2(fp_int * a, fp_int * b) +{ + int x, oldused; + + oldused = b->used; + b->used = a->used; + + { + register fp_digit r, rr, *tmpa, *tmpb; + + /* alias for source */ + tmpa = a->dp; + + /* alias for dest */ + tmpb = b->dp; + + /* carry */ + r = 0; + for (x = 0; x < a->used; x++) { + + /* get what will be the *next* carry bit from the + * MSB of the current digit + */ + rr = *tmpa >> ((fp_digit)(DIGIT_BIT - 1)); + + /* now shift up this digit, add in the carry [from the previous] */ + *tmpb++ = ((*tmpa++ << ((fp_digit)1)) | r); + + /* copy the carry that would be from the source + * digit into the next iteration + */ + r = rr; + } + + /* new leading digit? */ + if (r != 0 && b->used != (FP_SIZE-1)) { + /* add a MSB which is always 1 at this point */ + *tmpb = 1; + ++(b->used); + } + + /* now zero any excess digits on the destination + * that we didn't write to + */ + tmpb = b->dp + b->used; + for (x = b->used; x < oldused; x++) { + *tmpb++ = 0; + } + } + b->sign = a->sign; +} + +/* c = a * b */ +void fp_mul_d(fp_int *a, fp_digit b, fp_int *c) +{ + fp_word w; + int x, oldused; + + oldused = c->used; + c->used = a->used; + c->sign = a->sign; + w = 0; + for (x = 0; x < a->used; x++) { + w = ((fp_word)a->dp[x]) * ((fp_word)b) + w; + c->dp[x] = (fp_digit)w; + w = w >> DIGIT_BIT; + } + if (w != 0 && (a->used != FP_SIZE)) { + c->dp[c->used++] = (fp_digit) w; + ++x; + } + for (; x < oldused; x++) { + c->dp[x] = 0; + } + fp_clamp(c); +} + +/* c = a * 2**d */ +void fp_mul_2d(fp_int *a, int b, fp_int *c) +{ + fp_digit carry, carrytmp, shift; + int x; + + /* copy it */ + fp_copy(a, c); + + /* handle whole digits */ + if (b >= DIGIT_BIT) { + fp_lshd(c, b/DIGIT_BIT); + } + b %= DIGIT_BIT; + + /* shift the digits */ + if (b != 0) { + carry = 0; + shift = DIGIT_BIT - b; + for (x = 0; x < c->used; x++) { + carrytmp = c->dp[x] >> shift; + c->dp[x] = (c->dp[x] << b) + carry; + carry = carrytmp; + } + /* store last carry if room */ + if (carry && x < FP_SIZE) { + c->dp[c->used++] = carry; + } + } + fp_clamp(c); +} + +/* generic PxQ multiplier */ +void fp_mul_comba(fp_int *A, fp_int *B, fp_int *C) +{ + int ix, iy, iz, tx, ty, pa; + fp_digit c0, c1, c2, *tmpx, *tmpy; + fp_int tmp, *dst; + + COMBA_START; + COMBA_CLEAR; + + /* get size of output and trim */ + pa = A->used + B->used; + if (pa >= FP_SIZE) { + pa = FP_SIZE-1; + } + + if (A == C || B == C) { + fp_zero(&tmp); + dst = &tmp; + } else { + fp_zero(C); + dst = C; + } + + for (ix = 0; ix < pa; ix++) { + /* get offsets into the two bignums */ + ty = MIN(ix, B->used-1); + tx = ix - ty; + + /* setup temp aliases */ + tmpx = A->dp + tx; + tmpy = B->dp + ty; + + /* this is the number of times the loop will iterrate, essentially its + while (tx++ < a->used && ty-- >= 0) { ... } + */ + iy = MIN(A->used-tx, ty+1); + + /* execute loop */ + COMBA_FORWARD; + for (iz = 0; iz < iy; ++iz) { + /* TAO change COMBA_ADD back to MULADD */ + MULADD(*tmpx++, *tmpy--); + } + + /* store term */ + COMBA_STORE(dst->dp[ix]); + } + COMBA_FINI; + + dst->used = pa; + dst->sign = A->sign ^ B->sign; + fp_clamp(dst); + fp_copy(dst, C); +} + +/* a/b => cb + d == a */ +int fp_div(fp_int *a, fp_int *b, fp_int *c, fp_int *d) +{ + fp_int q, x, y, t1, t2; + int n, t, i, norm, neg; + + /* is divisor zero ? */ + if (fp_iszero (b) == 1) { + return FP_VAL; + } + + /* if a < b then q=0, r = a */ + if (fp_cmp_mag (a, b) == FP_LT) { + if (d != NULL) { + fp_copy (a, d); + } + if (c != NULL) { + fp_zero (c); + } + return FP_OKAY; + } + + fp_init(&q); + q.used = a->used + 2; + + fp_init(&t1); + fp_init(&t2); + fp_init_copy(&x, a); + fp_init_copy(&y, b); + + /* fix the sign */ + neg = (a->sign == b->sign) ? FP_ZPOS : FP_NEG; + x.sign = y.sign = FP_ZPOS; + + /* normalize both x and y, ensure that y >= b/2, [b == 2**DIGIT_BIT] */ + norm = fp_count_bits(&y) % DIGIT_BIT; + if (norm < (int)(DIGIT_BIT-1)) { + norm = (DIGIT_BIT-1) - norm; + fp_mul_2d (&x, norm, &x); + fp_mul_2d (&y, norm, &y); + } else { + norm = 0; + } + + /* note hac does 0 based, so if used==5 then its 0,1,2,3,4, e.g. use 4 */ + n = x.used - 1; + t = y.used - 1; + + /* while (x >= y*b**n-t) do { q[n-t] += 1; x -= y*b**{n-t} } */ + fp_lshd (&y, n - t); /* y = y*b**{n-t} */ + + while (fp_cmp (&x, &y) != FP_LT) { + ++(q.dp[n - t]); + fp_sub (&x, &y, &x); + } + + /* reset y by shifting it back down */ + fp_rshd (&y, n - t); + + /* step 3. for i from n down to (t + 1) */ + for (i = n; i >= (t + 1); i--) { + if (i > x.used) { + continue; + } + + /* step 3.1 if xi == yt then set q{i-t-1} to b-1, + * otherwise set q{i-t-1} to (xi*b + x{i-1})/yt */ + if (x.dp[i] == y.dp[t]) { + q.dp[i - t - 1] = ((((fp_word)1) << DIGIT_BIT) - 1); + } else { + fp_word tmp; + tmp = ((fp_word) x.dp[i]) << ((fp_word) DIGIT_BIT); + tmp |= ((fp_word) x.dp[i - 1]); + tmp /= ((fp_word)y.dp[t]); + q.dp[i - t - 1] = (fp_digit) (tmp); + } + + /* while (q{i-t-1} * (yt * b + y{t-1})) > + xi * b**2 + xi-1 * b + xi-2 + + do q{i-t-1} -= 1; + */ + q.dp[i - t - 1] = (q.dp[i - t - 1] + 1); + do { + q.dp[i - t - 1] = (q.dp[i - t - 1] - 1); + + /* find left hand */ + fp_zero (&t1); + t1.dp[0] = (t - 1 < 0) ? 0 : y.dp[t - 1]; + t1.dp[1] = y.dp[t]; + t1.used = 2; + fp_mul_d (&t1, q.dp[i - t - 1], &t1); + + /* find right hand */ + t2.dp[0] = (i - 2 < 0) ? 0 : x.dp[i - 2]; + t2.dp[1] = (i - 1 < 0) ? 0 : x.dp[i - 1]; + t2.dp[2] = x.dp[i]; + t2.used = 3; + } while (fp_cmp_mag(&t1, &t2) == FP_GT); + + /* step 3.3 x = x - q{i-t-1} * y * b**{i-t-1} */ + fp_mul_d (&y, q.dp[i - t - 1], &t1); + fp_lshd (&t1, i - t - 1); + fp_sub (&x, &t1, &x); + + /* if x < 0 then { x = x + y*b**{i-t-1}; q{i-t-1} -= 1; } */ + if (x.sign == FP_NEG) { + fp_copy (&y, &t1); + fp_lshd (&t1, i - t - 1); + fp_add (&x, &t1, &x); + q.dp[i - t - 1] = q.dp[i - t - 1] - 1; + } + } + + /* now q is the quotient and x is the remainder + * [which we have to normalize] + */ + + /* get sign before writing to c */ + x.sign = x.used == 0 ? FP_ZPOS : a->sign; + + if (c != NULL) { + fp_clamp (&q); + fp_copy (&q, c); + c->sign = neg; + } + + if (d != NULL) { + fp_div_2d (&x, norm, &x, NULL); + +/* the following is a kludge, essentially we were seeing the right remainder but + with excess digits that should have been zero + */ + for (i = b->used; i < x.used; i++) { + x.dp[i] = 0; + } + fp_clamp(&x); + fp_copy (&x, d); + } + + return FP_OKAY; +} + +/* b = a/2 */ +void fp_div_2(fp_int * a, fp_int * b) +{ + int x, oldused; + + oldused = b->used; + b->used = a->used; + { + register fp_digit r, rr, *tmpa, *tmpb; + + /* source alias */ + tmpa = a->dp + b->used - 1; + + /* dest alias */ + tmpb = b->dp + b->used - 1; + + /* carry */ + r = 0; + for (x = b->used - 1; x >= 0; x--) { + /* get the carry for the next iteration */ + rr = *tmpa & 1; + + /* shift the current digit, add in carry and store */ + *tmpb-- = (*tmpa-- >> 1) | (r << (DIGIT_BIT - 1)); + + /* forward carry to next iteration */ + r = rr; + } + + /* zero excess digits */ + tmpb = b->dp + b->used; + for (x = b->used; x < oldused; x++) { + *tmpb++ = 0; + } + } + b->sign = a->sign; + fp_clamp (b); +} + +/* c = a / 2**b */ +void fp_div_2d(fp_int *a, int b, fp_int *c, fp_int *d) +{ + fp_digit D, r, rr; + int x; + fp_int t; + + /* if the shift count is <= 0 then we do no work */ + if (b <= 0) { + fp_copy (a, c); + if (d != NULL) { + fp_zero (d); + } + return; + } + + fp_init(&t); + + /* get the remainder */ + if (d != NULL) { + fp_mod_2d (a, b, &t); + } + + /* copy */ + fp_copy(a, c); + + /* shift by as many digits in the bit count */ + if (b >= (int)DIGIT_BIT) { + fp_rshd (c, b / DIGIT_BIT); + } + + /* shift any bit count < DIGIT_BIT */ + D = (fp_digit) (b % DIGIT_BIT); + if (D != 0) { + register fp_digit *tmpc, mask, shift; + + /* mask */ + mask = (((fp_digit)1) << D) - 1; + + /* shift for lsb */ + shift = DIGIT_BIT - D; + + /* alias */ + tmpc = c->dp + (c->used - 1); + + /* carry */ + r = 0; + for (x = c->used - 1; x >= 0; x--) { + /* get the lower bits of this word in a temp */ + rr = *tmpc & mask; + + /* shift the current word and mix in the carry bits from the previous word */ + *tmpc = (*tmpc >> D) | (r << shift); + --tmpc; + + /* set the carry to the carry bits of the current word found above */ + r = rr; + } + } + fp_clamp (c); + if (d != NULL) { + fp_copy (&t, d); + } +} + +/* c = a mod b, 0 <= c < b */ +int fp_mod(fp_int *a, fp_int *b, fp_int *c) +{ + fp_int t; + int err; + + fp_zero(&t); + if ((err = fp_div(a, b, NULL, &t)) != FP_OKAY) { + return err; + } + if (t.sign != b->sign) { + fp_add(&t, b, c); + } else { + fp_copy(&t, c); + } + return FP_OKAY; +} + +/* c = a mod 2**d */ +void fp_mod_2d(fp_int *a, int b, fp_int *c) +{ + int x; + + /* zero if count less than or equal to zero */ + if (b <= 0) { + fp_zero(c); + return; + } + + /* get copy of input */ + fp_copy(a, c); + + /* if 2**d is larger than we just return */ + if (b >= (DIGIT_BIT * a->used)) { + return; + } + + /* zero digits above the last digit of the modulus */ + for (x = (b / DIGIT_BIT) + ((b % DIGIT_BIT) == 0 ? 0 : 1); x < c->used; x++) { + c->dp[x] = 0; + } + /* clear the digit that is not completely outside/inside the modulus */ + c->dp[b / DIGIT_BIT] &= ~((fp_digit)0) >> (DIGIT_BIT - b); + fp_clamp (c); +} + +static int fp_invmod_slow (fp_int * a, fp_int * b, fp_int * c) +{ + fp_int x, y, u, v, A, B, C, D; + int res; + + /* b cannot be negative */ + if (b->sign == FP_NEG || fp_iszero(b) == 1) { + return FP_VAL; + } + + /* init temps */ + fp_init(&x); fp_init(&y); + fp_init(&u); fp_init(&v); + fp_init(&A); fp_init(&B); + fp_init(&C); fp_init(&D); + + /* x = a, y = b */ + if ((res = fp_mod(a, b, &x)) != FP_OKAY) { + return res; + } + fp_copy(b, &y); + + /* 2. [modified] if x,y are both even then return an error! */ + if (fp_iseven (&x) == 1 && fp_iseven (&y) == 1) { + return FP_VAL; + } + + /* 3. u=x, v=y, A=1, B=0, C=0,D=1 */ + fp_copy (&x, &u); + fp_copy (&y, &v); + fp_set (&A, 1); + fp_set (&D, 1); + +top: + /* 4. while u is even do */ + while (fp_iseven (&u) == 1) { + /* 4.1 u = u/2 */ + fp_div_2 (&u, &u); + + /* 4.2 if A or B is odd then */ + if (fp_isodd (&A) == 1 || fp_isodd (&B) == 1) { + /* A = (A+y)/2, B = (B-x)/2 */ + fp_add (&A, &y, &A); + fp_sub (&B, &x, &B); + } + /* A = A/2, B = B/2 */ + fp_div_2 (&A, &A); + fp_div_2 (&B, &B); + } + + /* 5. while v is even do */ + while (fp_iseven (&v) == 1) { + /* 5.1 v = v/2 */ + fp_div_2 (&v, &v); + + /* 5.2 if C or D is odd then */ + if (fp_isodd (&C) == 1 || fp_isodd (&D) == 1) { + /* C = (C+y)/2, D = (D-x)/2 */ + fp_add (&C, &y, &C); + fp_sub (&D, &x, &D); + } + /* C = C/2, D = D/2 */ + fp_div_2 (&C, &C); + fp_div_2 (&D, &D); + } + + /* 6. if u >= v then */ + if (fp_cmp (&u, &v) != FP_LT) { + /* u = u - v, A = A - C, B = B - D */ + fp_sub (&u, &v, &u); + fp_sub (&A, &C, &A); + fp_sub (&B, &D, &B); + } else { + /* v - v - u, C = C - A, D = D - B */ + fp_sub (&v, &u, &v); + fp_sub (&C, &A, &C); + fp_sub (&D, &B, &D); + } + + /* if not zero goto step 4 */ + if (fp_iszero (&u) == 0) + goto top; + + /* now a = C, b = D, gcd == g*v */ + + /* if v != 1 then there is no inverse */ + if (fp_cmp_d (&v, 1) != FP_EQ) { + return FP_VAL; + } + + /* if its too low */ + while (fp_cmp_d(&C, 0) == FP_LT) { + fp_add(&C, b, &C); + } + + /* too big */ + while (fp_cmp_mag(&C, b) != FP_LT) { + fp_sub(&C, b, &C); + } + + /* C is now the inverse */ + fp_copy(&C, c); + return FP_OKAY; +} + +/* c = 1/a (mod b) for odd b only */ +int fp_invmod(fp_int *a, fp_int *b, fp_int *c) +{ + fp_int x, y, u, v, B, D; + int neg; + + /* 2. [modified] b must be odd */ + if (fp_iseven (b) == FP_YES) { + return fp_invmod_slow(a,b,c); + } + + /* init all our temps */ + fp_init(&x); fp_init(&y); + fp_init(&u); fp_init(&v); + fp_init(&B); fp_init(&D); + + /* x == modulus, y == value to invert */ + fp_copy(b, &x); + + /* we need y = |a| */ + fp_abs(a, &y); + + /* 3. u=x, v=y, A=1, B=0, C=0,D=1 */ + fp_copy(&x, &u); + fp_copy(&y, &v); + fp_set (&D, 1); + +top: + /* 4. while u is even do */ + while (fp_iseven (&u) == FP_YES) { + /* 4.1 u = u/2 */ + fp_div_2 (&u, &u); + + /* 4.2 if B is odd then */ + if (fp_isodd (&B) == FP_YES) { + fp_sub (&B, &x, &B); + } + /* B = B/2 */ + fp_div_2 (&B, &B); + } + + /* 5. while v is even do */ + while (fp_iseven (&v) == FP_YES) { + /* 5.1 v = v/2 */ + fp_div_2 (&v, &v); + + /* 5.2 if D is odd then */ + if (fp_isodd (&D) == FP_YES) { + /* D = (D-x)/2 */ + fp_sub (&D, &x, &D); + } + /* D = D/2 */ + fp_div_2 (&D, &D); + } + + /* 6. if u >= v then */ + if (fp_cmp (&u, &v) != FP_LT) { + /* u = u - v, B = B - D */ + fp_sub (&u, &v, &u); + fp_sub (&B, &D, &B); + } else { + /* v - v - u, D = D - B */ + fp_sub (&v, &u, &v); + fp_sub (&D, &B, &D); + } + + /* if not zero goto step 4 */ + if (fp_iszero (&u) == FP_NO) { + goto top; + } + + /* now a = C, b = D, gcd == g*v */ + + /* if v != 1 then there is no inverse */ + if (fp_cmp_d (&v, 1) != FP_EQ) { + return FP_VAL; + } + + /* b is now the inverse */ + neg = a->sign; + while (D.sign == FP_NEG) { + fp_add (&D, b, &D); + } + fp_copy (&D, c); + c->sign = neg; + return FP_OKAY; +} + +/* d = a * b (mod c) */ +int fp_mulmod(fp_int *a, fp_int *b, fp_int *c, fp_int *d) +{ + fp_int tmp; + fp_zero(&tmp); + fp_mul(a, b, &tmp); + return fp_mod(&tmp, c, d); +} + +#ifdef TFM_TIMING_RESISTANT + +/* timing resistant montgomery ladder based exptmod + + Based on work by Marc Joye, Sung-Ming Yen, "The Montgomery Powering Ladder", Cryptographic Hardware and Embedded Systems, CHES 2002 +*/ +static int _fp_exptmod(fp_int * G, fp_int * X, fp_int * P, fp_int * Y) +{ + fp_int R[2]; + fp_digit buf, mp; + int err, bitcnt, digidx, y; + + /* now setup montgomery */ + if ((err = fp_montgomery_setup (P, &mp)) != FP_OKAY) { + return err; + } + + fp_init(&R[0]); + fp_init(&R[1]); + + /* now we need R mod m */ + fp_montgomery_calc_normalization (&R[0], P); + + /* now set R[0][1] to G * R mod m */ + if (fp_cmp_mag(P, G) != FP_GT) { + /* G > P so we reduce it first */ + fp_mod(G, P, &R[1]); + } else { + fp_copy(G, &R[1]); + } + fp_mulmod (&R[1], &R[0], P, &R[1]); + + /* for j = t-1 downto 0 do + r_!k = R0*R1; r_k = r_k^2 + */ + + /* set initial mode and bit cnt */ + bitcnt = 1; + buf = 0; + digidx = X->used - 1; + + for (;;) { + /* grab next digit as required */ + if (--bitcnt == 0) { + /* if digidx == -1 we are out of digits so break */ + if (digidx == -1) { + break; + } + /* read next digit and reset bitcnt */ + buf = X->dp[digidx--]; + bitcnt = (int)DIGIT_BIT; + } + + /* grab the next msb from the exponent */ + y = (fp_digit)(buf >> (DIGIT_BIT - 1)) & 1; + buf <<= (fp_digit)1; + + /* do ops */ + fp_mul(&R[0], &R[1], &R[y^1]); fp_montgomery_reduce(&R[y^1], P, mp); + fp_sqr(&R[y], &R[y]); fp_montgomery_reduce(&R[y], P, mp); + } + + fp_montgomery_reduce(&R[0], P, mp); + fp_copy(&R[0], Y); + return FP_OKAY; +} + +#else + +/* y = g**x (mod b) + * Some restrictions... x must be positive and < b + */ +static int _fp_exptmod(fp_int * G, fp_int * X, fp_int * P, fp_int * Y) +{ + fp_int M[64], res; + fp_digit buf, mp; + int err, bitbuf, bitcpy, bitcnt, mode, digidx, x, y, winsize; + + /* find window size */ + x = fp_count_bits (X); + if (x <= 21) { + winsize = 1; + } else if (x <= 36) { + winsize = 3; + } else if (x <= 140) { + winsize = 4; + } else if (x <= 450) { + winsize = 5; + } else { + winsize = 6; + } + + /* init M array */ + XMEMSET(M, 0, sizeof(M)); + + /* now setup montgomery */ + if ((err = fp_montgomery_setup (P, &mp)) != FP_OKAY) { + return err; + } + + /* setup result */ + fp_init(&res); + + /* create M table + * + * The M table contains powers of the input base, e.g. M[x] = G^x mod P + * + * The first half of the table is not computed though accept for M[0] and M[1] + */ + + /* now we need R mod m */ + fp_montgomery_calc_normalization (&res, P); + + /* now set M[1] to G * R mod m */ + if (fp_cmp_mag(P, G) != FP_GT) { + /* G > P so we reduce it first */ + fp_mod(G, P, &M[1]); + } else { + fp_copy(G, &M[1]); + } + fp_mulmod (&M[1], &res, P, &M[1]); + + /* compute the value at M[1<<(winsize-1)] by squaring M[1] (winsize-1) times */ + fp_copy (&M[1], &M[1 << (winsize - 1)]); + for (x = 0; x < (winsize - 1); x++) { + fp_sqr (&M[1 << (winsize - 1)], &M[1 << (winsize - 1)]); + fp_montgomery_reduce (&M[1 << (winsize - 1)], P, mp); + } + + /* create upper table */ + for (x = (1 << (winsize - 1)) + 1; x < (1 << winsize); x++) { + fp_mul(&M[x - 1], &M[1], &M[x]); + fp_montgomery_reduce(&M[x], P, mp); + } + + /* set initial mode and bit cnt */ + mode = 0; + bitcnt = 1; + buf = 0; + digidx = X->used - 1; + bitcpy = 0; + bitbuf = 0; + + for (;;) { + /* grab next digit as required */ + if (--bitcnt == 0) { + /* if digidx == -1 we are out of digits so break */ + if (digidx == -1) { + break; + } + /* read next digit and reset bitcnt */ + buf = X->dp[digidx--]; + bitcnt = (int)DIGIT_BIT; + } + + /* grab the next msb from the exponent */ + y = (fp_digit)(buf >> (DIGIT_BIT - 1)) & 1; + buf <<= (fp_digit)1; + + /* if the bit is zero and mode == 0 then we ignore it + * These represent the leading zero bits before the first 1 bit + * in the exponent. Technically this opt is not required but it + * does lower the # of trivial squaring/reductions used + */ + if (mode == 0 && y == 0) { + continue; + } + + /* if the bit is zero and mode == 1 then we square */ + if (mode == 1 && y == 0) { + fp_sqr(&res, &res); + fp_montgomery_reduce(&res, P, mp); + continue; + } + + /* else we add it to the window */ + bitbuf |= (y << (winsize - ++bitcpy)); + mode = 2; + + if (bitcpy == winsize) { + /* ok window is filled so square as required and multiply */ + /* square first */ + for (x = 0; x < winsize; x++) { + fp_sqr(&res, &res); + fp_montgomery_reduce(&res, P, mp); + } + + /* then multiply */ + fp_mul(&res, &M[bitbuf], &res); + fp_montgomery_reduce(&res, P, mp); + + /* empty window and reset */ + bitcpy = 0; + bitbuf = 0; + mode = 1; + } + } + + /* if bits remain then square/multiply */ + if (mode == 2 && bitcpy > 0) { + /* square then multiply if the bit is set */ + for (x = 0; x < bitcpy; x++) { + fp_sqr(&res, &res); + fp_montgomery_reduce(&res, P, mp); + + /* get next bit of the window */ + bitbuf <<= 1; + if ((bitbuf & (1 << winsize)) != 0) { + /* then multiply */ + fp_mul(&res, &M[1], &res); + fp_montgomery_reduce(&res, P, mp); + } + } + } + + /* fixup result if Montgomery reduction is used + * recall that any value in a Montgomery system is + * actually multiplied by R mod n. So we have + * to reduce one more time to cancel out the factor + * of R. + */ + fp_montgomery_reduce(&res, P, mp); + + /* swap res with Y */ + fp_copy (&res, Y); + return FP_OKAY; +} + +#endif + +int fp_exptmod(fp_int * G, fp_int * X, fp_int * P, fp_int * Y) +{ + fp_int tmp; + int err; + + /* prevent overflows */ + if (P->used > (FP_SIZE/2)) { + return FP_VAL; + } + + /* is X negative? */ + if (X->sign == FP_NEG) { + /* yes, copy G and invmod it */ + fp_copy(G, &tmp); + if ((err = fp_invmod(&tmp, P, &tmp)) != FP_OKAY) { + return err; + } + X->sign = FP_ZPOS; + err = _fp_exptmod(&tmp, X, P, Y); + if (X != Y) { + X->sign = FP_NEG; + } + return err; + } else { + /* Positive exponent so just exptmod */ + return _fp_exptmod(G, X, P, Y); + } +} + +/* computes a = 2**b */ +void fp_2expt(fp_int *a, int b) +{ + int z; + + /* zero a as per default */ + fp_zero (a); + + if (b < 0) { + return; + } + + z = b / DIGIT_BIT; + if (z >= FP_SIZE) { + return; + } + + /* set the used count of where the bit will go */ + a->used = z + 1; + + /* put the single bit in its place */ + a->dp[z] = ((fp_digit)1) << (b % DIGIT_BIT); +} + +/* b = a*a */ +void fp_sqr(fp_int *A, fp_int *B) +{ + int y = A->used; + + /* call generic if we're out of range */ + if (y + y > FP_SIZE) { + fp_sqr_comba(A, B); + return ; + } + +#if defined(TFM_SQR3) + if (y <= 3) { + fp_sqr_comba3(A,B); + return; + } +#endif +#if defined(TFM_SQR4) + if (y == 4) { + fp_sqr_comba4(A,B); + return; + } +#endif +#if defined(TFM_SQR6) + if (y <= 6) { + fp_sqr_comba6(A,B); + return; + } +#endif +#if defined(TFM_SQR7) + if (y == 7) { + fp_sqr_comba7(A,B); + return; + } +#endif +#if defined(TFM_SQR8) + if (y == 8) { + fp_sqr_comba8(A,B); + return; + } +#endif +#if defined(TFM_SQR9) + if (y == 9) { + fp_sqr_comba9(A,B); + return; + } +#endif +#if defined(TFM_SQR12) + if (y <= 12) { + fp_sqr_comba12(A,B); + return; + } +#endif +#if defined(TFM_SQR17) + if (y <= 17) { + fp_sqr_comba17(A,B); + return; + } +#endif +#if defined(TFM_SMALL_SET) + if (y <= 16) { + fp_sqr_comba_small(A,B); + return; + } +#endif +#if defined(TFM_SQR20) + if (y <= 20) { + fp_sqr_comba20(A,B); + return; + } +#endif +#if defined(TFM_SQR24) + if (y <= 24) { + fp_sqr_comba24(A,B); + return; + } +#endif +#if defined(TFM_SQR28) + if (y <= 28) { + fp_sqr_comba28(A,B); + return; + } +#endif +#if defined(TFM_SQR32) + if (y <= 32) { + fp_sqr_comba32(A,B); + return; + } +#endif +#if defined(TFM_SQR48) + if (y <= 48) { + fp_sqr_comba48(A,B); + return; + } +#endif +#if defined(TFM_SQR64) + if (y <= 64) { + fp_sqr_comba64(A,B); + return; + } +#endif + fp_sqr_comba(A, B); +} + +/* generic comba squarer */ +void fp_sqr_comba(fp_int *A, fp_int *B) +{ + int pa, ix, iz; + fp_digit c0, c1, c2; + fp_int tmp, *dst; +#ifdef TFM_ISO + fp_word tt; +#endif + + /* get size of output and trim */ + pa = A->used + A->used; + if (pa >= FP_SIZE) { + pa = FP_SIZE-1; + } + + /* number of output digits to produce */ + COMBA_START; + COMBA_CLEAR; + + if (A == B) { + fp_zero(&tmp); + dst = &tmp; + } else { + fp_zero(B); + dst = B; + } + + for (ix = 0; ix < pa; ix++) { + int tx, ty, iy; + fp_digit *tmpy, *tmpx; + + /* get offsets into the two bignums */ + ty = MIN(A->used-1, ix); + tx = ix - ty; + + /* setup temp aliases */ + tmpx = A->dp + tx; + tmpy = A->dp + ty; + + /* this is the number of times the loop will iterrate, + while (tx++ < a->used && ty-- >= 0) { ... } + */ + iy = MIN(A->used-tx, ty+1); + + /* now for squaring tx can never equal ty + * we halve the distance since they approach + * at a rate of 2x and we have to round because + * odd cases need to be executed + */ + iy = MIN(iy, (ty-tx+1)>>1); + + /* forward carries */ + COMBA_FORWARD; + + /* execute loop */ + for (iz = 0; iz < iy; iz++) { + SQRADD2(*tmpx++, *tmpy--); + } + + /* even columns have the square term in them */ + if ((ix&1) == 0) { + /* TAO change COMBA_ADD back to SQRADD */ + SQRADD(A->dp[ix>>1], A->dp[ix>>1]); + } + + /* store it */ + COMBA_STORE(dst->dp[ix]); + } + + COMBA_FINI; + + /* setup dest */ + dst->used = pa; + fp_clamp (dst); + if (dst != B) { + fp_copy(dst, B); + } +} + +int fp_cmp(fp_int *a, fp_int *b) +{ + if (a->sign == FP_NEG && b->sign == FP_ZPOS) { + return FP_LT; + } else if (a->sign == FP_ZPOS && b->sign == FP_NEG) { + return FP_GT; + } else { + /* compare digits */ + if (a->sign == FP_NEG) { + /* if negative compare opposite direction */ + return fp_cmp_mag(b, a); + } else { + return fp_cmp_mag(a, b); + } + } +} + +/* compare against a single digit */ +int fp_cmp_d(fp_int *a, fp_digit b) +{ + /* compare based on sign */ + if ((b && a->used == 0) || a->sign == FP_NEG) { + return FP_LT; + } + + /* compare based on magnitude */ + if (a->used > 1) { + return FP_GT; + } + + /* compare the only digit of a to b */ + if (a->dp[0] > b) { + return FP_GT; + } else if (a->dp[0] < b) { + return FP_LT; + } else { + return FP_EQ; + } + +} + +int fp_cmp_mag(fp_int *a, fp_int *b) +{ + int x; + + if (a->used > b->used) { + return FP_GT; + } else if (a->used < b->used) { + return FP_LT; + } else { + for (x = a->used - 1; x >= 0; x--) { + if (a->dp[x] > b->dp[x]) { + return FP_GT; + } else if (a->dp[x] < b->dp[x]) { + return FP_LT; + } + } + } + return FP_EQ; +} + +/* setups the montgomery reduction */ +int fp_montgomery_setup(fp_int *a, fp_digit *rho) +{ + fp_digit x, b; + +/* fast inversion mod 2**k + * + * Based on the fact that + * + * XA = 1 (mod 2**n) => (X(2-XA)) A = 1 (mod 2**2n) + * => 2*X*A - X*X*A*A = 1 + * => 2*(1) - (1) = 1 + */ + b = a->dp[0]; + + if ((b & 1) == 0) { + return FP_VAL; + } + + x = (((b + 2) & 4) << 1) + b; /* here x*a==1 mod 2**4 */ + x *= 2 - b * x; /* here x*a==1 mod 2**8 */ + x *= 2 - b * x; /* here x*a==1 mod 2**16 */ + x *= 2 - b * x; /* here x*a==1 mod 2**32 */ +#ifdef FP_64BIT + x *= 2 - b * x; /* here x*a==1 mod 2**64 */ +#endif + + /* rho = -1/m mod b */ + *rho = (fp_digit) (((fp_word) 1 << ((fp_word) DIGIT_BIT)) - ((fp_word)x)); + + return FP_OKAY; +} + +/* computes a = B**n mod b without division or multiplication useful for + * normalizing numbers in a Montgomery system. + */ +void fp_montgomery_calc_normalization(fp_int *a, fp_int *b) +{ + int x, bits; + + /* how many bits of last digit does b use */ + bits = fp_count_bits (b) % DIGIT_BIT; + if (!bits) bits = DIGIT_BIT; + + /* compute A = B^(n-1) * 2^(bits-1) */ + if (b->used > 1) { + fp_2expt (a, (b->used - 1) * DIGIT_BIT + bits - 1); + } else { + fp_set(a, 1); + bits = 1; + } + + /* now compute C = A * B mod b */ + for (x = bits - 1; x < (int)DIGIT_BIT; x++) { + fp_mul_2 (a, a); + if (fp_cmp_mag (a, b) != FP_LT) { + s_fp_sub (a, b, a); + } + } +} + + +#ifdef TFM_SMALL_MONT_SET + #include "fp_mont_small.i" +#endif + +/* computes x/R == x (mod N) via Montgomery Reduction */ +void fp_montgomery_reduce(fp_int *a, fp_int *m, fp_digit mp) +{ + fp_digit c[FP_SIZE], *_c, *tmpm, mu; + int oldused, x, y, pa; + + /* bail if too large */ + if (m->used > (FP_SIZE/2)) { + (void)mu; /* shut up compiler */ + return; + } + +#ifdef TFM_SMALL_MONT_SET + if (m->used <= 16) { + fp_montgomery_reduce_small(a, m, mp); + return; + } +#endif + + +#if defined(USE_MEMSET) + /* now zero the buff */ + XMEMSET(c, 0, sizeof c); +#endif + pa = m->used; + + /* copy the input */ + oldused = a->used; + for (x = 0; x < oldused; x++) { + c[x] = a->dp[x]; + } +#if !defined(USE_MEMSET) + for (; x < 2*pa+1; x++) { + c[x] = 0; + } +#endif + MONT_START; + + for (x = 0; x < pa; x++) { + fp_digit cy = 0; + /* get Mu for this round */ + LOOP_START; + _c = c + x; + tmpm = m->dp; + y = 0; + #if (defined(TFM_SSE2) || defined(TFM_X86_64)) + for (; y < (pa & ~7); y += 8) { + INNERMUL8; + _c += 8; + tmpm += 8; + } + #endif + + for (; y < pa; y++) { + INNERMUL; + ++_c; + } + LOOP_END; + while (cy) { + PROPCARRY; + ++_c; + } + } + + /* now copy out */ + _c = c + pa; + tmpm = a->dp; + for (x = 0; x < pa+1; x++) { + *tmpm++ = *_c++; + } + + for (; x < oldused; x++) { + *tmpm++ = 0; + } + + MONT_FINI; + + a->used = pa+1; + fp_clamp(a); + + /* if A >= m then A = A - m */ + if (fp_cmp_mag (a, m) != FP_LT) { + s_fp_sub (a, m, a); + } +} + +void fp_read_unsigned_bin(fp_int *a, unsigned char *b, int c) +{ + /* zero the int */ + fp_zero (a); + + /* If we know the endianness of this architecture, and we're using + 32-bit fp_digits, we can optimize this */ +#if (defined(ENDIAN_LITTLE) || defined(ENDIAN_BIG)) && !defined(FP_64BIT) + /* But not for both simultaneously */ +#if defined(ENDIAN_LITTLE) && defined(ENDIAN_BIG) +#error Both ENDIAN_LITTLE and ENDIAN_BIG defined. +#endif + { + unsigned char *pd = (unsigned char *)a->dp; + + if ((unsigned)c > (FP_SIZE * sizeof(fp_digit))) { + int excess = c - (FP_SIZE * sizeof(fp_digit)); + c -= excess; + b += excess; + } + a->used = (c + sizeof(fp_digit) - 1)/sizeof(fp_digit); + /* read the bytes in */ +#ifdef ENDIAN_BIG + { + /* Use Duff's device to unroll the loop. */ + int idx = (c - 1) & ~3; + switch (c % 4) { + case 0: do { pd[idx+0] = *b++; + case 3: pd[idx+1] = *b++; + case 2: pd[idx+2] = *b++; + case 1: pd[idx+3] = *b++; + idx -= 4; + } while ((c -= 4) > 0); + } + } +#else + for (c -= 1; c >= 0; c -= 1) { + pd[c] = *b++; + } +#endif + } +#else + /* read the bytes in */ + for (; c > 0; c--) { + fp_mul_2d (a, 8, a); + a->dp[0] |= *b++; + a->used += 1; + } +#endif + fp_clamp (a); +} + +void fp_to_unsigned_bin(fp_int *a, unsigned char *b) +{ + int x; + fp_int t; + + fp_init_copy(&t, a); + + x = 0; + while (fp_iszero (&t) == FP_NO) { + b[x++] = (unsigned char) (t.dp[0] & 255); + fp_div_2d (&t, 8, &t, NULL); + } + fp_reverse (b, x); +} + +int fp_unsigned_bin_size(fp_int *a) +{ + int size = fp_count_bits (a); + return (size / 8 + ((size & 7) != 0 ? 1 : 0)); +} + +void fp_set(fp_int *a, fp_digit b) +{ + fp_zero(a); + a->dp[0] = b; + a->used = a->dp[0] ? 1 : 0; +} + +int fp_count_bits (fp_int * a) +{ + int r; + fp_digit q; + + /* shortcut */ + if (a->used == 0) { + return 0; + } + + /* get number of digits and add that */ + r = (a->used - 1) * DIGIT_BIT; + + /* take the last digit and count the bits in it */ + q = a->dp[a->used - 1]; + while (q > ((fp_digit) 0)) { + ++r; + q >>= ((fp_digit) 1); + } + return r; +} + +void fp_lshd(fp_int *a, int x) +{ + int y; + + /* move up and truncate as required */ + y = MIN(a->used + x - 1, (int)(FP_SIZE-1)); + + /* store new size */ + a->used = y + 1; + + /* move digits */ + for (; y >= x; y--) { + a->dp[y] = a->dp[y-x]; + } + + /* zero lower digits */ + for (; y >= 0; y--) { + a->dp[y] = 0; + } + + /* clamp digits */ + fp_clamp(a); +} + +void fp_rshd(fp_int *a, int x) +{ + int y; + + /* too many digits just zero and return */ + if (x >= a->used) { + fp_zero(a); + return; + } + + /* shift */ + for (y = 0; y < a->used - x; y++) { + a->dp[y] = a->dp[y+x]; + } + + /* zero rest */ + for (; y < a->used; y++) { + a->dp[y] = 0; + } + + /* decrement count */ + a->used -= x; + fp_clamp(a); +} + +/* reverse an array, used for radix code */ +void fp_reverse (unsigned char *s, int len) +{ + int ix, iy; + unsigned char t; + + ix = 0; + iy = len - 1; + while (ix < iy) { + t = s[ix]; + s[ix] = s[iy]; + s[iy] = t; + ++ix; + --iy; + } +} + + +/* c = a - b */ +void fp_sub_d(fp_int *a, fp_digit b, fp_int *c) +{ + fp_int tmp; + fp_set(&tmp, b); + fp_sub(a, &tmp, c); +} + + +/* CyaSSL callers from normal lib */ + +/* init a new mp_int */ +int mp_init (mp_int * a) +{ + if (a) + fp_init(a); + return MP_OKAY; +} + +/* clear one (frees) */ +void mp_clear (mp_int * a) +{ + fp_zero(a); +} + +/* handle up to 6 inits */ +int mp_init_multi(mp_int* a, mp_int* b, mp_int* c, mp_int* d, mp_int* e, mp_int* f) +{ + if (a) + fp_init(a); + if (b) + fp_init(b); + if (c) + fp_init(c); + if (d) + fp_init(d); + if (e) + fp_init(e); + if (f) + fp_init(f); + + return MP_OKAY; +} + +/* high level addition (handles signs) */ +int mp_add (mp_int * a, mp_int * b, mp_int * c) +{ + fp_add(a, b, c); + return MP_OKAY; +} + +/* high level subtraction (handles signs) */ +int mp_sub (mp_int * a, mp_int * b, mp_int * c) +{ + fp_sub(a, b, c); + return MP_OKAY; +} + +/* high level multiplication (handles sign) */ +int mp_mul (mp_int * a, mp_int * b, mp_int * c) +{ + fp_mul(a, b, c); + return MP_OKAY; +} + +/* d = a * b (mod c) */ +int mp_mulmod (mp_int * a, mp_int * b, mp_int * c, mp_int * d) +{ + return fp_mulmod(a, b, c, d); +} + +/* c = a mod b, 0 <= c < b */ +int mp_mod (mp_int * a, mp_int * b, mp_int * c) +{ + return fp_mod (a, b, c); +} + +/* hac 14.61, pp608 */ +int mp_invmod (mp_int * a, mp_int * b, mp_int * c) +{ + return fp_invmod(a, b, c); +} + +/* this is a shell function that calls either the normal or Montgomery + * exptmod functions. Originally the call to the montgomery code was + * embedded in the normal function but that wasted alot of stack space + * for nothing (since 99% of the time the Montgomery code would be called) + */ +int mp_exptmod (mp_int * G, mp_int * X, mp_int * P, mp_int * Y) +{ + return fp_exptmod(G, X, P, Y); +} + +/* compare two ints (signed)*/ +int mp_cmp (mp_int * a, mp_int * b) +{ + return fp_cmp(a, b); +} + +/* compare a digit */ +int mp_cmp_d(mp_int * a, mp_digit b) +{ + return fp_cmp_d(a, b); +} + +/* get the size for an unsigned equivalent */ +int mp_unsigned_bin_size (mp_int * a) +{ + return fp_unsigned_bin_size(a); +} + +/* store in unsigned [big endian] format */ +int mp_to_unsigned_bin (mp_int * a, unsigned char *b) +{ + fp_to_unsigned_bin(a,b); + return MP_OKAY; +} + +/* reads a unsigned char array, assumes the msb is stored first [big endian] */ +int mp_read_unsigned_bin (mp_int * a, const unsigned char *b, int c) +{ + fp_read_unsigned_bin(a, (unsigned char *)b, c); + return MP_OKAY; +} + + +int mp_sub_d(fp_int *a, fp_digit b, fp_int *c) +{ + fp_sub_d(a, b, c); + return MP_OKAY; +} + + +/* fast math conversion */ +int mp_copy(fp_int* a, fp_int* b) +{ + fp_copy(a, b); + return MP_OKAY; +} + + +/* fast math conversion */ +int mp_isodd(mp_int* a) +{ + return fp_isodd(a); +} + + +/* fast math conversion */ +int mp_iszero(mp_int* a) +{ + return fp_iszero(a); +} + + +/* fast math conversion */ +int mp_count_bits (mp_int* a) +{ + return fp_count_bits(a); +} + + +/* fast math wrappers */ +int mp_set_int(fp_int *a, fp_digit b) +{ + fp_set(a, b); + return MP_OKAY; +} + + +#if defined(CYASSL_KEY_GEN) || defined (HAVE_ECC) + +/* c = a * a (mod b) */ +int fp_sqrmod(fp_int *a, fp_int *b, fp_int *c) +{ + fp_int tmp; + fp_zero(&tmp); + fp_sqr(a, &tmp); + return fp_mod(&tmp, b, c); +} + +/* fast math conversion */ +int mp_sqrmod(mp_int *a, mp_int *b, mp_int *c) +{ + return fp_sqrmod(a, b, c); +} + +/* fast math conversion */ +int mp_montgomery_calc_normalization(mp_int *a, mp_int *b) +{ + fp_montgomery_calc_normalization(a, b); + return MP_OKAY; +} + +#endif /* CYASSL_KEYGEN || HAVE_ECC */ + + +#ifdef CYASSL_KEY_GEN + +void fp_gcd(fp_int *a, fp_int *b, fp_int *c); +void fp_lcm(fp_int *a, fp_int *b, fp_int *c); +int fp_isprime(fp_int *a); +int fp_cnt_lsb(fp_int *a); + +int mp_gcd(fp_int *a, fp_int *b, fp_int *c) +{ + fp_gcd(a, b, c); + return MP_OKAY; +} + + +int mp_lcm(fp_int *a, fp_int *b, fp_int *c) +{ + fp_lcm(a, b, c); + return MP_OKAY; +} + + +int mp_prime_is_prime(mp_int* a, int t, int* result) +{ + (void)t; + *result = fp_isprime(a); + return MP_OKAY; +} + + + +static int s_is_power_of_two(fp_digit b, int *p) +{ + int x; + + /* fast return if no power of two */ + if ((b==0) || (b & (b-1))) { + return 0; + } + + for (x = 0; x < DIGIT_BIT; x++) { + if (b == (((fp_digit)1)< cb + d == a */ +static int fp_div_d(fp_int *a, fp_digit b, fp_int *c, fp_digit *d) +{ + fp_int q; + fp_word w; + fp_digit t; + int ix; + + /* cannot divide by zero */ + if (b == 0) { + return FP_VAL; + } + + /* quick outs */ + if (b == 1 || fp_iszero(a) == 1) { + if (d != NULL) { + *d = 0; + } + if (c != NULL) { + fp_copy(a, c); + } + return FP_OKAY; + } + + /* power of two ? */ + if (s_is_power_of_two(b, &ix) == 1) { + if (d != NULL) { + *d = a->dp[0] & ((((fp_digit)1)<used; + q.sign = a->sign; + w = 0; + for (ix = a->used - 1; ix >= 0; ix--) { + w = (w << ((fp_word)DIGIT_BIT)) | ((fp_word)a->dp[ix]); + + if (w >= b) { + t = (fp_digit)(w / b); + w -= ((fp_word)t) * ((fp_word)b); + } else { + t = 0; + } + q.dp[ix] = (fp_digit)t; + } + + if (d != NULL) { + *d = (fp_digit)w; + } + + if (c != NULL) { + fp_clamp(&q); + fp_copy(&q, c); + } + + return FP_OKAY; +} + + +/* c = a mod b, 0 <= c < b */ +static int fp_mod_d(fp_int *a, fp_digit b, fp_digit *c) +{ + return fp_div_d(a, b, NULL, c); +} + + +/* Miller-Rabin test of "a" to the base of "b" as described in + * HAC pp. 139 Algorithm 4.24 + * + * Sets result to 0 if definitely composite or 1 if probably prime. + * Randomly the chance of error is no more than 1/4 and often + * very much lower. + */ +static void fp_prime_miller_rabin (fp_int * a, fp_int * b, int *result) +{ + fp_int n1, y, r; + int s, j; + + /* default */ + *result = FP_NO; + + /* ensure b > 1 */ + if (fp_cmp_d(b, 1) != FP_GT) { + return; + } + + /* get n1 = a - 1 */ + fp_init_copy(&n1, a); + fp_sub_d(&n1, 1, &n1); + + /* set 2**s * r = n1 */ + fp_init_copy(&r, &n1); + + /* count the number of least significant bits + * which are zero + */ + s = fp_cnt_lsb(&r); + + /* now divide n - 1 by 2**s */ + fp_div_2d (&r, s, &r, NULL); + + /* compute y = b**r mod a */ + fp_init(&y); + fp_exptmod(b, &r, a, &y); + + /* if y != 1 and y != n1 do */ + if (fp_cmp_d (&y, 1) != FP_EQ && fp_cmp (&y, &n1) != FP_EQ) { + j = 1; + /* while j <= s-1 and y != n1 */ + while ((j <= (s - 1)) && fp_cmp (&y, &n1) != FP_EQ) { + fp_sqrmod (&y, a, &y); + + /* if y == 1 then composite */ + if (fp_cmp_d (&y, 1) == FP_EQ) { + return; + } + ++j; + } + + /* if y != n1 then composite */ + if (fp_cmp (&y, &n1) != FP_EQ) { + return; + } + } + + /* probably prime now */ + *result = FP_YES; +} + + +/* a few primes */ +static const fp_digit primes[256] = { + 0x0002, 0x0003, 0x0005, 0x0007, 0x000B, 0x000D, 0x0011, 0x0013, + 0x0017, 0x001D, 0x001F, 0x0025, 0x0029, 0x002B, 0x002F, 0x0035, + 0x003B, 0x003D, 0x0043, 0x0047, 0x0049, 0x004F, 0x0053, 0x0059, + 0x0061, 0x0065, 0x0067, 0x006B, 0x006D, 0x0071, 0x007F, 0x0083, + 0x0089, 0x008B, 0x0095, 0x0097, 0x009D, 0x00A3, 0x00A7, 0x00AD, + 0x00B3, 0x00B5, 0x00BF, 0x00C1, 0x00C5, 0x00C7, 0x00D3, 0x00DF, + 0x00E3, 0x00E5, 0x00E9, 0x00EF, 0x00F1, 0x00FB, 0x0101, 0x0107, + 0x010D, 0x010F, 0x0115, 0x0119, 0x011B, 0x0125, 0x0133, 0x0137, + + 0x0139, 0x013D, 0x014B, 0x0151, 0x015B, 0x015D, 0x0161, 0x0167, + 0x016F, 0x0175, 0x017B, 0x017F, 0x0185, 0x018D, 0x0191, 0x0199, + 0x01A3, 0x01A5, 0x01AF, 0x01B1, 0x01B7, 0x01BB, 0x01C1, 0x01C9, + 0x01CD, 0x01CF, 0x01D3, 0x01DF, 0x01E7, 0x01EB, 0x01F3, 0x01F7, + 0x01FD, 0x0209, 0x020B, 0x021D, 0x0223, 0x022D, 0x0233, 0x0239, + 0x023B, 0x0241, 0x024B, 0x0251, 0x0257, 0x0259, 0x025F, 0x0265, + 0x0269, 0x026B, 0x0277, 0x0281, 0x0283, 0x0287, 0x028D, 0x0293, + 0x0295, 0x02A1, 0x02A5, 0x02AB, 0x02B3, 0x02BD, 0x02C5, 0x02CF, + + 0x02D7, 0x02DD, 0x02E3, 0x02E7, 0x02EF, 0x02F5, 0x02F9, 0x0301, + 0x0305, 0x0313, 0x031D, 0x0329, 0x032B, 0x0335, 0x0337, 0x033B, + 0x033D, 0x0347, 0x0355, 0x0359, 0x035B, 0x035F, 0x036D, 0x0371, + 0x0373, 0x0377, 0x038B, 0x038F, 0x0397, 0x03A1, 0x03A9, 0x03AD, + 0x03B3, 0x03B9, 0x03C7, 0x03CB, 0x03D1, 0x03D7, 0x03DF, 0x03E5, + 0x03F1, 0x03F5, 0x03FB, 0x03FD, 0x0407, 0x0409, 0x040F, 0x0419, + 0x041B, 0x0425, 0x0427, 0x042D, 0x043F, 0x0443, 0x0445, 0x0449, + 0x044F, 0x0455, 0x045D, 0x0463, 0x0469, 0x047F, 0x0481, 0x048B, + + 0x0493, 0x049D, 0x04A3, 0x04A9, 0x04B1, 0x04BD, 0x04C1, 0x04C7, + 0x04CD, 0x04CF, 0x04D5, 0x04E1, 0x04EB, 0x04FD, 0x04FF, 0x0503, + 0x0509, 0x050B, 0x0511, 0x0515, 0x0517, 0x051B, 0x0527, 0x0529, + 0x052F, 0x0551, 0x0557, 0x055D, 0x0565, 0x0577, 0x0581, 0x058F, + 0x0593, 0x0595, 0x0599, 0x059F, 0x05A7, 0x05AB, 0x05AD, 0x05B3, + 0x05BF, 0x05C9, 0x05CB, 0x05CF, 0x05D1, 0x05D5, 0x05DB, 0x05E7, + 0x05F3, 0x05FB, 0x0607, 0x060D, 0x0611, 0x0617, 0x061F, 0x0623, + 0x062B, 0x062F, 0x063D, 0x0641, 0x0647, 0x0649, 0x064D, 0x0653 +}; + +int fp_isprime(fp_int *a) +{ + fp_int b; + fp_digit d = 0; + int r, res; + + /* do trial division */ + for (r = 0; r < 256; r++) { + fp_mod_d(a, primes[r], &d); + if (d == 0) { + return FP_NO; + } + } + + /* now do 8 miller rabins */ + fp_init(&b); + for (r = 0; r < 8; r++) { + fp_set(&b, primes[r]); + fp_prime_miller_rabin(a, &b, &res); + if (res == FP_NO) { + return FP_NO; + } + } + return FP_YES; +} + + +/* c = [a, b] */ +void fp_lcm(fp_int *a, fp_int *b, fp_int *c) +{ + fp_int t1, t2; + + fp_init(&t1); + fp_init(&t2); + fp_gcd(a, b, &t1); + if (fp_cmp_mag(a, b) == FP_GT) { + fp_div(a, &t1, &t2, NULL); + fp_mul(b, &t2, c); + } else { + fp_div(b, &t1, &t2, NULL); + fp_mul(a, &t2, c); + } +} + + +static const int lnz[16] = { + 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0 +}; + +/* Counts the number of lsbs which are zero before the first zero bit */ +int fp_cnt_lsb(fp_int *a) +{ + int x; + fp_digit q, qq; + + /* easy out */ + if (fp_iszero(a) == 1) { + return 0; + } + + /* scan lower digits until non-zero */ + for (x = 0; x < a->used && a->dp[x] == 0; x++); + q = a->dp[x]; + x *= DIGIT_BIT; + + /* now scan this digit until a 1 is found */ + if ((q & 1) == 0) { + do { + qq = q & 15; + x += lnz[qq]; + q >>= 4; + } while (qq == 0); + } + return x; +} + + +/* c = (a, b) */ +void fp_gcd(fp_int *a, fp_int *b, fp_int *c) +{ + fp_int u, v, r; + + /* either zero than gcd is the largest */ + if (fp_iszero (a) == 1 && fp_iszero (b) == 0) { + fp_abs (b, c); + return; + } + if (fp_iszero (a) == 0 && fp_iszero (b) == 1) { + fp_abs (a, c); + return; + } + + /* optimized. At this point if a == 0 then + * b must equal zero too + */ + if (fp_iszero (a) == 1) { + fp_zero(c); + return; + } + + /* sort inputs */ + if (fp_cmp_mag(a, b) != FP_LT) { + fp_init_copy(&u, a); + fp_init_copy(&v, b); + } else { + fp_init_copy(&u, b); + fp_init_copy(&v, a); + } + + fp_zero(&r); + while (fp_iszero(&v) == FP_NO) { + fp_mod(&u, &v, &r); + fp_copy(&v, &u); + fp_copy(&r, &v); + } + fp_copy(&u, c); +} + +#endif /* CYASSL_KEY_GEN */ + + +#if defined(HAVE_ECC) || !defined(NO_PWDBASED) +/* c = a + b */ +void fp_add_d(fp_int *a, fp_digit b, fp_int *c) +{ + fp_int tmp; + fp_set(&tmp, b); + fp_add(a,&tmp,c); +} + +/* external compatibility */ +int mp_add_d(fp_int *a, fp_digit b, fp_int *c) +{ + fp_add_d(a, b, c); + return MP_OKAY; +} + +#endif /* HAVE_ECC || !NO_PWDBASED */ + + +#ifdef HAVE_ECC + +/* chars used in radix conversions */ +const char *fp_s_rmap = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/"; + +static int fp_read_radix(fp_int *a, const char *str, int radix) +{ + int y, neg; + char ch; + + /* make sure the radix is ok */ + if (radix < 2 || radix > 64) { + return FP_VAL; + } + + /* if the leading digit is a + * minus set the sign to negative. + */ + if (*str == '-') { + ++str; + neg = FP_NEG; + } else { + neg = FP_ZPOS; + } + + /* set the integer to the default of zero */ + fp_zero (a); + + /* process each digit of the string */ + while (*str) { + /* if the radix < 36 the conversion is case insensitive + * this allows numbers like 1AB and 1ab to represent the same value + * [e.g. in hex] + */ + ch = (char) ((radix < 36) ? XTOUPPER(*str) : *str); + for (y = 0; y < 64; y++) { + if (ch == fp_s_rmap[y]) { + break; + } + } + + /* if the char was found in the map + * and is less than the given radix add it + * to the number, otherwise exit the loop. + */ + if (y < radix) { + fp_mul_d (a, (fp_digit) radix, a); + fp_add_d (a, (fp_digit) y, a); + } else { + break; + } + ++str; + } + + /* set the sign only if a != 0 */ + if (fp_iszero(a) != FP_YES) { + a->sign = neg; + } + return FP_OKAY; +} + +/* fast math conversion */ +int mp_read_radix(mp_int *a, const char *str, int radix) +{ + return fp_read_radix(a, str, radix); +} + +/* fast math conversion */ +int mp_set(fp_int *a, fp_digit b) +{ + fp_set(a,b); + return MP_OKAY; +} + +/* fast math conversion */ +int mp_sqr(fp_int *A, fp_int *B) +{ + fp_sqr(A, B); + return MP_OKAY; +} + +/* fast math conversion */ +int mp_montgomery_reduce(fp_int *a, fp_int *m, fp_digit mp) +{ + fp_montgomery_reduce(a, m, mp); + return MP_OKAY; +} + + +/* fast math conversion */ +int mp_montgomery_setup(fp_int *a, fp_digit *rho) +{ + return fp_montgomery_setup(a, rho); +} + +int mp_div_2(fp_int * a, fp_int * b) +{ + fp_div_2(a, b); + return MP_OKAY; +} + + +int mp_init_copy(fp_int * a, fp_int * b) +{ + fp_init_copy(a, b); + return MP_OKAY; +} + + + +#endif /* HAVE_ECC */ + +#endif /* USE_FAST_MATH */ diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/test/include.am b/FreeRTOS-Plus/CyaSSL/ctaocrypt/test/include.am new file mode 100644 index 000000000..9c876c939 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/test/include.am @@ -0,0 +1,9 @@ +# vim:ft=automake +# All paths should be given relative to the root + +noinst_PROGRAMS+= ctaocrypt/test/testctaocrypt +ctaocrypt_test_testctaocrypt_SOURCES = ctaocrypt/test/test.c +ctaocrypt_test_testctaocrypt_LDADD = src/libcyassl.la +ctaocrypt_test_testctaocrypt_DEPENDENCIES = src/libcyassl.la +EXTRA_DIST += ctaocrypt/test/test.sln +EXTRA_DIST += ctaocrypt/test/test.vcproj diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/test/test.c b/FreeRTOS-Plus/CyaSSL/ctaocrypt/test/test.c new file mode 100644 index 000000000..065de670e --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/test/test.c @@ -0,0 +1,2089 @@ +/* test.c + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +#ifdef HAVE_CONFIG_H + #include +#endif + +#include +#include +#include + +#ifdef CYASSL_TEST_CERT + #include +#else + #include +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef HAVE_ECC + #include +#endif + +#ifdef _MSC_VER + /* 4996 warning to use MS extensions e.g., strcpy_s instead of strncpy */ + #pragma warning(disable: 4996) +#endif + +#ifdef OPENSSL_EXTRA + #include + #include + #include + #include +#endif + +#ifdef HAVE_NTRU + #include "crypto_ntru.h" +#endif + + +#ifdef THREADX + /* since just testing, use THREADX log printf instead */ + int dc_log_printf(char*, ...); + #undef printf + #define printf dc_log_printf +#endif + + +typedef struct testVector { + char* input; + char* output; + size_t inLen; + size_t outLen; +} testVector; + +int md5_test(); +int md4_test(); +int sha_test(); +int sha256_test(); +int sha512_test(); +int sha384_test(); +int hmac_test(); +int arc4_test(); +int hc128_test(); +int rabbit_test(); +int des_test(); +int des3_test(); +int aes_test(); +int rsa_test(); +int dh_test(); +int dsa_test(); +int random_test(); +int pwdbased_test(); +int ripemd_test(); +int openssl_test(); /* test mini api */ +#ifdef HAVE_ECC + int ecc_test(); +#endif + +int PemToDer(const char* inName, const char* outName); + + +void err_sys(const char* msg, int es) +{ + printf("%s error = %d\n", msg, es); +#ifndef THREADX + exit(es); +#endif +} + +/* func_args from test.h, so don't have to pull in other junk */ +typedef struct func_args { + int argc; + char** argv; + int return_code; +} func_args; + + +void ctaocrypt_test(void* args) +{ + int ret = 0; + + ((func_args*)args)->return_code = -1; /* error state */ + + if (CheckCtcSettings() != 1) + err_sys("Build vs runtime math mismatch\n", -1234); + +#ifdef USE_FAST_MATH + if (CheckFastMathSettings() != 1) + err_sys("Build vs runtime fastmath FP_MAX_BITS mismatch\n", -1235); +#endif + + if ( (ret = md5_test()) ) + err_sys("MD5 test failed!\n", ret); + else + printf( "MD5 test passed!\n"); + +#ifndef NO_MD4 + if ( (ret = md4_test()) ) + err_sys("MD4 test failed!\n", ret); + else + printf( "MD4 test passed!\n"); +#endif + + if ( (ret = sha_test()) ) + err_sys("SHA test failed!\n", ret); + else + printf( "SHA test passed!\n"); + +#ifndef NO_SHA256 + if ( (ret = sha256_test()) ) + err_sys("SHA-256 test failed!\n", ret); + else + printf( "SHA-256 test passed!\n"); +#endif + +#ifdef CYASSL_SHA384 + if ( (ret = sha384_test()) ) + err_sys("SHA-384 test failed!\n", ret); + else + printf( "SHA-384 test passed!\n"); +#endif + +#ifdef CYASSL_SHA512 + if ( (ret = sha512_test()) ) + err_sys("SHA-512 test failed!\n", ret); + else + printf( "SHA-512 test passed!\n"); +#endif + +#ifdef CYASSL_RIPEMD + if ( (ret = ripemd_test()) ) + err_sys("RIPEMD test failed!\n", ret); + else + printf( "RIPEMD test passed!\n"); +#endif + +#ifndef NO_HMAC + if ( (ret = hmac_test()) ) + err_sys("HMAC test failed!\n", ret); + else + printf( "HMAC test passed!\n"); +#endif + + if ( (ret = arc4_test()) ) + err_sys("ARC4 test failed!\n", ret); + else + printf( "ARC4 test passed!\n"); + +#ifndef NO_HC128 + if ( (ret = hc128_test()) ) + err_sys("HC-128 test failed!\n", ret); + else + printf( "HC-128 test passed!\n"); +#endif + +#ifndef NO_RABBIT + if ( (ret = rabbit_test()) ) + err_sys("Rabbit test failed!\n", ret); + else + printf( "Rabbit test passed!\n"); +#endif + +#ifndef NO_DES3 + if ( (ret = des_test()) ) + err_sys("DES test failed!\n", ret); + else + printf( "DES test passed!\n"); +#endif + +#ifndef NO_DES3 + if ( (ret = des3_test()) ) + err_sys("DES3 test failed!\n", ret); + else + printf( "DES3 test passed!\n"); +#endif + +#ifndef NO_AES + if ( (ret = aes_test()) ) + err_sys("AES test failed!\n", ret); + else + printf( "AES test passed!\n"); +#endif + + if ( (ret = random_test()) ) + err_sys("RANDOM test failed!\n", ret); + else + printf( "RANDOM test passed!\n"); + + if ( (ret = rsa_test()) ) + err_sys("RSA test failed!\n", ret); + else + printf( "RSA test passed!\n"); + +#ifndef NO_DH + if ( (ret = dh_test()) ) + err_sys("DH test failed!\n", ret); + else + printf( "DH test passed!\n"); +#endif + +#ifndef NO_DSA + if ( (ret = dsa_test()) ) + err_sys("DSA test failed!\n", ret); + else + printf( "DSA test passed!\n"); +#endif + +#ifndef NO_PWDBASED + if ( (ret = pwdbased_test()) ) + err_sys("PWDBASED test failed!\n", ret); + else + printf( "PWDBASED test passed!\n"); +#endif + +#ifdef OPENSSL_EXTRA + if ( (ret = openssl_test()) ) + err_sys("OPENSSL test failed!\n", ret); + else + printf( "OPENSSL test passed!\n"); +#endif + +#ifdef HAVE_ECC + if ( (ret = ecc_test()) ) + err_sys("ECC test failed!\n", ret); + else + printf( "ECC test passed!\n"); +#endif + + ((func_args*)args)->return_code = ret; +} + + +/* so overall tests can pull in test function */ +#ifndef NO_MAIN_DRIVER + + int main(int argc, char** argv) + { + func_args args; + + args.argc = argc; + args.argv = argv; + + ctaocrypt_test(&args); + return args.return_code; + } + +#endif /* NO_MAIN_DRIVER */ + + +int md5_test() +{ + Md5 md5; + byte hash[MD5_DIGEST_SIZE]; + + testVector a, b, c, d, e; + testVector test_md5[5]; + int times = sizeof(test_md5) / sizeof(testVector), i; + + a.input = "abc"; + a.output = "\x90\x01\x50\x98\x3c\xd2\x4f\xb0\xd6\x96\x3f\x7d\x28\xe1\x7f" + "\x72"; + a.inLen = strlen(a.input); + a.outLen = strlen(a.output); + + b.input = "message digest"; + b.output = "\xf9\x6b\x69\x7d\x7c\xb7\x93\x8d\x52\x5a\x2f\x31\xaa\xf1\x61" + "\xd0"; + b.inLen = strlen(b.input); + b.outLen = strlen(b.output); + + c.input = "abcdefghijklmnopqrstuvwxyz"; + c.output = "\xc3\xfc\xd3\xd7\x61\x92\xe4\x00\x7d\xfb\x49\x6c\xca\x67\xe1" + "\x3b"; + c.inLen = strlen(c.input); + c.outLen = strlen(c.output); + + d.input = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz012345" + "6789"; + d.output = "\xd1\x74\xab\x98\xd2\x77\xd9\xf5\xa5\x61\x1c\x2c\x9f\x41\x9d" + "\x9f"; + d.inLen = strlen(d.input); + d.outLen = strlen(d.output); + + e.input = "1234567890123456789012345678901234567890123456789012345678" + "9012345678901234567890"; + e.output = "\x57\xed\xf4\xa2\x2b\xe3\xc9\x55\xac\x49\xda\x2e\x21\x07\xb6" + "\x7a"; + e.inLen = strlen(e.input); + e.outLen = strlen(e.output); + + test_md5[0] = a; + test_md5[1] = b; + test_md5[2] = c; + test_md5[3] = d; + test_md5[4] = e; + + InitMd5(&md5); + + for (i = 0; i < times; ++i) { + Md5Update(&md5, (byte*)test_md5[i].input, (word32)test_md5[i].inLen); + Md5Final(&md5, hash); + + if (memcmp(hash, test_md5[i].output, MD5_DIGEST_SIZE) != 0) + return -5 - i; + } + + return 0; +} + + +#ifndef NO_MD4 + +int md4_test() +{ + Md4 md4; + byte hash[MD4_DIGEST_SIZE]; + + testVector a, b, c, d, e, f, g; + testVector test_md4[7]; + int times = sizeof(test_md4) / sizeof(testVector), i; + + a.input = ""; + a.output = "\x31\xd6\xcf\xe0\xd1\x6a\xe9\x31\xb7\x3c\x59\xd7\xe0\xc0\x89" + "\xc0"; + a.inLen = strlen(a.input); + a.outLen = strlen(a.output); + + b.input = "a"; + b.output = "\xbd\xe5\x2c\xb3\x1d\xe3\x3e\x46\x24\x5e\x05\xfb\xdb\xd6\xfb" + "\x24"; + b.inLen = strlen(b.input); + b.outLen = strlen(b.output); + + c.input = "abc"; + c.output = "\xa4\x48\x01\x7a\xaf\x21\xd8\x52\x5f\xc1\x0a\xe8\x7a\xa6\x72" + "\x9d"; + c.inLen = strlen(c.input); + c.outLen = strlen(c.output); + + d.input = "message digest"; + d.output = "\xd9\x13\x0a\x81\x64\x54\x9f\xe8\x18\x87\x48\x06\xe1\xc7\x01" + "\x4b"; + d.inLen = strlen(d.input); + d.outLen = strlen(d.output); + + e.input = "abcdefghijklmnopqrstuvwxyz"; + e.output = "\xd7\x9e\x1c\x30\x8a\xa5\xbb\xcd\xee\xa8\xed\x63\xdf\x41\x2d" + "\xa9"; + e.inLen = strlen(e.input); + e.outLen = strlen(e.output); + + f.input = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz012345" + "6789"; + f.output = "\x04\x3f\x85\x82\xf2\x41\xdb\x35\x1c\xe6\x27\xe1\x53\xe7\xf0" + "\xe4"; + f.inLen = strlen(f.input); + f.outLen = strlen(f.output); + + g.input = "1234567890123456789012345678901234567890123456789012345678" + "9012345678901234567890"; + g.output = "\xe3\x3b\x4d\xdc\x9c\x38\xf2\x19\x9c\x3e\x7b\x16\x4f\xcc\x05" + "\x36"; + g.inLen = strlen(g.input); + g.outLen = strlen(g.output); + + test_md4[0] = a; + test_md4[1] = b; + test_md4[2] = c; + test_md4[3] = d; + test_md4[4] = e; + test_md4[5] = f; + test_md4[6] = g; + + InitMd4(&md4); + + for (i = 0; i < times; ++i) { + Md4Update(&md4, (byte*)test_md4[i].input, (word32)test_md4[i].inLen); + Md4Final(&md4, hash); + + if (memcmp(hash, test_md4[i].output, MD4_DIGEST_SIZE) != 0) + return -205 - i; + } + + return 0; +} + +#endif /* NO_MD4 */ + +int sha_test() +{ + Sha sha; + byte hash[SHA_DIGEST_SIZE]; + + testVector a, b, c, d; + testVector test_sha[4]; + int times = sizeof(test_sha) / sizeof(struct testVector), i; + + a.input = "abc"; + a.output = "\xA9\x99\x3E\x36\x47\x06\x81\x6A\xBA\x3E\x25\x71\x78\x50\xC2" + "\x6C\x9C\xD0\xD8\x9D"; + a.inLen = strlen(a.input); + a.outLen = strlen(a.output); + + b.input = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"; + b.output = "\x84\x98\x3E\x44\x1C\x3B\xD2\x6E\xBA\xAE\x4A\xA1\xF9\x51\x29" + "\xE5\xE5\x46\x70\xF1"; + b.inLen = strlen(b.input); + b.outLen = strlen(b.output); + + c.input = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + "aaaaaa"; + c.output = "\x00\x98\xBA\x82\x4B\x5C\x16\x42\x7B\xD7\xA1\x12\x2A\x5A\x44" + "\x2A\x25\xEC\x64\x4D"; + c.inLen = strlen(c.input); + c.outLen = strlen(c.output); + + d.input = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + "aaaaaaaaaa"; + d.output = "\xAD\x5B\x3F\xDB\xCB\x52\x67\x78\xC2\x83\x9D\x2F\x15\x1E\xA7" + "\x53\x99\x5E\x26\xA0"; + d.inLen = strlen(d.input); + d.outLen = strlen(d.output); + + test_sha[0] = a; + test_sha[1] = b; + test_sha[2] = c; + test_sha[3] = d; + + InitSha(&sha); + + for (i = 0; i < times; ++i) { + ShaUpdate(&sha, (byte*)test_sha[i].input, (word32)test_sha[i].inLen); + ShaFinal(&sha, hash); + + if (memcmp(hash, test_sha[i].output, SHA_DIGEST_SIZE) != 0) + return -10 - i; + } + + return 0; +} + + +#ifdef CYASSL_RIPEMD +int ripemd_test() +{ + RipeMd ripemd; + byte hash[RIPEMD_DIGEST_SIZE]; + + testVector a, b, c, d; + testVector test_ripemd[4]; + int times = sizeof(test_ripemd) / sizeof(struct testVector), i; + + a.input = "abc"; + a.output = "\x8e\xb2\x08\xf7\xe0\x5d\x98\x7a\x9b\x04\x4a\x8e\x98\xc6" + "\xb0\x87\xf1\x5a\x0b\xfc"; + a.inLen = strlen(a.input); + a.outLen = strlen(a.output); + + b.input = "message digest"; + b.output = "\x5d\x06\x89\xef\x49\xd2\xfa\xe5\x72\xb8\x81\xb1\x23\xa8" + "\x5f\xfa\x21\x59\x5f\x36"; + b.inLen = strlen(b.input); + b.outLen = strlen(b.output); + + c.input = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"; + c.output = "\x12\xa0\x53\x38\x4a\x9c\x0c\x88\xe4\x05\xa0\x6c\x27\xdc" + "\xf4\x9a\xda\x62\xeb\x2b"; + c.inLen = strlen(c.input); + c.outLen = strlen(c.output); + + d.input = "12345678901234567890123456789012345678901234567890123456" + "789012345678901234567890"; + d.output = "\x9b\x75\x2e\x45\x57\x3d\x4b\x39\xf4\xdb\xd3\x32\x3c\xab" + "\x82\xbf\x63\x32\x6b\xfb"; + d.inLen = strlen(d.input); + d.outLen = strlen(d.output); + + test_ripemd[0] = a; + test_ripemd[1] = b; + test_ripemd[2] = c; + test_ripemd[3] = d; + + InitRipeMd(&ripemd); + + for (i = 0; i < times; ++i) { + RipeMdUpdate(&ripemd, (byte*)test_ripemd[i].input, + (word32)test_ripemd[i].inLen); + RipeMdFinal(&ripemd, hash); + + if (memcmp(hash, test_ripemd[i].output, RIPEMD_DIGEST_SIZE) != 0) + return -10 - i; + } + + return 0; +} +#endif /* CYASSL_RIPEMD */ + + +#ifndef NO_SHA256 +int sha256_test() +{ + Sha256 sha; + byte hash[SHA256_DIGEST_SIZE]; + + testVector a, b; + testVector test_sha[2]; + int times = sizeof(test_sha) / sizeof(struct testVector), i; + + a.input = "abc"; + a.output = "\xBA\x78\x16\xBF\x8F\x01\xCF\xEA\x41\x41\x40\xDE\x5D\xAE\x22" + "\x23\xB0\x03\x61\xA3\x96\x17\x7A\x9C\xB4\x10\xFF\x61\xF2\x00" + "\x15\xAD"; + a.inLen = strlen(a.input); + a.outLen = strlen(a.output); + + b.input = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"; + b.output = "\x24\x8D\x6A\x61\xD2\x06\x38\xB8\xE5\xC0\x26\x93\x0C\x3E\x60" + "\x39\xA3\x3C\xE4\x59\x64\xFF\x21\x67\xF6\xEC\xED\xD4\x19\xDB" + "\x06\xC1"; + b.inLen = strlen(b.input); + b.outLen = strlen(b.output); + + test_sha[0] = a; + test_sha[1] = b; + + InitSha256(&sha); + + for (i = 0; i < times; ++i) { + Sha256Update(&sha, (byte*)test_sha[i].input,(word32)test_sha[i].inLen); + Sha256Final(&sha, hash); + + if (memcmp(hash, test_sha[i].output, SHA256_DIGEST_SIZE) != 0) + return -10 - i; + } + + return 0; +} +#endif + + +#ifdef CYASSL_SHA512 +int sha512_test() +{ + Sha512 sha; + byte hash[SHA512_DIGEST_SIZE]; + + testVector a, b; + testVector test_sha[2]; + int times = sizeof(test_sha) / sizeof(struct testVector), i; + + a.input = "abc"; + a.output = "\xdd\xaf\x35\xa1\x93\x61\x7a\xba\xcc\x41\x73\x49\xae\x20\x41" + "\x31\x12\xe6\xfa\x4e\x89\xa9\x7e\xa2\x0a\x9e\xee\xe6\x4b\x55" + "\xd3\x9a\x21\x92\x99\x2a\x27\x4f\xc1\xa8\x36\xba\x3c\x23\xa3" + "\xfe\xeb\xbd\x45\x4d\x44\x23\x64\x3c\xe8\x0e\x2a\x9a\xc9\x4f" + "\xa5\x4c\xa4\x9f"; + a.inLen = strlen(a.input); + a.outLen = strlen(a.output); + + b.input = "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhi" + "jklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu"; + b.output = "\x8e\x95\x9b\x75\xda\xe3\x13\xda\x8c\xf4\xf7\x28\x14\xfc\x14" + "\x3f\x8f\x77\x79\xc6\xeb\x9f\x7f\xa1\x72\x99\xae\xad\xb6\x88" + "\x90\x18\x50\x1d\x28\x9e\x49\x00\xf7\xe4\x33\x1b\x99\xde\xc4" + "\xb5\x43\x3a\xc7\xd3\x29\xee\xb6\xdd\x26\x54\x5e\x96\xe5\x5b" + "\x87\x4b\xe9\x09"; + b.inLen = strlen(b.input); + b.outLen = strlen(b.output); + + test_sha[0] = a; + test_sha[1] = b; + + InitSha512(&sha); + + for (i = 0; i < times; ++i) { + Sha512Update(&sha, (byte*)test_sha[i].input,(word32)test_sha[i].inLen); + Sha512Final(&sha, hash); + + if (memcmp(hash, test_sha[i].output, SHA512_DIGEST_SIZE) != 0) + return -10 - i; + } + + return 0; +} +#endif + + +#ifdef CYASSL_SHA384 +int sha384_test() +{ + Sha384 sha; + byte hash[SHA384_DIGEST_SIZE]; + + testVector a, b; + testVector test_sha[2]; + int times = sizeof(test_sha) / sizeof(struct testVector), i; + + a.input = "abc"; + a.output = "\xcb\x00\x75\x3f\x45\xa3\x5e\x8b\xb5\xa0\x3d\x69\x9a\xc6\x50" + "\x07\x27\x2c\x32\xab\x0e\xde\xd1\x63\x1a\x8b\x60\x5a\x43\xff" + "\x5b\xed\x80\x86\x07\x2b\xa1\xe7\xcc\x23\x58\xba\xec\xa1\x34" + "\xc8\x25\xa7"; + a.inLen = strlen(a.input); + a.outLen = strlen(a.output); + + b.input = "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhi" + "jklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu"; + b.output = "\x09\x33\x0c\x33\xf7\x11\x47\xe8\x3d\x19\x2f\xc7\x82\xcd\x1b" + "\x47\x53\x11\x1b\x17\x3b\x3b\x05\xd2\x2f\xa0\x80\x86\xe3\xb0" + "\xf7\x12\xfc\xc7\xc7\x1a\x55\x7e\x2d\xb9\x66\xc3\xe9\xfa\x91" + "\x74\x60\x39"; + b.inLen = strlen(b.input); + b.outLen = strlen(b.output); + + test_sha[0] = a; + test_sha[1] = b; + + InitSha384(&sha); + + for (i = 0; i < times; ++i) { + Sha384Update(&sha, (byte*)test_sha[i].input,(word32)test_sha[i].inLen); + Sha384Final(&sha, hash); + + if (memcmp(hash, test_sha[i].output, SHA384_DIGEST_SIZE) != 0) + return -10 - i; + } + + return 0; +} +#endif /* CYASSL_SHA384 */ + + +#ifndef NO_HMAC +int hmac_test() +{ + Hmac hmac; + byte hash[MD5_DIGEST_SIZE]; + + const char* keys[]= + { + "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b", + "Jefe", + "\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA" + }; + + testVector a, b, c; + testVector test_hmac[3]; + + int times = sizeof(test_hmac) / sizeof(testVector), i; + + a.input = "Hi There"; + a.output = "\x92\x94\x72\x7a\x36\x38\xbb\x1c\x13\xf4\x8e\xf8\x15\x8b\xfc" + "\x9d"; + a.inLen = strlen(a.input); + a.outLen = strlen(a.output); + + b.input = "what do ya want for nothing?"; + b.output = "\x75\x0c\x78\x3e\x6a\xb0\xb5\x03\xea\xa8\x6e\x31\x0a\x5d\xb7" + "\x38"; + b.inLen = strlen(b.input); + b.outLen = strlen(b.output); + + c.input = "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD" + "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD" + "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD" + "\xDD\xDD\xDD\xDD\xDD\xDD"; + c.output = "\x56\xbe\x34\x52\x1d\x14\x4c\x88\xdb\xb8\xc7\x33\xf0\xe8\xb3" + "\xf6"; + c.inLen = strlen(c.input); + c.outLen = strlen(c.output); + + test_hmac[0] = a; + test_hmac[1] = b; + test_hmac[2] = c; + + for (i = 0; i < times; ++i) { + HmacSetKey(&hmac, MD5, (byte*)keys[i], (word32)strlen(keys[i])); + HmacUpdate(&hmac, (byte*)test_hmac[i].input, + (word32)test_hmac[i].inLen); + HmacFinal(&hmac, hash); + + if (memcmp(hash, test_hmac[i].output, MD5_DIGEST_SIZE) != 0) + return -20 - i; + } + + return 0; +} +#endif + + +int arc4_test() +{ + byte cipher[16]; + byte plain[16]; + + const char* keys[] = + { + "\x01\x23\x45\x67\x89\xab\xcd\xef", + "\x01\x23\x45\x67\x89\xab\xcd\xef", + "\x00\x00\x00\x00\x00\x00\x00\x00", + "\xef\x01\x23\x45" + }; + + testVector a, b, c, d; + testVector test_arc4[4]; + + int times = sizeof(test_arc4) / sizeof(testVector), i; + + a.input = "\x01\x23\x45\x67\x89\xab\xcd\xef"; + a.output = "\x75\xb7\x87\x80\x99\xe0\xc5\x96"; + a.inLen = strlen(a.input); + a.outLen = strlen(a.output); + + b.input = "\x00\x00\x00\x00\x00\x00\x00\x00"; + b.output = "\x74\x94\xc2\xe7\x10\x4b\x08\x79"; + b.inLen = strlen(b.input); + b.outLen = strlen(b.output); + + c.input = "\x00\x00\x00\x00\x00\x00\x00\x00"; + c.output = "\xde\x18\x89\x41\xa3\x37\x5d\x3a"; + c.inLen = strlen(c.input); + c.outLen = strlen(c.output); + + d.input = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"; + d.output = "\xd6\xa1\x41\xa7\xec\x3c\x38\xdf\xbd\x61"; + d.inLen = strlen(d.input); + d.outLen = strlen(d.output); + + test_arc4[0] = a; + test_arc4[1] = b; + test_arc4[2] = c; + test_arc4[3] = d; + + for (i = 0; i < times; ++i) { + Arc4 enc; + Arc4 dec; + + Arc4SetKey(&enc, (byte*)keys[i], (word32)strlen(keys[i])); + Arc4SetKey(&dec, (byte*)keys[i], (word32)strlen(keys[i])); + + Arc4Process(&enc, cipher, (byte*)test_arc4[i].input, + (word32)test_arc4[i].outLen); + Arc4Process(&dec, plain, cipher, (word32)test_arc4[i].outLen); + + if (memcmp(plain, test_arc4[i].input, test_arc4[i].outLen)) + return -20 - i; + + if (memcmp(cipher, test_arc4[i].output, test_arc4[i].outLen)) + return -20 - 5 - i; + } + + return 0; +} + + +int hc128_test() +{ +#ifdef HAVE_HC128 + byte cipher[16]; + byte plain[16]; + + const char* keys[] = + { + "\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", + "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", + "\x00\x53\xA6\xF9\x4C\x9F\xF2\x45\x98\xEB\x3E\x91\xE4\x37\x8A\xDD", + "\x0F\x62\xB5\x08\x5B\xAE\x01\x54\xA7\xFA\x4D\xA0\xF3\x46\x99\xEC" + }; + + const char* ivs[] = + { + "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", + "\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", + "\x0D\x74\xDB\x42\xA9\x10\x77\xDE\x45\xAC\x13\x7A\xE1\x48\xAF\x16", + "\x28\x8F\xF6\x5D\xC4\x2B\x92\xF9\x60\xC7\x2E\x95\xFC\x63\xCA\x31" + }; + + + testVector a, b, c, d; + testVector test_hc128[4]; + + int times = sizeof(test_hc128) / sizeof(testVector), i; + + a.input = "\x00\x00\x00\x00\x00\x00\x00\x00"; + a.output = "\x37\x86\x02\xB9\x8F\x32\xA7\x48"; + a.inLen = strlen(a.input); + a.outLen = strlen(a.output); + + b.input = "\x00\x00\x00\x00\x00\x00\x00\x00"; + b.output = "\x33\x7F\x86\x11\xC6\xED\x61\x5F"; + b.inLen = strlen(b.input); + b.outLen = strlen(b.output); + + c.input = "\x00\x00\x00\x00\x00\x00\x00\x00"; + c.output = "\x2E\x1E\xD1\x2A\x85\x51\xC0\x5A"; + c.inLen = strlen(c.input); + c.outLen = strlen(c.output); + + d.input = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"; + d.output = "\x1C\xD8\xAE\xDD\xFE\x52\xE2\x17\xE8\x35\xD0\xB7\xE8\x4E\x29"; + d.inLen = strlen(d.input); + d.outLen = strlen(d.output); + + test_hc128[0] = a; + test_hc128[1] = b; + test_hc128[2] = c; + test_hc128[3] = d; + + for (i = 0; i < times; ++i) { + HC128 enc; + HC128 dec; + + Hc128_SetKey(&enc, (byte*)keys[i], (byte*)ivs[i]); + Hc128_SetKey(&dec, (byte*)keys[i], (byte*)ivs[i]); + + Hc128_Process(&enc, cipher, (byte*)test_hc128[i].input, + (word32)test_hc128[i].outLen); + Hc128_Process(&dec, plain, cipher, (word32)test_hc128[i].outLen); + + if (memcmp(plain, test_hc128[i].input, test_hc128[i].outLen)) + return -120 - i; + + if (memcmp(cipher, test_hc128[i].output, test_hc128[i].outLen)) + return -120 - 5 - i; + } + +#endif /* HAVE_HC128 */ + return 0; +} + + +#ifndef NO_RABBIT +int rabbit_test() +{ + byte cipher[16]; + byte plain[16]; + + const char* keys[] = + { + "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", + "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", + "\xAC\xC3\x51\xDC\xF1\x62\xFC\x3B\xFE\x36\x3D\x2E\x29\x13\x28\x91" + }; + + const char* ivs[] = + { + "\x00\x00\x00\x00\x00\x00\x00\x00", + "\x59\x7E\x26\xC1\x75\xF5\x73\xC3", + 0 + }; + + + testVector a, b, c; + testVector test_rabbit[3]; + + int times = sizeof(test_rabbit) / sizeof(testVector), i; + + a.input = "\x00\x00\x00\x00\x00\x00\x00\x00"; + a.output = "\xED\xB7\x05\x67\x37\x5D\xCD\x7C"; + a.inLen = strlen(a.input); + a.outLen = strlen(a.output); + + b.input = "\x00\x00\x00\x00\x00\x00\x00\x00"; + b.output = "\x6D\x7D\x01\x22\x92\xCC\xDC\xE0"; + b.inLen = strlen(b.input); + b.outLen = strlen(b.output); + + c.input = "\x00\x00\x00\x00\x00\x00\x00\x00"; + c.output = "\x9C\x51\xE2\x87\x84\xC3\x7F\xE9"; + c.inLen = strlen(c.input); + c.outLen = strlen(c.output); + + test_rabbit[0] = a; + test_rabbit[1] = b; + test_rabbit[2] = c; + + for (i = 0; i < times; ++i) { + Rabbit enc; + Rabbit dec; + + RabbitSetKey(&enc, (byte*)keys[i], (byte*)ivs[i]); + RabbitSetKey(&dec, (byte*)keys[i], (byte*)ivs[i]); + + RabbitProcess(&enc, cipher, (byte*)test_rabbit[i].input, + (word32)test_rabbit[i].outLen); + RabbitProcess(&dec, plain, cipher, (word32)test_rabbit[i].outLen); + + if (memcmp(plain, test_rabbit[i].input, test_rabbit[i].outLen)) + return -130 - i; + + if (memcmp(cipher, test_rabbit[i].output, test_rabbit[i].outLen)) + return -130 - 5 - i; + } + + return 0; +} +#endif /* NO_RABBIT */ + + +#ifndef NO_DES3 +int des_test() +{ + const byte vector[] = { /* "now is the time for all " w/o trailing 0 */ + 0x6e,0x6f,0x77,0x20,0x69,0x73,0x20,0x74, + 0x68,0x65,0x20,0x74,0x69,0x6d,0x65,0x20, + 0x66,0x6f,0x72,0x20,0x61,0x6c,0x6c,0x20 + }; + + byte plain[24]; + byte cipher[24]; + + Des enc; + Des dec; + + const byte key[] = + { + 0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef + }; + + const byte iv[] = + { + 0x12,0x34,0x56,0x78,0x90,0xab,0xcd,0xef + }; + + const byte verify[] = + { + 0x8b,0x7c,0x52,0xb0,0x01,0x2b,0x6c,0xb8, + 0x4f,0x0f,0xeb,0xf3,0xfb,0x5f,0x86,0x73, + 0x15,0x85,0xb3,0x22,0x4b,0x86,0x2b,0x4b + }; + + + Des_SetKey(&enc, key, iv, DES_ENCRYPTION); + Des_CbcEncrypt(&enc, cipher, vector, sizeof(vector)); + Des_SetKey(&dec, key, iv, DES_DECRYPTION); + Des_CbcDecrypt(&dec, plain, cipher, sizeof(cipher)); + + if (memcmp(plain, vector, sizeof(plain))) + return -31; + + if (memcmp(cipher, verify, sizeof(cipher))) + return -32; + + return 0; +} +#endif /* NO_DES3 */ + + +#ifndef NO_DES3 +int des3_test() +{ + const byte vector[] = { /* "Now is the time for all " w/o trailing 0 */ + 0x4e,0x6f,0x77,0x20,0x69,0x73,0x20,0x74, + 0x68,0x65,0x20,0x74,0x69,0x6d,0x65,0x20, + 0x66,0x6f,0x72,0x20,0x61,0x6c,0x6c,0x20 + }; + + byte plain[24]; + byte cipher[24]; + + Des3 enc; + Des3 dec; + + const byte key3[] = + { + 0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef, + 0xfe,0xde,0xba,0x98,0x76,0x54,0x32,0x10, + 0x89,0xab,0xcd,0xef,0x01,0x23,0x45,0x67 + }; + const byte iv3[] = + { + 0x12,0x34,0x56,0x78,0x90,0xab,0xcd,0xef, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x11,0x21,0x31,0x41,0x51,0x61,0x71,0x81 + + }; + + const byte verify3[] = + { + 0x43,0xa0,0x29,0x7e,0xd1,0x84,0xf8,0x0e, + 0x89,0x64,0x84,0x32,0x12,0xd5,0x08,0x98, + 0x18,0x94,0x15,0x74,0x87,0x12,0x7d,0xb0 + }; + + + Des3_SetKey(&enc, key3, iv3, DES_ENCRYPTION); + Des3_CbcEncrypt(&enc, cipher, vector, sizeof(vector)); + Des3_SetKey(&dec, key3, iv3, DES_DECRYPTION); + Des3_CbcDecrypt(&dec, plain, cipher, sizeof(cipher)); + + if (memcmp(plain, vector, sizeof(plain))) + return -33; + + if (memcmp(cipher, verify3, sizeof(cipher))) + return -34; + + return 0; +} +#endif /* NO_DES */ + + +#ifndef NO_AES +int aes_test() +{ + Aes enc; + Aes dec; + + const byte msg[] = { /* "Now is the time for all " w/o trailing 0 */ + 0x6e,0x6f,0x77,0x20,0x69,0x73,0x20,0x74, + 0x68,0x65,0x20,0x74,0x69,0x6d,0x65,0x20, + 0x66,0x6f,0x72,0x20,0x61,0x6c,0x6c,0x20 + }; + + const byte verify[] = + { + 0x95,0x94,0x92,0x57,0x5f,0x42,0x81,0x53, + 0x2c,0xcc,0x9d,0x46,0x77,0xa2,0x33,0xcb + }; + + byte key[] = "0123456789abcdef "; /* align */ + byte iv[] = "1234567890abcdef "; /* align */ + + byte cipher[AES_BLOCK_SIZE * 4]; + byte plain [AES_BLOCK_SIZE * 4]; + + AesSetKey(&enc, key, AES_BLOCK_SIZE, iv, AES_ENCRYPTION); + AesSetKey(&dec, key, AES_BLOCK_SIZE, iv, AES_DECRYPTION); + + AesCbcEncrypt(&enc, cipher, msg, AES_BLOCK_SIZE); + AesCbcDecrypt(&dec, plain, cipher, AES_BLOCK_SIZE); + + if (memcmp(plain, msg, AES_BLOCK_SIZE)) + return -60; + + if (memcmp(cipher, verify, AES_BLOCK_SIZE)) + return -61; + +#ifdef CYASSL_AES_COUNTER + { + const byte ctrKey[] = + { + 0x2b,0x7e,0x15,0x16,0x28,0xae,0xd2,0xa6, + 0xab,0xf7,0x15,0x88,0x09,0xcf,0x4f,0x3c + }; + + const byte ctrIv[] = + { + 0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7, + 0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff + }; + + + const byte ctrPlain[] = + { + 0x6b,0xc1,0xbe,0xe2,0x2e,0x40,0x9f,0x96, + 0xe9,0x3d,0x7e,0x11,0x73,0x93,0x17,0x2a, + 0xae,0x2d,0x8a,0x57,0x1e,0x03,0xac,0x9c, + 0x9e,0xb7,0x6f,0xac,0x45,0xaf,0x8e,0x51, + 0x30,0xc8,0x1c,0x46,0xa3,0x5c,0xe4,0x11, + 0xe5,0xfb,0xc1,0x19,0x1a,0x0a,0x52,0xef, + 0xf6,0x9f,0x24,0x45,0xdf,0x4f,0x9b,0x17, + 0xad,0x2b,0x41,0x7b,0xe6,0x6c,0x37,0x10 + }; + + const byte ctrCipher[] = + { + 0x87,0x4d,0x61,0x91,0xb6,0x20,0xe3,0x26, + 0x1b,0xef,0x68,0x64,0x99,0x0d,0xb6,0xce, + 0x98,0x06,0xf6,0x6b,0x79,0x70,0xfd,0xff, + 0x86,0x17,0x18,0x7b,0xb9,0xff,0xfd,0xff, + 0x5a,0xe4,0xdf,0x3e,0xdb,0xd5,0xd3,0x5e, + 0x5b,0x4f,0x09,0x02,0x0d,0xb0,0x3e,0xab, + 0x1e,0x03,0x1d,0xda,0x2f,0xbe,0x03,0xd1, + 0x79,0x21,0x70,0xa0,0xf3,0x00,0x9c,0xee + }; + + AesSetKey(&enc, ctrKey, AES_BLOCK_SIZE, ctrIv, AES_ENCRYPTION); + /* Ctr only uses encrypt, even on key setup */ + AesSetKey(&dec, ctrKey, AES_BLOCK_SIZE, ctrIv, AES_ENCRYPTION); + + AesCtrEncrypt(&enc, cipher, ctrPlain, AES_BLOCK_SIZE*4); + AesCtrEncrypt(&dec, plain, cipher, AES_BLOCK_SIZE*4); + + if (memcmp(plain, ctrPlain, AES_BLOCK_SIZE*4)) + return -66; + + if (memcmp(cipher, ctrCipher, AES_BLOCK_SIZE*4)) + return -67; + } +#endif /* CYASSL_AES_COUNTER */ + + return 0; +} +#endif /* NO_AES */ + + +int random_test() +{ + RNG rng; + byte block[32]; + int ret = InitRng(&rng); + if (ret != 0) return -39; + + RNG_GenerateBlock(&rng, block, sizeof(block)); + + return 0; +} + + +static const char* clientKey = "./certs/client-key.der"; +static const char* clientCert = "./certs/client-cert.der"; +#ifdef CYASSL_CERT_GEN + static const char* caKeyFile = "./certs/ca-key.der"; + static const char* caCertFile = "./certs/ca-cert.pem"; +#endif + + +#ifdef HAVE_NTRU + +static byte GetEntropy(ENTROPY_CMD cmd, byte* out) +{ + static RNG rng; + + if (cmd == INIT) { + int ret = InitRng(&rng); + if (ret == 0) + return 1; + else + return 0; + } + + if (out == NULL) + return 0; + + if (cmd == GET_BYTE_OF_ENTROPY) { + RNG_GenerateBlock(&rng, out, 1); + return 1; + } + + if (cmd == GET_NUM_BYTES_PER_BYTE_OF_ENTROPY) { + *out = 1; + return 1; + } + + return 0; +} + +#endif /* HAVE_NTRU */ + +int rsa_test() +{ + byte tmp[2048], tmp2[2048]; + size_t bytes, bytes2; + RsaKey key; + RNG rng; + word32 idx = 0; + int ret; + byte in[] = "Everyone gets Friday off."; + word32 inLen = (word32)strlen((char*)in); + byte out[256]; + byte plain[256]; +#ifdef CYASSL_TEST_CERT + DecodedCert cert; +#endif + + FILE* file = fopen(clientKey, "rb"), * file2; + + if (!file) + err_sys("can't open ./certs/client-key.der, " + "Please run from CyaSSL home dir", -40); + + bytes = fread(tmp, 1, sizeof(tmp), file); + + InitRsaKey(&key, 0); + ret = RsaPrivateKeyDecode(tmp, &idx, &key, (word32)bytes); + if (ret != 0) return -41; + + ret = InitRng(&rng); + if (ret != 0) return -42; + + ret = RsaPublicEncrypt(in, inLen, out, sizeof(out), &key, &rng); + if (ret < 0) return -43; + + ret = RsaPrivateDecrypt(out, ret, plain, sizeof(plain), &key); + if (ret < 0) return -44; + + if (memcmp(plain, in, inLen)) return -45; + + ret = RsaSSL_Sign(in, inLen, out, sizeof(out), &key, &rng); + if (ret < 0) return -46; + + memset(plain, 0, sizeof(plain)); + ret = RsaSSL_Verify(out, ret, plain, sizeof(plain), &key); + if (ret < 0) return -47; + + if (memcmp(plain, in, ret)) return -48; + + file2 = fopen(clientCert, "rb"); + if (!file2) + return -49; + + bytes2 = fread(tmp2, 1, sizeof(tmp2), file2); + +#ifdef CYASSL_TEST_CERT + InitDecodedCert(&cert, (byte*)&tmp2, (word32)bytes2, 0); + + ret = ParseCert(&cert, CERT_TYPE, NO_VERIFY, 0); + if (ret != 0) return -491; + + FreeDecodedCert(&cert); +#endif + + fclose(file2); + fclose(file); + +#ifdef CYASSL_KEY_GEN + { + byte der[4096]; + byte pem[4096]; + word32 derSz = 0; + word32 pemSz = 0; + RsaKey derIn; + RsaKey genKey; + FILE* keyFile; + FILE* pemFile; + + InitRsaKey(&genKey, 0); + ret = MakeRsaKey(&genKey, 1024, 65537, &rng); + if (ret != 0) + return -301; + + derSz = RsaKeyToDer(&genKey, der, sizeof(der)); + if (derSz < 0) + return -302; + + keyFile = fopen("./key.der", "wb"); + if (!keyFile) + return -303; + ret = fwrite(der, derSz, 1, keyFile); + fclose(keyFile); + + pemSz = DerToPem(der, derSz, pem, sizeof(pem), PRIVATEKEY_TYPE); + if (pemSz < 0) + return -304; + + pemFile = fopen("./key.pem", "wb"); + if (!pemFile) + return -305; + ret = fwrite(pem, pemSz, 1, pemFile); + fclose(pemFile); + + InitRsaKey(&derIn, 0); + idx = 0; + ret = RsaPrivateKeyDecode(der, &idx, &derIn, derSz); + if (ret != 0) + return -306; + + FreeRsaKey(&derIn); + FreeRsaKey(&genKey); + } +#endif /* CYASSL_KEY_GEN */ + + +#ifdef CYASSL_CERT_GEN + /* self signed */ + { + Cert myCert; + byte derCert[4096]; + byte pem[4096]; + FILE* derFile; + FILE* pemFile; + int certSz; + int pemSz; +#ifdef CYASSL_TEST_CERT + DecodedCert decode; +#endif + + InitCert(&myCert); + + strncpy(myCert.subject.country, "US", CTC_NAME_SIZE); + strncpy(myCert.subject.state, "OR", CTC_NAME_SIZE); + strncpy(myCert.subject.locality, "Portland", CTC_NAME_SIZE); + strncpy(myCert.subject.org, "yaSSL", CTC_NAME_SIZE); + strncpy(myCert.subject.unit, "Development", CTC_NAME_SIZE); + strncpy(myCert.subject.commonName, "www.yassl.com", CTC_NAME_SIZE); + strncpy(myCert.subject.email, "info@yassl.com", CTC_NAME_SIZE); + myCert.isCA = 1; + myCert.sigType = CTC_SHA256wRSA; + + certSz = MakeSelfCert(&myCert, derCert, sizeof(derCert), &key, &rng); + if (certSz < 0) + return -401; + +#ifdef CYASSL_TEST_CERT + InitDecodedCert(&decode, derCert, certSz, 0); + ret = ParseCert(&decode, CERT_TYPE, NO_VERIFY, 0); + if (ret != 0) + return -402; + FreeDecodedCert(&decode); +#endif + derFile = fopen("./cert.der", "wb"); + if (!derFile) + return -403; + ret = fwrite(derCert, certSz, 1, derFile); + fclose(derFile); + + pemSz = DerToPem(derCert, certSz, pem, sizeof(pem), CERT_TYPE); + if (pemSz < 0) + return -404; + + pemFile = fopen("./cert.pem", "wb"); + if (!pemFile) + return -405; + ret = fwrite(pem, pemSz, 1, pemFile); + fclose(pemFile); + + + } + /* CA style */ + { + RsaKey caKey; + Cert myCert; + byte derCert[4096]; + byte pem[4096]; + FILE* derFile; + FILE* pemFile; + int certSz; + int pemSz; + byte tmp[2048]; + size_t bytes; + word32 idx = 0; +#ifdef CYASSL_TEST_CERT + DecodedCert decode; +#endif + + FILE* file = fopen(caKeyFile, "rb"); + + if (!file) + return -412; + + bytes = fread(tmp, 1, sizeof(tmp), file); + + InitRsaKey(&caKey, 0); + ret = RsaPrivateKeyDecode(tmp, &idx, &caKey, (word32)bytes); + if (ret != 0) return -413; + + InitCert(&myCert); + + strncpy(myCert.subject.country, "US", CTC_NAME_SIZE); + strncpy(myCert.subject.state, "OR", CTC_NAME_SIZE); + strncpy(myCert.subject.locality, "Portland", CTC_NAME_SIZE); + strncpy(myCert.subject.org, "yaSSL", CTC_NAME_SIZE); + strncpy(myCert.subject.unit, "Development", CTC_NAME_SIZE); + strncpy(myCert.subject.commonName, "www.yassl.com", CTC_NAME_SIZE); + strncpy(myCert.subject.email, "info@yassl.com", CTC_NAME_SIZE); + + ret = SetIssuer(&myCert, caCertFile); + if (ret < 0) + return -405; + + certSz = MakeCert(&myCert, derCert, sizeof(derCert), &key, &rng); + if (certSz < 0) + return -407; + + certSz = SignCert(&myCert, derCert, sizeof(derCert), &caKey, &rng); + if (certSz < 0) + return -408; + + +#ifdef CYASSL_TEST_CERT + InitDecodedCert(&decode, derCert, certSz, 0); + ret = ParseCert(&decode, CERT_TYPE, NO_VERIFY, 0); + if (ret != 0) + return -409; + FreeDecodedCert(&decode); +#endif + + derFile = fopen("./othercert.der", "wb"); + if (!derFile) + return -410; + ret = fwrite(derCert, certSz, 1, derFile); + fclose(derFile); + + pemSz = DerToPem(derCert, certSz, pem, sizeof(pem), CERT_TYPE); + if (pemSz < 0) + return -411; + + pemFile = fopen("./othercert.pem", "wb"); + if (!pemFile) + return -412; + ret = fwrite(pem, pemSz, 1, pemFile); + fclose(pemFile); + } +#ifdef HAVE_NTRU + { + RsaKey caKey; + Cert myCert; + byte derCert[4096]; + byte pem[4096]; + FILE* derFile; + FILE* pemFile; + FILE* caFile; + FILE* ntruPrivFile; + int certSz; + int pemSz; + byte tmp[2048]; + size_t bytes; + word32 idx = 0; +#ifdef CYASSL_TEST_CERT + DecodedCert decode; +#endif + + byte public_key[557]; /* sized for EES401EP2 */ + word16 public_key_len; /* no. of octets in public key */ + byte private_key[607]; /* sized for EES401EP2 */ + word16 private_key_len; /* no. of octets in private key */ + DRBG_HANDLE drbg; + static uint8_t const pers_str[] = { + 'C', 'y', 'a', 'S', 'S', 'L', ' ', 't', 'e', 's', 't' + }; + word32 rc = crypto_drbg_instantiate(112, pers_str, sizeof(pers_str), + GetEntropy, &drbg); + if (rc != DRBG_OK) + return -450; + + rc = crypto_ntru_encrypt_keygen(drbg, NTRU_EES401EP2, &public_key_len, + NULL, &private_key_len, NULL); + if (rc != NTRU_OK) + return -451; + + rc = crypto_ntru_encrypt_keygen(drbg, NTRU_EES401EP2, &public_key_len, + public_key, &private_key_len, private_key); + crypto_drbg_uninstantiate(drbg); + + if (rc != NTRU_OK) + return -452; + + caFile = fopen(caKeyFile, "rb"); + + if (!caFile) + return -453; + + bytes = fread(tmp, 1, sizeof(tmp), caFile); + fclose(caFile); + + InitRsaKey(&caKey, 0); + ret = RsaPrivateKeyDecode(tmp, &idx, &caKey, (word32)bytes); + if (ret != 0) return -454; + + InitCert(&myCert); + + strncpy(myCert.subject.country, "US", CTC_NAME_SIZE); + strncpy(myCert.subject.state, "OR", CTC_NAME_SIZE); + strncpy(myCert.subject.locality, "Portland", CTC_NAME_SIZE); + strncpy(myCert.subject.org, "yaSSL", CTC_NAME_SIZE); + strncpy(myCert.subject.unit, "Development", CTC_NAME_SIZE); + strncpy(myCert.subject.commonName, "www.yassl.com", CTC_NAME_SIZE); + strncpy(myCert.subject.email, "info@yassl.com", CTC_NAME_SIZE); + + ret = SetIssuer(&myCert, caCertFile); + if (ret < 0) + return -455; + + certSz = MakeNtruCert(&myCert, derCert, sizeof(derCert), public_key, + public_key_len, &rng); + if (certSz < 0) + return -456; + + certSz = SignCert(&myCert, derCert, sizeof(derCert), &caKey, &rng); + if (certSz < 0) + return -457; + + +#ifdef CYASSL_TEST_CERT + InitDecodedCert(&decode, derCert, certSz, 0); + ret = ParseCert(&decode, CERT_TYPE, NO_VERIFY, 0); + if (ret != 0) + return -458; + FreeDecodedCert(&decode); +#endif + derFile = fopen("./ntru-cert.der", "wb"); + if (!derFile) + return -459; + ret = fwrite(derCert, certSz, 1, derFile); + fclose(derFile); + + pemSz = DerToPem(derCert, certSz, pem, sizeof(pem), CERT_TYPE); + if (pemSz < 0) + return -460; + + pemFile = fopen("./ntru-cert.pem", "wb"); + if (!pemFile) + return -461; + ret = fwrite(pem, pemSz, 1, pemFile); + fclose(pemFile); + + ntruPrivFile = fopen("./ntru-key.raw", "wb"); + if (!ntruPrivFile) + return -462; + ret = fwrite(private_key, private_key_len, 1, ntruPrivFile); + fclose(ntruPrivFile); + } +#endif /* HAVE_NTRU */ +#endif /* CYASSL_CERT_GEN */ + + FreeRsaKey(&key); + + return 0; +} + + +static const char* dhKey = "./certs/dh2048.der"; + +#ifndef NO_DH + +int dh_test() +{ + int ret; + word32 bytes; + word32 idx = 0, privSz, pubSz, privSz2, pubSz2, agreeSz, agreeSz2; + byte tmp[1024]; + byte priv[256]; + byte pub[256]; + byte priv2[256]; + byte pub2[256]; + byte agree[256]; + byte agree2[256]; + DhKey key; + DhKey key2; + RNG rng; + FILE* file = fopen(dhKey, "rb"); + + if (!file) + return -50; + + bytes = (word32) fread(tmp, 1, sizeof(tmp), file); + + InitDhKey(&key); + InitDhKey(&key2); + ret = DhKeyDecode(tmp, &idx, &key, bytes); + if (ret != 0) + return -51; + + idx = 0; + ret = DhKeyDecode(tmp, &idx, &key2, bytes); + if (ret != 0) + return -52; + + ret = InitRng(&rng); + if (ret != 0) + return -53; + + ret = DhGenerateKeyPair(&key, &rng, priv, &privSz, pub, &pubSz); + ret = DhGenerateKeyPair(&key2, &rng, priv2, &privSz2, pub2, &pubSz2); + if (ret != 0) + return -54; + + ret = DhAgree(&key, agree, &agreeSz, priv, privSz, pub2, pubSz2); + ret = DhAgree(&key2, agree2, &agreeSz2, priv2, privSz2, pub, pubSz); + if (ret != 0) + return -55; + + if (memcmp(agree, agree2, agreeSz)) + return -56; + + FreeDhKey(&key); + FreeDhKey(&key2); + fclose(file); + + return 0; +} + +#endif /* NO_DH */ + + +static const char* dsaKey = "./certs/dsa2048.der"; + +#ifndef NO_DSA + +int dsa_test() +{ + int ret, answer; + word32 bytes; + word32 idx = 0; + byte tmp[1024]; + DsaKey key; + RNG rng; + FILE* file = fopen(dsaKey, "rb"); + Sha sha; + byte hash[SHA_DIGEST_SIZE]; + byte signature[40]; + + if (!file) + return -60; + + bytes = (word32) fread(tmp, 1, sizeof(tmp), file); + + InitSha(&sha); + ShaUpdate(&sha, tmp, bytes); + ShaFinal(&sha, hash); + + InitDsaKey(&key); + ret = DsaPrivateKeyDecode(tmp, &idx, &key, bytes); + if (ret != 0) return -61; + + ret = InitRng(&rng); + if (ret != 0) return -62; + + ret = DsaSign(hash, signature, &key, &rng); + if (ret != 0) return -63; + + ret = DsaVerify(hash, signature, &key, &answer); + if (ret != 0) return -64; + if (answer != 1) return -65; + + FreeDsaKey(&key); + fclose(file); + + return 0; +} + +#endif /* NO_DSA */ + + +#ifdef OPENSSL_EXTRA + +int openssl_test() +{ + EVP_MD_CTX md_ctx; + testVector a, b, c, d, e, f; + byte hash[SHA_DIGEST_SIZE*4]; /* max size */ + + (void)e; + (void)f; + + a.input = "1234567890123456789012345678901234567890123456789012345678" + "9012345678901234567890"; + a.output = "\x57\xed\xf4\xa2\x2b\xe3\xc9\x55\xac\x49\xda\x2e\x21\x07\xb6" + "\x7a"; + a.inLen = strlen(a.input); + a.outLen = strlen(a.output); + + EVP_MD_CTX_init(&md_ctx); + EVP_DigestInit(&md_ctx, EVP_md5()); + + EVP_DigestUpdate(&md_ctx, a.input, a.inLen); + EVP_DigestFinal(&md_ctx, hash, 0); + + if (memcmp(hash, a.output, MD5_DIGEST_SIZE) != 0) + return -71; + + b.input = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + "aaaaaaaaaa"; + b.output = "\xAD\x5B\x3F\xDB\xCB\x52\x67\x78\xC2\x83\x9D\x2F\x15\x1E\xA7" + "\x53\x99\x5E\x26\xA0"; + b.inLen = strlen(b.input); + b.outLen = strlen(b.output); + + EVP_MD_CTX_init(&md_ctx); + EVP_DigestInit(&md_ctx, EVP_sha1()); + + EVP_DigestUpdate(&md_ctx, b.input, b.inLen); + EVP_DigestFinal(&md_ctx, hash, 0); + + if (memcmp(hash, b.output, SHA_DIGEST_SIZE) != 0) + return -72; + + + d.input = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"; + d.output = "\x24\x8D\x6A\x61\xD2\x06\x38\xB8\xE5\xC0\x26\x93\x0C\x3E\x60" + "\x39\xA3\x3C\xE4\x59\x64\xFF\x21\x67\xF6\xEC\xED\xD4\x19\xDB" + "\x06\xC1"; + d.inLen = strlen(d.input); + d.outLen = strlen(d.output); + + EVP_MD_CTX_init(&md_ctx); + EVP_DigestInit(&md_ctx, EVP_sha256()); + + EVP_DigestUpdate(&md_ctx, d.input, d.inLen); + EVP_DigestFinal(&md_ctx, hash, 0); + + if (memcmp(hash, d.output, SHA256_DIGEST_SIZE) != 0) + return -78; + +#ifdef CYASSL_SHA384 + + e.input = "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhi" + "jklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu"; + e.output = "\x09\x33\x0c\x33\xf7\x11\x47\xe8\x3d\x19\x2f\xc7\x82\xcd\x1b" + "\x47\x53\x11\x1b\x17\x3b\x3b\x05\xd2\x2f\xa0\x80\x86\xe3\xb0" + "\xf7\x12\xfc\xc7\xc7\x1a\x55\x7e\x2d\xb9\x66\xc3\xe9\xfa\x91" + "\x74\x60\x39"; + e.inLen = strlen(e.input); + e.outLen = strlen(e.output); + + EVP_MD_CTX_init(&md_ctx); + EVP_DigestInit(&md_ctx, EVP_sha384()); + + EVP_DigestUpdate(&md_ctx, e.input, e.inLen); + EVP_DigestFinal(&md_ctx, hash, 0); + + if (memcmp(hash, e.output, SHA384_DIGEST_SIZE) != 0) + return -79; + +#endif /* CYASSL_SHA384 */ + + +#ifdef CYASSL_SHA512 + + f.input = "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhi" + "jklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu"; + f.output = "\x8e\x95\x9b\x75\xda\xe3\x13\xda\x8c\xf4\xf7\x28\x14\xfc\x14" + "\x3f\x8f\x77\x79\xc6\xeb\x9f\x7f\xa1\x72\x99\xae\xad\xb6\x88" + "\x90\x18\x50\x1d\x28\x9e\x49\x00\xf7\xe4\x33\x1b\x99\xde\xc4" + "\xb5\x43\x3a\xc7\xd3\x29\xee\xb6\xdd\x26\x54\x5e\x96\xe5\x5b" + "\x87\x4b\xe9\x09"; + f.inLen = strlen(f.input); + f.outLen = strlen(f.output); + + EVP_MD_CTX_init(&md_ctx); + EVP_DigestInit(&md_ctx, EVP_sha512()); + + EVP_DigestUpdate(&md_ctx, f.input, f.inLen); + EVP_DigestFinal(&md_ctx, hash, 0); + + if (memcmp(hash, f.output, SHA512_DIGEST_SIZE) != 0) + return -80; + +#endif /* CYASSL_SHA512 */ + + + if (RAND_bytes(hash, sizeof(hash)) != 1) + return -73; + + c.input = "what do ya want for nothing?"; + c.output = "\x75\x0c\x78\x3e\x6a\xb0\xb5\x03\xea\xa8\x6e\x31\x0a\x5d\xb7" + "\x38"; + c.inLen = strlen(c.input); + c.outLen = strlen(c.output); + + HMAC(EVP_md5(), "Jefe", 4, (byte*)c.input, (int)c.inLen, hash, 0); + + if (memcmp(hash, c.output, MD5_DIGEST_SIZE) != 0) + return -74; + + { /* des test */ + const byte vector[] = { /* "now is the time for all " w/o trailing 0 */ + 0x6e,0x6f,0x77,0x20,0x69,0x73,0x20,0x74, + 0x68,0x65,0x20,0x74,0x69,0x6d,0x65,0x20, + 0x66,0x6f,0x72,0x20,0x61,0x6c,0x6c,0x20 + }; + + byte plain[24]; + byte cipher[24]; + + const_DES_cblock key = + { + 0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef + }; + + DES_cblock iv = + { + 0x12,0x34,0x56,0x78,0x90,0xab,0xcd,0xef + }; + + DES_key_schedule sched; + + const byte verify[] = + { + 0x8b,0x7c,0x52,0xb0,0x01,0x2b,0x6c,0xb8, + 0x4f,0x0f,0xeb,0xf3,0xfb,0x5f,0x86,0x73, + 0x15,0x85,0xb3,0x22,0x4b,0x86,0x2b,0x4b + }; + + DES_key_sched(&key, &sched); + + DES_cbc_encrypt(vector, cipher, sizeof(vector), &sched, &iv, DES_ENCRYPT); + DES_cbc_encrypt(cipher, plain, sizeof(vector), &sched, &iv, DES_DECRYPT); + + if (memcmp(plain, vector, sizeof(vector)) != 0) + return -75; + + if (memcmp(cipher, verify, sizeof(verify)) != 0) + return -76; + + /* test changing iv */ + DES_ncbc_encrypt(vector, cipher, 8, &sched, &iv, DES_ENCRYPT); + DES_ncbc_encrypt(vector + 8, cipher + 8, 16, &sched, &iv, DES_ENCRYPT); + + if (memcmp(cipher, verify, sizeof(verify)) != 0) + return -77; + + } /* end des test */ + + { /* evp_cipher test */ + EVP_CIPHER_CTX ctx; + + + const byte msg[] = { /* "Now is the time for all " w/o trailing 0 */ + 0x6e,0x6f,0x77,0x20,0x69,0x73,0x20,0x74, + 0x68,0x65,0x20,0x74,0x69,0x6d,0x65,0x20, + 0x66,0x6f,0x72,0x20,0x61,0x6c,0x6c,0x20 + }; + + const byte verify[] = + { + 0x95,0x94,0x92,0x57,0x5f,0x42,0x81,0x53, + 0x2c,0xcc,0x9d,0x46,0x77,0xa2,0x33,0xcb + }; + + byte key[] = "0123456789abcdef "; /* align */ + byte iv[] = "1234567890abcdef "; /* align */ + + byte cipher[AES_BLOCK_SIZE * 4]; + byte plain [AES_BLOCK_SIZE * 4]; + + EVP_CIPHER_CTX_init(&ctx); + if (EVP_CipherInit(&ctx, EVP_aes_128_cbc(), key, iv, 1) == 0) + return -81; + + if (EVP_Cipher(&ctx, cipher, (byte*)msg, 16) == 0) + return -82; + + if (memcmp(cipher, verify, AES_BLOCK_SIZE)) + return -83; + + EVP_CIPHER_CTX_init(&ctx); + if (EVP_CipherInit(&ctx, EVP_aes_128_cbc(), key, iv, 0) == 0) + return -84; + + if (EVP_Cipher(&ctx, plain, cipher, 16) == 0) + return -85; + + if (memcmp(plain, msg, AES_BLOCK_SIZE)) + return -86; + + + } /* end evp_cipher test */ + + return 0; +} + +#endif /* OPENSSL_EXTRA */ + + +#ifndef NO_PWDBASED + +int pkcs12_test() +{ + const byte passwd[] = { 0x00, 0x73, 0x00, 0x6d, 0x00, 0x65, 0x00, 0x67, + 0x00, 0x00 }; + const byte salt[] = { 0x0a, 0x58, 0xCF, 0x64, 0x53, 0x0d, 0x82, 0x3f }; + + const byte passwd2[] = { 0x00, 0x71, 0x00, 0x75, 0x00, 0x65, 0x00, 0x65, + 0x00, 0x67, 0x00, 0x00 }; + const byte salt2[] = { 0x16, 0x82, 0xC0, 0xfC, 0x5b, 0x3f, 0x7e, 0xc5 }; + byte derived[64]; + + const byte verify[] = { + 0x8A, 0xAA, 0xE6, 0x29, 0x7B, 0x6C, 0xB0, 0x46, + 0x42, 0xAB, 0x5B, 0x07, 0x78, 0x51, 0x28, 0x4E, + 0xB7, 0x12, 0x8F, 0x1A, 0x2A, 0x7F, 0xBC, 0xA3 + }; + + const byte verify2[] = { + 0x48, 0x3D, 0xD6, 0xE9, 0x19, 0xD7, 0xDE, 0x2E, + 0x8E, 0x64, 0x8B, 0xA8, 0xF8, 0x62, 0xF3, 0xFB, + 0xFB, 0xDC, 0x2B, 0xCB, 0x2C, 0x02, 0x95, 0x7F + }; + + int id = 1; + int kLen = 24; + int iterations = 1; + int ret = PKCS12_PBKDF(derived, passwd, sizeof(passwd), salt, 8, iterations, + kLen, SHA, id); + + if ( (ret = memcmp(derived, verify, kLen)) != 0) + return -103; + + iterations = 1000; + ret = PKCS12_PBKDF(derived, passwd2, sizeof(passwd2), salt2, 8, iterations, + kLen, SHA, id); + if ( (ret = memcmp(derived, verify2, 24)) != 0) + return -104; + + return 0; +} + + +int pbkdf2_test() +{ + char passwd[] = "password"; + const byte salt[] = { 0x78, 0x57, 0x8E, 0x5a, 0x5d, 0x63, 0xcb, 0x06 }; + int iterations = 2048; + int kLen = 24; + byte derived[64]; + + const byte verify[] = { + 0xBF, 0xDE, 0x6B, 0xE9, 0x4D, 0xF7, 0xE1, 0x1D, 0xD4, 0x09, 0xBC, 0xE2, + 0x0A, 0x02, 0x55, 0xEC, 0x32, 0x7C, 0xB9, 0x36, 0xFF, 0xE9, 0x36, 0x43 + + }; + + PBKDF2(derived, (byte*)passwd, strlen(passwd), salt, 8, iterations, kLen, + SHA); + + if (memcmp(derived, verify, sizeof(verify)) != 0) + return -102; + + return 0; +} + + +int pbkdf1_test() +{ + char passwd[] = "password"; + const byte salt[] = { 0x78, 0x57, 0x8E, 0x5a, 0x5d, 0x63, 0xcb, 0x06 }; + int iterations = 1000; + int kLen = 16; + byte derived[16]; + + const byte verify[] = { + 0xDC, 0x19, 0x84, 0x7E, 0x05, 0xC6, 0x4D, 0x2F, 0xAF, 0x10, 0xEB, 0xFB, + 0x4A, 0x3D, 0x2A, 0x20 + }; + + PBKDF1(derived, (byte*)passwd, strlen(passwd), salt, 8, iterations, kLen, + SHA); + + if (memcmp(derived, verify, sizeof(verify)) != 0) + return -101; + + return 0; +} + + +int pwdbased_test() +{ + int ret = pbkdf1_test(); + ret += pbkdf2_test(); + + return ret + pkcs12_test(); +} + +#endif /* NO_PWDBASED */ + + +#ifdef HAVE_ECC + +int ecc_test() +{ + RNG rng; + byte sharedA[1024]; + byte sharedB[1024]; + byte sig[1024]; + byte digest[20]; + byte exportBuf[1024]; + word32 x, y; + int i, verify, ret; + ecc_key userA, userB, pubKey; + + ret = InitRng(&rng); + if (ret != 0) + return -1001; + + ecc_init(&userA); + ecc_init(&userB); + ecc_init(&pubKey); + + ret = ecc_make_key(&rng, 32, &userA); + ret = ecc_make_key(&rng, 32, &userB); + + if (ret != 0) + return -1002; + + x = sizeof(sharedA); + ret = ecc_shared_secret(&userA, &userB, sharedA, &x); + + y = sizeof(sharedB); + ret = ecc_shared_secret(&userB, &userA, sharedB, &y); + + if (ret != 0) + return -1003; + + if (y != x) + return -1004; + + if (memcmp(sharedA, sharedB, x)) + return -1005; + + x = sizeof(exportBuf); + ret = ecc_export_x963(&userA, exportBuf, &x); + if (ret != 0) + return -1006; + + ret = ecc_import_x963(exportBuf, x, &pubKey); + + if (ret != 0) + return -1007; + + y = sizeof(sharedB); + ret = ecc_shared_secret(&userB, &pubKey, sharedB, &y); + + if (ret != 0) + return -1008; + + if (memcmp(sharedA, sharedB, y)) + return -1010; + + /* test DSA sign hash */ + for (i = 0; i < sizeof(digest); i++) + digest[i] = i; + + x = sizeof(sig); + ret = ecc_sign_hash(digest, sizeof(digest), sig, &x, &rng, &userA); + + verify = 0; + ret = ecc_verify_hash(sig, x, digest, sizeof(digest), &verify, &userA); + + if (ret != 0) + return -1011; + + if (verify != 1) + return -1012; + + ecc_free(&pubKey); + ecc_free(&userB); + ecc_free(&userA); + + return 0; +} + +#endif /* HAVE_ECC */ diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/test/test.sln b/FreeRTOS-Plus/CyaSSL/ctaocrypt/test/test.sln new file mode 100644 index 000000000..97b2e8dfd --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/test/test.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual C++ Express 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test", "test.vcproj", "{D04BDF66-664A-4D59-BEAC-8AB2D5809C21}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D04BDF66-664A-4D59-BEAC-8AB2D5809C21}.Debug|Win32.ActiveCfg = Debug|Win32 + {D04BDF66-664A-4D59-BEAC-8AB2D5809C21}.Debug|Win32.Build.0 = Debug|Win32 + {D04BDF66-664A-4D59-BEAC-8AB2D5809C21}.Release|Win32.ActiveCfg = Release|Win32 + {D04BDF66-664A-4D59-BEAC-8AB2D5809C21}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/test/test.vcproj b/FreeRTOS-Plus/CyaSSL/ctaocrypt/test/test.vcproj new file mode 100644 index 000000000..38c5c6bed --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/ctaocrypt/test/test.vcproj @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl-iphone.xcodeproj/project.pbxproj b/FreeRTOS-Plus/CyaSSL/cyassl-iphone.xcodeproj/project.pbxproj new file mode 100644 index 000000000..53b74bebe --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl-iphone.xcodeproj/project.pbxproj @@ -0,0 +1,379 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 43809E9B0FB7AD1C0050922E /* md4.c in Sources */ = {isa = PBXBuildFile; fileRef = 43809E9A0FB7AD1C0050922E /* md4.c */; }; + 43962ADF0DE7ED48003C5E5B /* ssl.c in Sources */ = {isa = PBXBuildFile; fileRef = 43C6C2790DDF984100F2D488 /* ssl.c */; }; + 439B3820136B391E004C965E /* logging.c in Sources */ = {isa = PBXBuildFile; fileRef = 439B381F136B391E004C965E /* logging.c */; }; + 43B89CBD142FEB5E00284CC6 /* internal.c in Sources */ = {isa = PBXBuildFile; fileRef = 43B89CBC142FEB5E00284CC6 /* internal.c */; }; + 43B89CBF142FEB6C00284CC6 /* io.c in Sources */ = {isa = PBXBuildFile; fileRef = 43B89CBE142FEB6C00284CC6 /* io.c */; }; + 43B89CC5142FEBBD00284CC6 /* memory.c in Sources */ = {isa = PBXBuildFile; fileRef = 43B89CC0142FEBBD00284CC6 /* memory.c */; }; + 43B89CC6142FEBBD00284CC6 /* tfm.c in Sources */ = {isa = PBXBuildFile; fileRef = 43B89CC1142FEBBD00284CC6 /* tfm.c */; }; + 43B89CC7142FEBBD00284CC6 /* ripemd.c in Sources */ = {isa = PBXBuildFile; fileRef = 43B89CC2142FEBBD00284CC6 /* ripemd.c */; }; + 43B89CC8142FEBBD00284CC6 /* sha512.c in Sources */ = {isa = PBXBuildFile; fileRef = 43B89CC3142FEBBD00284CC6 /* sha512.c */; }; + 43B89CC9142FEBBD00284CC6 /* pwdbased.c in Sources */ = {isa = PBXBuildFile; fileRef = 43B89CC4142FEBBD00284CC6 /* pwdbased.c */; }; + 43C6C27C0DDF984100F2D488 /* keys.c in Sources */ = {isa = PBXBuildFile; fileRef = 43C6C2780DDF984100F2D488 /* keys.c */; }; + 43C6C27E0DDF984100F2D488 /* tls.c in Sources */ = {isa = PBXBuildFile; fileRef = 43C6C27A0DDF984100F2D488 /* tls.c */; }; + 43C6C2920DDF98D400F2D488 /* aes.c in Sources */ = {isa = PBXBuildFile; fileRef = 43C6C2830DDF98D400F2D488 /* aes.c */; }; + 43C6C2930DDF98D400F2D488 /* arc4.c in Sources */ = {isa = PBXBuildFile; fileRef = 43C6C2840DDF98D400F2D488 /* arc4.c */; }; + 43C6C2940DDF98D400F2D488 /* asn.c in Sources */ = {isa = PBXBuildFile; fileRef = 43C6C2850DDF98D400F2D488 /* asn.c */; }; + 43C6C2950DDF98D400F2D488 /* coding.c in Sources */ = {isa = PBXBuildFile; fileRef = 43C6C2860DDF98D400F2D488 /* coding.c */; }; + 43C6C2960DDF98D400F2D488 /* des3.c in Sources */ = {isa = PBXBuildFile; fileRef = 43C6C2870DDF98D400F2D488 /* des3.c */; }; + 43C6C2970DDF98D400F2D488 /* dh.c in Sources */ = {isa = PBXBuildFile; fileRef = 43C6C2880DDF98D400F2D488 /* dh.c */; }; + 43C6C2980DDF98D400F2D488 /* dsa.c in Sources */ = {isa = PBXBuildFile; fileRef = 43C6C2890DDF98D400F2D488 /* dsa.c */; }; + 43C6C2990DDF98D400F2D488 /* hmac.c in Sources */ = {isa = PBXBuildFile; fileRef = 43C6C28A0DDF98D400F2D488 /* hmac.c */; }; + 43C6C29A0DDF98D400F2D488 /* integer.c in Sources */ = {isa = PBXBuildFile; fileRef = 43C6C28B0DDF98D400F2D488 /* integer.c */; }; + 43C6C29B0DDF98D400F2D488 /* md5.c in Sources */ = {isa = PBXBuildFile; fileRef = 43C6C28C0DDF98D400F2D488 /* md5.c */; }; + 43C6C29D0DDF98D400F2D488 /* random.c in Sources */ = {isa = PBXBuildFile; fileRef = 43C6C28E0DDF98D400F2D488 /* random.c */; }; + 43C6C29E0DDF98D400F2D488 /* rsa.c in Sources */ = {isa = PBXBuildFile; fileRef = 43C6C28F0DDF98D400F2D488 /* rsa.c */; }; + 43C6C29F0DDF98D400F2D488 /* sha.c in Sources */ = {isa = PBXBuildFile; fileRef = 43C6C2900DDF98D400F2D488 /* sha.c */; }; + 43C6C2A00DDF98D400F2D488 /* sha256.c in Sources */ = {isa = PBXBuildFile; fileRef = 43C6C2910DDF98D400F2D488 /* sha256.c */; }; + 43D565650F1EC9A600550C88 /* hc128.c in Sources */ = {isa = PBXBuildFile; fileRef = 43D565640F1EC9A600550C88 /* hc128.c */; }; + 43D565670F1EC9CC00550C88 /* rabbit.c in Sources */ = {isa = PBXBuildFile; fileRef = 43D565660F1EC9CC00550C88 /* rabbit.c */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 43C6C3160DDFAC6A00F2D488 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 7; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 43C6C3170DDFAC6A00F2D488 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 8; + dstPath = ""; + dstSubfolderSpec = 7; + files = ( + ); + runOnlyForDeploymentPostprocessing = 1; + }; + 43C6C3180DDFAC6A00F2D488 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 7; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 4368F6E40E9EA1140002A123 /* test.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; lineEnding = 2; name = test.c; path = ctaocrypt/test/test.c; sourceTree = ""; }; + 43809E9A0FB7AD1C0050922E /* md4.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = md4.c; path = ctaocrypt/src/md4.c; sourceTree = ""; }; + 439B381F136B391E004C965E /* logging.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = logging.c; path = ctaocrypt/src/logging.c; sourceTree = ""; }; + 43B89CBC142FEB5E00284CC6 /* internal.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = internal.c; path = src/internal.c; sourceTree = ""; }; + 43B89CBE142FEB6C00284CC6 /* io.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = io.c; path = src/io.c; sourceTree = ""; }; + 43B89CC0142FEBBD00284CC6 /* memory.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = memory.c; path = ctaocrypt/src/memory.c; sourceTree = ""; }; + 43B89CC1142FEBBD00284CC6 /* tfm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = tfm.c; path = ctaocrypt/src/tfm.c; sourceTree = ""; }; + 43B89CC2142FEBBD00284CC6 /* ripemd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ripemd.c; path = ctaocrypt/src/ripemd.c; sourceTree = ""; }; + 43B89CC3142FEBBD00284CC6 /* sha512.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sha512.c; path = ctaocrypt/src/sha512.c; sourceTree = ""; }; + 43B89CC4142FEBBD00284CC6 /* pwdbased.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pwdbased.c; path = ctaocrypt/src/pwdbased.c; sourceTree = ""; }; + 43C6C2780DDF984100F2D488 /* keys.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; lineEnding = 2; name = keys.c; path = src/keys.c; sourceTree = ""; }; + 43C6C2790DDF984100F2D488 /* ssl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; lineEnding = 0; name = ssl.c; path = src/ssl.c; sourceTree = ""; }; + 43C6C27A0DDF984100F2D488 /* tls.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; lineEnding = 2; name = tls.c; path = src/tls.c; sourceTree = ""; }; + 43C6C2830DDF98D400F2D488 /* aes.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; lineEnding = 2; name = aes.c; path = ctaocrypt/src/aes.c; sourceTree = ""; }; + 43C6C2840DDF98D400F2D488 /* arc4.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; lineEnding = 2; name = arc4.c; path = ctaocrypt/src/arc4.c; sourceTree = ""; }; + 43C6C2850DDF98D400F2D488 /* asn.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; lineEnding = 2; name = asn.c; path = ctaocrypt/src/asn.c; sourceTree = ""; }; + 43C6C2860DDF98D400F2D488 /* coding.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; lineEnding = 2; name = coding.c; path = ctaocrypt/src/coding.c; sourceTree = ""; }; + 43C6C2870DDF98D400F2D488 /* des3.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; lineEnding = 2; name = des3.c; path = ctaocrypt/src/des3.c; sourceTree = ""; }; + 43C6C2880DDF98D400F2D488 /* dh.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; lineEnding = 2; name = dh.c; path = ctaocrypt/src/dh.c; sourceTree = ""; }; + 43C6C2890DDF98D400F2D488 /* dsa.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; lineEnding = 2; name = dsa.c; path = ctaocrypt/src/dsa.c; sourceTree = ""; }; + 43C6C28A0DDF98D400F2D488 /* hmac.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; lineEnding = 0; name = hmac.c; path = ctaocrypt/src/hmac.c; sourceTree = ""; }; + 43C6C28B0DDF98D400F2D488 /* integer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; lineEnding = 2; name = integer.c; path = ctaocrypt/src/integer.c; sourceTree = ""; }; + 43C6C28C0DDF98D400F2D488 /* md5.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; lineEnding = 2; name = md5.c; path = ctaocrypt/src/md5.c; sourceTree = ""; }; + 43C6C28E0DDF98D400F2D488 /* random.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; lineEnding = 2; name = random.c; path = ctaocrypt/src/random.c; sourceTree = ""; }; + 43C6C28F0DDF98D400F2D488 /* rsa.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; lineEnding = 2; name = rsa.c; path = ctaocrypt/src/rsa.c; sourceTree = ""; }; + 43C6C2900DDF98D400F2D488 /* sha.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; lineEnding = 2; name = sha.c; path = ctaocrypt/src/sha.c; sourceTree = ""; }; + 43C6C2910DDF98D400F2D488 /* sha256.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; lineEnding = 0; name = sha256.c; path = ctaocrypt/src/sha256.c; sourceTree = ""; }; + 43CB530D116E9FD5000A264B /* iphone-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "iphone-Info.plist"; sourceTree = ""; }; + 43D565640F1EC9A600550C88 /* hc128.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; lineEnding = 2; name = hc128.c; path = ctaocrypt/src/hc128.c; sourceTree = ""; }; + 43D565660F1EC9CC00550C88 /* rabbit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; lineEnding = 2; name = rabbit.c; path = ctaocrypt/src/rabbit.c; sourceTree = ""; }; + D2AAC046055464E500DB518D /* libcyassl.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libcyassl.a; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D289987405E68DCB004EDB86 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 08FB7794FE84155DC02AAC07 /* cyassl */ = { + isa = PBXGroup; + children = ( + 08FB7795FE84155DC02AAC07 /* Source */, + C6A0FF2B0290797F04C91782 /* Documentation */, + 1AB674ADFE9D54B511CA2CBB /* Products */, + 43CB530D116E9FD5000A264B /* iphone-Info.plist */, + ); + name = cyassl; + sourceTree = ""; + }; + 08FB7795FE84155DC02AAC07 /* Source */ = { + isa = PBXGroup; + children = ( + 43CA25B90EA400A60011ECA2 /* headers */, + 43CA25720EA3F9B20011ECA2 /* src */, + ); + name = Source; + sourceTree = ""; + }; + 1AB674ADFE9D54B511CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + D2AAC046055464E500DB518D /* libcyassl.a */, + ); + name = Products; + sourceTree = ""; + }; + 43CA25720EA3F9B20011ECA2 /* src */ = { + isa = PBXGroup; + children = ( + 43B89CC0142FEBBD00284CC6 /* memory.c */, + 43B89CC1142FEBBD00284CC6 /* tfm.c */, + 43B89CC2142FEBBD00284CC6 /* ripemd.c */, + 43B89CC3142FEBBD00284CC6 /* sha512.c */, + 43B89CC4142FEBBD00284CC6 /* pwdbased.c */, + 43B89CBE142FEB6C00284CC6 /* io.c */, + 43B89CBC142FEB5E00284CC6 /* internal.c */, + 439B381F136B391E004C965E /* logging.c */, + 43809E9A0FB7AD1C0050922E /* md4.c */, + 43D565660F1EC9CC00550C88 /* rabbit.c */, + 43D565640F1EC9A600550C88 /* hc128.c */, + 43C6C2830DDF98D400F2D488 /* aes.c */, + 43C6C2840DDF98D400F2D488 /* arc4.c */, + 43C6C2850DDF98D400F2D488 /* asn.c */, + 43C6C2860DDF98D400F2D488 /* coding.c */, + 43C6C2870DDF98D400F2D488 /* des3.c */, + 4368F6E40E9EA1140002A123 /* test.c */, + 43C6C2880DDF98D400F2D488 /* dh.c */, + 43C6C2890DDF98D400F2D488 /* dsa.c */, + 43C6C28A0DDF98D400F2D488 /* hmac.c */, + 43C6C28B0DDF98D400F2D488 /* integer.c */, + 43C6C28C0DDF98D400F2D488 /* md5.c */, + 43C6C28E0DDF98D400F2D488 /* random.c */, + 43C6C28F0DDF98D400F2D488 /* rsa.c */, + 43C6C2900DDF98D400F2D488 /* sha.c */, + 43C6C2910DDF98D400F2D488 /* sha256.c */, + 43C6C2780DDF984100F2D488 /* keys.c */, + 43C6C2790DDF984100F2D488 /* ssl.c */, + 43C6C27A0DDF984100F2D488 /* tls.c */, + ); + name = src; + sourceTree = ""; + }; + 43CA25B90EA400A60011ECA2 /* headers */ = { + isa = PBXGroup; + children = ( + ); + name = headers; + sourceTree = ""; + }; + C6A0FF2B0290797F04C91782 /* Documentation */ = { + isa = PBXGroup; + children = ( + ); + name = Documentation; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D2AAC043055464E500DB518D /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D2AAC045055464E500DB518D /* cyassl */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1DEB91EB08733DB70010E9CD /* Build configuration list for PBXNativeTarget "cyassl" */; + buildPhases = ( + D2AAC043055464E500DB518D /* Headers */, + D2AAC044055464E500DB518D /* Sources */, + D289987405E68DCB004EDB86 /* Frameworks */, + 43C6C3160DDFAC6A00F2D488 /* CopyFiles */, + 43C6C3170DDFAC6A00F2D488 /* CopyFiles */, + 43C6C3180DDFAC6A00F2D488 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = cyassl; + productName = cyassl; + productReference = D2AAC046055464E500DB518D /* libcyassl.a */; + productType = "com.apple.product-type.library.static"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + }; + buildConfigurationList = 1DEB91EF08733DB70010E9CD /* Build configuration list for PBXProject "cyassl-iphone" */; + compatibilityVersion = "Xcode 3.1"; + developmentRegion = English; + hasScannedForEncodings = 1; + knownRegions = ( + English, + Japanese, + French, + German, + ); + mainGroup = 08FB7794FE84155DC02AAC07 /* cyassl */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D2AAC045055464E500DB518D /* cyassl */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXSourcesBuildPhase section */ + D2AAC044055464E500DB518D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 43C6C27C0DDF984100F2D488 /* keys.c in Sources */, + 43C6C27E0DDF984100F2D488 /* tls.c in Sources */, + 43C6C2920DDF98D400F2D488 /* aes.c in Sources */, + 43C6C2930DDF98D400F2D488 /* arc4.c in Sources */, + 43C6C2940DDF98D400F2D488 /* asn.c in Sources */, + 43C6C2950DDF98D400F2D488 /* coding.c in Sources */, + 43C6C2960DDF98D400F2D488 /* des3.c in Sources */, + 43C6C2970DDF98D400F2D488 /* dh.c in Sources */, + 43C6C2980DDF98D400F2D488 /* dsa.c in Sources */, + 43C6C2990DDF98D400F2D488 /* hmac.c in Sources */, + 43C6C29A0DDF98D400F2D488 /* integer.c in Sources */, + 43C6C29B0DDF98D400F2D488 /* md5.c in Sources */, + 43C6C29D0DDF98D400F2D488 /* random.c in Sources */, + 43C6C29E0DDF98D400F2D488 /* rsa.c in Sources */, + 43C6C29F0DDF98D400F2D488 /* sha.c in Sources */, + 43C6C2A00DDF98D400F2D488 /* sha256.c in Sources */, + 43962ADF0DE7ED48003C5E5B /* ssl.c in Sources */, + 43D565650F1EC9A600550C88 /* hc128.c in Sources */, + 43D565670F1EC9CC00550C88 /* rabbit.c in Sources */, + 43809E9B0FB7AD1C0050922E /* md4.c in Sources */, + 439B3820136B391E004C965E /* logging.c in Sources */, + 43B89CBD142FEB5E00284CC6 /* internal.c in Sources */, + 43B89CBF142FEB6C00284CC6 /* io.c in Sources */, + 43B89CC5142FEBBD00284CC6 /* memory.c in Sources */, + 43B89CC6142FEBBD00284CC6 /* tfm.c in Sources */, + 43B89CC7142FEBBD00284CC6 /* ripemd.c in Sources */, + 43B89CC8142FEBBD00284CC6 /* sha512.c in Sources */, + 43B89CC9142FEBBD00284CC6 /* pwdbased.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 1DEB91EC08733DB70010E9CD /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = IPHONE; + HEADER_SEARCH_PATHS = $SRCROOT; + INSTALL_PATH = /usr/local/lib; + PRODUCT_NAME = cyassl; + SDKROOT = iphoneos; + USER_HEADER_SEARCH_PATHS = ""; + WARNING_CFLAGS = "-Wall"; + ZERO_LINK = YES; + }; + name = Debug; + }; + 1DEB91ED08733DB70010E9CD /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_MODEL_TUNING = G5; + GCC_PREPROCESSOR_DEFINITIONS = IPHONE; + HEADER_SEARCH_PATHS = $SRCROOT; + INSTALL_PATH = /usr/local/lib; + PRODUCT_NAME = cyassl; + USER_HEADER_SEARCH_PATHS = ""; + WARNING_CFLAGS = "-Wall"; + }; + name = Release; + }; + 1DEB91F008733DB70010E9CD /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + GCC_PREPROCESSOR_DEFINITIONS = IPHONE; + GCC_VERSION = 4.2; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + PREBINDING = NO; + SDKROOT = iphoneos; + USER_HEADER_SEARCH_PATHS = "include ctaocrypt/include"; + }; + name = Debug; + }; + 1DEB91F108733DB70010E9CD /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + GCC_PREPROCESSOR_DEFINITIONS = IPHONE; + GCC_VERSION = 4.2; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + PREBINDING = NO; + SDKROOT = iphonesimulator2.2; + USER_HEADER_SEARCH_PATHS = "include ctaocrypt/include"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 1DEB91EB08733DB70010E9CD /* Build configuration list for PBXNativeTarget "cyassl" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1DEB91EC08733DB70010E9CD /* Debug */, + 1DEB91ED08733DB70010E9CD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 1DEB91EF08733DB70010E9CD /* Build configuration list for PBXProject "cyassl-iphone" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1DEB91F008733DB70010E9CD /* Debug */, + 1DEB91F108733DB70010E9CD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/FreeRTOS-Plus/CyaSSL/cyassl-ntru.sln b/FreeRTOS-Plus/CyaSSL/cyassl-ntru.sln new file mode 100644 index 000000000..3d935aeeb --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl-ntru.sln @@ -0,0 +1,65 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual C++ Express 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cyassl", "cyassl-ntru.vcproj", "{73973223-5EE8-41CA-8E88-1D60E89A237B}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testsuite", "testsuite\testsuite-ntru.vcproj", "{611E8971-46E0-4D0A-B5A1-632C3B00CB80}" + ProjectSection(ProjectDependencies) = postProject + {73973223-5EE8-41CA-8E88-1D60E89A237B} = {73973223-5EE8-41CA-8E88-1D60E89A237B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "echoserver", "examples\echoserver\echoserver-ntru.vcproj", "{07D97C48-E08F-4E34-9F67-3064039FF2CB}" + ProjectSection(ProjectDependencies) = postProject + {73973223-5EE8-41CA-8E88-1D60E89A237B} = {73973223-5EE8-41CA-8E88-1D60E89A237B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "echoclient", "examples\echoclient\echoclient-ntru.vcproj", "{8362A816-C5DC-4E22-B5C5-9E6806387073}" + ProjectSection(ProjectDependencies) = postProject + {73973223-5EE8-41CA-8E88-1D60E89A237B} = {73973223-5EE8-41CA-8E88-1D60E89A237B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "client", "examples\client\client-ntru.vcproj", "{3ADE9549-582D-4D8E-9826-B172197A7959}" + ProjectSection(ProjectDependencies) = postProject + {73973223-5EE8-41CA-8E88-1D60E89A237B} = {73973223-5EE8-41CA-8E88-1D60E89A237B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "server", "examples\server\server-ntru.vcproj", "{E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}" + ProjectSection(ProjectDependencies) = postProject + {73973223-5EE8-41CA-8E88-1D60E89A237B} = {73973223-5EE8-41CA-8E88-1D60E89A237B} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {73973223-5EE8-41CA-8E88-1D60E89A237B}.Debug|Win32.ActiveCfg = Debug|Win32 + {73973223-5EE8-41CA-8E88-1D60E89A237B}.Debug|Win32.Build.0 = Debug|Win32 + {73973223-5EE8-41CA-8E88-1D60E89A237B}.Release|Win32.ActiveCfg = Release|Win32 + {73973223-5EE8-41CA-8E88-1D60E89A237B}.Release|Win32.Build.0 = Release|Win32 + {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.Debug|Win32.ActiveCfg = Debug|Win32 + {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.Debug|Win32.Build.0 = Debug|Win32 + {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.Release|Win32.ActiveCfg = Release|Win32 + {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.Release|Win32.Build.0 = Release|Win32 + {07D97C48-E08F-4E34-9F67-3064039FF2CB}.Debug|Win32.ActiveCfg = Debug|Win32 + {07D97C48-E08F-4E34-9F67-3064039FF2CB}.Debug|Win32.Build.0 = Debug|Win32 + {07D97C48-E08F-4E34-9F67-3064039FF2CB}.Release|Win32.ActiveCfg = Release|Win32 + {07D97C48-E08F-4E34-9F67-3064039FF2CB}.Release|Win32.Build.0 = Release|Win32 + {8362A816-C5DC-4E22-B5C5-9E6806387073}.Debug|Win32.ActiveCfg = Debug|Win32 + {8362A816-C5DC-4E22-B5C5-9E6806387073}.Debug|Win32.Build.0 = Debug|Win32 + {8362A816-C5DC-4E22-B5C5-9E6806387073}.Release|Win32.ActiveCfg = Release|Win32 + {8362A816-C5DC-4E22-B5C5-9E6806387073}.Release|Win32.Build.0 = Release|Win32 + {3ADE9549-582D-4D8E-9826-B172197A7959}.Debug|Win32.ActiveCfg = Debug|Win32 + {3ADE9549-582D-4D8E-9826-B172197A7959}.Debug|Win32.Build.0 = Debug|Win32 + {3ADE9549-582D-4D8E-9826-B172197A7959}.Release|Win32.ActiveCfg = Release|Win32 + {3ADE9549-582D-4D8E-9826-B172197A7959}.Release|Win32.Build.0 = Release|Win32 + {E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}.Debug|Win32.ActiveCfg = Debug|Win32 + {E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}.Debug|Win32.Build.0 = Debug|Win32 + {E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}.Release|Win32.ActiveCfg = Release|Win32 + {E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/FreeRTOS-Plus/CyaSSL/cyassl-ntru.vcproj b/FreeRTOS-Plus/CyaSSL/cyassl-ntru.vcproj new file mode 100644 index 000000000..2402504bb --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl-ntru.vcproj @@ -0,0 +1,285 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl.sln b/FreeRTOS-Plus/CyaSSL/cyassl.sln new file mode 100644 index 000000000..fde689fae --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl.sln @@ -0,0 +1,74 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual C++ Express 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cyassl", "cyassl.vcproj", "{73973223-5EE8-41CA-8E88-1D60E89A237B}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testsuite", "testsuite\testsuite.vcproj", "{611E8971-46E0-4D0A-B5A1-632C3B00CB80}" + ProjectSection(ProjectDependencies) = postProject + {73973223-5EE8-41CA-8E88-1D60E89A237B} = {73973223-5EE8-41CA-8E88-1D60E89A237B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sslSniffer", "sslSniffer\sslSniffer.vcproj", "{34FAE5A6-2B0F-4B55-86FE-0C43E4810F4D}" + ProjectSection(ProjectDependencies) = postProject + {73973223-5EE8-41CA-8E88-1D60E89A237B} = {73973223-5EE8-41CA-8E88-1D60E89A237B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "echoserver", "examples\echoserver\echoserver.vcproj", "{07D97C48-E08F-4E34-9F67-3064039FF2CB}" + ProjectSection(ProjectDependencies) = postProject + {73973223-5EE8-41CA-8E88-1D60E89A237B} = {73973223-5EE8-41CA-8E88-1D60E89A237B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "echoclient", "examples\echoclient\echoclient.vcproj", "{8362A816-C5DC-4E22-B5C5-9E6806387073}" + ProjectSection(ProjectDependencies) = postProject + {73973223-5EE8-41CA-8E88-1D60E89A237B} = {73973223-5EE8-41CA-8E88-1D60E89A237B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "client", "examples\client\client.vcproj", "{3ADE9549-582D-4D8E-9826-B172197A7959}" + ProjectSection(ProjectDependencies) = postProject + {73973223-5EE8-41CA-8E88-1D60E89A237B} = {73973223-5EE8-41CA-8E88-1D60E89A237B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "server", "examples\server\server.vcproj", "{E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}" + ProjectSection(ProjectDependencies) = postProject + {73973223-5EE8-41CA-8E88-1D60E89A237B} = {73973223-5EE8-41CA-8E88-1D60E89A237B} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {73973223-5EE8-41CA-8E88-1D60E89A237B}.Debug|Win32.ActiveCfg = Debug|Win32 + {73973223-5EE8-41CA-8E88-1D60E89A237B}.Debug|Win32.Build.0 = Debug|Win32 + {73973223-5EE8-41CA-8E88-1D60E89A237B}.Release|Win32.ActiveCfg = Release|Win32 + {73973223-5EE8-41CA-8E88-1D60E89A237B}.Release|Win32.Build.0 = Release|Win32 + {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.Debug|Win32.ActiveCfg = Debug|Win32 + {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.Debug|Win32.Build.0 = Debug|Win32 + {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.Release|Win32.ActiveCfg = Release|Win32 + {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.Release|Win32.Build.0 = Release|Win32 + {34FAE5A6-2B0F-4B55-86FE-0C43E4810F4D}.Debug|Win32.ActiveCfg = Debug|Win32 + {34FAE5A6-2B0F-4B55-86FE-0C43E4810F4D}.Debug|Win32.Build.0 = Debug|Win32 + {34FAE5A6-2B0F-4B55-86FE-0C43E4810F4D}.Release|Win32.ActiveCfg = Release|Win32 + {34FAE5A6-2B0F-4B55-86FE-0C43E4810F4D}.Release|Win32.Build.0 = Release|Win32 + {07D97C48-E08F-4E34-9F67-3064039FF2CB}.Debug|Win32.ActiveCfg = Debug|Win32 + {07D97C48-E08F-4E34-9F67-3064039FF2CB}.Debug|Win32.Build.0 = Debug|Win32 + {07D97C48-E08F-4E34-9F67-3064039FF2CB}.Release|Win32.ActiveCfg = Release|Win32 + {07D97C48-E08F-4E34-9F67-3064039FF2CB}.Release|Win32.Build.0 = Release|Win32 + {8362A816-C5DC-4E22-B5C5-9E6806387073}.Debug|Win32.ActiveCfg = Debug|Win32 + {8362A816-C5DC-4E22-B5C5-9E6806387073}.Debug|Win32.Build.0 = Debug|Win32 + {8362A816-C5DC-4E22-B5C5-9E6806387073}.Release|Win32.ActiveCfg = Release|Win32 + {8362A816-C5DC-4E22-B5C5-9E6806387073}.Release|Win32.Build.0 = Release|Win32 + {3ADE9549-582D-4D8E-9826-B172197A7959}.Debug|Win32.ActiveCfg = Debug|Win32 + {3ADE9549-582D-4D8E-9826-B172197A7959}.Debug|Win32.Build.0 = Debug|Win32 + {3ADE9549-582D-4D8E-9826-B172197A7959}.Release|Win32.ActiveCfg = Release|Win32 + {3ADE9549-582D-4D8E-9826-B172197A7959}.Release|Win32.Build.0 = Release|Win32 + {E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}.Debug|Win32.ActiveCfg = Debug|Win32 + {E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}.Debug|Win32.Build.0 = Debug|Win32 + {E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}.Release|Win32.ActiveCfg = Release|Win32 + {E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/FreeRTOS-Plus/CyaSSL/cyassl.vcproj b/FreeRTOS-Plus/CyaSSL/cyassl.vcproj new file mode 100644 index 000000000..d21effda1 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl.vcproj @@ -0,0 +1,277 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/callbacks.h b/FreeRTOS-Plus/CyaSSL/cyassl/callbacks.h new file mode 100644 index 000000000..f43fbdd7b --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/callbacks.h @@ -0,0 +1,80 @@ +/* cyassl_callbacks.h + * + * Copyright (C) 2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifndef CYASSL_CALLBACKS_H +#define CYASSL_CALLBACKS_H + +#include + +#ifdef __cplusplus + extern "C" { +#endif + + +enum { /* CALLBACK CONTSTANTS */ + MAX_PACKETNAME_SZ = 24, + MAX_CIPHERNAME_SZ = 24, + MAX_TIMEOUT_NAME_SZ = 24, + MAX_PACKETS_HANDSHAKE = 14, /* 12 for client auth plus 2 alerts */ + MAX_VALUE_SZ = 128, /* all handshake packets but Cert should + fit here */ +}; + + +typedef struct handShakeInfo_st { + char cipherName[MAX_CIPHERNAME_SZ + 1]; /* negotiated cipher */ + char packetNames[MAX_PACKETS_HANDSHAKE][MAX_PACKETNAME_SZ + 1]; + /* SSL packet names */ + int numberPackets; /* actual # of packets */ + int negotiationError; /* cipher/parameter err */ +} HandShakeInfo; + + +typedef struct timeval Timeval; + + +typedef struct packetInfo_st { + char packetName[MAX_PACKETNAME_SZ + 1]; /* SSL packet name */ + Timeval timestamp; /* when it occured */ + unsigned char value[MAX_VALUE_SZ]; /* if fits, it's here */ + unsigned char* bufferValue; /* otherwise here (non 0) */ + int valueSz; /* sz of value or buffer */ +} PacketInfo; + + +typedef struct timeoutInfo_st { + char timeoutName[MAX_TIMEOUT_NAME_SZ + 1]; /* timeout Name */ + int flags; /* for future use */ + int numberPackets; /* actual # of packets */ + PacketInfo packets[MAX_PACKETS_HANDSHAKE]; /* list of all packets */ + Timeval timeoutValue; /* timer that caused it */ +} TimeoutInfo; + + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + + +#endif /* CyaSSL_CALLBACKS_H */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/crl.h b/FreeRTOS-Plus/CyaSSL/cyassl/crl.h new file mode 100644 index 000000000..5e2fa62b2 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/crl.h @@ -0,0 +1,47 @@ +/* crl.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifndef CYASSL_CRL_H +#define CYASSL_CRL_H + +#include +#include + +#ifdef __cplusplus + extern "C" { +#endif + +typedef struct CYASSL_CRL CYASSL_CRL; + +CYASSL_LOCAL int InitCRL(CYASSL_CRL*, CYASSL_CERT_MANAGER*); +CYASSL_LOCAL void FreeCRL(CYASSL_CRL*); + +CYASSL_LOCAL int LoadCRL(CYASSL_CRL* crl, const char* path, int type, int mon); +CYASSL_LOCAL int BufferLoadCRL(CYASSL_CRL*, const byte*, long, int); +CYASSL_LOCAL int CheckCertCRL(CYASSL_CRL*, DecodedCert*); + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + +#endif /* CYASSL_CRL_H */ diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/aes.h b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/aes.h new file mode 100644 index 000000000..c3356de4a --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/aes.h @@ -0,0 +1,91 @@ +/* aes.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifndef NO_AES + +#ifndef CTAO_CRYPT_AES_H +#define CTAO_CRYPT_AES_H + + +#include + +#ifdef CYASSL_AESNI + +#include + +#if !defined (ALIGN16) + #if defined (__GNUC__) + #define ALIGN16 __attribute__ ( (aligned (16))) + #elif defined(_MSC_VER) + #define ALIGN16 __declspec (align (16)) + #else + #define ALIGN16 + #endif +#endif + +#endif /* CYASSL_AESNI */ + +#if !defined (ALIGN16) + #define ALIGN16 +#endif + +#ifdef __cplusplus + extern "C" { +#endif + + +enum { + AES_ENC_TYPE = 1, /* cipher unique type */ + AES_ENCRYPTION = 0, + AES_DECRYPTION = 1, + AES_BLOCK_SIZE = 16 +}; + + +typedef struct Aes { + /* AESNI needs key first, rounds 2nd, not sure why yet */ + ALIGN16 word32 key[60]; + word32 rounds; + + ALIGN16 word32 reg[AES_BLOCK_SIZE / sizeof(word32)]; /* for CBC mode */ + ALIGN16 word32 tmp[AES_BLOCK_SIZE / sizeof(word32)]; /* same */ +} Aes; + + +CYASSL_API int AesSetKey(Aes* aes, const byte* key, word32 len, const byte* iv, + int dir); +CYASSL_API int AesSetIV(Aes* aes, const byte* iv); +CYASSL_API void AesCbcEncrypt(Aes* aes, byte* out, const byte* in, word32 sz); +CYASSL_API void AesCbcDecrypt(Aes* aes, byte* out, const byte* in, word32 sz); +CYASSL_API void AesCtrEncrypt(Aes* aes, byte* out, const byte* in, word32 sz); +CYASSL_API void AesEncryptDirect(Aes* aes, byte* out, const byte* in); +CYASSL_API void AesDecryptDirect(Aes* aes, byte* out, const byte* in); + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + + +#endif /* CTAO_CRYPT_AES_H */ +#endif /* NO_AES */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/arc4.h b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/arc4.h new file mode 100644 index 000000000..b49146675 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/arc4.h @@ -0,0 +1,57 @@ +/* arc4.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifndef CTAO_CRYPT_ARC4_H +#define CTAO_CRYPT_ARC4_H + + +#include + + +#ifdef __cplusplus + extern "C" { +#endif + + +enum { + ARC4_ENC_TYPE = 4, /* cipher unique type */ + ARC4_STATE_SIZE = 256 +}; + +/* ARC4 encryption and decryption */ +typedef struct Arc4 { + byte x; + byte y; + byte state[ARC4_STATE_SIZE]; +} Arc4; + +CYASSL_API void Arc4Process(Arc4*, byte*, const byte*, word32); +CYASSL_API void Arc4SetKey(Arc4*, const byte*, word32); + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + + +#endif /* CTAO_CRYPT_ARC4_H */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/asn.h b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/asn.h new file mode 100644 index 000000000..eaf06a794 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/asn.h @@ -0,0 +1,430 @@ +/* asn.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifndef CTAO_CRYPT_ASN_H +#define CTAO_CRYPT_ASN_H + +#include +#include +#include +#include +#include +#include +#include /* public interface */ +#ifdef HAVE_ECC + #include +#endif + +#ifdef __cplusplus + extern "C" { +#endif + + +enum { + ISSUER = 0, + SUBJECT = 1, + + EXTERNAL_SERIAL_SIZE = 32, + + BEFORE = 0, + AFTER = 1 +}; + +/* ASN Tags */ +enum ASN_Tags { + ASN_BOOLEAN = 0x01, + ASN_INTEGER = 0x02, + ASN_BIT_STRING = 0x03, + ASN_OCTET_STRING = 0x04, + ASN_TAG_NULL = 0x05, + ASN_OBJECT_ID = 0x06, + ASN_ENUMERATED = 0x0a, + ASN_SEQUENCE = 0x10, + ASN_SET = 0x11, + ASN_UTC_TIME = 0x17, + ASN_GENERALIZED_TIME = 0x18, + CRL_EXTENSIONS = 0xa0, + ASN_EXTENSIONS = 0xa3, + ASN_LONG_LENGTH = 0x80 +}; + +enum ASN_Flags{ + ASN_CONSTRUCTED = 0x20, + ASN_CONTEXT_SPECIFIC = 0x80 +}; + +enum DN_Tags { + ASN_COMMON_NAME = 0x03, /* CN */ + ASN_SUR_NAME = 0x04, /* SN */ + ASN_COUNTRY_NAME = 0x06, /* C */ + ASN_LOCALITY_NAME = 0x07, /* L */ + ASN_STATE_NAME = 0x08, /* ST */ + ASN_ORG_NAME = 0x0a, /* O */ + ASN_ORGUNIT_NAME = 0x0b /* OU */ +}; + +enum PBES { + PBE_MD5_DES = 0, + PBE_SHA1_DES = 1, + PBE_SHA1_DES3 = 2, + PBE_SHA1_RC4_128 = 3, + PBES2 = 13 /* algo ID */ +}; + +enum ENCRYPTION_TYPES { + DES_TYPE = 0, + DES3_TYPE = 1, + RC4_TYPE = 2 +}; + +enum ECC_TYPES { + ECC_PREFIX_0 = 160, + ECC_PREFIX_1 = 161 +}; + +enum Misc_ASN { + ASN_NAME_MAX = 256, + MAX_SALT_SIZE = 64, /* MAX PKCS Salt length */ + MAX_IV_SIZE = 64, /* MAX PKCS Iv length */ + MAX_KEY_SIZE = 64, /* MAX PKCS Key length */ + PKCS5 = 5, /* PKCS oid tag */ + PKCS5v2 = 6, /* PKCS #5 v2.0 */ + PKCS12 = 12, /* PKCS #12 */ + MAX_UNICODE_SZ = 256, + ASN_BOOL_SIZE = 2, /* including type */ + SHA_SIZE = 20, + RSA_INTS = 8, /* RSA ints in private key */ + MIN_DATE_SIZE = 13, + MAX_DATE_SIZE = 32, + ASN_GEN_TIME_SZ = 15, /* 7 numbers * 2 + Zulu tag */ + MAX_ENCODED_SIG_SZ = 512, + MAX_SIG_SZ = 256, + MAX_ALGO_SZ = 20, + MAX_SEQ_SZ = 5, /* enum(seq | con) + length(4) */ + MAX_SET_SZ = 5, /* enum(set | con) + length(4) */ + MAX_VERSION_SZ = 5, /* enum + id + version(byte) + (header(2))*/ + MAX_ENCODED_DIG_SZ = 73, /* sha512 + enum(bit or octet) + legnth(4) */ + MAX_RSA_INT_SZ = 517, /* RSA raw sz 4096 for bits + tag + len(4) */ + MAX_NTRU_KEY_SZ = 610, /* NTRU 112 bit public key */ + MAX_NTRU_ENC_SZ = 628, /* NTRU 112 bit DER public encoding */ + MAX_LENGTH_SZ = 4, /* Max length size for DER encoding */ + MAX_RSA_E_SZ = 16, /* Max RSA public e size */ + MAX_CA_SZ = 32, /* Max encoded CA basic constraint length */ + MAX_SN_SZ = 35, /* Max encoded serial number (INT) length */ +#ifdef CYASSL_CERT_GEN + #ifdef CYASSL_ALT_NAMES + MAX_EXTENSIONS_SZ = 1 + MAX_LENGTH_SZ + CTC_MAX_ALT_SIZE, + #else + MAX_EXTENSIONS_SZ = 1 + MAX_LENGTH_SZ + MAX_CA_SZ, + #endif + /* Max total extensions, id + len + others */ +#endif + MAX_PUBLIC_KEY_SZ = MAX_NTRU_ENC_SZ + MAX_ALGO_SZ + MAX_SEQ_SZ * 2 + /* use bigger NTRU size */ +}; + + +enum Oid_Types { + hashType = 0, + sigType = 1, + keyType = 2 +}; + + +enum Hash_Sum { + MD2h = 646, + MD5h = 649, + SHAh = 88, + SHA256h = 414, + SHA384h = 415, + SHA512h = 416 +}; + + +enum Key_Sum { + DSAk = 515, + RSAk = 645, + NTRUk = 364, + ECDSAk = 518 +}; + + +enum Ecc_Sum { + ECC_256R1 = 526, + ECC_384R1 = 210, + ECC_521R1 = 211, + ECC_160R1 = 184, + ECC_192R1 = 520, + ECC_224R1 = 209 +}; + + +enum KDF_Sum { + PBKDF2_OID = 660 +}; + + +enum Extensions_Sum { + BASIC_CA_OID = 133, + ALT_NAMES_OID = 131, + CRL_DIST_OID = 145, + AUTH_INFO_OID = 69, + CA_ISSUER_OID = 117 +}; + + +enum VerifyType { + NO_VERIFY = 0, + VERIFY = 1 +}; + + +typedef struct DecodedCert DecodedCert; +typedef struct Signer Signer; + + +struct DecodedCert { + byte* publicKey; + word32 pubKeySize; + int pubKeyStored; + word32 certBegin; /* offset to start of cert */ + word32 sigIndex; /* offset to start of signature */ + word32 sigLength; /* length of signature */ + word32 signatureOID; /* sum of algorithm object id */ + word32 keyOID; /* sum of key algo object id */ + byte subjectHash[SHA_SIZE]; /* hash of all Names */ + byte issuerHash[SHA_SIZE]; /* hash of all Names */ +#ifdef HAVE_OCSP + byte issuerKeyHash[SHA_SIZE]; /* hash of the public Key */ +#endif /* HAVE_OCSP */ + byte* signature; /* not owned, points into raw cert */ + char* subjectCN; /* CommonName */ + int subjectCNLen; + char issuer[ASN_NAME_MAX]; /* full name including common name */ + char subject[ASN_NAME_MAX]; /* full name including common name */ + int verify; /* Default to yes, but could be off */ + byte* source; /* byte buffer holder cert, NOT owner */ + word32 srcIdx; /* current offset into buffer */ + word32 maxIdx; /* max offset based on init size */ + void* heap; /* for user memory overrides */ + byte serial[EXTERNAL_SERIAL_SIZE]; /* raw serial number */ + int serialSz; /* raw serial bytes stored */ + byte* extensions; /* not owned, points into raw cert */ + int extensionsSz; /* length of cert extensions */ + word32 extensionsIdx; /* if want to go back and parse later */ + byte* extAuthInfo; /* Authority Information Access URI */ + int extAuthInfoSz; /* length of the URI */ + byte* extCrlInfo; /* CRL Distribution Points */ + int extCrlInfoSz; /* length of the URI */ + byte isCA; /* CA basic constraint true */ +#ifdef CYASSL_CERT_GEN + /* easy access to subject info for other sign */ + char* subjectSN; + int subjectSNLen; + char* subjectC; + int subjectCLen; + char* subjectL; + int subjectLLen; + char* subjectST; + int subjectSTLen; + char* subjectO; + int subjectOLen; + char* subjectOU; + int subjectOULen; + char* subjectEmail; + int subjectEmailLen; + byte* beforeDate; + int beforeDateLen; + byte* afterDate; + int afterDateLen; +#endif /* CYASSL_CERT_GEN */ +}; + + +/* CA Signers */ +struct Signer { + byte* publicKey; + word32 pubKeySize; + word32 keyOID; /* key type */ + char* name; /* common name */ + byte hash[SHA_DIGEST_SIZE]; /* sha hash of names in certificate */ + Signer* next; +}; + + +/* not for public consumption but may use for testing sometimes */ +#ifdef CYASSL_TEST_CERT + #define CYASSL_TEST_API CYASSL_API +#else + #define CYASSL_TEST_API CYASSL_LOCAL +#endif + +CYASSL_TEST_API void InitDecodedCert(DecodedCert*, byte*, word32, void*); +CYASSL_TEST_API void FreeDecodedCert(DecodedCert*); +CYASSL_TEST_API int ParseCert(DecodedCert*, int type, int verify, void* cm); + +CYASSL_LOCAL int ParseCertRelative(DecodedCert*, int type, int verify,void* cm); +CYASSL_LOCAL int DecodeToKey(DecodedCert*, int verify); + +CYASSL_LOCAL word32 EncodeSignature(byte* out, const byte* digest, word32 digSz, + int hashOID); + +CYASSL_LOCAL Signer* MakeSigner(void*); +CYASSL_LOCAL void FreeSigners(Signer*, void*); + + +CYASSL_LOCAL int ToTraditional(byte* buffer, word32 length); +CYASSL_LOCAL int ToTraditionalEnc(byte* buffer, word32 length,const char*, int); + + +#ifdef HAVE_ECC + /* ASN sig helpers */ + CYASSL_LOCAL int StoreECC_DSA_Sig(byte* out, word32* outLen, mp_int* r, + mp_int* s); + CYASSL_LOCAL int DecodeECC_DSA_Sig(const byte* sig, word32 sigLen, + mp_int* r, mp_int* s); + /* private key helpers */ + CYASSL_LOCAL int EccPrivateKeyDecode(const byte* input,word32* inOutIdx, + ecc_key*,word32); +#endif + +#ifdef CYASSL_CERT_GEN + +enum cert_enums { + NAME_ENTRIES = 8, + JOINT_LEN = 2, + EMAIL_JOINT_LEN = 9, + RSA_KEY = 10, + NTRU_KEY = 11 +}; + + +#endif /* CYASSL_CERT_GEN */ + + +#ifdef HAVE_OCSP + +enum Ocsp_Response_Status { + OCSP_SUCCESSFUL = 0, /* Response has valid confirmations */ + OCSP_MALFORMED_REQUEST = 1, /* Illegal confirmation request */ + OCSP_INTERNAL_ERROR = 2, /* Internal error in issuer */ + OCSP_TRY_LATER = 3, /* Try again later */ + OCSP_SIG_REQUIRED = 5, /* Must sign the request (4 is skipped) */ + OCSP_UNAUTHROIZED = 6 /* Request unauthorized */ +}; + + +enum Ocsp_Cert_Status { + CERT_GOOD = 0, + CERT_REVOKED = 1, + CERT_UNKNOWN = 2 +}; + + +enum Ocsp_Sums { + OCSP_BASIC_OID = 117 +}; + + +#define STATUS_LIST_SIZE 5 + + +typedef struct OcspResponse OcspResponse; + + +struct OcspResponse { + int responseStatus; /* return code from Responder */ + + word32 respBegin; /* index to beginning of OCSP Response */ + word32 respLength; /* length of the OCSP Response */ + + int version; /* Response version number */ + + word32 sigIndex; /* Index into source for start of sig */ + word32 sigLength; /* Length in octets for the sig */ + word32 sigOID; /* OID for hash used for sig */ + + int certStatusCount; /* Count of certificate statuses, Note + * 1:1 correspondence between certStatus + * and certSerialNumber */ + byte certSN[STATUS_LIST_SIZE][EXTERNAL_SERIAL_SIZE]; + int certSNsz[STATUS_LIST_SIZE]; + /* Certificate serial number array. */ + word32 certStatus[STATUS_LIST_SIZE]; + /* Certificate status array */ + + byte* source; /* pointer to source buffer, not owned */ + word32 maxIdx; /* max offset based on init size */ + void* heap; /* for user memory overrides */ +}; + + +CYASSL_LOCAL void InitOcspResponse(OcspResponse*, byte*, word32, void*); +CYASSL_LOCAL void FreeOcspResponse(OcspResponse*); +CYASSL_LOCAL int OcspResponseDecode(OcspResponse*); +CYASSL_LOCAL int EncodeOcspRequest(DecodedCert*, byte*, word32); + + +#endif /* HAVE_OCSP */ + + +/* for pointer use */ +typedef struct RevokedCert RevokedCert; + +#ifdef HAVE_CRL + +struct RevokedCert { + byte serialNumber[EXTERNAL_SERIAL_SIZE]; + int serialSz; + RevokedCert* next; +}; + +typedef struct DecodedCRL DecodedCRL; + +struct DecodedCRL { + word32 certBegin; /* offset to start of cert */ + word32 sigIndex; /* offset to start of signature */ + word32 sigLength; /* length of signature */ + word32 signatureOID; /* sum of algorithm object id */ + byte* signature; /* pointer into raw source, not owned */ + byte issuerHash[SHA_DIGEST_SIZE]; /* issuer hash */ + byte crlHash[MD5_DIGEST_SIZE]; /* raw crl data hash */ + byte lastDate[MAX_DATE_SIZE]; /* last date updated */ + byte nextDate[MAX_DATE_SIZE]; /* next update date */ + RevokedCert* certs; /* revoked cert list */ + int totalCerts; /* number on list */ +}; + +CYASSL_LOCAL void InitDecodedCRL(DecodedCRL*); +CYASSL_LOCAL int ParseCRL(DecodedCRL*, const byte* buff, long sz); +CYASSL_LOCAL void FreeDecodedCRL(DecodedCRL*); + + +#endif /* HAVE_CRL */ + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + +#endif /* CTAO_CRYPT_ASN_H */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/asn_public.h b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/asn_public.h new file mode 100644 index 000000000..efc21fd83 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/asn_public.h @@ -0,0 +1,155 @@ +/* asn_public.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifndef CTAO_CRYPT_ASN_PUBLIC_H +#define CTAO_CRYPT_ASN_PUBLIC_H + +#include +#ifdef CYASSL_CERT_GEN + #include +#endif + + +#ifdef __cplusplus + extern "C" { +#endif + + +/* Certificate file Type */ +enum CertType { + CERT_TYPE = 0, + PRIVATEKEY_TYPE, + DH_PARAM_TYPE, + CRL_TYPE, + CA_TYPE +}; + + +/* Signature type, by OID sum */ +enum Ctc_SigType { + CTC_SHAwDSA = 517, + CTC_MD2wRSA = 646, + CTC_MD5wRSA = 648, + CTC_SHAwRSA = 649, + CTC_SHAwECDSA = 520, + CTC_SHA256wRSA = 655, + CTC_SHA256wECDSA = 524, + CTC_SHA384wRSA = 656, + CTC_SHA384wECDSA = 525, + CTC_SHA512wRSA = 657, + CTC_SHA512wECDSA = 526 +}; + + +#ifdef CYASSL_CERT_GEN + +enum Ctc_Misc { + CTC_NAME_SIZE = 64, + CTC_DATE_SIZE = 32, + CTC_MAX_ALT_SIZE = 8192, /* may be huge */ + CTC_SERIAL_SIZE = 8 +}; + +typedef struct CertName { + char country[CTC_NAME_SIZE]; + char state[CTC_NAME_SIZE]; + char locality[CTC_NAME_SIZE]; + char sur[CTC_NAME_SIZE]; + char org[CTC_NAME_SIZE]; + char unit[CTC_NAME_SIZE]; + char commonName[CTC_NAME_SIZE]; + char email[CTC_NAME_SIZE]; /* !!!! email has to be last !!!! */ +} CertName; + + +/* for user to fill for certificate generation */ +typedef struct Cert { + int version; /* x509 version */ + byte serial[CTC_SERIAL_SIZE]; /* serial number */ + int sigType; /* signature algo type */ + CertName issuer; /* issuer info */ + int daysValid; /* validity days */ + int selfSigned; /* self signed flag */ + CertName subject; /* subject info */ + int isCA; /* is this going to be a CA */ + /* internal use only */ + int bodySz; /* pre sign total size */ + int keyType; /* public key type of subject */ +#ifdef CYASSL_ALT_NAMES + byte altNames[CTC_MAX_ALT_SIZE]; /* altNames copy */ + int altNamesSz; /* altNames size in bytes */ + byte beforeDate[CTC_DATE_SIZE]; /* before date copy */ + int beforeDateSz; /* size of copy */ + byte afterDate[CTC_DATE_SIZE]; /* after date copy */ + int afterDateSz; /* size of copy */ +#endif +} Cert; + + + + +/* Initialize and Set Certficate defaults: + version = 3 (0x2) + serial = 0 (Will be randomly generated) + sigType = SHA_WITH_RSA + issuer = blank + daysValid = 500 + selfSigned = 1 (true) use subject as issuer + subject = blank + isCA = 0 (false) + keyType = RSA_KEY (default) +*/ +CYASSL_API void InitCert(Cert*); +CYASSL_API int MakeCert(Cert*, byte* derBuffer, word32 derSz, RsaKey*, RNG*); +CYASSL_API int SignCert(Cert*, byte* derBuffer, word32 derSz, RsaKey*, RNG*); +CYASSL_API int MakeSelfCert(Cert*, byte* derBuffer, word32 derSz, RsaKey*, + RNG*); +CYASSL_API int SetIssuer(Cert*, const char*); +CYASSL_API int SetSubject(Cert*, const char*); +#ifdef CYASSL_ALT_NAMES + CYASSL_API int SetAltNames(Cert*, const char*); +#endif +CYASSL_API int SetIssuerBuffer(Cert*, const byte*, int); +CYASSL_API int SetSubjectBuffer(Cert*, const byte*, int); +CYASSL_API int SetAltNamesBuffer(Cert*, const byte*, int); +CYASSL_API int SetDatesBuffer(Cert*, const byte*, int); + + #ifdef HAVE_NTRU + CYASSL_API int MakeNtruCert(Cert*, byte* derBuffer, word32 derSz, + const byte* ntruKey, word16 keySz, RNG*); + #endif + +#endif /* CYASSL_CERT_GEN */ + + +#if defined(CYASSL_KEY_GEN) || defined(CYASSL_CERT_GEN) + CYASSL_API int DerToPem(const byte* der, word32 derSz, byte* output, + word32 outputSz, int type); +#endif + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + +#endif /* CTAO_CRYPT_ASN_PUBLIC_H */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/coding.h b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/coding.h new file mode 100644 index 000000000..5bed1009d --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/coding.h @@ -0,0 +1,51 @@ +/* coding.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifndef CTAO_CRYPT_CODING_H +#define CTAO_CRYPT_CODING_H + +#include + +#ifdef __cplusplus + extern "C" { +#endif + + +/* decode needed by CyaSSL */ +CYASSL_LOCAL int Base64_Decode(const byte* in, word32 inLen, byte* out, + word32* outLen); + +#if defined(OPENSSL_EXTRA) || defined(SESSION_CERTS) || defined(CYASSL_KEY_GEN) || defined(CYASSL_CERT_GEN) || defined(HAVE_WEBSERVER) + /* encode isn't */ + CYASSL_API + int Base64_Encode(const byte* in, word32 inLen, byte* out, + word32* outLen); + CYASSL_LOCAL + int Base16_Decode(const byte* in, word32 inLen, byte* out, word32* outLen); +#endif + +#ifdef __cplusplus + } /* extern "C" */ +#endif + +#endif /* CTAO_CRYPT_CODING_H */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/des3.h b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/des3.h new file mode 100644 index 000000000..adae9a955 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/des3.h @@ -0,0 +1,81 @@ +/* des3.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifndef NO_DES3 + +#ifndef CTAO_CRYPT_DES3_H +#define CTAO_CRYPT_DES3_H + + +#include + + +#ifdef __cplusplus + extern "C" { +#endif + +enum { + DES_ENC_TYPE = 2, /* cipher unique type */ + DES3_ENC_TYPE = 3, /* cipher unique type */ + DES_BLOCK_SIZE = 8, + DES_KS_SIZE = 32, + + DES_ENCRYPTION = 0, + DES_DECRYPTION = 1, +}; + + +/* DES encryption and decryption */ +typedef struct Des { + word32 key[DES_KS_SIZE]; + word32 reg[DES_BLOCK_SIZE / sizeof(word32)]; /* for CBC mode */ + word32 tmp[DES_BLOCK_SIZE / sizeof(word32)]; /* same */ +} Des; + + +/* DES3 encryption and decryption */ +typedef struct Des3 { + word32 key[3][DES_KS_SIZE]; + word32 reg[DES_BLOCK_SIZE / sizeof(word32)]; /* for CBC mode */ + word32 tmp[DES_BLOCK_SIZE / sizeof(word32)]; /* same */ +} Des3; + + +CYASSL_API void Des_SetKey(Des* des, const byte* key, const byte* iv, int dir); +CYASSL_API void Des_SetIV(Des* des, const byte* iv); +CYASSL_API void Des_CbcEncrypt(Des* des, byte* out, const byte* in, word32 sz); +CYASSL_API void Des_CbcDecrypt(Des* des, byte* out, const byte* in, word32 sz); +CYASSL_API void Des_EcbEncrypt(Des* des, byte* out, const byte* in, word32 sz); + +CYASSL_API void Des3_SetKey(Des3* des, const byte* key, const byte* iv,int dir); +CYASSL_API void Des3_SetIV(Des3* des, const byte* iv); +CYASSL_API void Des3_CbcEncrypt(Des3* des, byte* out, const byte* in,word32 sz); +CYASSL_API void Des3_CbcDecrypt(Des3* des, byte* out, const byte* in,word32 sz); + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + +#endif /* NO_DES3 */ +#endif /* CTAO_CRYPT_DES3_H */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/dh.h b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/dh.h new file mode 100644 index 000000000..0b002ac84 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/dh.h @@ -0,0 +1,67 @@ +/* dh.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifndef NO_DH + +#ifndef CTAO_CRYPT_DH_H +#define CTAO_CRYPT_DH_H + +#include +#include +#include + +#ifdef __cplusplus + extern "C" { +#endif + + +/* Diffie-Hellman Key */ +typedef struct DhKey { + mp_int p, g; /* group parameters */ +} DhKey; + + +CYASSL_API void InitDhKey(DhKey* key); +CYASSL_API void FreeDhKey(DhKey* key); + +CYASSL_API int DhGenerateKeyPair(DhKey* key, RNG* rng, byte* priv, + word32* privSz, byte* pub, word32* pubSz); +CYASSL_API int DhAgree(DhKey* key, byte* agree, word32* agreeSz, + const byte* priv, word32 privSz, const byte* otherPub, + word32 pubSz); + +CYASSL_API int DhKeyDecode(const byte* input, word32* inOutIdx, DhKey* key, + word32); +CYASSL_API int DhSetKey(DhKey* key, const byte* p, word32 pSz, const byte* g, + word32 gSz); +CYASSL_API int DhParamsLoad(const byte* input, word32 inSz, byte* p, + word32* pInOutSz, byte* g, word32* gInOutSz); + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + +#endif /* CTAO_CRYPT_DH_H */ + +#endif /* NO_DH */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/dsa.h b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/dsa.h new file mode 100644 index 000000000..2264773cc --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/dsa.h @@ -0,0 +1,67 @@ +/* dsa.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifndef NO_DSA + +#ifndef CTAO_CRYPT_DSA_H +#define CTAO_CRYPT_DSA_H + +#include +#include +#include + +#ifdef __cplusplus + extern "C" { +#endif + + +enum { + DSA_PUBLIC = 0, + DSA_PRIVATE = 1 +}; + +/* DSA */ +typedef struct DsaKey { + mp_int p, q, g, y, x; + int type; /* public or private */ +} DsaKey; + + +CYASSL_API void InitDsaKey(DsaKey* key); +CYASSL_API void FreeDsaKey(DsaKey* key); + +CYASSL_API int DsaSign(const byte* digest, byte* out, DsaKey* key, RNG* rng); +CYASSL_API int DsaVerify(const byte* digest, const byte* sig, DsaKey* key, + int* answer); + +CYASSL_API int DsaPublicKeyDecode(const byte* input, word32* inOutIdx, DsaKey*, + word32); +CYASSL_API int DsaPrivateKeyDecode(const byte* input, word32* inOutIdx, DsaKey*, + word32); + +#ifdef __cplusplus + } /* extern "C" */ +#endif + +#endif /* CTAO_CRYPT_DSA_H */ +#endif /* NO_DSA */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/ecc.h b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/ecc.h new file mode 100644 index 000000000..4d54c0415 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/ecc.h @@ -0,0 +1,129 @@ +/* ecc.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +#ifdef HAVE_ECC + +#ifndef CTAO_CRYPT_ECC_H +#define CTAO_CRYPT_ECC_H + +#include +#include +#include + +#ifdef __cplusplus + extern "C" { +#endif + + +enum { + ECC_PUBLICKEY = 1, + ECC_PRIVATEKEY = 2, + ECC_MAXNAME = 16, /* MAX CURVE NAME LENGTH */ + SIG_HEADER_SZ = 6, /* ECC signature header size */ + ECC_BUFSIZE = 256, /* for exported keys temp buffer */ + ECC_MINSIZE = 20, /* MIN Private Key size */ + ECC_MAXSIZE = 66 /* MAX Private Key size */ +}; + + +/* ECC set type defined a NIST GF(p) curve */ +typedef struct { + int size; /* The size of the curve in octets */ + const char* name; /* name of this curve */ + const char* prime; /* prime that defines the field, curve is in (hex) */ + const char* B; /* fields B param (hex) */ + const char* order; /* order of the curve (hex) */ + const char* Gx; /* x coordinate of the base point on curve (hex) */ + const char* Gy; /* y coordinate of the base point on curve (hex) */ +} ecc_set_type; + + +/* A point on an ECC curve, stored in Jacbobian format such that (x,y,z) => + (x/z^2, y/z^3, 1) when interpreted as affine */ +typedef struct { + mp_int x; /* The x coordinate */ + mp_int y; /* The y coordinate */ + mp_int z; /* The z coordinate */ +} ecc_point; + + +/* An ECC Key */ +typedef struct { + int type; /* Public or Private */ + int idx; /* Index into the ecc_sets[] for the parameters of + this curve if -1, this key is using user supplied + curve in dp */ + const ecc_set_type* dp; /* domain parameters, either points to NIST + curves (idx >= 0) or user supplied */ + ecc_point pubkey; /* public key */ + mp_int k; /* private key */ +} ecc_key; + + +/* ECC predefined curve sets */ +extern const ecc_set_type ecc_sets[]; + + +CYASSL_API +int ecc_make_key(RNG* rng, int keysize, ecc_key* key); +CYASSL_API +int ecc_shared_secret(ecc_key* private_key, ecc_key* public_key, byte* out, + word32* outlen); +CYASSL_API +int ecc_sign_hash(const byte* in, word32 inlen, byte* out, word32 *outlen, + RNG* rng, ecc_key* key); +CYASSL_API +int ecc_verify_hash(const byte* sig, word32 siglen, byte* hash, word32 hashlen, + int* stat, ecc_key* key); +CYASSL_API +void ecc_init(ecc_key* key); +CYASSL_API +void ecc_free(ecc_key* key); + + +/* ASN key helpers */ +CYASSL_API +int ecc_export_x963(ecc_key*, byte* out, word32* outLen); +CYASSL_API +int ecc_import_x963(const byte* in, word32 inLen, ecc_key* key); +CYASSL_API +int ecc_import_private_key(const byte* priv, word32 privSz, const byte* pub, + word32 pubSz, ecc_key* key); + +/* size helper */ +CYASSL_API +int ecc_size(ecc_key* key); +CYASSL_API +int ecc_sig_size(ecc_key* key); + +/* TODO: fix mutex types */ +#define MUTEX_GLOBAL(x) int (x); +#define MUTEX_LOCK(x) +#define MUTEX_UNLOCK(x) + + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + +#endif /* CTAO_CRYPT_ECC_H */ +#endif /* HAVE_ECC */ diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/error.h b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/error.h new file mode 100644 index 000000000..59298bbc6 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/error.h @@ -0,0 +1,113 @@ +/* error.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifndef CTAO_CRYPT_ERROR_H +#define CTAO_CRYPT_ERROR_H + +#include + + +#ifdef __cplusplus + extern "C" { +#endif + + +/* error codes */ +enum { + MAX_ERROR_SZ = 80, /* max size of error string */ + MAX_CODE_E = -100, /* errors -101 - -199 */ + OPEN_RAN_E = -101, /* opening random device error */ + READ_RAN_E = -102, /* reading random device error */ + WINCRYPT_E = -103, /* windows crypt init error */ + CRYPTGEN_E = -104, /* windows crypt generation error */ + RAN_BLOCK_E = -105, /* reading random device would block */ + + MP_INIT_E = -110, /* mp_init error state */ + MP_READ_E = -111, /* mp_read error state */ + MP_EXPTMOD_E = -112, /* mp_exptmod error state */ + MP_TO_E = -113, /* mp_to_xxx error state, can't convert */ + MP_SUB_E = -114, /* mp_sub error state, can't subtract */ + MP_ADD_E = -115, /* mp_add error state, can't add */ + MP_MUL_E = -116, /* mp_mul error state, can't multiply */ + MP_MULMOD_E = -117, /* mp_mulmod error state, can't multiply mod */ + MP_MOD_E = -118, /* mp_mod error state, can't mod */ + MP_INVMOD_E = -119, /* mp_invmod error state, can't inv mod */ + MP_CMP_E = -120, /* mp_cmp error state */ + MP_ZERO_E = -121, /* got a mp zero result, not expected */ + + MEMORY_E = -125, /* out of memory error */ + + RSA_WRONG_TYPE_E = -130, /* RSA wrong block type for RSA function */ + RSA_BUFFER_E = -131, /* RSA buffer error, output too small or + input too large */ + BUFFER_E = -132, /* output buffer too small or input too large */ + ALGO_ID_E = -133, /* setting algo id error */ + PUBLIC_KEY_E = -134, /* setting public key error */ + DATE_E = -135, /* setting date validity error */ + SUBJECT_E = -136, /* setting subject name error */ + ISSUER_E = -137, /* setting issuer name error */ + CA_TRUE_E = -138, /* setting CA basic constraint true error */ + EXTENSIONS_E = -139, /* setting extensions error */ + + ASN_PARSE_E = -140, /* ASN parsing error, invalid input */ + ASN_VERSION_E = -141, /* ASN version error, invalid number */ + ASN_GETINT_E = -142, /* ASN get big int error, invalid data */ + ASN_RSA_KEY_E = -143, /* ASN key init error, invalid input */ + ASN_OBJECT_ID_E = -144, /* ASN object id error, invalid id */ + ASN_TAG_NULL_E = -145, /* ASN tag error, not null */ + ASN_EXPECT_0_E = -146, /* ASN expect error, not zero */ + ASN_BITSTR_E = -147, /* ASN bit string error, wrong id */ + ASN_UNKNOWN_OID_E = -148, /* ASN oid error, unknown sum id */ + ASN_DATE_SZ_E = -149, /* ASN date error, bad size */ + ASN_BEFORE_DATE_E = -150, /* ASN date error, current date before */ + ASN_AFTER_DATE_E = -151, /* ASN date error, current date after */ + ASN_SIG_OID_E = -152, /* ASN signature error, mismatched oid */ + ASN_TIME_E = -153, /* ASN time error, unknown time type */ + ASN_INPUT_E = -154, /* ASN input error, not enough data */ + ASN_SIG_CONFIRM_E = -155, /* ASN sig error, confirm failure */ + ASN_SIG_HASH_E = -156, /* ASN sig error, unsupported hash type */ + ASN_SIG_KEY_E = -157, /* ASN sig error, unsupported key type */ + ASN_DH_KEY_E = -158, /* ASN key init error, invalid input */ + ASN_NTRU_KEY_E = -159, /* ASN ntru key decode error, invalid input */ + + ECC_BAD_ARG_E = -170, /* ECC input argument of wrong type */ + ASN_ECC_KEY_E = -171, /* ASN ECC bad input */ + ECC_CURVE_OID_E = -172, /* Unsupported ECC OID curve type */ + BAD_FUNC_ARG = -173, /* Bad function argument provided */ + NOT_COMPILED_IN = -174, /* Feature not compiled in */ + UNICODE_SIZE_E = -175, /* Unicode password too big */ + NO_PASSWORD = -176, /* no password provided by user */ + ALT_NAME_E = -177, /* alt name size problem, too big */ + + MIN_CODE_E = -200 /* errors -101 - -199 */ +}; + + +CYASSL_API void CTaoCryptErrorString(int error, char* buffer); + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + +#endif /* CTAO_CRYPT_ERROR_H */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/hc128.h b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/hc128.h new file mode 100644 index 000000000..d3e5f21e8 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/hc128.h @@ -0,0 +1,60 @@ +/* hc128.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifndef NO_HC128 + +#ifndef CTAO_CRYPT_HC128_H +#define CTAO_CRYPT_HC128_H + +#include + +#ifdef __cplusplus + extern "C" { +#endif + + +enum { + HC128_ENC_TYPE = 6 /* cipher unique type */ +}; + +/* HC-128 stream cipher */ +typedef struct HC128 { + word32 T[1024]; /* P[i] = T[i]; Q[i] = T[1024 + i ]; */ + word32 X[16]; + word32 Y[16]; + word32 counter1024; /* counter1024 = i mod 1024 at the ith step */ + word32 key[8]; + word32 iv[8]; +} HC128; + + +CYASSL_API void Hc128_Process(HC128*, byte*, const byte*, word32); +CYASSL_API void Hc128_SetKey(HC128*, const byte* key, const byte* iv); + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + +#endif /* CTAO_CRYPT_HC128_H */ + +#endif /* HAVE_HC128 */ diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/hmac.h b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/hmac.h new file mode 100644 index 000000000..6f022748b --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/hmac.h @@ -0,0 +1,86 @@ +/* hmac.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifndef NO_HMAC + +#ifndef CTAO_CRYPT_HMAC_H +#define CTAO_CRYPT_HMAC_H + +#include +#include + +#ifndef NO_SHA256 + #include +#endif + +#ifdef __cplusplus + extern "C" { +#endif + + +enum { + IPAD = 0x36, + OPAD = 0x5C, +#ifndef NO_SHA256 + INNER_HASH_SIZE = SHA256_DIGEST_SIZE, +#else + INNER_HASH_SIZE = SHA_DIGEST_SIZE, + SHA256 = 2, /* hash type unique */ +#endif + HMAC_BLOCK_SIZE = MD5_BLOCK_SIZE +}; + + +/* hash union */ +typedef union { + Md5 md5; + Sha sha; + #ifndef NO_SHA256 + Sha256 sha256; + #endif +} Hash; + +/* Hmac digest */ +typedef struct Hmac { + Hash hash; + word32 ipad[HMAC_BLOCK_SIZE / sizeof(word32)]; /* same block size all*/ + word32 opad[HMAC_BLOCK_SIZE / sizeof(word32)]; + word32 innerHash[INNER_HASH_SIZE / sizeof(word32)]; /* max size */ + byte macType; /* md5 sha or sha256 */ + byte innerHashKeyed; /* keyed flag */ +} Hmac; + + +/* does init */ +CYASSL_API void HmacSetKey(Hmac*, int type, const byte* key, word32 keySz); +CYASSL_API void HmacUpdate(Hmac*, const byte*, word32); +CYASSL_API void HmacFinal(Hmac*, byte*); + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + +#endif /* CTAO_CRYPT_HMAC_H */ + +#endif /* NO_HMAC */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/include.am b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/include.am new file mode 100644 index 000000000..a268bb95f --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/include.am @@ -0,0 +1,36 @@ +# vim:ft=automake +# All paths should be given relative to the root + +nobase_include_HEADERS+= \ + cyassl/ctaocrypt/aes.h \ + cyassl/ctaocrypt/arc4.h \ + cyassl/ctaocrypt/asn.h \ + cyassl/ctaocrypt/asn_public.h \ + cyassl/ctaocrypt/coding.h \ + cyassl/ctaocrypt/des3.h \ + cyassl/ctaocrypt/dh.h \ + cyassl/ctaocrypt/dsa.h \ + cyassl/ctaocrypt/ecc.h \ + cyassl/ctaocrypt/error.h \ + cyassl/ctaocrypt/hc128.h \ + cyassl/ctaocrypt/hmac.h \ + cyassl/ctaocrypt/integer.h \ + cyassl/ctaocrypt/md4.h \ + cyassl/ctaocrypt/md5.h \ + cyassl/ctaocrypt/misc.h \ + cyassl/ctaocrypt/pwdbased.h \ + cyassl/ctaocrypt/rabbit.h \ + cyassl/ctaocrypt/random.h \ + cyassl/ctaocrypt/ripemd.h \ + cyassl/ctaocrypt/rsa.h \ + cyassl/ctaocrypt/settings.h \ + cyassl/ctaocrypt/sha256.h \ + cyassl/ctaocrypt/sha512.h \ + cyassl/ctaocrypt/sha.h \ + cyassl/ctaocrypt/tfm.h \ + cyassl/ctaocrypt/types.h \ + cyassl/ctaocrypt/visibility.h \ + cyassl/ctaocrypt/logging.h \ + cyassl/ctaocrypt/memory.h \ + cyassl/ctaocrypt/mpi_class.h \ + cyassl/ctaocrypt/mpi_superclass.h diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/integer.h b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/integer.h new file mode 100644 index 000000000..ff1c5916b --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/integer.h @@ -0,0 +1,329 @@ +/* integer.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +/* + * Based on public domain LibTomMath 0.38 by Tom St Denis, tomstdenis@iahu.ca, + * http://math.libtomcrypt.com + */ + + +#ifndef CTAO_CRYPT_INTEGER_H +#define CTAO_CRYPT_INTEGER_H + +/* may optionally use fast math instead, not yet supported on all platforms and + may not be faster on all +*/ +#include /* will set MP_xxBIT if not default */ +#ifdef USE_FAST_MATH + #include +#else + +#ifndef CHAR_BIT + #include +#endif + +#include + +#ifndef MIN + #define MIN(x,y) ((x)<(y)?(x):(y)) +#endif + +#ifndef MAX + #define MAX(x,y) ((x)>(y)?(x):(y)) +#endif + +#ifdef __cplusplus +extern "C" { + +/* C++ compilers don't like assigning void * to mp_digit * */ +#define OPT_CAST(x) (x *) + +#else + +/* C on the other hand doesn't care */ +#define OPT_CAST(x) + +#endif + + +/* detect 64-bit mode if possible */ +#if defined(__x86_64__) + #if !(defined(MP_64BIT) && defined(MP_16BIT) && defined(MP_8BIT)) + #define MP_64BIT + #endif +#endif + +/* some default configurations. + * + * A "mp_digit" must be able to hold DIGIT_BIT + 1 bits + * A "mp_word" must be able to hold 2*DIGIT_BIT + 1 bits + * + * At the very least a mp_digit must be able to hold 7 bits + * [any size beyond that is ok provided it doesn't overflow the data type] + */ +#ifdef MP_8BIT + typedef unsigned char mp_digit; + typedef unsigned short mp_word; +#elif defined(MP_16BIT) + typedef unsigned short mp_digit; + typedef unsigned long mp_word; +#elif defined(MP_64BIT) + /* for GCC only on supported platforms */ +#ifndef CRYPT + typedef unsigned long long ulong64; + typedef signed long long long64; +#endif + + typedef unsigned long mp_digit; + typedef unsigned long mp_word __attribute__ ((mode(TI))); + + #define DIGIT_BIT 60 +#else + /* this is the default case, 28-bit digits */ + + /* this is to make porting into LibTomCrypt easier :-) */ +#ifndef CRYPT + #if defined(_MSC_VER) || defined(__BORLANDC__) + typedef unsigned __int64 ulong64; + typedef signed __int64 long64; + #else + typedef unsigned long long ulong64; + typedef signed long long long64; + #endif +#endif + + typedef unsigned int mp_digit; /* long could be 64 now, changed TAO */ + typedef ulong64 mp_word; + +#ifdef MP_31BIT + /* this is an extension that uses 31-bit digits */ + #define DIGIT_BIT 31 +#else + /* default case is 28-bit digits, defines MP_28BIT as a handy test macro */ + #define DIGIT_BIT 28 + #define MP_28BIT +#endif +#endif + + +/* otherwise the bits per digit is calculated automatically from the size of + a mp_digit */ +#ifndef DIGIT_BIT + #define DIGIT_BIT ((int)((CHAR_BIT * sizeof(mp_digit) - 1))) + /* bits per digit */ +#endif + +#define MP_DIGIT_BIT DIGIT_BIT +#define MP_MASK ((((mp_digit)1)<<((mp_digit)DIGIT_BIT))-((mp_digit)1)) +#define MP_DIGIT_MAX MP_MASK + +/* equalities */ +#define MP_LT -1 /* less than */ +#define MP_EQ 0 /* equal to */ +#define MP_GT 1 /* greater than */ + +#define MP_ZPOS 0 /* positive integer */ +#define MP_NEG 1 /* negative */ + +#define MP_OKAY 0 /* ok result */ +#define MP_MEM -2 /* out of mem */ +#define MP_VAL -3 /* invalid input */ +#define MP_RANGE MP_VAL + +#define MP_YES 1 /* yes response */ +#define MP_NO 0 /* no response */ + +/* Primality generation flags */ +#define LTM_PRIME_BBS 0x0001 /* BBS style prime */ +#define LTM_PRIME_SAFE 0x0002 /* Safe prime (p-1)/2 == prime */ +#define LTM_PRIME_2MSB_ON 0x0008 /* force 2nd MSB to 1 */ + +typedef int mp_err; + +/* define this to use lower memory usage routines (exptmods mostly) */ +#define MP_LOW_MEM + +/* default precision */ +#ifndef MP_PREC + #ifndef MP_LOW_MEM + #define MP_PREC 32 /* default digits of precision */ + #else + #define MP_PREC 1 /* default digits of precision */ + #endif +#endif + +/* size of comba arrays, should be at least 2 * 2**(BITS_PER_WORD - + BITS_PER_DIGIT*2) */ +#define MP_WARRAY (1 << (sizeof(mp_word) * CHAR_BIT - 2 * DIGIT_BIT + 1)) + +/* the infamous mp_int structure */ +typedef struct { + int used, alloc, sign; + mp_digit *dp; +} mp_int; + +/* callback for mp_prime_random, should fill dst with random bytes and return + how many read [upto len] */ +typedef int ltm_prime_callback(unsigned char *dst, int len, void *dat); + + +#define USED(m) ((m)->used) +#define DIGIT(m,k) ((m)->dp[(k)]) +#define SIGN(m) ((m)->sign) + + +/* ---> Basic Manipulations <--- */ +#define mp_iszero(a) (((a)->used == 0) ? MP_YES : MP_NO) +#define mp_iseven(a) \ + (((a)->used > 0 && (((a)->dp[0] & 1) == 0)) ? MP_YES : MP_NO) +#define mp_isodd(a) \ + (((a)->used > 0 && (((a)->dp[0] & 1) == 1)) ? MP_YES : MP_NO) + + +/* number of primes */ +#ifdef MP_8BIT + #define PRIME_SIZE 31 +#else + #define PRIME_SIZE 256 +#endif + +#define mp_prime_random(a, t, size, bbs, cb, dat) \ + mp_prime_random_ex(a, t, ((size) * 8) + 1, (bbs==1)?LTM_PRIME_BBS:0, cb, dat) + +#define mp_read_raw(mp, str, len) mp_read_signed_bin((mp), (str), (len)) +#define mp_raw_size(mp) mp_signed_bin_size(mp) +#define mp_toraw(mp, str) mp_to_signed_bin((mp), (str)) +#define mp_read_mag(mp, str, len) mp_read_unsigned_bin((mp), (str), (len)) +#define mp_mag_size(mp) mp_unsigned_bin_size(mp) +#define mp_tomag(mp, str) mp_to_unsigned_bin((mp), (str)) + +#define mp_tobinary(M, S) mp_toradix((M), (S), 2) +#define mp_tooctal(M, S) mp_toradix((M), (S), 8) +#define mp_todecimal(M, S) mp_toradix((M), (S), 10) +#define mp_tohex(M, S) mp_toradix((M), (S), 16) + +#define s_mp_mul(a, b, c) s_mp_mul_digs(a, b, c, (a)->used + (b)->used + 1) + +extern const char *mp_s_rmap; + +/* 6 functions needed by Rsa */ +int mp_init (mp_int * a); +void mp_clear (mp_int * a); +int mp_unsigned_bin_size(mp_int * a); +int mp_read_unsigned_bin (mp_int * a, const unsigned char *b, int c); +int mp_to_unsigned_bin (mp_int * a, unsigned char *b); +int mp_exptmod (mp_int * G, mp_int * X, mp_int * P, mp_int * Y); +/* end functions needed by Rsa */ + +/* functions added to support above needed, removed TOOM and KARATSUBA */ +int mp_count_bits (mp_int * a); +int mp_init_copy (mp_int * a, mp_int * b); +int mp_copy (mp_int * a, mp_int * b); +int mp_grow (mp_int * a, int size); +void bn_reverse (unsigned char *s, int len); +int mp_div_2d (mp_int * a, int b, mp_int * c, mp_int * d); +void mp_zero (mp_int * a); +void mp_clamp (mp_int * a); +void mp_exch (mp_int * a, mp_int * b); +void mp_rshd (mp_int * a, int b); +int mp_mod_2d (mp_int * a, int b, mp_int * c); +int mp_mul_2d (mp_int * a, int b, mp_int * c); +int mp_lshd (mp_int * a, int b); +int mp_abs (mp_int * a, mp_int * b); +int mp_invmod (mp_int * a, mp_int * b, mp_int * c); +int fast_mp_invmod (mp_int * a, mp_int * b, mp_int * c); +int mp_invmod_slow (mp_int * a, mp_int * b, mp_int * c); +int mp_cmp_mag (mp_int * a, mp_int * b); +int mp_cmp (mp_int * a, mp_int * b); +int mp_cmp_d(mp_int * a, mp_digit b); +void mp_set (mp_int * a, mp_digit b); +int mp_mod (mp_int * a, mp_int * b, mp_int * c); +int mp_div(mp_int * a, mp_int * b, mp_int * c, mp_int * d); +int mp_div_2(mp_int * a, mp_int * b); +int mp_add (mp_int * a, mp_int * b, mp_int * c); +int s_mp_add (mp_int * a, mp_int * b, mp_int * c); +int s_mp_sub (mp_int * a, mp_int * b, mp_int * c); +int mp_sub (mp_int * a, mp_int * b, mp_int * c); +int mp_reduce_is_2k_l(mp_int *a); +int mp_reduce_is_2k(mp_int *a); +int mp_dr_is_modulus(mp_int *a); +int mp_exptmod_fast (mp_int * G, mp_int * X, mp_int * P, mp_int * Y, int); +int mp_montgomery_setup (mp_int * n, mp_digit * rho); +int fast_mp_montgomery_reduce (mp_int * x, mp_int * n, mp_digit rho); +int mp_montgomery_reduce (mp_int * x, mp_int * n, mp_digit rho); +void mp_dr_setup(mp_int *a, mp_digit *d); +int mp_dr_reduce (mp_int * x, mp_int * n, mp_digit k); +int mp_reduce_2k(mp_int *a, mp_int *n, mp_digit d); +int fast_s_mp_mul_high_digs (mp_int * a, mp_int * b, mp_int * c, int digs); +int s_mp_mul_high_digs (mp_int * a, mp_int * b, mp_int * c, int digs); +int mp_reduce_2k_setup_l(mp_int *a, mp_int *d); +int mp_reduce_2k_l(mp_int *a, mp_int *n, mp_int *d); +int mp_reduce (mp_int * x, mp_int * m, mp_int * mu); +int mp_reduce_setup (mp_int * a, mp_int * b); +int s_mp_exptmod (mp_int * G, mp_int * X, mp_int * P, mp_int * Y, int redmode); +int mp_montgomery_calc_normalization (mp_int * a, mp_int * b); +int s_mp_mul_digs (mp_int * a, mp_int * b, mp_int * c, int digs); +int s_mp_sqr (mp_int * a, mp_int * b); +int fast_s_mp_mul_digs (mp_int * a, mp_int * b, mp_int * c, int digs); +int fast_s_mp_sqr (mp_int * a, mp_int * b); +int mp_init_size (mp_int * a, int size); +int mp_div_3 (mp_int * a, mp_int *c, mp_digit * d); +int mp_mul_2(mp_int * a, mp_int * b); +int mp_mul (mp_int * a, mp_int * b, mp_int * c); +int mp_sqr (mp_int * a, mp_int * b); +int mp_mulmod (mp_int * a, mp_int * b, mp_int * c, mp_int * d); +int mp_mul_d (mp_int * a, mp_digit b, mp_int * c); +int mp_2expt (mp_int * a, int b); +int mp_reduce_2k_setup(mp_int *a, mp_digit *d); +int mp_add_d (mp_int* a, mp_digit b, mp_int* c); +int mp_set_int (mp_int * a, unsigned long b); +/* end support added functions */ + +/* added */ +int mp_init_multi(mp_int* a, mp_int* b, mp_int* c, mp_int* d, mp_int* e, + mp_int* f); + +#if defined(HAVE_ECC) || defined(CYASSL_KEY_GEN) + int mp_sqrmod(mp_int* a, mp_int* b, mp_int* c); +#endif +#ifdef HAVE_ECC + int mp_read_radix(mp_int* a, const char* str, int radix); +#endif + +#ifdef CYASSL_KEY_GEN + int mp_prime_is_prime (mp_int * a, int t, int *result); + int mp_gcd (mp_int * a, mp_int * b, mp_int * c); + int mp_lcm (mp_int * a, mp_int * b, mp_int * c); +#endif + +#if defined(CYASSL_KEY_GEN) || defined(HAVE_ECC) || !defined(NO_PWDBASED) + int mp_sub_d (mp_int * a, mp_digit b, mp_int * c); +#endif + +#ifdef __cplusplus + } +#endif + + +#endif /* USE_FAST_MATH */ + +#endif /* CTAO_CRYPT_INTEGER_H */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/logging.h b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/logging.h new file mode 100644 index 000000000..efe3d3bfa --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/logging.h @@ -0,0 +1,70 @@ +/* logging.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +/* submitted by eof */ + + +#ifndef CYASSL_LOGGING_H +#define CYASSL_LOGGING_H + + +#ifdef __cplusplus + extern "C" { +#endif + + +enum CYA_Log_Levels { + ERROR_LOG = 0, + INFO_LOG, + ENTER_LOG, + LEAVE_LOG, + OTHER_LOG +}; + +typedef void (*CyaSSL_Logging_cb)(const int logLevel, + const char *const logMessage); + +CYASSL_API int CyaSSL_SetLoggingCb(CyaSSL_Logging_cb log_function); + + +#ifdef DEBUG_CYASSL + + void CYASSL_ENTER(const char* msg); + void CYASSL_LEAVE(const char* msg, int ret); + + void CYASSL_ERROR(int); + void CYASSL_MSG(const char* msg); + +#else /* DEBUG_CYASSL */ + + #define CYASSL_ENTER(m) + #define CYASSL_LEAVE(m, r) + + #define CYASSL_ERROR(e) + #define CYASSL_MSG(m) + +#endif /* DEBUG_CYASSL */ + +#ifdef __cplusplus +} +#endif + +#endif /* CYASSL_MEMORY_H */ diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/md4.h b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/md4.h new file mode 100644 index 000000000..f6e8c7b7a --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/md4.h @@ -0,0 +1,65 @@ +/* md4.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifndef NO_MD4 + +#ifndef CTAO_CRYPT_MD4_H +#define CTAO_CRYPT_MD4_H + +#include + +#ifdef __cplusplus + extern "C" { +#endif + + +/* in bytes */ +enum { + MD4_BLOCK_SIZE = 64, + MD4_DIGEST_SIZE = 16, + MD4_PAD_SIZE = 56 +}; + + +/* MD4 digest */ +typedef struct Md4 { + word32 buffLen; /* in bytes */ + word32 loLen; /* length in bytes */ + word32 hiLen; /* length in bytes */ + word32 digest[MD4_DIGEST_SIZE / sizeof(word32)]; + word32 buffer[MD4_BLOCK_SIZE / sizeof(word32)]; +} Md4; + + +CYASSL_API void InitMd4(Md4*); +CYASSL_API void Md4Update(Md4*, const byte*, word32); +CYASSL_API void Md4Final(Md4*, byte*); + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + +#endif /* CTAO_CRYPT_MD4_H */ + +#endif /* NO_MD4 */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/md5.h b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/md5.h new file mode 100644 index 000000000..2e6a46ddd --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/md5.h @@ -0,0 +1,62 @@ +/* md5.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifndef CTAO_CRYPT_MD5_H +#define CTAO_CRYPT_MD5_H + +#include + +#ifdef __cplusplus + extern "C" { +#endif + + +/* in bytes */ +enum { + MD5 = 0, /* hash type unique */ + MD5_BLOCK_SIZE = 64, + MD5_DIGEST_SIZE = 16, + MD5_PAD_SIZE = 56 +}; + + +/* MD5 digest */ +typedef struct Md5 { + word32 buffLen; /* in bytes */ + word32 loLen; /* length in bytes */ + word32 hiLen; /* length in bytes */ + word32 digest[MD5_DIGEST_SIZE / sizeof(word32)]; + word32 buffer[MD5_BLOCK_SIZE / sizeof(word32)]; +} Md5; + + +CYASSL_API void InitMd5(Md5*); +CYASSL_API void Md5Update(Md5*, const byte*, word32); +CYASSL_API void Md5Final(Md5*, byte*); + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + +#endif /* CTAO_CRYPT_MD5_H */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/memory.h b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/memory.h new file mode 100644 index 000000000..e1467bcf9 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/memory.h @@ -0,0 +1,55 @@ +/* memory.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +/* submitted by eof */ + + +#ifndef CYASSL_MEMORY_H +#define CYASSL_MEMORY_H + +#include + +#ifdef __cplusplus + extern "C" { +#endif + + +typedef void *(*CyaSSL_Malloc_cb)(size_t size); +typedef void (*CyaSSL_Free_cb)(void *ptr); +typedef void *(*CyaSSL_Realloc_cb)(void *ptr, size_t size); + + +/* Public set function */ +CYASSL_API int CyaSSL_SetAllocators(CyaSSL_Malloc_cb malloc_function, + CyaSSL_Free_cb free_function, + CyaSSL_Realloc_cb realloc_function); + +/* Public in case user app wants to use XMALLOC/XFREE */ +CYASSL_API void* CyaSSL_Malloc(size_t size); +CYASSL_API void CyaSSL_Free(void *ptr); +CYASSL_API void* CyaSSL_Realloc(void *ptr, size_t size); + + +#ifdef __cplusplus +} +#endif + +#endif /* CYASSL_MEMORY_H */ diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/misc.h b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/misc.h new file mode 100644 index 000000000..19aade3f9 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/misc.h @@ -0,0 +1,61 @@ +/* misc.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifndef CTAO_CRYPT_MISC_H +#define CTAO_CRYPT_MISC_H + + +#include + + +#ifdef __cplusplus + extern "C" { +#endif + + +#ifdef NO_INLINE +CYASSL_LOCAL +word32 rotlFixed(word32, word32); +CYASSL_LOCAL +word32 rotrFixed(word32, word32); + +CYASSL_LOCAL +word32 ByteReverseWord32(word32); +CYASSL_LOCAL +void ByteReverseWords(word32*, const word32*, word32); +CYASSL_LOCAL +void ByteReverseBytes(byte*, const byte*, word32); + +CYASSL_LOCAL +void XorWords(word*, const word*, word32); +CYASSL_LOCAL +void xorbuf(byte*, const byte*, word32); +#endif /* NO_INLINE */ + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + + +#endif /* CTAO_CRYPT_MISC_H */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/mpi_class.h b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/mpi_class.h new file mode 100644 index 000000000..1381a8666 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/mpi_class.h @@ -0,0 +1,1018 @@ +/* mpi_class.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#if !(defined(LTM1) && defined(LTM2) && defined(LTM3)) +#if defined(LTM2) +#define LTM3 +#endif +#if defined(LTM1) +#define LTM2 +#endif +#define LTM1 + +#if defined(LTM_ALL) +#define BN_ERROR_C +#define BN_FAST_MP_INVMOD_C +#define BN_FAST_MP_MONTGOMERY_REDUCE_C +#define BN_FAST_S_MP_MUL_DIGS_C +#define BN_FAST_S_MP_MUL_HIGH_DIGS_C +#define BN_FAST_S_MP_SQR_C +#define BN_MP_2EXPT_C +#define BN_MP_ABS_C +#define BN_MP_ADD_C +#define BN_MP_ADD_D_C +#define BN_MP_ADDMOD_C +#define BN_MP_AND_C +#define BN_MP_CLAMP_C +#define BN_MP_CLEAR_C +#define BN_MP_CLEAR_MULTI_C +#define BN_MP_CMP_C +#define BN_MP_CMP_D_C +#define BN_MP_CMP_MAG_C +#define BN_MP_CNT_LSB_C +#define BN_MP_COPY_C +#define BN_MP_COUNT_BITS_C +#define BN_MP_DIV_C +#define BN_MP_DIV_2_C +#define BN_MP_DIV_2D_C +#define BN_MP_DIV_3_C +#define BN_MP_DIV_D_C +#define BN_MP_DR_IS_MODULUS_C +#define BN_MP_DR_REDUCE_C +#define BN_MP_DR_SETUP_C +#define BN_MP_EXCH_C +#define BN_MP_EXPT_D_C +#define BN_MP_EXPTMOD_C +#define BN_MP_EXPTMOD_FAST_C +#define BN_MP_EXTEUCLID_C +#define BN_MP_FREAD_C +#define BN_MP_FWRITE_C +#define BN_MP_GCD_C +#define BN_MP_GET_INT_C +#define BN_MP_GROW_C +#define BN_MP_INIT_C +#define BN_MP_INIT_COPY_C +#define BN_MP_INIT_MULTI_C +#define BN_MP_INIT_SET_C +#define BN_MP_INIT_SET_INT_C +#define BN_MP_INIT_SIZE_C +#define BN_MP_INVMOD_C +#define BN_MP_INVMOD_SLOW_C +#define BN_MP_IS_SQUARE_C +#define BN_MP_JACOBI_C +#define BN_MP_KARATSUBA_MUL_C +#define BN_MP_KARATSUBA_SQR_C +#define BN_MP_LCM_C +#define BN_MP_LSHD_C +#define BN_MP_MOD_C +#define BN_MP_MOD_2D_C +#define BN_MP_MOD_D_C +#define BN_MP_MONTGOMERY_CALC_NORMALIZATION_C +#define BN_MP_MONTGOMERY_REDUCE_C +#define BN_MP_MONTGOMERY_SETUP_C +#define BN_MP_MUL_C +#define BN_MP_MUL_2_C +#define BN_MP_MUL_2D_C +#define BN_MP_MUL_D_C +#define BN_MP_MULMOD_C +#define BN_MP_N_ROOT_C +#define BN_MP_NEG_C +#define BN_MP_OR_C +#define BN_MP_PRIME_FERMAT_C +#define BN_MP_PRIME_IS_DIVISIBLE_C +#define BN_MP_PRIME_IS_PRIME_C +#define BN_MP_PRIME_MILLER_RABIN_C +#define BN_MP_PRIME_NEXT_PRIME_C +#define BN_MP_PRIME_RABIN_MILLER_TRIALS_C +#define BN_MP_PRIME_RANDOM_EX_C +#define BN_MP_RADIX_SIZE_C +#define BN_MP_RADIX_SMAP_C +#define BN_MP_RAND_C +#define BN_MP_READ_RADIX_C +#define BN_MP_READ_SIGNED_BIN_C +#define BN_MP_READ_UNSIGNED_BIN_C +#define BN_MP_REDUCE_C +#define BN_MP_REDUCE_2K_C +#define BN_MP_REDUCE_2K_L_C +#define BN_MP_REDUCE_2K_SETUP_C +#define BN_MP_REDUCE_2K_SETUP_L_C +#define BN_MP_REDUCE_IS_2K_C +#define BN_MP_REDUCE_IS_2K_L_C +#define BN_MP_REDUCE_SETUP_C +#define BN_MP_RSHD_C +#define BN_MP_SET_C +#define BN_MP_SET_INT_C +#define BN_MP_SHRINK_C +#define BN_MP_SIGNED_BIN_SIZE_C +#define BN_MP_SQR_C +#define BN_MP_SQRMOD_C +#define BN_MP_SQRT_C +#define BN_MP_SUB_C +#define BN_MP_SUB_D_C +#define BN_MP_SUBMOD_C +#define BN_MP_TO_SIGNED_BIN_C +#define BN_MP_TO_SIGNED_BIN_N_C +#define BN_MP_TO_UNSIGNED_BIN_C +#define BN_MP_TO_UNSIGNED_BIN_N_C +#define BN_MP_TOOM_MUL_C +#define BN_MP_TOOM_SQR_C +#define BN_MP_TORADIX_C +#define BN_MP_TORADIX_N_C +#define BN_MP_UNSIGNED_BIN_SIZE_C +#define BN_MP_XOR_C +#define BN_MP_ZERO_C +#define BN_PRIME_TAB_C +#define BN_REVERSE_C +#define BN_S_MP_ADD_C +#define BN_S_MP_EXPTMOD_C +#define BN_S_MP_MUL_DIGS_C +#define BN_S_MP_MUL_HIGH_DIGS_C +#define BN_S_MP_SQR_C +#define BN_S_MP_SUB_C +#define BNCORE_C +#endif + +#if defined(BN_ERROR_C) + #define BN_MP_ERROR_TO_STRING_C +#endif + +#if defined(BN_FAST_MP_INVMOD_C) + #define BN_MP_ISEVEN_C + #define BN_MP_INIT_MULTI_C + #define BN_MP_COPY_C + #define BN_MP_MOD_C + #define BN_MP_SET_C + #define BN_MP_DIV_2_C + #define BN_MP_ISODD_C + #define BN_MP_SUB_C + #define BN_MP_CMP_C + #define BN_MP_ISZERO_C + #define BN_MP_CMP_D_C + #define BN_MP_ADD_C + #define BN_MP_EXCH_C + #define BN_MP_CLEAR_MULTI_C +#endif + +#if defined(BN_FAST_MP_MONTGOMERY_REDUCE_C) + #define BN_MP_GROW_C + #define BN_MP_RSHD_C + #define BN_MP_CLAMP_C + #define BN_MP_CMP_MAG_C + #define BN_S_MP_SUB_C +#endif + +#if defined(BN_FAST_S_MP_MUL_DIGS_C) + #define BN_MP_GROW_C + #define BN_MP_CLAMP_C +#endif + +#if defined(BN_FAST_S_MP_MUL_HIGH_DIGS_C) + #define BN_MP_GROW_C + #define BN_MP_CLAMP_C +#endif + +#if defined(BN_FAST_S_MP_SQR_C) + #define BN_MP_GROW_C + #define BN_MP_CLAMP_C +#endif + +#if defined(BN_MP_2EXPT_C) + #define BN_MP_ZERO_C + #define BN_MP_GROW_C +#endif + +#if defined(BN_MP_ABS_C) + #define BN_MP_COPY_C +#endif + +#if defined(BN_MP_ADD_C) + #define BN_S_MP_ADD_C + #define BN_MP_CMP_MAG_C + #define BN_S_MP_SUB_C +#endif + +#if defined(BN_MP_ADD_D_C) + #define BN_MP_GROW_C + #define BN_MP_SUB_D_C + #define BN_MP_CLAMP_C +#endif + +#if defined(BN_MP_ADDMOD_C) + #define BN_MP_INIT_C + #define BN_MP_ADD_C + #define BN_MP_CLEAR_C + #define BN_MP_MOD_C +#endif + +#if defined(BN_MP_AND_C) + #define BN_MP_INIT_COPY_C + #define BN_MP_CLAMP_C + #define BN_MP_EXCH_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_CLAMP_C) +#endif + +#if defined(BN_MP_CLEAR_C) +#endif + +#if defined(BN_MP_CLEAR_MULTI_C) + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_CMP_C) + #define BN_MP_CMP_MAG_C +#endif + +#if defined(BN_MP_CMP_D_C) +#endif + +#if defined(BN_MP_CMP_MAG_C) +#endif + +#if defined(BN_MP_CNT_LSB_C) + #define BN_MP_ISZERO_C +#endif + +#if defined(BN_MP_COPY_C) + #define BN_MP_GROW_C +#endif + +#if defined(BN_MP_COUNT_BITS_C) +#endif + +#if defined(BN_MP_DIV_C) + #define BN_MP_ISZERO_C + #define BN_MP_CMP_MAG_C + #define BN_MP_COPY_C + #define BN_MP_ZERO_C + #define BN_MP_INIT_MULTI_C + #define BN_MP_SET_C + #define BN_MP_COUNT_BITS_C + #define BN_MP_ABS_C + #define BN_MP_MUL_2D_C + #define BN_MP_CMP_C + #define BN_MP_SUB_C + #define BN_MP_ADD_C + #define BN_MP_DIV_2D_C + #define BN_MP_EXCH_C + #define BN_MP_CLEAR_MULTI_C + #define BN_MP_INIT_SIZE_C + #define BN_MP_INIT_C + #define BN_MP_INIT_COPY_C + #define BN_MP_LSHD_C + #define BN_MP_RSHD_C + #define BN_MP_MUL_D_C + #define BN_MP_CLAMP_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_DIV_2_C) + #define BN_MP_GROW_C + #define BN_MP_CLAMP_C +#endif + +#if defined(BN_MP_DIV_2D_C) + #define BN_MP_COPY_C + #define BN_MP_ZERO_C + #define BN_MP_INIT_C + #define BN_MP_MOD_2D_C + #define BN_MP_CLEAR_C + #define BN_MP_RSHD_C + #define BN_MP_CLAMP_C + #define BN_MP_EXCH_C +#endif + +#if defined(BN_MP_DIV_3_C) + #define BN_MP_INIT_SIZE_C + #define BN_MP_CLAMP_C + #define BN_MP_EXCH_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_DIV_D_C) + #define BN_MP_ISZERO_C + #define BN_MP_COPY_C + #define BN_MP_DIV_2D_C + #define BN_MP_DIV_3_C + #define BN_MP_INIT_SIZE_C + #define BN_MP_CLAMP_C + #define BN_MP_EXCH_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_DR_IS_MODULUS_C) +#endif + +#if defined(BN_MP_DR_REDUCE_C) + #define BN_MP_GROW_C + #define BN_MP_CLAMP_C + #define BN_MP_CMP_MAG_C + #define BN_S_MP_SUB_C +#endif + +#if defined(BN_MP_DR_SETUP_C) +#endif + +#if defined(BN_MP_EXCH_C) +#endif + +#if defined(BN_MP_EXPT_D_C) + #define BN_MP_INIT_COPY_C + #define BN_MP_SET_C + #define BN_MP_SQR_C + #define BN_MP_CLEAR_C + #define BN_MP_MUL_C +#endif + +#if defined(BN_MP_EXPTMOD_C) + #define BN_MP_INIT_C + #define BN_MP_INVMOD_C + #define BN_MP_CLEAR_C + #define BN_MP_ABS_C + #define BN_MP_CLEAR_MULTI_C + #define BN_MP_REDUCE_IS_2K_L_C + #define BN_S_MP_EXPTMOD_C + #define BN_MP_DR_IS_MODULUS_C + #define BN_MP_REDUCE_IS_2K_C + #define BN_MP_ISODD_C + #define BN_MP_EXPTMOD_FAST_C +#endif + +#if defined(BN_MP_EXPTMOD_FAST_C) + #define BN_MP_COUNT_BITS_C + #define BN_MP_INIT_C + #define BN_MP_CLEAR_C + #define BN_MP_MONTGOMERY_SETUP_C + #define BN_FAST_MP_MONTGOMERY_REDUCE_C + #define BN_MP_MONTGOMERY_REDUCE_C + #define BN_MP_DR_SETUP_C + #define BN_MP_DR_REDUCE_C + #define BN_MP_REDUCE_2K_SETUP_C + #define BN_MP_REDUCE_2K_C + #define BN_MP_MONTGOMERY_CALC_NORMALIZATION_C + #define BN_MP_MULMOD_C + #define BN_MP_SET_C + #define BN_MP_MOD_C + #define BN_MP_COPY_C + #define BN_MP_SQR_C + #define BN_MP_MUL_C + #define BN_MP_EXCH_C +#endif + +#if defined(BN_MP_EXTEUCLID_C) + #define BN_MP_INIT_MULTI_C + #define BN_MP_SET_C + #define BN_MP_COPY_C + #define BN_MP_ISZERO_C + #define BN_MP_DIV_C + #define BN_MP_MUL_C + #define BN_MP_SUB_C + #define BN_MP_NEG_C + #define BN_MP_EXCH_C + #define BN_MP_CLEAR_MULTI_C +#endif + +#if defined(BN_MP_FREAD_C) + #define BN_MP_ZERO_C + #define BN_MP_S_RMAP_C + #define BN_MP_MUL_D_C + #define BN_MP_ADD_D_C + #define BN_MP_CMP_D_C +#endif + +#if defined(BN_MP_FWRITE_C) + #define BN_MP_RADIX_SIZE_C + #define BN_MP_TORADIX_C +#endif + +#if defined(BN_MP_GCD_C) + #define BN_MP_ISZERO_C + #define BN_MP_ABS_C + #define BN_MP_ZERO_C + #define BN_MP_INIT_COPY_C + #define BN_MP_CNT_LSB_C + #define BN_MP_DIV_2D_C + #define BN_MP_CMP_MAG_C + #define BN_MP_EXCH_C + #define BN_S_MP_SUB_C + #define BN_MP_MUL_2D_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_GET_INT_C) +#endif + +#if defined(BN_MP_GROW_C) +#endif + +#if defined(BN_MP_INIT_C) +#endif + +#if defined(BN_MP_INIT_COPY_C) + #define BN_MP_COPY_C +#endif + +#if defined(BN_MP_INIT_MULTI_C) + #define BN_MP_ERR_C + #define BN_MP_INIT_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_INIT_SET_C) + #define BN_MP_INIT_C + #define BN_MP_SET_C +#endif + +#if defined(BN_MP_INIT_SET_INT_C) + #define BN_MP_INIT_C + #define BN_MP_SET_INT_C +#endif + +#if defined(BN_MP_INIT_SIZE_C) + #define BN_MP_INIT_C +#endif + +#if defined(BN_MP_INVMOD_C) + #define BN_MP_ISZERO_C + #define BN_MP_ISODD_C + #define BN_FAST_MP_INVMOD_C + #define BN_MP_INVMOD_SLOW_C +#endif + +#if defined(BN_MP_INVMOD_SLOW_C) + #define BN_MP_ISZERO_C + #define BN_MP_INIT_MULTI_C + #define BN_MP_MOD_C + #define BN_MP_COPY_C + #define BN_MP_ISEVEN_C + #define BN_MP_SET_C + #define BN_MP_DIV_2_C + #define BN_MP_ISODD_C + #define BN_MP_ADD_C + #define BN_MP_SUB_C + #define BN_MP_CMP_C + #define BN_MP_CMP_D_C + #define BN_MP_CMP_MAG_C + #define BN_MP_EXCH_C + #define BN_MP_CLEAR_MULTI_C +#endif + +#if defined(BN_MP_IS_SQUARE_C) + #define BN_MP_MOD_D_C + #define BN_MP_INIT_SET_INT_C + #define BN_MP_MOD_C + #define BN_MP_GET_INT_C + #define BN_MP_SQRT_C + #define BN_MP_SQR_C + #define BN_MP_CMP_MAG_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_JACOBI_C) + #define BN_MP_CMP_D_C + #define BN_MP_ISZERO_C + #define BN_MP_INIT_COPY_C + #define BN_MP_CNT_LSB_C + #define BN_MP_DIV_2D_C + #define BN_MP_MOD_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_KARATSUBA_MUL_C) + #define BN_MP_MUL_C + #define BN_MP_INIT_SIZE_C + #define BN_MP_CLAMP_C + #define BN_MP_SUB_C + #define BN_MP_ADD_C + #define BN_MP_LSHD_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_KARATSUBA_SQR_C) + #define BN_MP_INIT_SIZE_C + #define BN_MP_CLAMP_C + #define BN_MP_SQR_C + #define BN_MP_SUB_C + #define BN_S_MP_ADD_C + #define BN_MP_LSHD_C + #define BN_MP_ADD_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_LCM_C) + #define BN_MP_INIT_MULTI_C + #define BN_MP_GCD_C + #define BN_MP_CMP_MAG_C + #define BN_MP_DIV_C + #define BN_MP_MUL_C + #define BN_MP_CLEAR_MULTI_C +#endif + +#if defined(BN_MP_LSHD_C) + #define BN_MP_GROW_C + #define BN_MP_RSHD_C +#endif + +#if defined(BN_MP_MOD_C) + #define BN_MP_INIT_C + #define BN_MP_DIV_C + #define BN_MP_CLEAR_C + #define BN_MP_ADD_C + #define BN_MP_EXCH_C +#endif + +#if defined(BN_MP_MOD_2D_C) + #define BN_MP_ZERO_C + #define BN_MP_COPY_C + #define BN_MP_CLAMP_C +#endif + +#if defined(BN_MP_MOD_D_C) + #define BN_MP_DIV_D_C +#endif + +#if defined(BN_MP_MONTGOMERY_CALC_NORMALIZATION_C) + #define BN_MP_COUNT_BITS_C + #define BN_MP_2EXPT_C + #define BN_MP_SET_C + #define BN_MP_MUL_2_C + #define BN_MP_CMP_MAG_C + #define BN_S_MP_SUB_C +#endif + +#if defined(BN_MP_MONTGOMERY_REDUCE_C) + #define BN_FAST_MP_MONTGOMERY_REDUCE_C + #define BN_MP_GROW_C + #define BN_MP_CLAMP_C + #define BN_MP_RSHD_C + #define BN_MP_CMP_MAG_C + #define BN_S_MP_SUB_C +#endif + +#if defined(BN_MP_MONTGOMERY_SETUP_C) +#endif + +#if defined(BN_MP_MUL_C) + #define BN_MP_TOOM_MUL_C + #define BN_MP_KARATSUBA_MUL_C + #define BN_FAST_S_MP_MUL_DIGS_C + #define BN_S_MP_MUL_C + #define BN_S_MP_MUL_DIGS_C +#endif + +#if defined(BN_MP_MUL_2_C) + #define BN_MP_GROW_C +#endif + +#if defined(BN_MP_MUL_2D_C) + #define BN_MP_COPY_C + #define BN_MP_GROW_C + #define BN_MP_LSHD_C + #define BN_MP_CLAMP_C +#endif + +#if defined(BN_MP_MUL_D_C) + #define BN_MP_GROW_C + #define BN_MP_CLAMP_C +#endif + +#if defined(BN_MP_MULMOD_C) + #define BN_MP_INIT_C + #define BN_MP_MUL_C + #define BN_MP_CLEAR_C + #define BN_MP_MOD_C +#endif + +#if defined(BN_MP_N_ROOT_C) + #define BN_MP_INIT_C + #define BN_MP_SET_C + #define BN_MP_COPY_C + #define BN_MP_EXPT_D_C + #define BN_MP_MUL_C + #define BN_MP_SUB_C + #define BN_MP_MUL_D_C + #define BN_MP_DIV_C + #define BN_MP_CMP_C + #define BN_MP_SUB_D_C + #define BN_MP_EXCH_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_NEG_C) + #define BN_MP_COPY_C + #define BN_MP_ISZERO_C +#endif + +#if defined(BN_MP_OR_C) + #define BN_MP_INIT_COPY_C + #define BN_MP_CLAMP_C + #define BN_MP_EXCH_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_PRIME_FERMAT_C) + #define BN_MP_CMP_D_C + #define BN_MP_INIT_C + #define BN_MP_EXPTMOD_C + #define BN_MP_CMP_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_PRIME_IS_DIVISIBLE_C) + #define BN_MP_MOD_D_C +#endif + +#if defined(BN_MP_PRIME_IS_PRIME_C) + #define BN_MP_CMP_D_C + #define BN_MP_PRIME_IS_DIVISIBLE_C + #define BN_MP_INIT_C + #define BN_MP_SET_C + #define BN_MP_PRIME_MILLER_RABIN_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_PRIME_MILLER_RABIN_C) + #define BN_MP_CMP_D_C + #define BN_MP_INIT_COPY_C + #define BN_MP_SUB_D_C + #define BN_MP_CNT_LSB_C + #define BN_MP_DIV_2D_C + #define BN_MP_EXPTMOD_C + #define BN_MP_CMP_C + #define BN_MP_SQRMOD_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_PRIME_NEXT_PRIME_C) + #define BN_MP_CMP_D_C + #define BN_MP_SET_C + #define BN_MP_SUB_D_C + #define BN_MP_ISEVEN_C + #define BN_MP_MOD_D_C + #define BN_MP_INIT_C + #define BN_MP_ADD_D_C + #define BN_MP_PRIME_MILLER_RABIN_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_PRIME_RABIN_MILLER_TRIALS_C) +#endif + +#if defined(BN_MP_PRIME_RANDOM_EX_C) + #define BN_MP_READ_UNSIGNED_BIN_C + #define BN_MP_PRIME_IS_PRIME_C + #define BN_MP_SUB_D_C + #define BN_MP_DIV_2_C + #define BN_MP_MUL_2_C + #define BN_MP_ADD_D_C +#endif + +#if defined(BN_MP_RADIX_SIZE_C) + #define BN_MP_COUNT_BITS_C + #define BN_MP_INIT_COPY_C + #define BN_MP_ISZERO_C + #define BN_MP_DIV_D_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_RADIX_SMAP_C) + #define BN_MP_S_RMAP_C +#endif + +#if defined(BN_MP_RAND_C) + #define BN_MP_ZERO_C + #define BN_MP_ADD_D_C + #define BN_MP_LSHD_C +#endif + +#if defined(BN_MP_READ_RADIX_C) + #define BN_MP_ZERO_C + #define BN_MP_S_RMAP_C + #define BN_MP_RADIX_SMAP_C + #define BN_MP_MUL_D_C + #define BN_MP_ADD_D_C + #define BN_MP_ISZERO_C +#endif + +#if defined(BN_MP_READ_SIGNED_BIN_C) + #define BN_MP_READ_UNSIGNED_BIN_C +#endif + +#if defined(BN_MP_READ_UNSIGNED_BIN_C) + #define BN_MP_GROW_C + #define BN_MP_ZERO_C + #define BN_MP_MUL_2D_C + #define BN_MP_CLAMP_C +#endif + +#if defined(BN_MP_REDUCE_C) + #define BN_MP_REDUCE_SETUP_C + #define BN_MP_INIT_COPY_C + #define BN_MP_RSHD_C + #define BN_MP_MUL_C + #define BN_S_MP_MUL_HIGH_DIGS_C + #define BN_FAST_S_MP_MUL_HIGH_DIGS_C + #define BN_MP_MOD_2D_C + #define BN_S_MP_MUL_DIGS_C + #define BN_MP_SUB_C + #define BN_MP_CMP_D_C + #define BN_MP_SET_C + #define BN_MP_LSHD_C + #define BN_MP_ADD_C + #define BN_MP_CMP_C + #define BN_S_MP_SUB_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_REDUCE_2K_C) + #define BN_MP_INIT_C + #define BN_MP_COUNT_BITS_C + #define BN_MP_DIV_2D_C + #define BN_MP_MUL_D_C + #define BN_S_MP_ADD_C + #define BN_MP_CMP_MAG_C + #define BN_S_MP_SUB_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_REDUCE_2K_L_C) + #define BN_MP_INIT_C + #define BN_MP_COUNT_BITS_C + #define BN_MP_DIV_2D_C + #define BN_MP_MUL_C + #define BN_S_MP_ADD_C + #define BN_MP_CMP_MAG_C + #define BN_S_MP_SUB_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_REDUCE_2K_SETUP_C) + #define BN_MP_INIT_C + #define BN_MP_COUNT_BITS_C + #define BN_MP_2EXPT_C + #define BN_MP_CLEAR_C + #define BN_S_MP_SUB_C +#endif + +#if defined(BN_MP_REDUCE_2K_SETUP_L_C) + #define BN_MP_INIT_C + #define BN_MP_2EXPT_C + #define BN_MP_COUNT_BITS_C + #define BN_S_MP_SUB_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_REDUCE_IS_2K_C) + #define BN_MP_REDUCE_2K_C + #define BN_MP_COUNT_BITS_C +#endif + +#if defined(BN_MP_REDUCE_IS_2K_L_C) +#endif + +#if defined(BN_MP_REDUCE_SETUP_C) + #define BN_MP_2EXPT_C + #define BN_MP_DIV_C +#endif + +#if defined(BN_MP_RSHD_C) + #define BN_MP_ZERO_C +#endif + +#if defined(BN_MP_SET_C) + #define BN_MP_ZERO_C +#endif + +#if defined(BN_MP_SET_INT_C) + #define BN_MP_ZERO_C + #define BN_MP_MUL_2D_C + #define BN_MP_CLAMP_C +#endif + +#if defined(BN_MP_SHRINK_C) +#endif + +#if defined(BN_MP_SIGNED_BIN_SIZE_C) + #define BN_MP_UNSIGNED_BIN_SIZE_C +#endif + +#if defined(BN_MP_SQR_C) + #define BN_MP_TOOM_SQR_C + #define BN_MP_KARATSUBA_SQR_C + #define BN_FAST_S_MP_SQR_C + #define BN_S_MP_SQR_C +#endif + +#if defined(BN_MP_SQRMOD_C) + #define BN_MP_INIT_C + #define BN_MP_SQR_C + #define BN_MP_CLEAR_C + #define BN_MP_MOD_C +#endif + +#if defined(BN_MP_SQRT_C) + #define BN_MP_N_ROOT_C + #define BN_MP_ISZERO_C + #define BN_MP_ZERO_C + #define BN_MP_INIT_COPY_C + #define BN_MP_RSHD_C + #define BN_MP_DIV_C + #define BN_MP_ADD_C + #define BN_MP_DIV_2_C + #define BN_MP_CMP_MAG_C + #define BN_MP_EXCH_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_SUB_C) + #define BN_S_MP_ADD_C + #define BN_MP_CMP_MAG_C + #define BN_S_MP_SUB_C +#endif + +#if defined(BN_MP_SUB_D_C) + #define BN_MP_GROW_C + #define BN_MP_ADD_D_C + #define BN_MP_CLAMP_C +#endif + +#if defined(BN_MP_SUBMOD_C) + #define BN_MP_INIT_C + #define BN_MP_SUB_C + #define BN_MP_CLEAR_C + #define BN_MP_MOD_C +#endif + +#if defined(BN_MP_TO_SIGNED_BIN_C) + #define BN_MP_TO_UNSIGNED_BIN_C +#endif + +#if defined(BN_MP_TO_SIGNED_BIN_N_C) + #define BN_MP_SIGNED_BIN_SIZE_C + #define BN_MP_TO_SIGNED_BIN_C +#endif + +#if defined(BN_MP_TO_UNSIGNED_BIN_C) + #define BN_MP_INIT_COPY_C + #define BN_MP_ISZERO_C + #define BN_MP_DIV_2D_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_TO_UNSIGNED_BIN_N_C) + #define BN_MP_UNSIGNED_BIN_SIZE_C + #define BN_MP_TO_UNSIGNED_BIN_C +#endif + +#if defined(BN_MP_TOOM_MUL_C) + #define BN_MP_INIT_MULTI_C + #define BN_MP_MOD_2D_C + #define BN_MP_COPY_C + #define BN_MP_RSHD_C + #define BN_MP_MUL_C + #define BN_MP_MUL_2_C + #define BN_MP_ADD_C + #define BN_MP_SUB_C + #define BN_MP_DIV_2_C + #define BN_MP_MUL_2D_C + #define BN_MP_MUL_D_C + #define BN_MP_DIV_3_C + #define BN_MP_LSHD_C + #define BN_MP_CLEAR_MULTI_C +#endif + +#if defined(BN_MP_TOOM_SQR_C) + #define BN_MP_INIT_MULTI_C + #define BN_MP_MOD_2D_C + #define BN_MP_COPY_C + #define BN_MP_RSHD_C + #define BN_MP_SQR_C + #define BN_MP_MUL_2_C + #define BN_MP_ADD_C + #define BN_MP_SUB_C + #define BN_MP_DIV_2_C + #define BN_MP_MUL_2D_C + #define BN_MP_MUL_D_C + #define BN_MP_DIV_3_C + #define BN_MP_LSHD_C + #define BN_MP_CLEAR_MULTI_C +#endif + +#if defined(BN_MP_TORADIX_C) + #define BN_MP_ISZERO_C + #define BN_MP_INIT_COPY_C + #define BN_MP_DIV_D_C + #define BN_MP_CLEAR_C + #define BN_MP_S_RMAP_C +#endif + +#if defined(BN_MP_TORADIX_N_C) + #define BN_MP_ISZERO_C + #define BN_MP_INIT_COPY_C + #define BN_MP_DIV_D_C + #define BN_MP_CLEAR_C + #define BN_MP_S_RMAP_C +#endif + +#if defined(BN_MP_UNSIGNED_BIN_SIZE_C) + #define BN_MP_COUNT_BITS_C +#endif + +#if defined(BN_MP_XOR_C) + #define BN_MP_INIT_COPY_C + #define BN_MP_CLAMP_C + #define BN_MP_EXCH_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_ZERO_C) +#endif + +#if defined(BN_PRIME_TAB_C) +#endif + +#if defined(BN_REVERSE_C) +#endif + +#if defined(BN_S_MP_ADD_C) + #define BN_MP_GROW_C + #define BN_MP_CLAMP_C +#endif + +#if defined(BN_S_MP_EXPTMOD_C) + #define BN_MP_COUNT_BITS_C + #define BN_MP_INIT_C + #define BN_MP_CLEAR_C + #define BN_MP_REDUCE_SETUP_C + #define BN_MP_REDUCE_C + #define BN_MP_REDUCE_2K_SETUP_L_C + #define BN_MP_REDUCE_2K_L_C + #define BN_MP_MOD_C + #define BN_MP_COPY_C + #define BN_MP_SQR_C + #define BN_MP_MUL_C + #define BN_MP_SET_C + #define BN_MP_EXCH_C +#endif + +#if defined(BN_S_MP_MUL_DIGS_C) + #define BN_FAST_S_MP_MUL_DIGS_C + #define BN_MP_INIT_SIZE_C + #define BN_MP_CLAMP_C + #define BN_MP_EXCH_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_S_MP_MUL_HIGH_DIGS_C) + #define BN_FAST_S_MP_MUL_HIGH_DIGS_C + #define BN_MP_INIT_SIZE_C + #define BN_MP_CLAMP_C + #define BN_MP_EXCH_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_S_MP_SQR_C) + #define BN_MP_INIT_SIZE_C + #define BN_MP_CLAMP_C + #define BN_MP_EXCH_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_S_MP_SUB_C) + #define BN_MP_GROW_C + #define BN_MP_CLAMP_C +#endif + +#if defined(BNCORE_C) +#endif + +#ifdef LTM3 +#define LTM_LAST +#endif +#include "mpi_superclass.h" +#include "mpi_class.h" +#else +#define LTM_LAST +#endif + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/mpi_superclass.h b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/mpi_superclass.h new file mode 100644 index 000000000..60d6e3404 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/mpi_superclass.h @@ -0,0 +1,95 @@ +/* mpi_superclass.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +/* super class file for PK algos */ + +/* default ... include all MPI */ +#define LTM_ALL + +/* RSA only (does not support DH/DSA/ECC) */ +/* #define SC_RSA_1 */ + +/* For reference.... On an Athlon64 optimizing for speed... + + LTM's mpi.o with all functions [striped] is 142KiB in size. + +*/ + +/* Works for RSA only, mpi.o is 68KiB */ +#ifdef SC_RSA_1 + #define BN_MP_SHRINK_C + #define BN_MP_LCM_C + #define BN_MP_PRIME_RANDOM_EX_C + #define BN_MP_INVMOD_C + #define BN_MP_GCD_C + #define BN_MP_MOD_C + #define BN_MP_MULMOD_C + #define BN_MP_ADDMOD_C + #define BN_MP_EXPTMOD_C + #define BN_MP_SET_INT_C + #define BN_MP_INIT_MULTI_C + #define BN_MP_CLEAR_MULTI_C + #define BN_MP_UNSIGNED_BIN_SIZE_C + #define BN_MP_TO_UNSIGNED_BIN_C + #define BN_MP_MOD_D_C + #define BN_MP_PRIME_RABIN_MILLER_TRIALS_C + #define BN_REVERSE_C + #define BN_PRIME_TAB_C + + /* other modifiers */ + #define BN_MP_DIV_SMALL /* Slower division, not critical */ + + /* here we are on the last pass so we turn things off. The functions classes are still there + * but we remove them specifically from the build. This also invokes tweaks in functions + * like removing support for even moduli, etc... + */ +#ifdef LTM_LAST + #undef BN_MP_TOOM_MUL_C + #undef BN_MP_TOOM_SQR_C + #undef BN_MP_KARATSUBA_MUL_C + #undef BN_MP_KARATSUBA_SQR_C + #undef BN_MP_REDUCE_C + #undef BN_MP_REDUCE_SETUP_C + #undef BN_MP_DR_IS_MODULUS_C + #undef BN_MP_DR_SETUP_C + #undef BN_MP_DR_REDUCE_C + #undef BN_MP_REDUCE_IS_2K_C + #undef BN_MP_REDUCE_2K_SETUP_C + #undef BN_MP_REDUCE_2K_C + #undef BN_S_MP_EXPTMOD_C + #undef BN_MP_DIV_3_C + #undef BN_S_MP_MUL_HIGH_DIGS_C + #undef BN_FAST_S_MP_MUL_HIGH_DIGS_C + #undef BN_FAST_MP_INVMOD_C + + /* To safely undefine these you have to make sure your RSA key won't exceed the Comba threshold + * which is roughly 255 digits [7140 bits for 32-bit machines, 15300 bits for 64-bit machines] + * which means roughly speaking you can handle upto 2536-bit RSA keys with these defined without + * trouble. + */ + #undef BN_S_MP_MUL_DIGS_C + #undef BN_S_MP_SQR_C + #undef BN_MP_MONTGOMERY_REDUCE_C +#endif + +#endif + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/pwdbased.h b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/pwdbased.h new file mode 100644 index 000000000..27029eaa5 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/pwdbased.h @@ -0,0 +1,53 @@ +/* pwdbased.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifndef NO_PWDBASED + +#ifndef CTAO_CRYPT_PWDBASED_H +#define CTAO_CRYPT_PWDBASED_H + +#include +#include /* for hash type */ +#include + +#ifdef __cplusplus + extern "C" { +#endif + + +CYASSL_API int PBKDF1(byte* output, const byte* passwd, int pLen, + const byte* salt, int sLen, int iterations, int kLen, + int hashType); +CYASSL_API int PBKDF2(byte* output, const byte* passwd, int pLen, + const byte* salt, int sLen, int iterations, int kLen, + int hashType); +CYASSL_API int PKCS12_PBKDF(byte* output, const byte* passwd, int pLen, + const byte* salt, int sLen, int iterations, + int kLen, int hashType, int purpose); + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + +#endif /* CTAO_CRYPT_PWDBASED_H */ +#endif /* NO_PWDBASED */ diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/rabbit.h b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/rabbit.h new file mode 100644 index 000000000..ea1ea9f16 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/rabbit.h @@ -0,0 +1,65 @@ +/* rabbit.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifndef NO_RABBIT + +#ifndef CTAO_CRYPT_RABBIT_H +#define CTAO_CRYPT_RABBIT_H + +#include + +#ifdef __cplusplus + extern "C" { +#endif + + +enum { + RABBIT_ENC_TYPE = 5 /* cipher unique type */ +}; + + +/* Rabbit Context */ +typedef struct RabbitCtx { + word32 x[8]; + word32 c[8]; + word32 carry; +} RabbitCtx; + + +/* Rabbit stream cipher */ +typedef struct Rabbit { + RabbitCtx masterCtx; + RabbitCtx workCtx; +} Rabbit; + + +CYASSL_API void RabbitProcess(Rabbit*, byte*, const byte*, word32); +CYASSL_API void RabbitSetKey(Rabbit*, const byte* key, const byte* iv); + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + +#endif /* CTAO_CRYPT_RABBIT_H */ + +#endif /* NO_RABBIT */ diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/random.h b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/random.h new file mode 100644 index 000000000..3bd911b51 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/random.h @@ -0,0 +1,73 @@ +/* random.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifndef CTAO_CRYPT_RANDOM_H +#define CTAO_CRYPT_RANDOM_H + +#include + +#ifdef __cplusplus + extern "C" { +#endif + + +#if defined(USE_WINDOWS_API) + #if defined(_WIN64) + typedef unsigned __int64 ProviderHandle; + /* type HCRYPTPROV, avoid #include */ + #else + typedef unsigned long ProviderHandle; + #endif +#endif + + +/* OS specific seeder */ +typedef struct OS_Seed { + #if defined(USE_WINDOWS_API) + ProviderHandle handle; + #else + int fd; + #endif +} OS_Seed; + +CYASSL_LOCAL +int GenerateSeed(OS_Seed* os, byte* seed, word32 sz); + + +/* secure Random Nnumber Generator */ +typedef struct RNG { + OS_Seed seed; + Arc4 cipher; +} RNG; + + +CYASSL_API int InitRng(RNG*); +CYASSL_API void RNG_GenerateBlock(RNG*, byte*, word32 sz); +CYASSL_API byte RNG_GenerateByte(RNG*); + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + +#endif /* CTAO_CRYPT_RANDOM_H */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/ripemd.h b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/ripemd.h new file mode 100644 index 000000000..5895cce26 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/ripemd.h @@ -0,0 +1,64 @@ +/* ripemd.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifdef CYASSL_RIPEMD + +#ifndef CTAO_CRYPT_RIPEMD_H +#define CTAO_CRYPT_RIPEME_H + +#include + +#ifdef __cplusplus + extern "C" { +#endif + + +/* in bytes */ +enum { + RIPEMD = 3, /* hash type unique */ + RIPEMD_BLOCK_SIZE = 64, + RIPEMD_DIGEST_SIZE = 20, + RIPEMD_PAD_SIZE = 56 +}; + + +/* RipeMd 160 digest */ +typedef struct RipeMd { + word32 buffLen; /* in bytes */ + word32 loLen; /* length in bytes */ + word32 hiLen; /* length in bytes */ + word32 digest[RIPEMD_DIGEST_SIZE / sizeof(word32)]; + word32 buffer[RIPEMD_BLOCK_SIZE / sizeof(word32)]; +} RipeMd; + + +CYASSL_API void InitRipeMd(RipeMd*); +CYASSL_API void RipeMdUpdate(RipeMd*, const byte*, word32); +CYASSL_API void RipeMdFinal(RipeMd*, byte*); + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + +#endif /* CTAO_CRYPT_RIPEMD_H */ +#endif /* CYASSL_RIPEMD */ diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/rsa.h b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/rsa.h new file mode 100644 index 000000000..70e3fcd1a --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/rsa.h @@ -0,0 +1,81 @@ +/* rsa.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifndef CTAO_CRYPT_RSA_H +#define CTAO_CRYPT_RSA_H + +#include +#include +#include + +#ifdef __cplusplus + extern "C" { +#endif + + +enum { + RSA_PUBLIC = 0, + RSA_PRIVATE = 1 +}; + +/* RSA */ +typedef struct RsaKey { + mp_int n, e, d, p, q, dP, dQ, u; + int type; /* public or private */ + void* heap; /* for user memory overrides */ +} RsaKey; + + +CYASSL_API void InitRsaKey(RsaKey* key, void*); +CYASSL_API void FreeRsaKey(RsaKey* key); + +CYASSL_API int RsaPublicEncrypt(const byte* in, word32 inLen, byte* out, + word32 outLen, RsaKey* key, RNG* rng); +CYASSL_API int RsaPrivateDecryptInline(byte* in, word32 inLen, byte** out, + RsaKey* key); +CYASSL_API int RsaPrivateDecrypt(const byte* in, word32 inLen, byte* out, + word32 outLen, RsaKey* key); +CYASSL_API int RsaSSL_Sign(const byte* in, word32 inLen, byte* out, + word32 outLen, RsaKey* key, RNG* rng); +CYASSL_API int RsaSSL_VerifyInline(byte* in, word32 inLen, byte** out, + RsaKey* key); +CYASSL_API int RsaSSL_Verify(const byte* in, word32 inLen, byte* out, + word32 outLen, RsaKey* key); +CYASSL_API int RsaEncryptSize(RsaKey* key); + +CYASSL_API int RsaPrivateKeyDecode(const byte* input, word32* inOutIdx, RsaKey*, + word32); +CYASSL_API int RsaPublicKeyDecode(const byte* input, word32* inOutIdx, RsaKey*, + word32); +#ifdef CYASSL_KEY_GEN + CYASSL_API int MakeRsaKey(RsaKey* key, int size, long e, RNG* rng); + CYASSL_API int RsaKeyToDer(RsaKey*, byte* output, word32 inLen); +#endif + + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + +#endif /* CTAO_CRYPT_RSA_H */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/settings.h b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/settings.h new file mode 100644 index 000000000..9fd7bc561 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/settings.h @@ -0,0 +1,317 @@ +/* settings.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +/* Place OS specific preprocessor flags, defines, includes here, will be + included into every file because types.h includes it */ + + +#ifndef CTAO_CRYPT_SETTINGS_H +#define CTAO_CRYPT_SETTINGS_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Uncomment next line if using IPHONE */ +/* #define IPHONE */ + +/* Uncomment next line if using ThreadX */ +/* #define THREADX */ + +/* Uncomment next line if using Micrium ucOS */ +/* #define MICRIUM */ + +/* Uncomment next line if using Mbed */ +/* #define MBED */ + +/* Uncomment next line if using Microchip PIC32 ethernet starter kit */ +/* #define MICROCHIP_PIC32 */ + +/* Uncomment next line if using FreeRTOS */ +/* #define FREERTOS */ + +/* Uncomment next line if using FreeRTOS Windows Simulator */ +/* #define FREERTOS_WINSIM */ + +/* Uncomment next line if using lwip */ +/* #define CYASSL_LWIP */ + +/* Uncomment next line if building CyaSSL for a game console */ +/* #define CYASSL_GAME_BUILD */ + + +#include + +#ifdef IPHONE + #define SIZEOF_LONG_LONG 8 +#endif + +#ifdef THREADX + #define SIZEOF_LONG_LONG 8 +#endif + +#ifdef MICROCHIP_PIC32 + /* use MBED plus no filesystem */ + #define MBED + #define NO_FILESYSTEM +#endif + +#ifdef MBED + #define SINGLE_THREADED + #define CYASSL_USER_IO + #define NO_WRITEV + #define NO_DEV_RANDOM + #define NO_SHA512 + #define NO_DH + #define NO_DSA + #define NO_HC128 +#endif /* MBED */ + +#ifdef FREERTOS + #define NO_WRITEV + #define NO_SHA512 + #define NO_DH + #define NO_DSA + #define NO_HC128 +#endif + +#ifdef FREERTOS_WINSIM + #define FREERTOS + #define USE_WINDOWS_API +#endif + +#ifdef CYASSL_GAME_BUILD + #define SIZEOF_LONG_LONG 8 + #if defined(__PPU) || defined(__XENON) + #define BIG_ENDIAN_ORDER + #endif +#endif + +#ifdef MICRIUM + + #include "stdlib.h" + #include "net_cfg.h" + #include "ssl_cfg.h" + #include "net_secure_os.h" + + #define CYASSL_TYPES + + typedef CPU_INT08U byte; + typedef CPU_INT16U word16; + typedef CPU_INT32U word32; + + #if (NET_SECURE_MGR_CFG_WORD_SIZE == CPU_WORD_SIZE_32) + #define SIZEOF_LONG 4 + #undef SIZEOF_LONG_LONG + #else + #undef SIZEOF_LONG + #define SIZEOF_LONG_LONG 8 + #endif + + #define STRING_USER + + #define XSTRLEN(pstr) ((CPU_SIZE_T)Str_Len((CPU_CHAR *)(pstr))) + #define XSTRNCPY(pstr_dest, pstr_src, len_max) \ + ((CPU_CHAR *)Str_Copy_N((CPU_CHAR *)(pstr_dest), \ + (CPU_CHAR *)(pstr_src), (CPU_SIZE_T)(len_max))) + #define XSTRNCMP(pstr_1, pstr_2, len_max) \ + ((CPU_INT16S)Str_Cmp_N((CPU_CHAR *)(pstr_1), \ + (CPU_CHAR *)(pstr_2), (CPU_SIZE_T)(len_max))) + #define XSTRSTR(pstr, pstr_srch) \ + ((CPU_CHAR *)Str_Str((CPU_CHAR *)(pstr), \ + (CPU_CHAR *)(pstr_srch))) + #define XMEMSET(pmem, data_val, size) \ + ((void)Mem_Set((void *)(pmem), (CPU_INT08U) (data_val), \ + (CPU_SIZE_T)(size))) + #define XMEMCPY(pdest, psrc, size) ((void)Mem_Copy((void *)(pdest), \ + (void *)(psrc), (CPU_SIZE_T)(size))) + #define XMEMCMP(pmem_1, pmem_2, size) \ + (((CPU_BOOLEAN)Mem_Cmp((void *)(pmem_1), (void *)(pmem_2), \ + (CPU_SIZE_T)(size))) ? DEF_NO : DEF_YES) + #define XMEMMOVE XMEMCPY + +#if (NET_SECURE_MGR_CFG_EN == DEF_ENABLED) + #define MICRIUM_MALLOC + #define XMALLOC(s, h, type) ((void *)NetSecure_BlkGet((CPU_INT08U)(type), \ + (CPU_SIZE_T)(s), (void *)0)) + #define XFREE(p, h, type) (NetSecure_BlkFree((CPU_INT08U)(type), \ + (p), (void *)0)) + #define XREALLOC(p, n, h, t) realloc((p), (n)) +#endif + + #if (NET_SECURE_MGR_CFG_FS_EN == DEF_ENABLED) + #undef NO_FILESYSTEM + #else + #define NO_FILESYSTEM + #endif + + #if (SSL_CFG_TRACE_LEVEL == CYASSL_TRACE_LEVEL_DBG) + #define DEBUG_CYASSL + #else + #undef DEBUG_CYASSL + #endif + + #if (SSL_CFG_OPENSSL_EN == DEF_ENABLED) + #define OPENSSL_EXTRA + #else + #undef OPENSSL_EXTRA + #endif + + #if (SSL_CFG_MULTI_THREAD_EN == DEF_ENABLED) + #undef SINGLE_THREADED + #else + #define SINGLE_THREADED + #endif + + #if (SSL_CFG_DH_EN == DEF_ENABLED) + #undef NO_DH + #else + #define NO_DH + #endif + + #if (SSL_CFG_DSA_EN == DEF_ENABLED) + #undef NO_DSA + #else + #define NO_DSA + #endif + + #if (SSL_CFG_PSK_EN == DEF_ENABLED) + #undef NO_PSK + #else + #define NO_PSK + #endif + + #if (SSL_CFG_3DES_EN == DEF_ENABLED) + #undef NO_DES + #else + #define NO_DES + #endif + + #if (SSL_CFG_AES_EN == DEF_ENABLED) + #undef NO_AES + #else + #define NO_AES + #endif + + #if (SSL_CFG_RC4_EN == DEF_ENABLED) + #undef NO_RC4 + #else + #define NO_RC4 + #endif + + #if (SSL_CFG_RABBIT_EN == DEF_ENABLED) + #undef NO_RABBIT + #else + #define NO_RABBIT + #endif + + #if (SSL_CFG_HC128_EN == DEF_ENABLED) + #undef NO_HC128 + #else + #define NO_HC128 + #endif + + #if (CPU_CFG_ENDIAN_TYPE == CPU_ENDIAN_TYPE_BIG) + #define BIG_ENDIAN_ORDER + #else + #undef BIG_ENDIAN_ORDER + #define LITTLE_ENDIAN_ORDER + #endif + + #if (SSL_CFG_MD4_EN == DEF_ENABLED) + #undef NO_MD4 + #else + #define NO_MD4 + #endif + + #if (SSL_CFG_WRITEV_EN == DEF_ENABLED) + #undef NO_WRITEV + #else + #define NO_WRITEV + #endif + + #if (SSL_CFG_USER_RNG_SEED_EN == DEF_ENABLED) + #define NO_DEV_RANDOM + #else + #undef NO_DEV_RANDOM + #endif + + #if (SSL_CFG_USER_IO_EN == DEF_ENABLED) + #define CYASSL_USER_IO + #else + #undef CYASSL_USER_IO + #endif + + #if (SSL_CFG_DYNAMIC_BUFFERS_EN == DEF_ENABLED) + #undef LARGE_STATIC_BUFFERS + #undef STATIC_CHUNKS_ONLY + #else + #define LARGE_STATIC_BUFFERS + #define STATIC_CHUNKS_ONLY + #endif + + #if (SSL_CFG_DER_LOAD_EN == DEF_ENABLED) + #define CYASSL_DER_LOAD + #else + #undef CYASSL_DER_LOAD + #endif + + #if (SSL_CFG_DTLS_EN == DEF_ENABLED) + #define CYASSL_DTLS + #else + #undef CYASSL_DTLS + #endif + + #if (SSL_CFG_CALLBACKS_EN == DEF_ENABLED) + #define CYASSL_CALLBACKS + #else + #undef CYASSL_CALLBACKS + #endif + + #if (SSL_CFG_FAST_MATH_EN == DEF_ENABLED) + #define USE_FAST_MATH + #else + #undef USE_FAST_MATH + #endif + + #if (SSL_CFG_TFM_TIMING_RESISTANT_EN == DEF_ENABLED) + #define TFM_TIMING_RESISTANT + #else + #undef TFM_TIMING_RESISTANT + #endif + +#endif /* MICRIUM */ + + +#if !defined(XMALLOC_USER) && !defined(MICRIUM_MALLOC) + #define USE_CYASSL_MEMORY +#endif + +/* Place any other flags or defines here */ + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + + +#endif /* CTAO_CRYPT_SETTINGS_H */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/sha.h b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/sha.h new file mode 100644 index 000000000..5c1b5aa60 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/sha.h @@ -0,0 +1,62 @@ +/* sha.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifndef CTAO_CRYPT_SHA_H +#define CTAO_CRYPT_SHA_H + +#include + +#ifdef __cplusplus + extern "C" { +#endif + + +/* in bytes */ +enum { + SHA = 1, /* hash type unique */ + SHA_BLOCK_SIZE = 64, + SHA_DIGEST_SIZE = 20, + SHA_PAD_SIZE = 56 +}; + + +/* Sha digest */ +typedef struct Sha { + word32 buffLen; /* in bytes */ + word32 loLen; /* length in bytes */ + word32 hiLen; /* length in bytes */ + word32 digest[SHA_DIGEST_SIZE / sizeof(word32)]; + word32 buffer[SHA_BLOCK_SIZE / sizeof(word32)]; +} Sha; + + +CYASSL_API void InitSha(Sha*); +CYASSL_API void ShaUpdate(Sha*, const byte*, word32); +CYASSL_API void ShaFinal(Sha*, byte*); + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + +#endif /* CTAO_CRYPT_SHA_H */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/sha256.h b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/sha256.h new file mode 100644 index 000000000..179a78031 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/sha256.h @@ -0,0 +1,68 @@ +/* sha256.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +/* code submitted by raphael.huck@efixo.com */ + + +#ifndef NO_SHA256 + +#ifndef CTAO_CRYPT_SHA256_H +#define CTAO_CRYPT_SHA256_H + +#include + +#ifdef __cplusplus + extern "C" { +#endif + + +/* in bytes */ +enum { + SHA256 = 2, /* hash type unique */ + SHA256_BLOCK_SIZE = 64, + SHA256_DIGEST_SIZE = 32, + SHA256_PAD_SIZE = 56 +}; + + +/* Sha256 digest */ +typedef struct Sha256 { + word32 buffLen; /* in bytes */ + word32 loLen; /* length in bytes */ + word32 hiLen; /* length in bytes */ + word32 digest[SHA256_DIGEST_SIZE / sizeof(word32)]; + word32 buffer[SHA256_BLOCK_SIZE / sizeof(word32)]; +} Sha256; + + +CYASSL_API void InitSha256(Sha256*); +CYASSL_API void Sha256Update(Sha256*, const byte*, word32); +CYASSL_API void Sha256Final(Sha256*, byte*); + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + +#endif /* CTAO_CRYPT_SHA256_H */ +#endif /* NO_SHA256 */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/sha512.h b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/sha512.h new file mode 100644 index 000000000..79861afee --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/sha512.h @@ -0,0 +1,91 @@ +/* sha512.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifdef CYASSL_SHA512 + +#ifndef CTAO_CRYPT_SHA512_H +#define CTAO_CRYPT_SHA512_H + +#include + +#ifdef __cplusplus + extern "C" { +#endif + + +/* in bytes */ +enum { + SHA512 = 4, /* hash type unique */ + SHA512_BLOCK_SIZE = 128, + SHA512_DIGEST_SIZE = 64, + SHA512_PAD_SIZE = 112 +}; + + +/* Sha512 digest */ +typedef struct Sha512 { + word32 buffLen; /* in bytes */ + word32 loLen; /* length in bytes */ + word32 hiLen; /* length in bytes */ + word64 digest[SHA512_DIGEST_SIZE / sizeof(word64)]; + word64 buffer[SHA512_BLOCK_SIZE / sizeof(word64)]; +} Sha512; + + +CYASSL_API void InitSha512(Sha512*); +CYASSL_API void Sha512Update(Sha512*, const byte*, word32); +CYASSL_API void Sha512Final(Sha512*, byte*); + + +#ifdef CYASSL_SHA384 + +/* in bytes */ +enum { + SHA384 = 5, /* hash type unique */ + SHA384_BLOCK_SIZE = 128, + SHA384_DIGEST_SIZE = 48, + SHA384_PAD_SIZE = 112 +}; + + +/* Sha384 digest */ +typedef struct Sha384 { + word32 buffLen; /* in bytes */ + word32 loLen; /* length in bytes */ + word32 hiLen; /* length in bytes */ + word64 digest[SHA512_DIGEST_SIZE / sizeof(word64)]; /* for transform 512 */ + word64 buffer[SHA384_BLOCK_SIZE / sizeof(word64)]; +} Sha384; + + +CYASSL_API void InitSha384(Sha384*); +CYASSL_API void Sha384Update(Sha384*, const byte*, word32); +CYASSL_API void Sha384Final(Sha384*, byte*); + +#endif /* CYASSL_SHA384 */ + +#ifdef __cplusplus + } /* extern "C" */ +#endif + +#endif /* CTAO_CRYPT_SHA512_H */ +#endif /* CYASSL_SHA512 */ diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/tfm.h b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/tfm.h new file mode 100644 index 000000000..af74a9034 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/tfm.h @@ -0,0 +1,686 @@ +/* tfm.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +/* + * Based on public domain TomsFastMath 0.10 by Tom St Denis, tomstdenis@iahu.ca, + * http://math.libtomcrypt.com + */ + + +/** + * Edited by Moisés Guimarães (moises.guimaraes@phoebus.com.br) + * to fit CyaSSL's needs. + */ + + +#ifndef CTAO_CRYPT_TFM_H +#define CTAO_CRYPT_TFM_H + +#include +#ifndef CHAR_BIT + #include +#endif + + +#ifdef __cplusplus + extern "C" { +#endif + +#ifndef MIN + #define MIN(x,y) ((x)<(y)?(x):(y)) +#endif + +#ifndef MAX + #define MAX(x,y) ((x)>(y)?(x):(y)) +#endif + + +/* autodetect x86-64 and make sure we are using 64-bit digits with x86-64 asm */ +#if defined(__x86_64__) + #if defined(TFM_X86) || defined(TFM_SSE2) || defined(TFM_ARM) + #error x86-64 detected, x86-32/SSE2/ARM optimizations are not valid! + #endif + #if !defined(TFM_X86_64) && !defined(TFM_NO_ASM) + #define TFM_X86_64 + #endif +#endif +#if defined(TFM_X86_64) + #if !defined(FP_64BIT) + #define FP_64BIT + #endif +#endif +/* use 64-bit digit even if not using asm on x86_64 */ +#if defined(__x86_64__) && !defined(FP_64BIT) + #define FP_64BIT +#endif + +/* try to detect x86-32 */ +#if defined(__i386__) && !defined(TFM_SSE2) + #if defined(TFM_X86_64) || defined(TFM_ARM) + #error x86-32 detected, x86-64/ARM optimizations are not valid! + #endif + #if !defined(TFM_X86) && !defined(TFM_NO_ASM) + #define TFM_X86 + #endif +#endif + +/* make sure we're 32-bit for x86-32/sse/arm/ppc32 */ +#if (defined(TFM_X86) || defined(TFM_SSE2) || defined(TFM_ARM) || defined(TFM_PPC32)) && defined(FP_64BIT) + #warning x86-32, SSE2 and ARM, PPC32 optimizations require 32-bit digits (undefining) + #undef FP_64BIT +#endif + +/* multi asms? */ +#ifdef TFM_X86 + #define TFM_ASM +#endif +#ifdef TFM_X86_64 + #ifdef TFM_ASM + #error TFM_ASM already defined! + #endif + #define TFM_ASM +#endif +#ifdef TFM_SSE2 + #ifdef TFM_ASM + #error TFM_ASM already defined! + #endif + #define TFM_ASM +#endif +#ifdef TFM_ARM + #ifdef TFM_ASM + #error TFM_ASM already defined! + #endif + #define TFM_ASM +#endif +#ifdef TFM_PPC32 + #ifdef TFM_ASM + #error TFM_ASM already defined! + #endif + #define TFM_ASM +#endif +#ifdef TFM_PPC64 + #ifdef TFM_ASM + #error TFM_ASM already defined! + #endif + #define TFM_ASM +#endif +#ifdef TFM_AVR32 + #ifdef TFM_ASM + #error TFM_ASM already defined! + #endif + #define TFM_ASM +#endif + +/* we want no asm? */ +#ifdef TFM_NO_ASM + #undef TFM_X86 + #undef TFM_X86_64 + #undef TFM_SSE2 + #undef TFM_ARM + #undef TFM_PPC32 + #undef TFM_PPC64 + #undef TFM_AVR32 + #undef TFM_ASM +#endif + +/* ECC helpers */ +#ifdef TFM_ECC192 + #ifdef FP_64BIT + #define TFM_MUL3 + #define TFM_SQR3 + #else + #define TFM_MUL6 + #define TFM_SQR6 + #endif +#endif + +#ifdef TFM_ECC224 + #ifdef FP_64BIT + #define TFM_MUL4 + #define TFM_SQR4 + #else + #define TFM_MUL7 + #define TFM_SQR7 + #endif +#endif + +#ifdef TFM_ECC256 + #ifdef FP_64BIT + #define TFM_MUL4 + #define TFM_SQR4 + #else + #define TFM_MUL8 + #define TFM_SQR8 + #endif +#endif + +#ifdef TFM_ECC384 + #ifdef FP_64BIT + #define TFM_MUL6 + #define TFM_SQR6 + #else + #define TFM_MUL12 + #define TFM_SQR12 + #endif +#endif + +#ifdef TFM_ECC521 + #ifdef FP_64BIT + #define TFM_MUL9 + #define TFM_SQR9 + #else + #define TFM_MUL17 + #define TFM_SQR17 + #endif +#endif + + +/* some default configurations. + */ +#if defined(FP_64BIT) + /* for GCC only on supported platforms */ +#ifndef CRYPT + typedef unsigned long ulong64; +#endif + typedef ulong64 fp_digit; + typedef unsigned long fp_word __attribute__ ((mode(TI))); +#else + /* this is to make porting into LibTomCrypt easier :-) */ +#ifndef CRYPT + #if defined(_MSC_VER) || defined(__BORLANDC__) + typedef unsigned __int64 ulong64; + typedef signed __int64 long64; + #else + typedef unsigned long long ulong64; + typedef signed long long long64; + #endif +#endif + typedef unsigned int fp_digit; + typedef ulong64 fp_word; +#endif + +/* # of digits this is */ +#define DIGIT_BIT (int)((CHAR_BIT) * sizeof(fp_digit)) + +/* Max size of any number in bits. Basically the largest size you will be + * multiplying should be half [or smaller] of FP_MAX_SIZE-four_digit + * + * It defaults to 4096-bits [allowing multiplications upto 2048x2048 bits ] + */ +#ifndef FP_MAX_BITS + #define FP_MAX_BITS 4096 +#endif +#define FP_MAX_SIZE (FP_MAX_BITS+(8*DIGIT_BIT)) + +/* will this lib work? */ +#if (CHAR_BIT & 7) + #error CHAR_BIT must be a multiple of eight. +#endif +#if FP_MAX_BITS % CHAR_BIT + #error FP_MAX_BITS must be a multiple of CHAR_BIT +#endif + +#define FP_MASK (fp_digit)(-1) +#define FP_SIZE (FP_MAX_SIZE/DIGIT_BIT) + +/* signs */ +#define FP_ZPOS 0 +#define FP_NEG 1 + +/* return codes */ +#define FP_OKAY 0 +#define FP_VAL 1 +#define FP_MEM 2 + +/* equalities */ +#define FP_LT -1 /* less than */ +#define FP_EQ 0 /* equal to */ +#define FP_GT 1 /* greater than */ + +/* replies */ +#define FP_YES 1 /* yes response */ +#define FP_NO 0 /* no response */ + +/* a FP type */ +typedef struct { + fp_digit dp[FP_SIZE]; + int used, + sign; +} fp_int; + +/* externally define this symbol to ignore the default settings, useful for changing the build from the make process */ +#ifndef TFM_ALREADY_SET + +/* do we want the large set of small multiplications ? + Enable these if you are going to be doing a lot of small (<= 16 digit) multiplications say in ECC + Or if you're on a 64-bit machine doing RSA as a 1024-bit integer == 16 digits ;-) + */ +/* need to refactor the function */ +/*#define TFM_SMALL_SET */ + +/* do we want huge code + Enable these if you are doing 20, 24, 28, 32, 48, 64 digit multiplications (useful for RSA) + Less important on 64-bit machines as 32 digits == 2048 bits + */ +#if 0 +#define TFM_MUL3 +#define TFM_MUL4 +#define TFM_MUL6 +#define TFM_MUL7 +#define TFM_MUL8 +#define TFM_MUL9 +#define TFM_MUL12 +#define TFM_MUL17 +#endif +#ifdef TFM_SMALL_SET +#define TFM_MUL20 +#define TFM_MUL24 +#define TFM_MUL28 +#define TFM_MUL32 +#if (FP_MAX_BITS >= 6144) && defined(FP_64BIT) + #define TFM_MUL48 +#endif +#if (FP_MAX_BITS >= 8192) && defined(FP_64BIT) + #define TFM_MUL64 +#endif +#endif + +#if 0 +#define TFM_SQR3 +#define TFM_SQR4 +#define TFM_SQR6 +#define TFM_SQR7 +#define TFM_SQR8 +#define TFM_SQR9 +#define TFM_SQR12 +#define TFM_SQR17 +#endif +#ifdef TFM_SMALL_SET +#define TFM_SQR20 +#define TFM_SQR24 +#define TFM_SQR28 +#define TFM_SQR32 +#define TFM_SQR48 +#define TFM_SQR64 +#endif + +/* do we want some overflow checks + Not required if you make sure your numbers are within range (e.g. by default a modulus for fp_exptmod() can only be upto 2048 bits long) + */ +/* #define TFM_CHECK */ + +/* Is the target a P4 Prescott + */ +/* #define TFM_PRESCOTT */ + +/* Do we want timing resistant fp_exptmod() ? + * This makes it slower but also timing invariant with respect to the exponent + */ +/* #define TFM_TIMING_RESISTANT */ + +#endif /* TFM_ALREADY_SET */ + +/* functions */ + +/* returns a TFM ident string useful for debugging... */ +/*const char *fp_ident(void);*/ + +/* initialize [or zero] an fp int */ +#define fp_init(a) (void)XMEMSET((a), 0, sizeof(fp_int)) +#define fp_zero(a) fp_init(a) + +/* zero/even/odd ? */ +#define fp_iszero(a) (((a)->used == 0) ? FP_YES : FP_NO) +#define fp_iseven(a) (((a)->used >= 0 && (((a)->dp[0] & 1) == 0)) ? FP_YES : FP_NO) +#define fp_isodd(a) (((a)->used > 0 && (((a)->dp[0] & 1) == 1)) ? FP_YES : FP_NO) + +/* set to a small digit */ +void fp_set(fp_int *a, fp_digit b); + +/* copy from a to b */ +#define fp_copy(a, b) (void)(((a) != (b)) ? (XMEMCPY((b), (a), sizeof(fp_int))) : (void)0) +#define fp_init_copy(a, b) fp_copy(b, a) + +/* clamp digits */ +#define fp_clamp(a) { while ((a)->used && (a)->dp[(a)->used-1] == 0) --((a)->used); (a)->sign = (a)->used ? (a)->sign : FP_ZPOS; } + +/* negate and absolute */ +#define fp_neg(a, b) { fp_copy(a, b); (b)->sign ^= 1; fp_clamp(b); } +#define fp_abs(a, b) { fp_copy(a, b); (b)->sign = 0; } + +/* right shift x digits */ +void fp_rshd(fp_int *a, int x); + +/* left shift x digits */ +void fp_lshd(fp_int *a, int x); + +/* signed comparison */ +int fp_cmp(fp_int *a, fp_int *b); + +/* unsigned comparison */ +int fp_cmp_mag(fp_int *a, fp_int *b); + +/* power of 2 operations */ +void fp_div_2d(fp_int *a, int b, fp_int *c, fp_int *d); +void fp_mod_2d(fp_int *a, int b, fp_int *c); +void fp_mul_2d(fp_int *a, int b, fp_int *c); +void fp_2expt (fp_int *a, int b); +void fp_mul_2(fp_int *a, fp_int *c); +void fp_div_2(fp_int *a, fp_int *c); + +/* Counts the number of lsbs which are zero before the first zero bit */ +/*int fp_cnt_lsb(fp_int *a);*/ + +/* c = a + b */ +void fp_add(fp_int *a, fp_int *b, fp_int *c); + +/* c = a - b */ +void fp_sub(fp_int *a, fp_int *b, fp_int *c); + +/* c = a * b */ +void fp_mul(fp_int *a, fp_int *b, fp_int *c); + +/* b = a*a */ +void fp_sqr(fp_int *a, fp_int *b); + +/* a/b => cb + d == a */ +int fp_div(fp_int *a, fp_int *b, fp_int *c, fp_int *d); + +/* c = a mod b, 0 <= c < b */ +int fp_mod(fp_int *a, fp_int *b, fp_int *c); + +/* compare against a single digit */ +int fp_cmp_d(fp_int *a, fp_digit b); + +/* c = a + b */ +void fp_add_d(fp_int *a, fp_digit b, fp_int *c); + +/* c = a - b */ +void fp_sub_d(fp_int *a, fp_digit b, fp_int *c); + +/* c = a * b */ +void fp_mul_d(fp_int *a, fp_digit b, fp_int *c); + +/* a/b => cb + d == a */ +/*int fp_div_d(fp_int *a, fp_digit b, fp_int *c, fp_digit *d);*/ + +/* c = a mod b, 0 <= c < b */ +/*int fp_mod_d(fp_int *a, fp_digit b, fp_digit *c);*/ + +/* ---> number theory <--- */ +/* d = a + b (mod c) */ +/*int fp_addmod(fp_int *a, fp_int *b, fp_int *c, fp_int *d);*/ + +/* d = a - b (mod c) */ +/*int fp_submod(fp_int *a, fp_int *b, fp_int *c, fp_int *d);*/ + +/* d = a * b (mod c) */ +int fp_mulmod(fp_int *a, fp_int *b, fp_int *c, fp_int *d); + +/* c = a * a (mod b) */ +int fp_sqrmod(fp_int *a, fp_int *b, fp_int *c); + +/* c = 1/a (mod b) */ +int fp_invmod(fp_int *a, fp_int *b, fp_int *c); + +/* c = (a, b) */ +/*void fp_gcd(fp_int *a, fp_int *b, fp_int *c);*/ + +/* c = [a, b] */ +/*void fp_lcm(fp_int *a, fp_int *b, fp_int *c);*/ + +/* setups the montgomery reduction */ +int fp_montgomery_setup(fp_int *a, fp_digit *mp); + +/* computes a = B**n mod b without division or multiplication useful for + * normalizing numbers in a Montgomery system. + */ +void fp_montgomery_calc_normalization(fp_int *a, fp_int *b); + +/* computes x/R == x (mod N) via Montgomery Reduction */ +void fp_montgomery_reduce(fp_int *a, fp_int *m, fp_digit mp); + +/* d = a**b (mod c) */ +int fp_exptmod(fp_int *a, fp_int *b, fp_int *c, fp_int *d); + +/* primality stuff */ + +/* perform a Miller-Rabin test of a to the base b and store result in "result" */ +/*void fp_prime_miller_rabin (fp_int * a, fp_int * b, int *result);*/ + +/* 256 trial divisions + 8 Miller-Rabins, returns FP_YES if probable prime */ +/*int fp_isprime(fp_int *a);*/ + +/* Primality generation flags */ +/*#define TFM_PRIME_BBS 0x0001 */ /* BBS style prime */ +/*#define TFM_PRIME_SAFE 0x0002 */ /* Safe prime (p-1)/2 == prime */ +/*#define TFM_PRIME_2MSB_OFF 0x0004 */ /* force 2nd MSB to 0 */ +/*#define TFM_PRIME_2MSB_ON 0x0008 */ /* force 2nd MSB to 1 */ + +/* callback for fp_prime_random, should fill dst with random bytes and return how many read [upto len] */ +/*typedef int tfm_prime_callback(unsigned char *dst, int len, void *dat);*/ + +/*#define fp_prime_random(a, t, size, bbs, cb, dat) fp_prime_random_ex(a, t, ((size) * 8) + 1, (bbs==1)?TFM_PRIME_BBS:0, cb, dat)*/ + +/*int fp_prime_random_ex(fp_int *a, int t, int size, int flags, tfm_prime_callback cb, void *dat);*/ + +/* radix conersions */ +int fp_count_bits(fp_int *a); + +int fp_unsigned_bin_size(fp_int *a); +void fp_read_unsigned_bin(fp_int *a, unsigned char *b, int c); +void fp_to_unsigned_bin(fp_int *a, unsigned char *b); + +/*int fp_signed_bin_size(fp_int *a);*/ +/*void fp_read_signed_bin(fp_int *a, unsigned char *b, int c);*/ +/*void fp_to_signed_bin(fp_int *a, unsigned char *b);*/ + +/*int fp_read_radix(fp_int *a, char *str, int radix);*/ +/*int fp_toradix(fp_int *a, char *str, int radix);*/ +/*int fp_toradix_n(fp_int * a, char *str, int radix, int maxlen);*/ + + +/* VARIOUS LOW LEVEL STUFFS */ +void s_fp_add(fp_int *a, fp_int *b, fp_int *c); +void s_fp_sub(fp_int *a, fp_int *b, fp_int *c); +void fp_reverse(unsigned char *s, int len); + +void fp_mul_comba(fp_int *A, fp_int *B, fp_int *C); + +#ifdef TFM_SMALL_SET +void fp_mul_comba_small(fp_int *A, fp_int *B, fp_int *C); +#endif + +#ifdef TFM_MUL3 +void fp_mul_comba3(fp_int *A, fp_int *B, fp_int *C); +#endif +#ifdef TFM_MUL4 +void fp_mul_comba4(fp_int *A, fp_int *B, fp_int *C); +#endif +#ifdef TFM_MUL6 +void fp_mul_comba6(fp_int *A, fp_int *B, fp_int *C); +#endif +#ifdef TFM_MUL7 +void fp_mul_comba7(fp_int *A, fp_int *B, fp_int *C); +#endif +#ifdef TFM_MUL8 +void fp_mul_comba8(fp_int *A, fp_int *B, fp_int *C); +#endif +#ifdef TFM_MUL9 +void fp_mul_comba9(fp_int *A, fp_int *B, fp_int *C); +#endif +#ifdef TFM_MUL12 +void fp_mul_comba12(fp_int *A, fp_int *B, fp_int *C); +#endif +#ifdef TFM_MUL17 +void fp_mul_comba17(fp_int *A, fp_int *B, fp_int *C); +#endif + +#ifdef TFM_MUL20 +void fp_mul_comba20(fp_int *A, fp_int *B, fp_int *C); +#endif +#ifdef TFM_MUL24 +void fp_mul_comba24(fp_int *A, fp_int *B, fp_int *C); +#endif +#ifdef TFM_MUL28 +void fp_mul_comba28(fp_int *A, fp_int *B, fp_int *C); +#endif +#ifdef TFM_MUL32 +void fp_mul_comba32(fp_int *A, fp_int *B, fp_int *C); +#endif +#ifdef TFM_MUL48 +void fp_mul_comba48(fp_int *A, fp_int *B, fp_int *C); +#endif +#ifdef TFM_MUL64 +void fp_mul_comba64(fp_int *A, fp_int *B, fp_int *C); +#endif + +void fp_sqr_comba(fp_int *A, fp_int *B); + +#ifdef TFM_SMALL_SET +void fp_sqr_comba_small(fp_int *A, fp_int *B); +#endif + +#ifdef TFM_SQR3 +void fp_sqr_comba3(fp_int *A, fp_int *B); +#endif +#ifdef TFM_SQR4 +void fp_sqr_comba4(fp_int *A, fp_int *B); +#endif +#ifdef TFM_SQR6 +void fp_sqr_comba6(fp_int *A, fp_int *B); +#endif +#ifdef TFM_SQR7 +void fp_sqr_comba7(fp_int *A, fp_int *B); +#endif +#ifdef TFM_SQR8 +void fp_sqr_comba8(fp_int *A, fp_int *B); +#endif +#ifdef TFM_SQR9 +void fp_sqr_comba9(fp_int *A, fp_int *B); +#endif +#ifdef TFM_SQR12 +void fp_sqr_comba12(fp_int *A, fp_int *B); +#endif +#ifdef TFM_SQR17 +void fp_sqr_comba17(fp_int *A, fp_int *B); +#endif + +#ifdef TFM_SQR20 +void fp_sqr_comba20(fp_int *A, fp_int *B); +#endif +#ifdef TFM_SQR24 +void fp_sqr_comba24(fp_int *A, fp_int *B); +#endif +#ifdef TFM_SQR28 +void fp_sqr_comba28(fp_int *A, fp_int *B); +#endif +#ifdef TFM_SQR32 +void fp_sqr_comba32(fp_int *A, fp_int *B); +#endif +#ifdef TFM_SQR48 +void fp_sqr_comba48(fp_int *A, fp_int *B); +#endif +#ifdef TFM_SQR64 +void fp_sqr_comba64(fp_int *A, fp_int *B); +#endif +/*extern const char *fp_s_rmap;*/ + + +/** + * Used by CyaSSL + */ + +/* Types */ + typedef fp_digit mp_digit; + typedef fp_word mp_word; + typedef fp_int mp_int; + +/* Constants */ + #define MP_LT FP_LT /* less than */ + #define MP_EQ FP_EQ /* equal to */ + #define MP_GT FP_GT /* greater than */ + #define MP_OKAY FP_OKAY /* ok result */ + #define MP_NO FP_NO /* yes/no result */ + #define MP_YES FP_YES /* yes/no result */ + +/* Prototypes */ +int mp_init (mp_int * a); +void mp_clear (mp_int * a); +int mp_init_multi(mp_int* a, mp_int* b, mp_int* c, mp_int* d, mp_int* e, mp_int* f); + +int mp_add (mp_int * a, mp_int * b, mp_int * c); +int mp_sub (mp_int * a, mp_int * b, mp_int * c); +int mp_add_d (mp_int * a, mp_digit b, mp_int * c); + +int mp_mul (mp_int * a, mp_int * b, mp_int * c); +int mp_mulmod (mp_int * a, mp_int * b, mp_int * c, mp_int * d); +int mp_mod(mp_int *a, mp_int *b, mp_int *c); +int mp_invmod(mp_int *a, mp_int *b, mp_int *c); +int mp_exptmod (mp_int * G, mp_int * X, mp_int * P, mp_int * Y); + +int mp_cmp(mp_int *a, mp_int *b); +int mp_cmp_d(mp_int *a, mp_digit b); + +int mp_unsigned_bin_size(mp_int * a); +int mp_read_unsigned_bin (mp_int * a, const unsigned char *b, int c); +int mp_to_unsigned_bin (mp_int * a, unsigned char *b); + +int mp_sub_d(fp_int *a, fp_digit b, fp_int *c); +int mp_copy(fp_int* a, fp_int* b); +int mp_isodd(mp_int* a); +int mp_iszero(mp_int* a); +int mp_count_bits(mp_int *a); +int mp_set_int(fp_int *a, fp_digit b); + +#ifdef HAVE_ECC + int mp_read_radix(mp_int* a, const char* str, int radix); + int mp_set(fp_int *a, fp_digit b); + int mp_sqr(fp_int *A, fp_int *B); + int mp_montgomery_reduce(fp_int *a, fp_int *m, fp_digit mp); + int mp_montgomery_setup(fp_int *a, fp_digit *rho); + int mp_div_2(fp_int * a, fp_int * b); + int mp_init_copy(fp_int * a, fp_int * b); +#endif + +#if defined(HAVE_ECC) || defined(CYASSL_KEY_GEN) + int mp_sqrmod(mp_int* a, mp_int* b, mp_int* c); + int mp_montgomery_calc_normalization(mp_int *a, mp_int *b); +#endif + +#ifdef CYASSL_KEY_GEN +int mp_gcd(fp_int *a, fp_int *b, fp_int *c); +int mp_lcm(fp_int *a, fp_int *b, fp_int *c); +int mp_prime_is_prime(mp_int* a, int t, int* result); +#endif /* CYASSL_KEY_GEN */ + +CYASSL_API word32 CheckRunTimeFastMath(void); + +/* If user uses RSA, DH, DSA, or ECC math lib directly then fast math FP_SIZE + must match, return 1 if a match otherwise 0 */ +#define CheckFastMathSettings() (FP_SIZE == CheckRunTimeFastMath()) +#ifdef __cplusplus + } +#endif + + +#endif /* CTAO_CRYPT_TFM_H */ diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/types.h b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/types.h new file mode 100644 index 000000000..6514496d8 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/types.h @@ -0,0 +1,256 @@ +/* types.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifndef CTAO_CRYPT_TYPES_H +#define CTAO_CRYPT_TYPES_H + +#include + +#ifdef __cplusplus + extern "C" { +#endif + + +#if defined(WORDS_BIGENDIAN) || (defined(__MWERKS__) && !defined(__INTEL__)) + #define BIG_ENDIAN_ORDER +#endif + +#ifndef BIG_ENDIAN_ORDER + #define LITTLE_ENDIAN_ORDER +#endif + +#ifndef CYASSL_TYPES + #ifndef byte + typedef unsigned char byte; + #endif + typedef unsigned short word16; + typedef unsigned int word32; +#endif + + +/* try to set SIZEOF_LONG or LONG_LONG if user didn't */ +#if !defined(_MSC_VER) && !defined(__BCPLUSPLUS__) + #if !defined(SIZEOF_LONG_LONG) && !defined(SIZEOF_LONG) + #if (defined(__alpha__) || defined(__ia64__) || defined(_ARCH_PPC64) \ + || defined(__mips64) || defined(__x86_64__)) + /* long should be 64bit */ + #define SIZEOF_LONG 8 + #elif (defined__i386__) + /* long long should be 64bit */ + #define SIZEOF_LONG_LONG 8 + #endif + #endif +#endif + + +#if defined(_MSC_VER) || defined(__BCPLUSPLUS__) + #define WORD64_AVAILABLE + #define W64LIT(x) x##ui64 + typedef unsigned __int64 word64; +#elif SIZEOF_LONG == 8 + #define WORD64_AVAILABLE + #define W64LIT(x) x##LL + typedef unsigned long word64; +#elif SIZEOF_LONG_LONG == 8 + #define WORD64_AVAILABLE + #define W64LIT(x) x##LL + typedef unsigned long long word64; +#else + #define MP_16BIT /* for mp_int, mp_word needs to be twice as big as + mp_digit, no 64 bit type so make mp_digit 16 bit */ +#endif + + +/* These platforms have 64-bit CPU registers. */ +#if (defined(__alpha__) || defined(__ia64__) || defined(_ARCH_PPC64) || \ + defined(__mips64) || defined(__x86_64__)) + typedef word64 word; +#else + typedef word32 word; + #ifdef WORD64_AVAILABLE + #define CTAOCRYPT_SLOW_WORD64 + #endif +#endif + + +enum { + WORD_SIZE = sizeof(word), + BIT_SIZE = 8, + WORD_BITS = WORD_SIZE * BIT_SIZE +}; + + +/* use inlining if compiler allows */ +#ifndef INLINE +#ifndef NO_INLINE + #ifdef _MSC_VER + #define INLINE __inline + #elif defined(__GNUC__) + #define INLINE inline + #elif defined(THREADX) + #define INLINE _Inline + #else + #define INLINE + #endif +#else + #define INLINE +#endif +#endif + + +/* set up rotate style */ +#if defined(_MSC_VER) || defined(__BCPLUSPLUS__) + #define INTEL_INTRINSICS + #define FAST_ROTATE +#elif defined(__MWERKS__) && TARGET_CPU_PPC + #define PPC_INTRINSICS + #define FAST_ROTATE +#elif defined(__GNUC__) && defined(__i386__) + /* GCC does peephole optimizations which should result in using rotate + instructions */ + #define FAST_ROTATE +#endif + + +/* Micrium will use Visual Studio for compilation but not the Win32 API */ +#if defined(_WIN32) && !defined(MICRIUM) && !defined(FREERTOS) + #define USE_WINDOWS_API +#endif + + +/* idea to add global alloc override by Moisés Guimarães */ +/* default to libc stuff */ +/* XREALLOC is used once in normal math lib, not in fast math lib */ +/* XFREE on some embeded systems doesn't like free(0) so test */ +#ifdef XMALLOC_USER + /* prototypes for user heap override functions */ + #include /* for size_t */ + extern void *XMALLOC(size_t n, void* heap, int type); + extern void *XREALLOC(void *p, size_t n, void* heap, int type); + extern void XFREE(void *p, void* heap, int type); +#elif !defined(MICRIUM_MALLOC) + /* default C runtime, can install different routines at runtime */ + #include + #define XMALLOC(s, h, t) CyaSSL_Malloc((s)) + #define XFREE(p, h, t) {void* xp = (p); if((xp)) CyaSSL_Free((xp));} + #define XREALLOC(p, n, h, t) CyaSSL_Realloc((p), (n)) +#endif + +#ifndef STRING_USER + #include + #define XMEMCPY(d,s,l) memcpy((d),(s),(l)) + #define XMEMSET(b,c,l) memset((b),(c),(l)) + #define XMEMCMP(s1,s2,n) memcmp((s1),(s2),(n)) + #define XMEMMOVE(d,s,l) memmove((d),(s),(l)) + + #define XSTRLEN(s1) strlen((s1)) + #define XSTRNCPY(s1,s2,n) strncpy((s1),(s2),(n)) + /* strstr, strncmp, and strncat only used by CyaSSL proper, not required for + CTaoCrypt only */ + #define XSTRSTR(s1,s2) strstr((s1),(s2)) + #define XSTRNCMP(s1,s2,n) strncmp((s1),(s2),(n)) + #define XSTRNCAT(s1,s2,n) strncat((s1),(s2),(n)) +#endif + +#ifdef HAVE_ECC + #ifndef CTYPE_USER + #include + #define XTOUPPER(c) toupper((c)) + #endif +#endif + + +/* memory allocation types for user hints */ +enum { + DYNAMIC_TYPE_CA = 1, + DYNAMIC_TYPE_CERT = 2, + DYNAMIC_TYPE_KEY = 3, + DYNAMIC_TYPE_FILE = 4, + DYNAMIC_TYPE_SUBJECT_CN = 5, + DYNAMIC_TYPE_PUBLIC_KEY = 6, + DYNAMIC_TYPE_SIGNER = 7, + DYNAMIC_TYPE_NONE = 8, + DYNAMIC_TYPE_BIGINT = 9, + DYNAMIC_TYPE_RSA = 10, + DYNAMIC_TYPE_METHOD = 11, + DYNAMIC_TYPE_OUT_BUFFER = 12, + DYNAMIC_TYPE_IN_BUFFER = 13, + DYNAMIC_TYPE_INFO = 14, + DYNAMIC_TYPE_DH = 15, + DYNAMIC_TYPE_DOMAIN = 16, + DYNAMIC_TYPE_SSL = 17, + DYNAMIC_TYPE_CTX = 18, + DYNAMIC_TYPE_WRITEV = 19, + DYNAMIC_TYPE_OPENSSL = 20, + DYNAMIC_TYPE_DSA = 21, + DYNAMIC_TYPE_CRL = 22, + DYNAMIC_TYPE_REVOKED = 23, + DYNAMIC_TYPE_CRL_ENTRY = 24, + DYNAMIC_TYPE_CERT_MANAGER = 25 +}; + +/* stack protection */ +enum { + MIN_STACK_BUFFER = 8 +}; + + + +/* settings detection for compile vs runtime math incombatibilities */ +enum { +#if !defined(USE_FAST_MATH) && !defined(SIZEOF_LONG) && !defined(SIZEOF_LONG_LONG) + CTC_SETTINGS = 0x0 +#elif !defined(USE_FAST_MATH) && defined(SIZEOF_LONG) && (SIZEOF_LONG == 8) + CTC_SETTINGS = 0x1 +#elif !defined(USE_FAST_MATH) && defined(SIZEOF_LONG_LONG) && (SIZEOF_LONG_LONG == 8) + CTC_SETTINGS = 0x2 +#elif !defined(USE_FAST_MATH) && defined(SIZEOF_LONG_LONG) && (SIZEOF_LONG_LONG == 4) + CTC_SETTINGS = 0x4 +#elif defined(USE_FAST_MATH) && !defined(SIZEOF_LONG) && !defined(SIZEOF_LONG_LONG) + CTC_SETTINGS = 0x8 +#elif defined(USE_FAST_MATH) && defined(SIZEOF_LONG) && (SIZEOF_LONG == 8) + CTC_SETTINGS = 0x10 +#elif defined(USE_FAST_MATH) && defined(SIZEOF_LONG_LONG) && (SIZEOF_LONG_LONG == 8) + CTC_SETTINGS = 0x20 +#elif defined(USE_FAST_MATH) && defined(SIZEOF_LONG_LONG) && (SIZEOF_LONG_LONG == 4) + CTC_SETTINGS = 0x40 +#else + #error "bad math long / long long settings" +#endif +}; + + +CYASSL_API word32 CheckRunTimeSettings(void); + +/* If user uses RSA, DH, DSA, or ECC math lib directly then fast math and long + types need to match at compile time and run time, CheckCtcSettings will + return 1 if a match otherwise 0 */ +#define CheckCtcSettings() (CTC_SETTINGS == CheckRunTimeSettings()) + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + + +#endif /* CTAO_CRYPT_TYPES_H */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/visibility.h b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/visibility.h new file mode 100644 index 000000000..0143f208d --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/visibility.h @@ -0,0 +1,69 @@ +/* visibility.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +/* Visibility control macros */ + + +#ifndef CTAO_CRYPT_VISIBILITY_H +#define CTAO_CRYPT_VISIBILITY_H + + +/* CYASSL_API is used for the public API symbols. + It either imports or exports (or does nothing for static builds) + + CYASSL_LOCAL is used for non-API symbols (private). +*/ + +#if defined(BUILDING_CYASSL) + #if defined(HAVE_VISIBILITY) && HAVE_VISIBILITY + #define CYASSL_API __attribute__ ((visibility("default"))) + #define CYASSL_LOCAL __attribute__ ((visibility("hidden"))) + #elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550) + #define CYASSL_API __global + #define CYASSL_LOCAL __hidden + #elif defined(_MSC_VER) + #ifdef CYASSL_DLL + #define CYASSL_API extern __declspec(dllexport) + #else + #define CYASSL_API + #endif + #define CYASSL_LOCAL + #else + #define CYASSL_API + #define CYASSL_LOCAL + #endif /* HAVE_VISIBILITY */ +#else /* BUILDING_CYASSL */ + #if defined(_MSC_VER) + #ifdef CYASSL_DLL + #define CYASSL_API extern __declspec(dllimport) + #else + #define CYASSL_API + #endif + #define CYASSL_LOCAL + #else + #define CYASSL_API + #define CYASSL_LOCAL + #endif +#endif /* BUILDING_CYASSL */ + + +#endif /* CTAO_CRYPT_VISIBILITY_H */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/error.h b/FreeRTOS-Plus/CyaSSL/cyassl/error.h new file mode 100644 index 000000000..fd6781c19 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/error.h @@ -0,0 +1,126 @@ +/* error.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifndef CYASSL_ERROR_H +#define CYASSL_ERROR_H + +#include /* pull in CTaoCrypt errors */ + +#ifdef __cplusplus + extern "C" { +#endif + +enum CyaSSL_ErrorCodes { + INPUT_CASE_ERROR = -201, /* process input state error */ + PREFIX_ERROR = -202, /* bad index to key rounds */ + MEMORY_ERROR = -203, /* out of memory */ + VERIFY_FINISHED_ERROR = -204, /* verify problem on finished */ + VERIFY_MAC_ERROR = -205, /* verify mac problem */ + PARSE_ERROR = -206, /* parse error on header */ + UNKNOWN_HANDSHAKE_TYPE = -207, /* weird handshake type */ + SOCKET_ERROR_E = -208, /* error state on socket */ + SOCKET_NODATA = -209, /* expected data, not there */ + INCOMPLETE_DATA = -210, /* don't have enough data to + complete task */ + UNKNOWN_RECORD_TYPE = -211, /* unknown type in record hdr */ + DECRYPT_ERROR = -212, /* error during decryption */ + FATAL_ERROR = -213, /* recvd alert fatal error */ + ENCRYPT_ERROR = -214, /* error during encryption */ + FREAD_ERROR = -215, /* fread problem */ + NO_PEER_KEY = -216, /* need peer's key */ + NO_PRIVATE_KEY = -217, /* need the private key */ + RSA_PRIVATE_ERROR = -218, /* error during rsa priv op */ + NO_DH_PARAMS = -219, /* server missing DH params */ + BUILD_MSG_ERROR = -220, /* build message failure */ + + BAD_HELLO = -221, /* client hello malformed */ + DOMAIN_NAME_MISMATCH = -222, /* peer subject name mismatch */ + WANT_READ = -223, /* want read, call again */ + NOT_READY_ERROR = -224, /* handshake layer not ready */ + PMS_VERSION_ERROR = -225, /* pre m secret version error */ + VERSION_ERROR = -226, /* record layer version error */ + WANT_WRITE = -227, /* want write, call again */ + BUFFER_ERROR = -228, /* malformed buffer input */ + VERIFY_CERT_ERROR = -229, /* verify cert error */ + VERIFY_SIGN_ERROR = -230, /* verify sign error */ + CLIENT_ID_ERROR = -231, /* psk client identity error */ + SERVER_HINT_ERROR = -232, /* psk server hint error */ + PSK_KEY_ERROR = -233, /* psk key error */ + ZLIB_INIT_ERROR = -234, /* zlib init error */ + ZLIB_COMPRESS_ERROR = -235, /* zlib compression error */ + ZLIB_DECOMPRESS_ERROR = -236, /* zlib decompression error */ + + GETTIME_ERROR = -237, /* gettimeofday failed ??? */ + GETITIMER_ERROR = -238, /* getitimer failed ??? */ + SIGACT_ERROR = -239, /* sigaction failed ??? */ + SETITIMER_ERROR = -240, /* setitimer failed ??? */ + LENGTH_ERROR = -241, /* record layer length error */ + PEER_KEY_ERROR = -242, /* can't decode peer key */ + ZERO_RETURN = -243, /* peer sent close notify */ + SIDE_ERROR = -244, /* wrong client/server type */ + NO_PEER_CERT = -245, /* peer didn't send key */ + NTRU_KEY_ERROR = -246, /* NTRU key error */ + NTRU_DRBG_ERROR = -247, /* NTRU drbg error */ + NTRU_ENCRYPT_ERROR = -248, /* NTRU encrypt error */ + NTRU_DECRYPT_ERROR = -249, /* NTRU decrypt error */ + ECC_CURVETYPE_ERROR = -250, /* Bad ECC Curve Type */ + ECC_CURVE_ERROR = -251, /* Bad ECC Curve */ + ECC_PEERKEY_ERROR = -252, /* Bad Peer ECC Key */ + ECC_MAKEKEY_ERROR = -253, /* Bad Make ECC Key */ + ECC_EXPORT_ERROR = -254, /* Bad ECC Export Key */ + ECC_SHARED_ERROR = -255, /* Bad ECC Shared Secret */ + BAD_MUTEX_ERROR = -256, /* Bad mutex */ + NOT_CA_ERROR = -257, /* Not a CA cert error */ + BAD_PATH_ERROR = -258, /* Bad path for opendir */ + BAD_CERT_MANAGER_ERROR = -259, /* Bad Cert Manager */ + OCSP_CERT_REVOKED = -260, + CRL_CERT_REVOKED = -261, /* CRL Certificate revoked */ + CRL_MISSING = -262, /* CRL Not loaded */ + /* add strings to SetErrorString !!!!! */ + + /* begin negotiation parameter errors */ + UNSUPPORTED_SUITE = -270, /* unsupported cipher suite */ + MATCH_SUITE_ERROR = -271 /* can't match cipher suite */ + /* end negotiation parameter errors only 10 for now */ + /* add strings to SetErrorString !!!!! */ +}; + + +#ifdef CYASSL_CALLBACKS + enum { + MIN_PARAM_ERR = UNSUPPORTED_SUITE, + MAX_PARAM_ERR = MIN_PARAM_ERR - 10 + }; +#endif + + +CYASSL_LOCAL +void SetErrorString(int error, char* buffer); + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + + +#endif /* CyaSSL_ERROR_H */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/include.am b/FreeRTOS-Plus/CyaSSL/cyassl/include.am new file mode 100644 index 000000000..f2b07a767 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/include.am @@ -0,0 +1,20 @@ +# vim:ft=automake +# All paths should be given relative to the root +# + +include cyassl/ctaocrypt/include.am +include cyassl/openssl/include.am + +EXTRA_DIST+= cyassl/sniffer_error.rc + +nobase_include_HEADERS+= \ + cyassl/error.h \ + cyassl/internal.h \ + cyassl/ssl.h \ + cyassl/sniffer_error.h \ + cyassl/sniffer.h \ + cyassl/callbacks.h \ + cyassl/test.h \ + cyassl/version.h \ + cyassl/ocsp.h \ + cyassl/crl.h diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/internal.h b/FreeRTOS-Plus/CyaSSL/cyassl/internal.h new file mode 100644 index 000000000..e63549bf3 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/internal.h @@ -0,0 +1,1366 @@ +/* internal.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifndef CYASSL_INT_H +#define CYASSL_INT_H + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef HAVE_ECC + #include +#endif +#ifndef NO_SHA256 + #include +#endif +#ifdef HAVE_OCSP + #include +#endif + +#ifdef CYASSL_CALLBACKS + #include + #include +#endif + +#ifdef USE_WINDOWS_API + #ifdef CYASSL_GAME_BUILD + #include "system/xtl.h" + #else + #if defined(_WIN32_WCE) || defined(WIN32_LEAN_AND_MEAN) + /* On WinCE winsock2.h must be included before windows.h */ + #include + #endif + #include + #if defined(FREERTOS_WINSIM) && !defined(SINGLE_THREADED) + #include "FreeRTOS.h" + #include "semphr.h" + #endif + #endif +#elif defined(THREADX) + #ifndef SINGLE_THREADED + #include "tx_api.h" + #endif +#elif defined(MICRIUM) + /* do nothing, just don't pick Unix */ +#elif defined(FREERTOS) + #ifndef SINGLE_THREADED + #include "FreeRTOS.h" + #include "semphr.h" + #endif +#else + #ifndef SINGLE_THREADED + #define CYASSL_PTHREADS + #include + #endif + #if defined(OPENSSL_EXTRA) || defined(GOAHEAD_WS) + #include /* for close of BIO */ + #endif +#endif + +#ifdef HAVE_LIBZ + #include "zlib.h" +#endif + +#ifdef _MSC_VER + /* 4996 warning to use MS extensions e.g., strcpy_s instead of strncpy */ + #pragma warning(disable: 4996) +#endif + +#ifdef NO_AES + #if !defined (ALIGN16) + #define ALIGN16 + #endif +#endif + +#ifdef NO_SHA256 + #define SHA256_DIGEST_SIZE 32 +#endif + +#ifdef __cplusplus + extern "C" { +#endif + + +#ifdef USE_WINDOWS_API + typedef unsigned int SOCKET_T; +#else + typedef int SOCKET_T; +#endif + + +typedef byte word24[3]; + +/* used by ssl.c and cyassl_int.c */ +void c32to24(word32 in, word24 out); + +/* Define or comment out the cipher suites you'd like to be compiled in + make sure to use at least one BUILD_SSL_xxx or BUILD_TLS_xxx is defined + + When adding cipher suites, add name to cipher_names, idx to cipher_name_idx +*/ +#ifndef NO_RC4 + #define BUILD_SSL_RSA_WITH_RC4_128_SHA + #define BUILD_SSL_RSA_WITH_RC4_128_MD5 + #if !defined(NO_TLS) && defined(HAVE_NTRU) + #define BUILD_TLS_NTRU_RSA_WITH_RC4_128_SHA + #endif +#endif + +#ifndef NO_DES3 + #define BUILD_SSL_RSA_WITH_3DES_EDE_CBC_SHA + #if !defined(NO_TLS) && defined(HAVE_NTRU) + #define BUILD_TLS_NTRU_RSA_WITH_3DES_EDE_CBC_SHA + #endif +#endif + +#if !defined(NO_AES) && !defined(NO_TLS) + #define BUILD_TLS_RSA_WITH_AES_128_CBC_SHA + #define BUILD_TLS_RSA_WITH_AES_256_CBC_SHA + #if !defined (NO_PSK) + #define BUILD_TLS_PSK_WITH_AES_128_CBC_SHA + #define BUILD_TLS_PSK_WITH_AES_256_CBC_SHA + #endif + #if defined(HAVE_NTRU) + #define BUILD_TLS_NTRU_RSA_WITH_AES_128_CBC_SHA + #define BUILD_TLS_NTRU_RSA_WITH_AES_256_CBC_SHA + #endif + #if !defined (NO_SHA256) + #define BUILD_TLS_RSA_WITH_AES_128_CBC_SHA256 + #define BUILD_TLS_RSA_WITH_AES_256_CBC_SHA256 + #endif +#endif + +#if !defined(NO_HC128) && !defined(NO_TLS) + #define BUILD_TLS_RSA_WITH_HC_128_CBC_MD5 + #define BUILD_TLS_RSA_WITH_HC_128_CBC_SHA +#endif + +#if !defined(NO_RABBIT) && !defined(NO_TLS) + #define BUILD_TLS_RSA_WITH_RABBIT_CBC_SHA +#endif + +#if !defined(NO_DH) && !defined(NO_AES) && !defined(NO_TLS) && defined(OPENSSL_EXTRA) + #define BUILD_TLS_DHE_RSA_WITH_AES_128_CBC_SHA + #define BUILD_TLS_DHE_RSA_WITH_AES_256_CBC_SHA + #if !defined (NO_SHA256) + #define BUILD_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 + #define BUILD_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 + #endif +#endif + +#if defined(HAVE_ECC) && !defined(NO_TLS) + #if !defined(NO_AES) + #define BUILD_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA + #define BUILD_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA + #define BUILD_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA + #define BUILD_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA + + #define BUILD_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA + #define BUILD_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA + #define BUILD_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA + #define BUILD_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA + #endif + #if !defined(NO_RC4) + #define BUILD_TLS_ECDHE_RSA_WITH_RC4_128_SHA + #define BUILD_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA + + #define BUILD_TLS_ECDH_RSA_WITH_RC4_128_SHA + #define BUILD_TLS_ECDH_ECDSA_WITH_RC4_128_SHA + #endif + #if !defined(NO_DES3) + #define BUILD_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA + #define BUILD_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA + + #define BUILD_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA + #define BUILD_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA + #endif +#endif + + +#if defined(BUILD_SSL_RSA_WITH_RC4_128_SHA) || \ + defined(BUILD_SSL_RSA_WITH_RC4_128_MD5) + #define BUILD_ARC4 +#endif + +#if defined(BUILD_SSL_RSA_WITH_3DES_EDE_CBC_SHA) + #define BUILD_DES3 +#endif + +#if defined(BUILD_TLS_RSA_WITH_AES_128_CBC_SHA) || \ + defined(BUILD_TLS_RSA_WITH_AES_256_CBC_SHA) + #define BUILD_AES +#endif + +#if defined(BUILD_TLS_RSA_WITH_HC_128_CBC_SHA) || \ + defined(BUILD_TLS_RSA_WITH_HC_128_CBC_MD5) + #define BUILD_HC128 +#endif + +#if defined(BUILD_TLS_RSA_WITH_RABBIT_CBC_SHA) + #define BUILD_RABBIT +#endif + +#ifdef NO_DES3 + #define DES_BLOCK_SIZE 8 +#endif + +#ifdef NO_AES + #define AES_BLOCK_SIZE 16 +#endif + + +/* actual cipher values, 2nd byte */ +enum { + TLS_DHE_RSA_WITH_AES_256_CBC_SHA = 0x39, + TLS_DHE_RSA_WITH_AES_128_CBC_SHA = 0x33, + TLS_RSA_WITH_AES_256_CBC_SHA = 0x35, + TLS_RSA_WITH_AES_128_CBC_SHA = 0x2F, + TLS_PSK_WITH_AES_256_CBC_SHA = 0x8d, + TLS_PSK_WITH_AES_128_CBC_SHA = 0x8c, + SSL_RSA_WITH_RC4_128_SHA = 0x05, + SSL_RSA_WITH_RC4_128_MD5 = 0x04, + SSL_RSA_WITH_3DES_EDE_CBC_SHA = 0x0A, + + /* ECC suites, first byte is 0xC0 (ECC_BYTE) */ + TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA = 0x14, + TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA = 0x13, + TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA = 0x0A, + TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA = 0x09, + TLS_ECDHE_RSA_WITH_RC4_128_SHA = 0x11, + TLS_ECDHE_ECDSA_WITH_RC4_128_SHA = 0x07, + TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA = 0x12, + TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA = 0x08, + + /* static ECDH, first byte is 0xC0 (ECC_BYTE) */ + TLS_ECDH_RSA_WITH_AES_256_CBC_SHA = 0x0F, + TLS_ECDH_RSA_WITH_AES_128_CBC_SHA = 0x0E, + TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA = 0x05, + TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA = 0x04, + TLS_ECDH_RSA_WITH_RC4_128_SHA = 0x0C, + TLS_ECDH_ECDSA_WITH_RC4_128_SHA = 0x02, + TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA = 0x0D, + TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA = 0x03, + + /* CyaSSL extension - eSTREAM */ + TLS_RSA_WITH_HC_128_CBC_MD5 = 0xFB, + TLS_RSA_WITH_HC_128_CBC_SHA = 0xFC, + TLS_RSA_WITH_RABBIT_CBC_SHA = 0xFD, + + /* CyaSSL extension - NTRU */ + TLS_NTRU_RSA_WITH_RC4_128_SHA = 0xe5, + TLS_NTRU_RSA_WITH_3DES_EDE_CBC_SHA = 0xe6, + TLS_NTRU_RSA_WITH_AES_128_CBC_SHA = 0xe7, /* clases w/ official SHA-256 */ + TLS_NTRU_RSA_WITH_AES_256_CBC_SHA = 0xe8, + + /* SHA256 */ + TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 = 0x6b, + TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 = 0x67, + TLS_RSA_WITH_AES_256_CBC_SHA256 = 0x3d, + TLS_RSA_WITH_AES_128_CBC_SHA256 = 0x3c +}; + + +enum Misc { + SERVER_END = 0, + CLIENT_END, + + ECC_BYTE = 0xC0, /* ECC first cipher suite byte */ + + SEND_CERT = 1, + SEND_BLANK_CERT = 2, + + DTLS_MAJOR = 0xfe, /* DTLS major version number */ + DTLS_MINOR = 0xff, /* DTLS minor version number */ + SSLv3_MAJOR = 3, /* SSLv3 and TLSv1+ major version number */ + SSLv3_MINOR = 0, /* TLSv1 minor version number */ + TLSv1_MINOR = 1, /* TLSv1 minor version number */ + TLSv1_1_MINOR = 2, /* TLSv1_1 minor version number */ + TLSv1_2_MINOR = 3, /* TLSv1_2 minor version number */ + NO_COMPRESSION = 0, + ZLIB_COMPRESSION = 221, /* CyaSSL zlib compression */ + SECRET_LEN = 48, /* pre RSA and all master */ + ENCRYPT_LEN = 512, /* allow 4096 bit static buffer */ + SIZEOF_SENDER = 4, /* clnt or srvr */ + FINISHED_SZ = MD5_DIGEST_SIZE + SHA_DIGEST_SIZE, + MAX_RECORD_SIZE = 16384, /* 2^14, max size by standard */ + MAX_MSG_EXTRA = 68, /* max added to msg, mac + pad */ + MAX_COMP_EXTRA = 1024, /* max compression extra */ + MAX_MTU = 1500, /* max expected MTU */ + MAX_UDP_SIZE = MAX_MTU - 100, /* don't exceed MTU w/ 100 byte header */ + MAX_DH_SZ = 612, /* 2240 p, pub, g + 2 byte size for each */ + MAX_STR_VERSION = 8, /* string rep of protocol version */ + + PAD_MD5 = 48, /* pad length for finished */ + PAD_SHA = 40, /* pad length for finished */ + PEM_LINE_LEN = 80, /* PEM line max + fudge */ + LENGTH_SZ = 2, /* length field for HMAC, data only */ + VERSION_SZ = 2, /* length of proctocol version */ + SEQ_SZ = 8, /* 64 bit sequence number */ + BYTE3_LEN = 3, /* up to 24 bit byte lengths */ + ALERT_SIZE = 2, /* level + description */ + REQUEST_HEADER = 2, /* always use 2 bytes */ + VERIFY_HEADER = 2, /* always use 2 bytes */ + MAX_DH_SIZE = 513, /* 4096 bit plus possible leading 0 */ + + MAX_SUITE_SZ = 200, /* 100 suites for now! */ + RAN_LEN = 32, /* random length */ + SEED_LEN = RAN_LEN * 2, /* tls prf seed length */ + ID_LEN = 32, /* session id length */ + MAX_COOKIE_LEN = 32, /* max dtls cookie size */ + SUITE_LEN = 2, /* cipher suite sz length */ + ENUM_LEN = 1, /* always a byte */ + COMP_LEN = 1, /* compression length */ + CURVE_LEN = 2, /* ecc named curve length */ + + HANDSHAKE_HEADER_SZ = 4, /* type + length(3) */ + RECORD_HEADER_SZ = 5, /* type + version + len(2) */ + CERT_HEADER_SZ = 3, /* always 3 bytes */ + REQ_HEADER_SZ = 2, /* cert request header sz */ + HINT_LEN_SZ = 2, /* length of hint size field */ + + DTLS_HANDSHAKE_HEADER_SZ = 12, /* normal + seq(2) + offset(3) + length(3) */ + DTLS_RECORD_HEADER_SZ = 13, /* normal + epoch(2) + seq_num(6) */ + DTLS_HANDSHAKE_EXTRA = 8, /* diff from normal */ + DTLS_RECORD_EXTRA = 8, /* diff from normal */ + + FINISHED_LABEL_SZ = 15, /* TLS finished label size */ + TLS_FINISHED_SZ = 12, /* TLS has a shorter size */ + MASTER_LABEL_SZ = 13, /* TLS master secret label sz */ + KEY_LABEL_SZ = 13, /* TLS key block expansion sz */ + MAX_PRF_HALF = 128, /* Maximum half secret len */ + MAX_PRF_LABSEED = 80, /* Maximum label + seed len */ + MAX_PRF_DIG = 224, /* Maximum digest len */ + MAX_REQUEST_SZ = 256, /* Maximum cert req len (no auth yet */ + SESSION_FLUSH_COUNT = 256, /* Flush session cache unless user turns off */ + + RC4_KEY_SIZE = 16, /* always 128bit */ + DES_KEY_SIZE = 8, /* des */ + DES3_KEY_SIZE = 24, /* 3 des ede */ + DES_IV_SIZE = DES_BLOCK_SIZE, + AES_256_KEY_SIZE = 32, /* for 256 bit */ + AES_192_KEY_SIZE = 24, /* for 192 bit */ + AES_IV_SIZE = 16, /* always block size */ + AES_128_KEY_SIZE = 16, /* for 128 bit */ + + HC_128_KEY_SIZE = 16, /* 128 bits */ + HC_128_IV_SIZE = 16, /* also 128 bits */ + + RABBIT_KEY_SIZE = 16, /* 128 bits */ + RABBIT_IV_SIZE = 8, /* 64 bits for iv */ + + EVP_SALT_SIZE = 8, /* evp salt size 64 bits */ + + ECDHE_SIZE = 32, /* ECHDE server size defaults to 256 bit */ + MAX_EXPORT_ECC_SZ = 256, /* Export ANS X9.62 max future size */ + + MAX_HELLO_SZ = 128, /* max client or server hello */ + MAX_CERT_VERIFY_SZ = 1024, /* max */ + CLIENT_HELLO_FIRST = 35, /* Protocol + RAN_LEN + sizeof(id_len) */ + MAX_SUITE_NAME = 48, /* maximum length of cipher suite string */ + DEFAULT_TIMEOUT = 500, /* default resumption timeout in seconds */ + + MAX_PSK_ID_LEN = 128, /* max psk identity/hint supported */ + MAX_PSK_KEY_LEN = 64, /* max psk key supported */ + +#ifdef FORTRESS + MAX_EX_DATA = 3, /* allow for three items of ex_data */ + MAX_CHAIN_DEPTH = 9, /* max cert chain peer depth, FORTRESS option */ +#else + MAX_CHAIN_DEPTH = 4, /* max cert chain peer depth */ +#endif + MAX_X509_SIZE = 2048, /* max static x509 buffer size */ + CERT_MIN_SIZE = 256, /* min PEM cert size with header/footer */ + MAX_FILENAME_SZ = 256, /* max file name length */ + FILE_BUFFER_SIZE = 1024, /* default static file buffer size for input, + will use dynamic buffer if not big enough */ + + MAX_NTRU_PUB_KEY_SZ = 1027, /* NTRU max for now */ + MAX_NTRU_ENCRYPT_SZ = 1027, /* NTRU max for now */ + MAX_NTRU_BITS = 256, /* max symmetric bit strength */ + NO_SNIFF = 0, /* not sniffing */ + SNIFF = 1, /* currently sniffing */ + + HASH_SIG_SIZE = 2, /* default SHA1 RSA */ + + NO_COPY = 0, /* should we copy static buffer for write */ + COPY = 1 /* should we copy static buffer for write */ +}; + + +/* states */ +enum states { + NULL_STATE = 0, + + SERVER_HELLOVERIFYREQUEST_COMPLETE, + SERVER_HELLO_COMPLETE, + SERVER_CERT_COMPLETE, + SERVER_KEYEXCHANGE_COMPLETE, + SERVER_HELLODONE_COMPLETE, + SERVER_FINISHED_COMPLETE, + + CLIENT_HELLO_COMPLETE, + CLIENT_KEYEXCHANGE_COMPLETE, + CLIENT_FINISHED_COMPLETE, + + HANDSHAKE_DONE +}; + + + +/* SSL Version */ +typedef struct ProtocolVersion { + byte major; + byte minor; +} ProtocolVersion; + + +CYASSL_LOCAL ProtocolVersion MakeSSLv3(void); +CYASSL_LOCAL ProtocolVersion MakeTLSv1(void); +CYASSL_LOCAL ProtocolVersion MakeTLSv1_1(void); +CYASSL_LOCAL ProtocolVersion MakeTLSv1_2(void); + +#ifdef CYASSL_DTLS + CYASSL_LOCAL ProtocolVersion MakeDTLSv1(void); +#endif + + +enum BIO_TYPE { + BIO_BUFFER = 1, + BIO_SOCKET = 2, + BIO_SSL = 3, + BIO_MEMORY = 4 +}; + + +/* CyaSSL BIO_METHOD type */ +struct CYASSL_BIO_METHOD { + byte type; /* method type */ +}; + + +/* CyaSSL BIO type */ +struct CYASSL_BIO { + byte type; /* method type */ + byte close; /* close flag */ + byte eof; /* eof flag */ + CYASSL* ssl; /* possible associated ssl */ + byte* mem; /* memory buffer */ + int memLen; /* memory buffer length */ + int fd; /* possible file descriptor */ + CYASSL_BIO* prev; /* previous in chain */ + CYASSL_BIO* next; /* next in chain */ +}; + + +/* CyaSSL method type */ +struct CYASSL_METHOD { + ProtocolVersion version; + byte side; /* connection side, server or client */ + byte verifyPeer; /* request or send certificate */ + byte verifyNone; /* whether to verify certificate */ + byte failNoCert; /* fail if no certificate */ + byte downgrade; /* whether to downgrade version, default no */ +}; + + +/* defautls to client */ +CYASSL_LOCAL void InitSSL_Method(CYASSL_METHOD*, ProtocolVersion); + +/* for sniffer */ +CYASSL_LOCAL int DoFinished(CYASSL* ssl, const byte* input, word32* inOutIdx, + int sniff); +CYASSL_LOCAL int DoApplicationData(CYASSL* ssl, byte* input, word32* inOutIdx); + + +/* CyaSSL buffer type */ +typedef struct buffer { + word32 length; + byte* buffer; +} buffer; + + +enum { + FORCED_FREE = 1, + NO_FORCED_FREE = 0 +}; + + +/* only use compression extra if using compression */ +#ifdef HAVE_LIBZ + #define COMP_EXTRA MAX_COMP_EXTRA +#else + #define COMP_EXTRA 0 +#endif + +/* only the sniffer needs space in the buffer for an extra MTU record */ +#ifdef CYASSL_SNIFFER + #define MTU_EXTRA MAX_MTU +#else + #define MTU_EXTRA 0 +#endif + +/* give user option to use 16K static buffers, sniffer needs them too */ +#if defined(LARGE_STATIC_BUFFERS) || defined(CYASSL_SNIFFER) + #define RECORD_SIZE MAX_RECORD_SIZE +#else + #ifdef CYASSL_DTLS + #define RECORD_SIZE MAX_MTU + #else + #define RECORD_SIZE 128 + #endif +#endif + + +/* user option to turn off 16K output option */ +/* if using small static buffers (default) and SSL_write tries to write data + larger than the record we have, dynamically get it, unless user says only + write in static buffer chuncks */ +#ifndef STATIC_CHUNKS_ONLY + #define OUTPUT_RECORD_SIZE MAX_RECORD_SIZE +#else + #define OUTPUT_RECORD_SIZE RECORD_SIZE +#endif + +/* CyaSSL input buffer + + RFC 2246: + + length + The length (in bytes) of the following TLSPlaintext.fragment. + The length should not exceed 2^14. +*/ +#define STATIC_BUFFER_LEN RECORD_HEADER_SZ + RECORD_SIZE + COMP_EXTRA + \ + MTU_EXTRA + MAX_MSG_EXTRA + +typedef struct { + word32 length; /* total buffer length used */ + word32 idx; /* idx to part of length already consumed */ + byte* buffer; /* place holder for static or dynamic buffer */ + ALIGN16 byte staticBuffer[STATIC_BUFFER_LEN]; + word32 bufferSize; /* current buffer size */ + byte dynamicFlag; /* dynamic memory currently in use */ +} bufferStatic; + +/* Cipher Suites holder */ +typedef struct Suites { + int setSuites; /* user set suites from default */ + byte suites[MAX_SUITE_SZ]; + word16 suiteSz; /* suite length in bytes */ +} Suites; + + +CYASSL_LOCAL +void InitSuites(Suites*, ProtocolVersion, byte, byte, byte, byte, byte, int); +CYASSL_LOCAL +int SetCipherList(Suites*, const char* list); + +#ifndef PSK_TYPES_DEFINED + typedef unsigned int (*psk_client_callback)(CYASSL*, const char*, char*, + unsigned int, unsigned char*, unsigned int); + typedef unsigned int (*psk_server_callback)(CYASSL*, const char*, + unsigned char*, unsigned int); +#endif /* PSK_TYPES_DEFINED */ + + +#ifndef CYASSL_USER_IO + /* default IO callbacks */ + CYASSL_LOCAL + int EmbedReceive(char *buf, int sz, void *ctx); + CYASSL_LOCAL + int EmbedSend(char *buf, int sz, void *ctx); +#endif + +#ifdef CYASSL_DTLS + CYASSL_LOCAL + int IsUDP(void*); +#endif + + +/* CyaSSL Cipher type just points back to SSL */ +struct CYASSL_CIPHER { + CYASSL* ssl; +}; + + +#ifdef SINGLE_THREADED + typedef int CyaSSL_Mutex; +#else /* MULTI_THREADED */ + /* Comes first to enable use of FreeRTOS Windows simulator only. */ + #ifdef FREERTOS + typedef xSemaphoreHandle CyaSSL_Mutex; + #elif defined(USE_WINDOWS_API) + typedef CRITICAL_SECTION CyaSSL_Mutex; + #elif defined(CYASSL_PTHREADS) + typedef pthread_mutex_t CyaSSL_Mutex; + #elif defined(THREADX) + typedef TX_MUTEX CyaSSL_Mutex; + #elif defined(MICRIUM) + typedef OS_MUTEX CyaSSL_Mutex; + #else + #error Need a mutex type in multithreaded mode + #endif /* USE_WINDOWS_API */ +#endif /* SINGLE_THREADED */ + +CYASSL_LOCAL int InitMutex(CyaSSL_Mutex*); +CYASSL_LOCAL int FreeMutex(CyaSSL_Mutex*); +CYASSL_LOCAL int LockMutex(CyaSSL_Mutex*); +CYASSL_LOCAL int UnLockMutex(CyaSSL_Mutex*); + + + +typedef struct CRL_Entry CRL_Entry; + +/* Complete CRL */ +struct CRL_Entry { + CRL_Entry* next; /* next entry */ + byte issuerHash[SHA_DIGEST_SIZE]; /* issuer hash */ + byte crlHash[MD5_DIGEST_SIZE]; /* raw crl data hash */ + byte lastDate[MAX_DATE_SIZE]; /* last date updated */ + byte nextDate[MAX_DATE_SIZE]; /* next update date */ + RevokedCert* certs; /* revoked cert list */ + int totalCerts; /* number on list */ +}; + + +/* CyaSSL CRL controller */ +struct CYASSL_CRL { + CYASSL_CERT_MANAGER* cm; /* pointer back to cert manager */ + CRL_Entry* crlList; /* our CRL list */ + CyaSSL_Mutex crlLock; /* CRL list lock */ +}; + + +/* CyaSSL Certificate Manager */ +struct CYASSL_CERT_MANAGER { + Signer* caList; /* the CA signer list */ + CyaSSL_Mutex caLock; /* CA list lock */ + CallbackCACache caCacheCallback; /* CA cache addition callback */ + void* heap; /* heap helper */ + CYASSL_CRL* crl; /* CRL checker */ + byte crlEnabled; /* is CRL on ? */ + byte crlCheckAll; /* always leaf, but all ? */ + CbMissingCRL cbMissingCRL; /* notify through cb of missing crl */ +}; + + +/* CyaSSL context type */ +struct CYASSL_CTX { + CYASSL_METHOD* method; + CyaSSL_Mutex countMutex; /* reference count mutex */ + int refCount; /* reference count */ + buffer certificate; + buffer certChain; + /* chain after self, in DER, with leading size for each cert */ + buffer privateKey; + buffer serverDH_P; + buffer serverDH_G; + CYASSL_CERT_MANAGER* cm; /* our cert manager, ctx owns SSL will use */ + Suites suites; + void* heap; /* for user memory overrides */ + byte verifyPeer; + byte verifyNone; + byte failNoCert; + byte sessionCacheOff; + byte sessionCacheFlushOff; + byte sendVerify; /* for client side */ + byte haveDH; /* server DH parms set by user */ + byte haveNTRU; /* server private NTRU key loaded */ + byte haveECDSA; /* server cert signed w/ ECDSA loaded */ + byte haveStaticECC; /* static server ECC private key */ + byte partialWrite; /* only one msg per write call */ + byte quietShutdown; /* don't send close notify */ + byte groupMessages; /* group handshake messages before sending */ + CallbackIORecv CBIORecv; + CallbackIOSend CBIOSend; + VerifyCallback verifyCallback; /* cert verification callback */ + word32 timeout; /* session timeout */ +#ifdef HAVE_ECC + word16 eccTempKeySz; /* in octets 20 - 66 */ +#endif +#ifndef NO_PSK + byte havePSK; /* psk key set by user */ + psk_client_callback client_psk_cb; /* client callback */ + psk_server_callback server_psk_cb; /* server callback */ + char server_hint[MAX_PSK_ID_LEN]; +#endif /* NO_PSK */ +#if defined(OPENSSL_EXTRA) || defined(HAVE_WEBSERVER) + pem_password_cb passwd_cb; + void* userdata; +#endif /* OPENSSL_EXTRA */ +#ifdef HAVE_OCSP + CYASSL_OCSP ocsp; +#endif +}; + + +CYASSL_LOCAL +int InitSSL_Ctx(CYASSL_CTX*, CYASSL_METHOD*); +CYASSL_LOCAL +void FreeSSL_Ctx(CYASSL_CTX*); +CYASSL_LOCAL +void SSL_CtxResourceFree(CYASSL_CTX*); + +CYASSL_LOCAL +int DeriveTlsKeys(CYASSL* ssl); +CYASSL_LOCAL +int ProcessOldClientHello(CYASSL* ssl, const byte* input, word32* inOutIdx, + word32 inSz, word16 sz); +CYASSL_LOCAL +int AddCA(CYASSL_CERT_MANAGER* ctx, buffer der, int type, int verify); +CYASSL_LOCAL +int AlreadySigner(CYASSL_CERT_MANAGER* cm, byte* hash); + +/* All cipher suite related info */ +typedef struct CipherSpecs { + byte bulk_cipher_algorithm; + byte cipher_type; /* block or stream */ + byte mac_algorithm; + byte kea; /* key exchange algo */ + byte sig_algo; + byte hash_size; + byte pad_size; + byte static_ecdh; + word16 key_size; + word16 iv_size; + word16 block_size; +} CipherSpecs; + + + +/* Supported Ciphers from page 43 */ +enum BulkCipherAlgorithm { + cipher_null, + rc4, + rc2, + des, + triple_des, /* leading 3 (3des) not valid identifier */ + des40, + idea, + aes, + hc128, /* CyaSSL extensions */ + rabbit +}; + + +/* Supported Message Authentication Codes from page 43 */ +enum MACAlgorithm { + no_mac = 0, + md5_mac, + sha_mac, + sha224_mac, + sha256_mac, + sha384_mac, + sha512_mac, + rmd_mac +}; + + +/* Supported Key Exchange Protocols */ +enum KeyExchangeAlgorithm { + no_kea = 0, + rsa_kea, + diffie_hellman_kea, + fortezza_kea, + psk_kea, + ntru_kea, + ecc_diffie_hellman_kea +}; + + +/* Supported Authentication Schemes */ +enum SignatureAlgorithm { + anonymous_sa_algo = 0, + rsa_sa_algo, + dsa_sa_algo, + ecc_dsa_sa_algo +}; + + +/* Supprted ECC Curve Types */ +enum EccCurves { + named_curve = 3 +}; + + +/* Supprted ECC Named Curves */ +enum EccNamedCurves { + secp256r1 = 0x17, /* default, OpenSSL also calls it prime256v1 */ + secp384r1 = 0x18, + secp521r1 = 0x19, + + secp160r1 = 0x10, + secp192r1 = 0x13, /* Openssl also call it prime192v1 */ + secp224r1 = 0x15 +}; + + +/* Valid client certificate request types from page 27 */ +enum ClientCertificateType { + rsa_sign = 1, + dss_sign = 2, + rsa_fixed_dh = 3, + dss_fixed_dh = 4, + rsa_ephemeral_dh = 5, + dss_ephemeral_dh = 6, + fortezza_kea_cert = 20 +}; + + +enum CipherType { stream, block }; + + +/* keys and secrets */ +typedef struct Keys { + byte client_write_MAC_secret[SHA256_DIGEST_SIZE]; /* max sizes */ + byte server_write_MAC_secret[SHA256_DIGEST_SIZE]; + byte client_write_key[AES_256_KEY_SIZE]; /* max sizes */ + byte server_write_key[AES_256_KEY_SIZE]; + byte client_write_IV[AES_IV_SIZE]; /* max sizes */ + byte server_write_IV[AES_IV_SIZE]; + + word32 peer_sequence_number; + word32 sequence_number; + +#ifdef CYASSL_DTLS + word32 dtls_sequence_number; + word32 dtls_peer_sequence_number; + word16 dtls_handshake_number; + word16 dtls_epoch; + word16 dtls_peer_epoch; +#endif + + word32 encryptSz; /* last size of encrypted data */ + byte encryptionOn; /* true after change cipher spec */ +} Keys; + + +/* cipher for now */ +typedef union { +#ifdef BUILD_ARC4 + Arc4 arc4; +#endif +#ifdef BUILD_DES3 + Des3 des3; +#endif +#ifdef BUILD_AES + Aes aes; +#endif +#ifdef HAVE_HC128 + HC128 hc128; +#endif +#ifdef BUILD_RABBIT + Rabbit rabbit; +#endif +} Ciphers; + + +/* hashes type */ +typedef struct Hashes { + byte md5[MD5_DIGEST_SIZE]; + byte sha[SHA_DIGEST_SIZE]; +} Hashes; + + +/* Static x509 buffer */ +typedef struct x509_buffer { + int length; /* actual size */ + byte buffer[MAX_X509_SIZE]; /* max static cert size */ +} x509_buffer; + + +/* CyaSSL X509_CHAIN, for no dynamic memory SESSION_CACHE */ +struct CYASSL_X509_CHAIN { + int count; /* total number in chain */ + x509_buffer certs[MAX_CHAIN_DEPTH]; /* only allow max depth 4 for now */ +}; + + +/* CyaSSL session type */ +struct CYASSL_SESSION { + byte sessionID[ID_LEN]; + byte masterSecret[SECRET_LEN]; + word32 bornOn; /* create time in seconds */ + word32 timeout; /* timeout in seconds */ +#ifdef SESSION_CERTS + CYASSL_X509_CHAIN chain; /* peer cert chain, static */ + ProtocolVersion version; + byte cipherSuite0; /* first byte, normally 0 */ + byte cipherSuite; /* 2nd byte, actual suite */ +#endif +}; + + +CYASSL_LOCAL +CYASSL_SESSION* GetSession(CYASSL*, byte*); +CYASSL_LOCAL +int SetSession(CYASSL*, CYASSL_SESSION*); + +typedef void (*hmacfp) (CYASSL*, byte*, const byte*, word32, int, int); + + +/* client connect state for nonblocking restart */ +enum ConnectState { + CONNECT_BEGIN = 0, + CLIENT_HELLO_SENT, + HELLO_AGAIN, /* HELLO_AGAIN s for DTLS case */ + HELLO_AGAIN_REPLY, + FIRST_REPLY_DONE, + FIRST_REPLY_FIRST, + FIRST_REPLY_SECOND, + FIRST_REPLY_THIRD, + FIRST_REPLY_FOURTH, + FINISHED_DONE, + SECOND_REPLY_DONE +}; + + +/* server accept state for nonblocking restart */ +enum AcceptState { + ACCEPT_BEGIN = 0, + ACCEPT_CLIENT_HELLO_DONE, + HELLO_VERIFY_SENT, + ACCEPT_FIRST_REPLY_DONE, + SERVER_HELLO_SENT, + CERT_SENT, + KEY_EXCHANGE_SENT, + CERT_REQ_SENT, + SERVER_HELLO_DONE, + ACCEPT_SECOND_REPLY_DONE, + CHANGE_CIPHER_SENT, + ACCEPT_FINISHED_DONE, + ACCEPT_THIRD_REPLY_DONE +}; + + +typedef struct Buffers { + buffer certificate; /* CYASSL_CTX owns, unless we own */ + buffer key; /* CYASSL_CTX owns, unless we own */ + buffer certChain; /* CYASSL_CTX owns */ + /* chain after self, in DER, with leading size for each cert */ + buffer domainName; /* for client check */ + buffer serverDH_P; /* CYASSL_CTX owns, unless we own */ + buffer serverDH_G; /* CYASSL_CTX owns, unless we own */ + buffer serverDH_Pub; + buffer serverDH_Priv; + bufferStatic inputBuffer; + bufferStatic outputBuffer; + buffer clearOutputBuffer; + int prevSent; /* previous plain text bytes sent + when got WANT_WRITE */ + int plainSz; /* plain text bytes in buffer to send + when got WANT_WRITE */ + byte weOwnCert; /* SSL own cert flag */ + byte weOwnKey; /* SSL own key flag */ + byte weOwnDH; /* SSL own dh (p,g) flag */ +} Buffers; + + +typedef struct Options { + byte sessionCacheOff; + byte sessionCacheFlushOff; + byte cipherSuite0; /* first byte, normally 0 */ + byte cipherSuite; /* second byte, actual suite */ + byte serverState; + byte clientState; + byte handShakeState; + byte side; /* client or server end */ + byte verifyPeer; + byte verifyNone; + byte failNoCert; + byte downgrade; /* allow downgrade of versions */ + byte sendVerify; /* false = 0, true = 1, sendBlank = 2 */ + byte resuming; + byte haveSessionId; /* server may not send */ + byte tls; /* using TLS ? */ + byte tls1_1; /* using TLSv1.1+ ? */ + byte dtls; /* using datagrams ? */ + byte connReset; /* has the peer reset */ + byte isClosed; /* if we consider conn closed */ + byte closeNotify; /* we've recieved a close notify */ + byte sentNotify; /* we've sent a close notify */ + byte connectState; /* nonblocking resume */ + byte acceptState; /* nonblocking resume */ + byte usingCompression; /* are we using compression */ + byte haveDH; /* server DH parms set by user */ + byte haveNTRU; /* server NTRU private key loaded */ + byte haveECDSA; /* server ECDSA signed cert */ + byte haveStaticECC; /* static server ECC private key */ + byte havePeerCert; /* do we have peer's cert */ + byte usingPSK_cipher; /* whether we're using psk as cipher */ + byte sendAlertState; /* nonblocking resume */ + byte processReply; /* nonblocking resume */ + byte partialWrite; /* only one msg per write call */ + byte quietShutdown; /* don't send close notify */ + byte certOnly; /* stop once we get cert */ + byte groupMessages; /* group handshake messages */ +#ifndef NO_PSK + byte havePSK; /* psk key set by user */ + psk_client_callback client_psk_cb; + psk_server_callback server_psk_cb; +#endif /* NO_PSK */ +} Options; + + +typedef struct Arrays { + byte clientRandom[RAN_LEN]; + byte serverRandom[RAN_LEN]; + byte sessionID[ID_LEN]; + byte preMasterSecret[ENCRYPT_LEN]; + byte masterSecret[SECRET_LEN]; +#ifdef CYASSL_DTLS + byte cookie[MAX_COOKIE_LEN]; +#endif +#ifndef NO_PSK + char client_identity[MAX_PSK_ID_LEN]; + char server_hint[MAX_PSK_ID_LEN]; + byte psk_key[MAX_PSK_KEY_LEN]; + word32 psk_keySz; /* acutal size */ +#endif + word32 preMasterSz; /* differs for DH, actual size */ +} Arrays; + + +struct CYASSL_X509_NAME { + char name[ASN_NAME_MAX]; + int sz; +}; + + +struct CYASSL_X509 { + CYASSL_X509_NAME issuer; + CYASSL_X509_NAME subject; + int serialSz; + byte serial[EXTERNAL_SERIAL_SIZE]; + char subjectCN[ASN_NAME_MAX]; /* common name short cut */ + buffer derCert; /* may need */ +}; + + +/* record layer header for PlainText, Compressed, and CipherText */ +typedef struct RecordLayerHeader { + byte type; + ProtocolVersion version; + byte length[2]; +} RecordLayerHeader; + + +/* record layer header for DTLS PlainText, Compressed, and CipherText */ +typedef struct DtlsRecordLayerHeader { + byte type; + ProtocolVersion version; + byte epoch[2]; /* increment on cipher state change */ + byte sequence_number[6]; /* per record */ + byte length[2]; +} DtlsRecordLayerHeader; + + +/* CyaSSL ssl type */ +struct CYASSL { + CYASSL_CTX* ctx; + int error; + ProtocolVersion version; /* negotiated version */ + ProtocolVersion chVersion; /* client hello version */ + Suites suites; + Ciphers encrypt; + Ciphers decrypt; + CipherSpecs specs; + Keys keys; + int rfd; /* read file descriptor */ + int wfd; /* write file descriptor */ + CYASSL_BIO* biord; /* socket bio read to free/close */ + CYASSL_BIO* biowr; /* socket bio write to free/close */ + void* IOCB_ReadCtx; + void* IOCB_WriteCtx; + RNG rng; + Md5 hashMd5; /* md5 hash of handshake msgs */ + Sha hashSha; /* sha hash of handshake msgs */ +#ifndef NO_SHA256 + Sha256 hashSha256; /* sha256 hash of handshake msgs */ +#endif + Hashes verifyHashes; + Hashes certHashes; /* for cert verify */ + Buffers buffers; + Options options; + Arrays arrays; + CYASSL_SESSION session; + VerifyCallback verifyCallback; /* cert verification callback */ + RsaKey peerRsaKey; + byte peerRsaKeyPresent; +#ifdef HAVE_NTRU + word16 peerNtruKeyLen; + byte peerNtruKey[MAX_NTRU_PUB_KEY_SZ]; + byte peerNtruKeyPresent; +#endif +#ifdef HAVE_ECC + ecc_key peerEccKey; /* peer's ECDHE key */ + ecc_key peerEccDsaKey; /* peer's ECDSA key */ + ecc_key eccTempKey; /* private ECDHE key */ + ecc_key eccDsaKey; /* private ECDSA key */ + word16 eccTempKeySz; /* in octets 20 - 66 */ + byte peerEccKeyPresent; + byte peerEccDsaKeyPresent; + byte eccTempKeyPresent; + byte eccDsaKeyPresent; +#endif + hmacfp hmac; + void* heap; /* for user overrides */ + RecordLayerHeader curRL; + word16 curSize; + word32 timeout; /* session timeout */ + CYASSL_CIPHER cipher; +#ifdef HAVE_LIBZ + z_stream c_stream; /* compression stream */ + z_stream d_stream; /* decompression stream */ + byte didStreamInit; /* for stream init and end */ +#endif +#ifdef CYASSL_CALLBACKS + HandShakeInfo handShakeInfo; /* info saved during handshake */ + TimeoutInfo timeoutInfo; /* info saved during handshake */ + byte hsInfoOn; /* track handshake info */ + byte toInfoOn; /* track timeout info */ +#endif +#ifdef OPENSSL_EXTRA + CYASSL_X509 peerCert; /* X509 peer cert */ +#endif +#ifdef FORTRESS + void* ex_data[MAX_EX_DATA]; /* external data, for Fortress */ +#endif +}; + + +CYASSL_LOCAL +int InitSSL(CYASSL*, CYASSL_CTX*); +CYASSL_LOCAL +void FreeSSL(CYASSL*); +CYASSL_API void SSL_ResourceFree(CYASSL*); /* Micrium uses */ + + +enum { + IV_SZ = 32, /* max iv sz */ + NAME_SZ = 80, /* max one line */ +}; + + +typedef struct EncryptedInfo { + char name[NAME_SZ]; /* encryption name */ + byte iv[IV_SZ]; /* encrypted IV */ + word32 ivSz; /* encrypted IV size */ + long consumed; /* tracks PEM bytes consumed */ + byte set; /* if encryption set */ + CYASSL_CTX* ctx; /* CTX owner */ +} EncryptedInfo; + +CYASSL_LOCAL int PemToDer(const unsigned char* buff, long sz, int type, + buffer* der, void* heap, EncryptedInfo* info, + int* eccKey); + +CYASSL_LOCAL int ProcessFile(CYASSL_CTX* ctx, const char* fname, int format, + int type, CYASSL* ssl, int userChain, + CYASSL_CRL* crl); + + +#ifdef CYASSL_CALLBACKS + CYASSL_LOCAL + void InitHandShakeInfo(HandShakeInfo*); + CYASSL_LOCAL + void FinishHandShakeInfo(HandShakeInfo*, const CYASSL*); + CYASSL_LOCAL + void AddPacketName(const char*, HandShakeInfo*); + + CYASSL_LOCAL + void InitTimeoutInfo(TimeoutInfo*); + CYASSL_LOCAL + void FreeTimeoutInfo(TimeoutInfo*, void*); + CYASSL_LOCAL + void AddPacketInfo(const char*, TimeoutInfo*, const byte*, int, void*); + CYASSL_LOCAL + void AddLateName(const char*, TimeoutInfo*); + CYASSL_LOCAL + void AddLateRecordHeader(const RecordLayerHeader* rl, TimeoutInfo* info); +#endif + + +/* Record Layer Header identifier from page 12 */ +enum ContentType { + no_type = 0, + change_cipher_spec = 20, + alert = 21, + handshake = 22, + application_data = 23 +}; + + +/* handshake header, same for each message type, pgs 20/21 */ +typedef struct HandShakeHeader { + byte type; + word24 length; +} HandShakeHeader; + + +/* DTLS handshake header, same for each message type */ +typedef struct DtlsHandShakeHeader { + byte type; + word24 length; + byte message_seq[2]; /* start at 0, restransmit gets same # */ + word24 fragment_offset; /* bytes in previous fragments */ + word24 fragment_length; /* length of this fragment */ +} DtlsHandShakeHeader; + + +enum HandShakeType { + no_shake = -1, + hello_request = 0, + client_hello = 1, + server_hello = 2, + hello_verify_request = 3, /* DTLS addition */ + certificate = 11, + server_key_exchange = 12, + certificate_request = 13, + server_hello_done = 14, + certificate_verify = 15, + client_key_exchange = 16, + finished = 20 +}; + + +/* Valid Alert types from page 16/17 */ +enum AlertDescription { + close_notify = 0, + unexpected_message = 10, + bad_record_mac = 20, + decompression_failure = 30, + handshake_failure = 40, + no_certificate = 41, + bad_certificate = 42, + unsupported_certificate = 43, + certificate_revoked = 44, + certificate_expired = 45, + certificate_unknown = 46, + illegal_parameter = 47, + decrypt_error = 51, + protocol_version = 70, + no_renegotiation = 100 +}; + + +/* I/O Callback default errors */ +enum IOerrors { + IO_ERR_GENERAL = -1, /* general unexpected err, not in below group */ + IO_ERR_WANT_READ = -2, /* need to call read again */ + IO_ERR_WANT_WRITE = -2, /* need to call write again */ + IO_ERR_CONN_RST = -3, /* connection reset */ + IO_ERR_ISR = -4, /* interrupt */ + IO_ERR_CONN_CLOSE = -5 /* connection closed or epipe */ +}; + + +enum AlertLevel { + alert_warning = 1, + alert_fatal = 2 +}; + + +static const byte client[SIZEOF_SENDER] = { 0x43, 0x4C, 0x4E, 0x54 }; +static const byte server[SIZEOF_SENDER] = { 0x53, 0x52, 0x56, 0x52 }; + +static const byte tls_client[FINISHED_LABEL_SZ + 1] = "client finished"; +static const byte tls_server[FINISHED_LABEL_SZ + 1] = "server finished"; + + +/* internal functions */ +CYASSL_LOCAL int SendChangeCipher(CYASSL*); +CYASSL_LOCAL int SendData(CYASSL*, const void*, int); +CYASSL_LOCAL int SendCertificate(CYASSL*); +CYASSL_LOCAL int SendCertificateRequest(CYASSL*); +CYASSL_LOCAL int SendServerKeyExchange(CYASSL*); +CYASSL_LOCAL int SendBuffered(CYASSL*); +CYASSL_LOCAL int ReceiveData(CYASSL*, byte*, int); +CYASSL_LOCAL int SendFinished(CYASSL*); +CYASSL_LOCAL int SendAlert(CYASSL*, int, int); +CYASSL_LOCAL int ProcessReply(CYASSL*); + +CYASSL_LOCAL int SetCipherSpecs(CYASSL*); +CYASSL_LOCAL int MakeMasterSecret(CYASSL*); + +CYASSL_LOCAL int AddSession(CYASSL*); +CYASSL_LOCAL int DeriveKeys(CYASSL* ssl); +CYASSL_LOCAL int StoreKeys(CYASSL* ssl, const byte* keyData); + +CYASSL_LOCAL int IsTLS(const CYASSL* ssl); +CYASSL_LOCAL int IsAtLeastTLSv1_2(const CYASSL* ssl); + +CYASSL_LOCAL void ShrinkInputBuffer(CYASSL* ssl, int forcedFree); +CYASSL_LOCAL void ShrinkOutputBuffer(CYASSL* ssl); +CYASSL_LOCAL int SendHelloVerifyRequest(CYASSL* ssl); +CYASSL_LOCAL Signer* GetCA(void* cm, byte* hash); +CYASSL_LOCAL void BuildTlsFinished(CYASSL* ssl, Hashes* hashes, + const byte* sender); +#ifndef NO_TLS + CYASSL_LOCAL int MakeTlsMasterSecret(CYASSL*); + CYASSL_LOCAL void TLS_hmac(CYASSL* ssl, byte* digest, const byte* buffer, + word32 sz, int content, int verify); +#endif + +#ifndef NO_CYASSL_CLIENT + CYASSL_LOCAL int SendClientHello(CYASSL*); + CYASSL_LOCAL int SendClientKeyExchange(CYASSL*); + CYASSL_LOCAL int SendCertificateVerify(CYASSL*); +#endif /* NO_CYASSL_CLIENT */ + +#ifndef NO_CYASSL_SERVER + CYASSL_LOCAL int SendServerHello(CYASSL*); + CYASSL_LOCAL int SendServerHelloDone(CYASSL*); + #ifdef CYASSL_DTLS + CYASSL_LOCAL int SendHelloVerifyRequest(CYASSL*); + #endif +#endif /* NO_CYASSL_SERVER */ + + +#ifndef NO_TLS + + +#endif /* NO_TLS */ + + + +typedef double timer_d; + +CYASSL_LOCAL timer_d Timer(void); +CYASSL_LOCAL word32 LowResTimer(void); + + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + +#endif /* CyaSSL_INT_H */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/ocsp.h b/FreeRTOS-Plus/CyaSSL/cyassl/ocsp.h new file mode 100644 index 000000000..ee8af1534 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/ocsp.h @@ -0,0 +1,72 @@ +/* ssl.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +/* CyaSSL OCSP API */ + +#ifndef CYASSL_OCSP_H +#define CYASSL_OCSP_H + + +#include + + +#ifdef __cplusplus + extern "C" { +#endif + +typedef struct CYASSL_OCSP CYASSL_OCSP; +typedef struct CertStatus CertStatus; + +struct CertStatus { + byte issuerHash[SHA_SIZE]; + byte issuerKeyHash[SHA_SIZE]; + byte serial[EXTERNAL_SERIAL_SIZE]; + int serialSz; + int status; +}; + +struct CYASSL_OCSP { + byte enabled; + byte useOverrideUrl; + char overrideName[80]; + char overridePath[80]; + int overridePort; + int statusLen; + CertStatus status[1]; +}; + + + +CYASSL_LOCAL int CyaSSL_OCSP_Init(CYASSL_OCSP*); +CYASSL_LOCAL void CyaSSL_OCSP_Cleanup(CYASSL_OCSP*); +CYASSL_LOCAL int CyaSSL_OCSP_set_override_url(CYASSL_OCSP*, const char*); +CYASSL_LOCAL int CyaSSL_OCSP_Lookup_Cert(CYASSL_OCSP*, DecodedCert*); + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + + +#endif /* CYASSL_OCSP_H */ + + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/openssl/asn1.h b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/asn1.h new file mode 100644 index 000000000..3f34d7d2c --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/asn1.h @@ -0,0 +1,2 @@ +/* asn1.h for openssl */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/openssl/bio.h b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/bio.h new file mode 100644 index 000000000..aba1935f1 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/bio.h @@ -0,0 +1,23 @@ +/* bio.h for openssl */ + + +#ifndef CYASSL_BIO_H_ +#define CYASSL_BIO_H_ + +#include + + +#ifdef __cplusplus + extern "C" { +#endif + + + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + + +#endif /* CYASSL_BIO_H_ */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/openssl/bn.h b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/bn.h new file mode 100644 index 000000000..0796bab27 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/bn.h @@ -0,0 +1,115 @@ +/* bn.h for openssl */ + + +#ifndef CYASSL_BN_H_ +#define CYASSL_BN_H_ + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +typedef struct CYASSL_BIGNUM { + int neg; /* openssh deference */ + void* internal; /* our big num */ +} CYASSL_BIGNUM; + + +typedef struct CYASSL_BN_CTX CYASSL_BN_CTX; + + +CYASSL_API CYASSL_BN_CTX* CyaSSL_BN_CTX_new(void); +CYASSL_API void CyaSSL_BN_CTX_init(CYASSL_BN_CTX*); +CYASSL_API void CyaSSL_BN_CTX_free(CYASSL_BN_CTX*); + +CYASSL_API CYASSL_BIGNUM* CyaSSL_BN_new(void); +CYASSL_API void CyaSSL_BN_free(CYASSL_BIGNUM*); +CYASSL_API void CyaSSL_BN_clear_free(CYASSL_BIGNUM*); + + +CYASSL_API int CyaSSL_BN_sub(CYASSL_BIGNUM*, const CYASSL_BIGNUM*, + const CYASSL_BIGNUM*); +CYASSL_API int CyaSSL_BN_mod(CYASSL_BIGNUM*, const CYASSL_BIGNUM*, + const CYASSL_BIGNUM*, const CYASSL_BN_CTX*); + +CYASSL_API const CYASSL_BIGNUM* CyaSSL_BN_value_one(void); + + +CYASSL_API int CyaSSL_BN_num_bytes(const CYASSL_BIGNUM*); +CYASSL_API int CyaSSL_BN_num_bits(const CYASSL_BIGNUM*); + +CYASSL_API int CyaSSL_BN_is_zero(const CYASSL_BIGNUM*); +CYASSL_API int CyaSSL_BN_is_one(const CYASSL_BIGNUM*); +CYASSL_API int CyaSSL_BN_is_odd(const CYASSL_BIGNUM*); + +CYASSL_API int CyaSSL_BN_cmp(const CYASSL_BIGNUM*, const CYASSL_BIGNUM*); + +CYASSL_API int CyaSSL_BN_bn2bin(const CYASSL_BIGNUM*, unsigned char*); +CYASSL_API CYASSL_BIGNUM* CyaSSL_BN_bin2bn(const unsigned char*, int len, + CYASSL_BIGNUM* ret); + +CYASSL_API int CyaSSL_mask_bits(CYASSL_BIGNUM*, int n); + +CYASSL_API int CyaSSL_BN_rand(CYASSL_BIGNUM*, int bits, int top, int bottom); +CYASSL_API int CyaSSL_BN_is_bit_set(const CYASSL_BIGNUM*, int n); +CYASSL_API int CyaSSL_BN_hex2bn(CYASSL_BIGNUM**, const char* str); + +CYASSL_API CYASSL_BIGNUM* CyaSSL_BN_dup(const CYASSL_BIGNUM*); +CYASSL_API CYASSL_BIGNUM* CyaSSL_BN_copy(CYASSL_BIGNUM*, const CYASSL_BIGNUM*); + +CYASSL_API int CyaSSL_BN_set_word(CYASSL_BIGNUM*, unsigned long w); + +CYASSL_API int CyaSSL_BN_dec2bn(CYASSL_BIGNUM**, const char* str); +CYASSL_API char* CyaSSL_BN_bn2dec(const CYASSL_BIGNUM*); + + +typedef CYASSL_BIGNUM BIGNUM; +typedef CYASSL_BN_CTX BN_CTX; + +#define BN_CTX_new CyaSSL_BN_CTX_new +#define BN_CTX_init CyaSSL_BN_CTX_init +#define BN_CTX_free CyaSSL_BN_CTX_free + +#define BN_new CyaSSL_BN_new +#define BN_free CyaSSL_BN_free +#define BN_clear_free CyaSSL_BN_clear_free + +#define BN_num_bytes CyaSSL_BN_num_bytes +#define BN_num_bits CyaSSL_BN_num_bits + +#define BN_is_zero CyaSSL_BN_is_zero +#define BN_is_one CyaSSL_BN_is_one +#define BN_is_odd CyaSSL_BN_is_odd + +#define BN_cmp CyaSSL_BN_cmp + +#define BN_bn2bin CyaSSL_BN_bn2bin +#define BN_bin2bn CyaSSL_BN_bin2bn + +#define BN_mod CyaSSL_BN_mod +#define BN_sub CyaSSL_BN_sub +#define BN_value_one CyaSSL_BN_value_one + +#define BN_mask_bits CyaSSL_mask_bits + +#define BN_rand CyaSSL_BN_rand +#define BN_is_bit_set CyaSSL_BN_is_bit_set +#define BN_hex2bn CyaSSL_BN_hex2bn + +#define BN_dup CyaSSL_BN_dup +#define BN_copy CyaSSL_BN_copy + +#define BN_set_word CyaSSL_BN_set_word + +#define BN_dec2bn CyaSSL_BN_dec2bn +#define BN_bn2dec CyaSSL_BN_bn2dec + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + + +#endif /* CYASSL__H_ */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/openssl/conf.h b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/conf.h new file mode 100644 index 000000000..1e328cf47 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/conf.h @@ -0,0 +1,2 @@ +/* conf.h for openssl */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/openssl/crypto.h b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/crypto.h new file mode 100644 index 000000000..f7d5337c2 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/crypto.h @@ -0,0 +1,26 @@ +/* crypto.h for openSSL */ + +#ifndef CYASSL_CRYPTO_H_ +#define CYASSL_CRYPTO_H_ + + +#include + +#ifdef YASSL_PREFIX +#include "prefix_crypto.h" +#endif + + +CYASSL_API const char* CyaSSLeay_version(int type); +CYASSL_API unsigned long CyaSSLeay(void); + +#define SSLeay_version CyaSSLeay_version +#define SSLeay CyaSSLeay + + +#define SSLEAY_VERSION 0x0090600fL +#define SSLEAY_VERSION_NUMBER SSLEAY_VERSION + + +#endif /* header */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/openssl/des.h b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/des.h new file mode 100644 index 000000000..aacc276b0 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/des.h @@ -0,0 +1,87 @@ +/* des.h + * + * Copyright (C) 2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +/* des.h defines mini des openssl compatibility layer + * + */ + + +#ifndef CYASSL_DES_H_ +#define CYASSL_DES_H_ + +#include + +#ifdef YASSL_PREFIX +#include "prefix_des.h" +#endif + + +#ifdef __cplusplus + extern "C" { +#endif + +typedef unsigned char CYASSL_DES_cblock[8]; +typedef /* const */ CYASSL_DES_cblock CYASSL_const_DES_cblock; +typedef CYASSL_DES_cblock CYASSL_DES_key_schedule; + + +enum { + DES_ENCRYPT = 1, + DES_DECRYPT = 0 +}; + + +CYASSL_API void CyaSSL_DES_set_key_unchecked(CYASSL_const_DES_cblock*, + CYASSL_DES_key_schedule*); +CYASSL_API int CyaSSL_DES_key_sched(CYASSL_const_DES_cblock* key, + CYASSL_DES_key_schedule* schedule); +CYASSL_API void CyaSSL_DES_cbc_encrypt(const unsigned char* input, + unsigned char* output, long length, + CYASSL_DES_key_schedule* schedule, CYASSL_DES_cblock* ivec, + int enc); +CYASSL_API void CyaSSL_DES_ncbc_encrypt(const unsigned char* input, + unsigned char* output, long length, + CYASSL_DES_key_schedule* schedule, + CYASSL_DES_cblock* ivec, int enc); + +CYASSL_API void CyaSSL_DES_set_odd_parity(CYASSL_DES_cblock*); +CYASSL_API void CyaSSL_DES_ecb_encrypt(CYASSL_DES_cblock*, CYASSL_DES_cblock*, + CYASSL_DES_key_schedule*, int); + + +typedef CYASSL_DES_cblock DES_cblock; +typedef CYASSL_const_DES_cblock const_DES_cblock; +typedef CYASSL_DES_key_schedule DES_key_schedule; + +#define DES_set_key_unchecked CyaSSL_DES_set_key_unchecked +#define DES_key_sched CyaSSL_DES_key_sched +#define DES_cbc_encrypt CyaSSL_DES_cbc_encrypt +#define DES_ncbc_encrypt CyaSSL_DES_ncbc_encrypt +#define DES_set_odd_parity CyaSSL_DES_set_odd_parity +#define DES_ecb_encrypt CyaSSL_DES_ecb_encrypt + +#ifdef __cplusplus + } /* extern "C" */ +#endif + + +#endif /* CYASSL_DES_H_ */ diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/openssl/dh.h b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/dh.h new file mode 100644 index 000000000..2faccbca4 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/dh.h @@ -0,0 +1,52 @@ +/* dh.h for openSSL */ + + +#ifndef CYASSL_DH_H_ +#define CYASSL_DH_H_ + + +#include +#include + + +#ifdef __cplusplus + extern "C" { +#endif + + + + +typedef struct CYASSL_DH { + CYASSL_BIGNUM* p; + CYASSL_BIGNUM* g; + CYASSL_BIGNUM* pub_key; /* openssh deference g^x */ + CYASSL_BIGNUM* priv_key; /* openssh deference x */ + void* internal; /* our DH */ + char inSet; /* internal set from external ? */ + char exSet; /* external set from internal ? */ +} CYASSL_DH; + + +CYASSL_API CYASSL_DH* CyaSSL_DH_new(void); +CYASSL_API void CyaSSL_DH_free(CYASSL_DH*); + +CYASSL_API int CyaSSL_DH_size(CYASSL_DH*); +CYASSL_API int CyaSSL_DH_generate_key(CYASSL_DH*); +CYASSL_API int CyaSSL_DH_compute_key(unsigned char* key, CYASSL_BIGNUM* pub, + CYASSL_DH*); + +typedef CYASSL_DH DH; + +#define DH_new CyaSSL_DH_new +#define DH_free CyaSSL_DH_free + +#define DH_size CyaSSL_DH_size +#define DH_generate_key CyaSSL_DH_generate_key +#define DH_compute_key CyaSSL_DH_compute_key + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + +#endif /* header */ diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/openssl/dsa.h b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/dsa.h new file mode 100644 index 000000000..817f1fa14 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/dsa.h @@ -0,0 +1,53 @@ +/* dsa.h for openSSL */ + + +#ifndef CYASSL_DSA_H_ +#define CYASSL_DSA_H_ + + +#include +#include + + +#ifdef __cplusplus + extern "C" { +#endif + + + +struct CYASSL_DSA { + CYASSL_BIGNUM* p; + CYASSL_BIGNUM* q; + CYASSL_BIGNUM* g; + CYASSL_BIGNUM* pub_key; /* our y */ + CYASSL_BIGNUM* priv_key; /* our x */ + void* internal; /* our Dsa Key */ + char inSet; /* internal set from external ? */ + char exSet; /* external set from internal ? */ +}; + + +CYASSL_API CYASSL_DSA* CyaSSL_DSA_new(void); +CYASSL_API void CyaSSL_DSA_free(CYASSL_DSA*); + +CYASSL_API int CyaSSL_DSA_generate_key(CYASSL_DSA*); +CYASSL_API int CyaSSL_DSA_generate_parameters_ex(CYASSL_DSA*, int bits, + unsigned char* seed, int seedLen, int* counterRet, + unsigned long* hRet, void* cb); + +CYASSL_API int CyaSSL_DSA_LoadDer(CYASSL_DSA*, const unsigned char*, int sz); +CYASSL_API int CyaSSL_DSA_do_sign(const unsigned char* d, unsigned char* sigRet, + CYASSL_DSA* dsa); + +#define DSA_new CyaSSL_DSA_new +#define DSA_free CyaSSL_DSA_free + +#define DSA_generate_key CyaSSL_DSA_generate_key +#define DSA_generate_parameters_ex CyaSSL_DSA_generate_parameters_ex + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + +#endif /* header */ diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/openssl/ec.h b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/ec.h new file mode 100644 index 000000000..5ffdaf6e5 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/ec.h @@ -0,0 +1,2 @@ +/* ec.h for openssl */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/openssl/ecdsa.h b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/ecdsa.h new file mode 100644 index 000000000..f3cf0de35 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/ecdsa.h @@ -0,0 +1,2 @@ +/* ecdsa.h for openssl */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/openssl/engine.h b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/engine.h new file mode 100644 index 000000000..39952fcae --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/engine.h @@ -0,0 +1,5 @@ +/* engine.h for libcurl */ + +#undef HAVE_OPENSSL_ENGINE_H + + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/openssl/err.h b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/err.h new file mode 100644 index 000000000..7e7f1eb78 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/err.h @@ -0,0 +1,2 @@ +/* err.h for openssl */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/openssl/evp.h b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/evp.h new file mode 100644 index 000000000..3bfe4280b --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/evp.h @@ -0,0 +1,239 @@ +/* evp.h + * + * Copyright (C) 2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +/* evp.h defines mini evp openssl compatibility layer + * + */ + + +#ifndef CYASSL_EVP_H_ +#define CYASSL_EVP_H_ + +#include + +#ifdef YASSL_PREFIX +#include "prefix_evp.h" +#endif + +#include +#include +#include +#include +#include + +#include +#include +#include + + +#ifdef __cplusplus + extern "C" { +#endif + +typedef char CYASSL_EVP_MD; +typedef char CYASSL_EVP_CIPHER; + +CYASSL_API const CYASSL_EVP_MD* CyaSSL_EVP_md5(void); +CYASSL_API const CYASSL_EVP_MD* CyaSSL_EVP_sha1(void); +CYASSL_API const CYASSL_EVP_MD* CyaSSL_EVP_sha256(void); +CYASSL_API const CYASSL_EVP_MD* CyaSSL_EVP_sha384(void); +CYASSL_API const CYASSL_EVP_MD* CyaSSL_EVP_sha512(void); +CYASSL_API const CYASSL_EVP_MD* CyaSSL_EVP_ripemd160(void); + +CYASSL_API const CYASSL_EVP_CIPHER* CyaSSL_EVP_aes_128_cbc(void); +CYASSL_API const CYASSL_EVP_CIPHER* CyaSSL_EVP_aes_192_cbc(void); +CYASSL_API const CYASSL_EVP_CIPHER* CyaSSL_EVP_aes_256_cbc(void); +CYASSL_API const CYASSL_EVP_CIPHER* CyaSSL_EVP_aes_128_ctr(void); +CYASSL_API const CYASSL_EVP_CIPHER* CyaSSL_EVP_aes_192_ctr(void); +CYASSL_API const CYASSL_EVP_CIPHER* CyaSSL_EVP_aes_256_ctr(void); +CYASSL_API const CYASSL_EVP_CIPHER* CyaSSL_EVP_des_cbc(void); +CYASSL_API const CYASSL_EVP_CIPHER* CyaSSL_EVP_des_ede3_cbc(void); +CYASSL_API const CYASSL_EVP_CIPHER* CyaSSL_EVP_rc4(void); +CYASSL_API const CYASSL_EVP_CIPHER* CyaSSL_EVP_enc_null(void); + + +typedef union { + CYASSL_MD5_CTX md5; + CYASSL_SHA_CTX sha; + CYASSL_SHA256_CTX sha256; + #ifdef CYASSL_SHA384 + CYASSL_SHA384_CTX sha384; + #endif + #ifdef CYASSL_SHA512 + CYASSL_SHA512_CTX sha512; + #endif + #ifdef CYASSL_RIPEMD + CYASSL_RIPEMD_CTX ripemd; + #endif +} CYASSL_Hasher; + + +typedef struct CYASSL_EVP_MD_CTX { + unsigned char macType; + CYASSL_Hasher hash; +} CYASSL_EVP_MD_CTX; + + +typedef union { + Aes aes; + Des des; + Des3 des3; + Arc4 arc4; +} CYASSL_Cipher; + + +enum { + AES_128_CBC_TYPE = 1, + AES_192_CBC_TYPE = 2, + AES_256_CBC_TYPE = 3, + AES_128_CTR_TYPE = 4, + AES_192_CTR_TYPE = 5, + AES_256_CTR_TYPE = 6, + DES_CBC_TYPE = 7, + DES_EDE3_CBC_TYPE = 8, + ARC4_TYPE = 9, + NULL_CIPHER_TYPE = 10, + EVP_PKEY_RSA = 11, + EVP_PKEY_DSA = 12, + NID_sha1 = 64, + NID_md5 = 4 +}; + + +typedef struct CYASSL_EVP_CIPHER_CTX { + int keyLen; /* user may set for variable */ + unsigned char enc; /* if encrypt side, then true */ + unsigned char cipherType; + unsigned char iv[64]; /* working iv pointer into cipher */ + CYASSL_Cipher cipher; +} CYASSL_EVP_CIPHER_CTX; + + +CYASSL_API int CyaSSL_EVP_MD_size(const CYASSL_EVP_MD* md); +CYASSL_API void CyaSSL_EVP_MD_CTX_init(CYASSL_EVP_MD_CTX* ctx); +CYASSL_API int CyaSSL_EVP_MD_CTX_cleanup(CYASSL_EVP_MD_CTX* ctx); + +CYASSL_API int CyaSSL_EVP_DigestInit(CYASSL_EVP_MD_CTX* ctx, + const CYASSL_EVP_MD* type); +CYASSL_API int CyaSSL_EVP_DigestUpdate(CYASSL_EVP_MD_CTX* ctx, const void* data, + unsigned long sz); +CYASSL_API int CyaSSL_EVP_DigestFinal(CYASSL_EVP_MD_CTX* ctx, unsigned char* md, + unsigned int* s); +CYASSL_API int CyaSSL_EVP_DigestFinal_ex(CYASSL_EVP_MD_CTX* ctx, + unsigned char* md, unsigned int* s); +CYASSL_API int CyaSSL_EVP_BytesToKey(const CYASSL_EVP_CIPHER*, + const CYASSL_EVP_MD*, const unsigned char*, + const unsigned char*, int, int, unsigned char*, + unsigned char*); + +CYASSL_API void CyaSSL_EVP_CIPHER_CTX_init(CYASSL_EVP_CIPHER_CTX* ctx); +CYASSL_API int CyaSSL_EVP_CIPHER_CTX_cleanup(CYASSL_EVP_CIPHER_CTX* ctx); + +CYASSL_API int CyaSSL_EVP_CIPHER_CTX_iv_length(const CYASSL_EVP_CIPHER_CTX*); + + +CYASSL_API int CyaSSL_EVP_CipherInit(CYASSL_EVP_CIPHER_CTX* ctx, + const CYASSL_EVP_CIPHER* type, + unsigned char* key, unsigned char* iv, + int enc); +CYASSL_API int CyaSSL_EVP_CIPHER_CTX_key_length(CYASSL_EVP_CIPHER_CTX* ctx); +CYASSL_API int CyaSSL_EVP_CIPHER_CTX_set_key_length(CYASSL_EVP_CIPHER_CTX* ctx, + int keylen); +CYASSL_API int CyaSSL_EVP_Cipher(CYASSL_EVP_CIPHER_CTX* ctx, + unsigned char* dst, unsigned char* src, + unsigned int len); + +CYASSL_API const CYASSL_EVP_MD* CyaSSL_EVP_get_digestbynid(int); + +CYASSL_API CYASSL_RSA* CyaSSL_EVP_PKEY_get1_RSA(CYASSL_EVP_PKEY*); +CYASSL_API CYASSL_DSA* CyaSSL_EVP_PKEY_get1_DSA(CYASSL_EVP_PKEY*); + +/* these next ones don't need real OpenSSL type, for OpenSSH compat only */ +CYASSL_API void* CyaSSL_EVP_X_STATE(const CYASSL_EVP_CIPHER_CTX* ctx); +CYASSL_API int CyaSSL_EVP_X_STATE_LEN(const CYASSL_EVP_CIPHER_CTX* ctx); + +CYASSL_API void CyaSSL_3des_iv(CYASSL_EVP_CIPHER_CTX* ctx, int doset, + unsigned char* iv, int len); +CYASSL_API void CyaSSL_aes_ctr_iv(CYASSL_EVP_CIPHER_CTX* ctx, int doset, + unsigned char* iv, int len); + +CYASSL_API int CyaSSL_StoreExternalIV(CYASSL_EVP_CIPHER_CTX* ctx); +CYASSL_API int CyaSSL_SetInternalIV(CYASSL_EVP_CIPHER_CTX* ctx); + + +/* end OpenSSH compat */ + +typedef CYASSL_EVP_MD EVP_MD; +typedef CYASSL_EVP_CIPHER EVP_CIPHER; +typedef CYASSL_EVP_MD_CTX EVP_MD_CTX; +typedef CYASSL_EVP_CIPHER_CTX EVP_CIPHER_CTX; + +#define EVP_md5 CyaSSL_EVP_md5 +#define EVP_sha1 CyaSSL_EVP_sha1 +#define EVP_sha256 CyaSSL_EVP_sha256 +#define EVP_sha384 CyaSSL_EVP_sha384 +#define EVP_sha512 CyaSSL_EVP_sha512 +#define EVP_ripemd160 CyaSSL_EVP_ripemd160 + +#define EVP_aes_128_cbc CyaSSL_EVP_aes_128_cbc +#define EVP_aes_192_cbc CyaSSL_EVP_aes_192_cbc +#define EVP_aes_256_cbc CyaSSL_EVP_aes_256_cbc +#define EVP_aes_128_ctr CyaSSL_EVP_aes_128_ctr +#define EVP_aes_192_ctr CyaSSL_EVP_aes_192_ctr +#define EVP_aes_256_ctr CyaSSL_EVP_aes_256_ctr +#define EVP_des_cbc CyaSSL_EVP_des_cbc +#define EVP_des_ede3_cbc CyaSSL_EVP_des_ede3_cbc +#define EVP_rc4 CyaSSL_EVP_rc4 +#define EVP_enc_null CyaSSL_EVP_enc_null + +#define EVP_MD_size CyaSSL_EVP_MD_size +#define EVP_MD_CTX_init CyaSSL_EVP_MD_CTX_init +#define EVP_MD_CTX_cleanup CyaSSL_EVP_MD_CTX_cleanup +#define EVP_DigestInit CyaSSL_EVP_DigestInit +#define EVP_DigestUpdate CyaSSL_EVP_DigestUpdate +#define EVP_DigestFinal CyaSSL_EVP_DigestFinal +#define EVP_DigestFinal_ex CyaSSL_EVP_DigestFinal_ex +#define EVP_BytesToKey CyaSSL_EVP_BytesToKey + +#define EVP_CIPHER_CTX_init CyaSSL_EVP_CIPHER_CTX_init +#define EVP_CIPHER_CTX_cleanup CyaSSL_EVP_CIPHER_CTX_cleanup +#define EVP_CIPHER_CTX_iv_length CyaSSL_EVP_CIPHER_CTX_iv_length +#define EVP_CIPHER_CTX_key_length CyaSSL_EVP_CIPHER_CTX_key_length +#define EVP_CIPHER_CTX_set_key_length CyaSSL_EVP_CIPHER_CTX_set_key_length +#define EVP_CipherInit CyaSSL_EVP_CipherInit +#define EVP_Cipher CyaSSL_EVP_Cipher + +#define EVP_get_digestbynid CyaSSL_EVP_get_digestbynid + +#define EVP_PKEY_get1_RSA CyaSSL_EVP_PKEY_get1_RSA +#define EVP_PKEY_get1_DSA CyaSSL_EVP_PKEY_get1_DSA + +#ifndef EVP_MAX_MD_SIZE + #define EVP_MAX_MD_SIZE 64 /* sha512 */ +#endif + +#ifdef __cplusplus + } /* extern "C" */ +#endif + + +#endif /* CYASSL_EVP_H_ */ diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/openssl/hmac.h b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/hmac.h new file mode 100644 index 000000000..03e9bcef7 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/hmac.h @@ -0,0 +1,81 @@ +/* hmac.h + * + * Copyright (C) 2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +/* hmac.h defines mini hamc openssl compatibility layer + * + */ + + +#ifndef CYASSL_HMAC_H_ +#define CYASSL_HMAC_H_ + +#include + +#ifdef YASSL_PREFIX +#include "prefix_hmac.h" +#endif + +#include +#include + +#ifdef __cplusplus + extern "C" { +#endif + + +CYASSL_API unsigned char* CyaSSL_HMAC(const CYASSL_EVP_MD* evp_md, + const void* key, int key_len, + const unsigned char* d, int n, unsigned char* md, + unsigned int* md_len); + + +typedef struct CYASSL_HMAC_CTX { + Hmac hmac; + int type; +} CYASSL_HMAC_CTX; + + +CYASSL_API void CyaSSL_HMAC_Init(CYASSL_HMAC_CTX* ctx, const void* key, + int keylen, const EVP_MD* type); +CYASSL_API void CyaSSL_HMAC_Update(CYASSL_HMAC_CTX* ctx, + const unsigned char* data, int len); +CYASSL_API void CyaSSL_HMAC_Final(CYASSL_HMAC_CTX* ctx, unsigned char* hash, + unsigned int* len); +CYASSL_API void CyaSSL_HMAC_cleanup(CYASSL_HMAC_CTX* ctx); + + +typedef struct CYASSL_HMAC_CTX HMAC_CTX; + +#define HMAC(a,b,c,d,e,f,g) CyaSSL_HMAC((a),(b),(c),(d),(e),(f),(g)) + +#define HMAC_Init CyaSSL_HMAC_Init +#define HMAC_Update CyaSSL_HMAC_Update +#define HMAC_Final CyaSSL_HMAC_Final +#define HMAC_cleanup CyaSSL_HMAC_cleanup + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + + +#endif /* CYASSL_HMAC_H_ */ diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/openssl/include.am b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/include.am new file mode 100644 index 000000000..e531f767a --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/include.am @@ -0,0 +1,36 @@ +# vim:ft=automake +# All paths should be given relative to the root + +nobase_include_HEADERS+= \ + cyassl/openssl/asn1.h \ + cyassl/openssl/bio.h \ + cyassl/openssl/bn.h \ + cyassl/openssl/conf.h \ + cyassl/openssl/crypto.h \ + cyassl/openssl/des.h \ + cyassl/openssl/dh.h \ + cyassl/openssl/dsa.h \ + cyassl/openssl/ecdsa.h \ + cyassl/openssl/ec.h \ + cyassl/openssl/engine.h \ + cyassl/openssl/err.h \ + cyassl/openssl/evp.h \ + cyassl/openssl/hmac.h \ + cyassl/openssl/lhash.h \ + cyassl/openssl/md4.h \ + cyassl/openssl/md5.h \ + cyassl/openssl/ripemd.h \ + cyassl/openssl/ocsp.h \ + cyassl/openssl/opensslconf.h \ + cyassl/openssl/opensslv.h \ + cyassl/openssl/ossl_typ.h \ + cyassl/openssl/pem.h \ + cyassl/openssl/pkcs12.h \ + cyassl/openssl/rand.h \ + cyassl/openssl/rsa.h \ + cyassl/openssl/sha.h \ + cyassl/openssl/ssl.h \ + cyassl/openssl/stack.h \ + cyassl/openssl/ui.h \ + cyassl/openssl/x509.h \ + cyassl/openssl/x509v3.h diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/openssl/lhash.h b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/lhash.h new file mode 100644 index 000000000..01f8535f8 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/lhash.h @@ -0,0 +1,2 @@ +/* lhash.h for openSSL */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/openssl/md4.h b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/md4.h new file mode 100644 index 000000000..2e99f977f --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/md4.h @@ -0,0 +1 @@ +/* md4.h for libcurl */ diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/openssl/md5.h b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/md5.h new file mode 100644 index 000000000..0fddb517e --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/md5.h @@ -0,0 +1,39 @@ +/* md5.h for openssl */ + + +#ifndef CYASSL_MD5_H_ +#define CYASSL_MD5_H_ + +#include + +#ifdef YASSL_PREFIX +#include "prefix_md5.h" +#endif + +#ifdef __cplusplus + extern "C" { +#endif + + +typedef struct CYASSL_MD5_CTX { + int holder[24]; /* big enough to hold ctaocrypt md5, but check on init */ +} CYASSL_MD5_CTX; + +CYASSL_API void CyaSSL_MD5_Init(CYASSL_MD5_CTX*); +CYASSL_API void CyaSSL_MD5_Update(CYASSL_MD5_CTX*, const void*, unsigned long); +CYASSL_API void CyaSSL_MD5_Final(unsigned char*, CYASSL_MD5_CTX*); + + +typedef CYASSL_MD5_CTX MD5_CTX; + +#define MD5_Init CyaSSL_MD5_Init +#define MD5_Update CyaSSL_MD5_Update +#define MD5_Final CyaSSL_MD5_Final + +#ifdef __cplusplus + } /* extern "C" */ +#endif + + +#endif /* CYASSL_MD5_H_ */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/openssl/ocsp.h b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/ocsp.h new file mode 100644 index 000000000..7463eec96 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/ocsp.h @@ -0,0 +1 @@ +/* ocsp.h for libcurl */ diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/openssl/opensslconf.h b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/opensslconf.h new file mode 100644 index 000000000..ac6b55bc7 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/opensslconf.h @@ -0,0 +1,8 @@ +/* opensslconf.h for openSSL */ + + +#ifndef OPENSSL_THREADS + #define OPENSSL_THREADS +#endif + + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/openssl/opensslv.h b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/opensslv.h new file mode 100644 index 000000000..bdcc805ee --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/opensslv.h @@ -0,0 +1,12 @@ +/* opensslv.h compatibility */ + +#ifndef CYASSL_OPENSSLV_H_ +#define CYASSL_OPENSSLV_H_ + + +/* api version compatibility */ +#define OPENSSL_VERSION_NUMBER 0x0090410fL + + +#endif /* header */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/openssl/ossl_typ.h b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/ossl_typ.h new file mode 100644 index 000000000..65b00c728 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/ossl_typ.h @@ -0,0 +1,2 @@ +/* ossl_typ.h for openssl */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/openssl/pem.h b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/pem.h new file mode 100644 index 000000000..b727862b9 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/pem.h @@ -0,0 +1,41 @@ +/* pem.h for openssl */ + + +#ifndef CYASSL_PEM_H_ +#define CYASSL_PEM_H_ + +#include +#include +#include +#include + +#ifdef __cplusplus + extern "C" { +#endif + + +CYASSL_API int CyaSSL_PEM_write_bio_RSAPrivateKey(CYASSL_BIO* bio, RSA* rsa, + const EVP_CIPHER* cipher, + unsigned char* passwd, int len, + pem_password_cb cb, void* arg); + +CYASSL_API int CyaSSL_PEM_write_bio_DSAPrivateKey(CYASSL_BIO* bio, DSA* rsa, + const EVP_CIPHER* cipher, + unsigned char* passwd, int len, + pem_password_cb cb, void* arg); + +CYASSL_API CYASSL_EVP_PKEY* CyaSSL_PEM_read_bio_PrivateKey(CYASSL_BIO* bio, + CYASSL_EVP_PKEY**, pem_password_cb cb, void* arg); + +#define PEM_write_bio_RSAPrivateKey CyaSSL_PEM_write_bio_RSAPrivateKey +#define PEM_write_bio_DSAPrivateKey CyaSSL_PEM_write_bio_DSAPrivateKey +#define PEM_read_bio_PrivateKey CyaSSL_PEM_read_bio_PrivateKey + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + + +#endif /* CYASSL_PEM_H_ */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/openssl/pkcs12.h b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/pkcs12.h new file mode 100644 index 000000000..544b6f092 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/pkcs12.h @@ -0,0 +1,2 @@ +/* pkcs12.h for openssl */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/openssl/rand.h b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/rand.h new file mode 100644 index 000000000..a5534e1a0 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/rand.h @@ -0,0 +1,4 @@ +/* rand.h for openSSL */ + +#include + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/openssl/ripemd.h b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/ripemd.h new file mode 100644 index 000000000..2d4d01466 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/ripemd.h @@ -0,0 +1,37 @@ +/* ripemd.h for openssl */ + + +#ifndef CYASSL_RIPEMD_H_ +#define CYASSL_RIPEMD_H_ + +#include + +#ifdef __cplusplus + extern "C" { +#endif + + +typedef struct CYASSL_RIPEMD_CTX { + int holder[32]; /* big enough to hold ctaocrypt, but check on init */ +} CYASSL_RIPEMD_CTX; + +CYASSL_API void CyaSSL_RIPEMD_Init(CYASSL_RIPEMD_CTX*); +CYASSL_API void CyaSSL_RIPEMD_Update(CYASSL_RIPEMD_CTX*, const void*, + unsigned long); +CYASSL_API void CyaSSL_RIPEMD_Final(unsigned char*, CYASSL_RIPEMD_CTX*); + + +typedef CYASSL_RIPEMD_CTX RIPEMD_CTX; + +#define RIPEMD_Init CyaSSL_RIPEMD_Init +#define RIPEMD_Update CyaSSL_RIPEMD_Update +#define RIPEMD_Final CyaSSL_RIPEMD_Final + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + + +#endif /* CYASSL_MD5_H_ */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/openssl/rsa.h b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/rsa.h new file mode 100644 index 000000000..149ad46ca --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/rsa.h @@ -0,0 +1,75 @@ +/* rsa.h for openSSL */ + + +#ifndef CYASSL_RSA_H_ +#define CYASSL_RSA_H_ + +#include +#include + + +#ifdef __cplusplus + extern "C" { +#endif + + +enum { + RSA_PKCS1_PADDING = 1 + }; + +struct CYASSL_RSA { + CYASSL_BIGNUM* n; + CYASSL_BIGNUM* e; + CYASSL_BIGNUM* d; + CYASSL_BIGNUM* p; + CYASSL_BIGNUM* q; + CYASSL_BIGNUM* dmp1; /* dP */ + CYASSL_BIGNUM* dmq1; /* dQ */ + CYASSL_BIGNUM* iqmp; /* u */ + void* internal; /* our RSA */ + char inSet; /* internal set from external ? */ + char exSet; /* external set from internal ? */ +}; + + +CYASSL_API CYASSL_RSA* CyaSSL_RSA_new(void); +CYASSL_API void CyaSSL_RSA_free(CYASSL_RSA*); + +CYASSL_API int CyaSSL_RSA_generate_key_ex(CYASSL_RSA*, int bits, CYASSL_BIGNUM*, + void* cb); + +CYASSL_API int CyaSSL_RSA_blinding_on(CYASSL_RSA*, CYASSL_BN_CTX*); +CYASSL_API int CyaSSL_RSA_public_encrypt(int len, unsigned char* fr, + unsigned char* to, CYASSL_RSA*, int padding); +CYASSL_API int CyaSSL_RSA_private_decrypt(int len, unsigned char* fr, + unsigned char* to, CYASSL_RSA*, int padding); + +CYASSL_API int CyaSSL_RSA_size(const CYASSL_RSA*); +CYASSL_API int CyaSSL_RSA_sign(int type, const unsigned char* m, + unsigned int mLen, unsigned char* sigRet, + unsigned int* sigLen, CYASSL_RSA*); +CYASSL_API int CyaSSL_RSA_public_decrypt(int flen, unsigned char* from, + unsigned char* to, CYASSL_RSA*, int padding); +CYASSL_API int CyaSSL_RSA_GenAdd(CYASSL_RSA*); +CYASSL_API int CyaSSL_RSA_LoadDer(CYASSL_RSA*, const unsigned char*, int sz); + + +#define RSA_new CyaSSL_RSA_new +#define RSA_free CyaSSL_RSA_free + +#define RSA_generate_key_ex CyaSSL_RSA_generate_key_ex + +#define RSA_blinding_on CyaSSL_RSA_blinding_on +#define RSA_public_encrypt CyaSSL_RSA_public_encrypt +#define RSA_private_decrypt CyaSSL_RSA_private_decrypt + +#define RSA_size CyaSSL_RSA_size +#define RSA_sign CyaSSL_RSA_sign +#define RSA_public_decrypt CyaSSL_RSA_public_decrypt + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + +#endif /* header */ diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/openssl/sha.h b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/sha.h new file mode 100644 index 000000000..0b37a9bbf --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/sha.h @@ -0,0 +1,125 @@ +/* sha.h for openssl */ + + +#ifndef CYASSL_SHA_H_ +#define CYASSL_SHA_H_ + +#include + +#ifdef YASSL_PREFIX +#include "prefix_sha.h" +#endif + +#ifdef __cplusplus + extern "C" { +#endif + + +typedef struct CYASSL_SHA_CTX { + int holder[24]; /* big enough to hold ctaocrypt sha, but check on init */ +} CYASSL_SHA_CTX; + +CYASSL_API void CyaSSL_SHA_Init(CYASSL_SHA_CTX*); +CYASSL_API void CyaSSL_SHA_Update(CYASSL_SHA_CTX*, const void*, unsigned long); +CYASSL_API void CyaSSL_SHA_Final(unsigned char*, CYASSL_SHA_CTX*); + +/* SHA1 points to above, shouldn't use SHA0 ever */ +CYASSL_API void CyaSSL_SHA1_Init(CYASSL_SHA_CTX*); +CYASSL_API void CyaSSL_SHA1_Update(CYASSL_SHA_CTX*, const void*, unsigned long); +CYASSL_API void CyaSSL_SHA1_Final(unsigned char*, CYASSL_SHA_CTX*); + +enum { + SHA_DIGEST_LENGTH = 20 +}; + + +typedef CYASSL_SHA_CTX SHA_CTX; + +#define SHA_Init CyaSSL_SHA_Init +#define SHA_Update CyaSSL_SHA_Update +#define SHA_Final CyaSSL_SHA_Final + +#define SHA1_Init CyaSSL_SHA1_Init +#define SHA1_Update CyaSSL_SHA1_Update +#define SHA1_Final CyaSSL_SHA1_Final + + +typedef struct CYASSL_SHA256_CTX { + int holder[28]; /* big enough to hold ctaocrypt sha, but check on init */ +} CYASSL_SHA256_CTX; + +CYASSL_API void CyaSSL_SHA256_Init(CYASSL_SHA256_CTX*); +CYASSL_API void CyaSSL_SHA256_Update(CYASSL_SHA256_CTX*, const void*, + unsigned long); +CYASSL_API void CyaSSL_SHA256_Final(unsigned char*, CYASSL_SHA256_CTX*); + +enum { + SHA256_DIGEST_LENGTH = 20 +}; + + +typedef CYASSL_SHA256_CTX SHA256_CTX; + +#define SHA256_Init CyaSSL_SHA256_Init +#define SHA256_Update CyaSSL_SHA256_Update +#define SHA256_Final CyaSSL_SHA256_Final + + +#ifdef CYASSL_SHA384 + +typedef struct CYASSL_SHA384_CTX { + long long holder[32]; /* big enough, but check on init */ +} CYASSL_SHA384_CTX; + +CYASSL_API void CyaSSL_SHA384_Init(CYASSL_SHA384_CTX*); +CYASSL_API void CyaSSL_SHA384_Update(CYASSL_SHA384_CTX*, const void*, + unsigned long); +CYASSL_API void CyaSSL_SHA384_Final(unsigned char*, CYASSL_SHA384_CTX*); + +enum { + SHA384_DIGEST_LENGTH = 48 +}; + + +typedef CYASSL_SHA384_CTX SHA384_CTX; + +#define SHA384_Init CyaSSL_SHA384_Init +#define SHA384_Update CyaSSL_SHA384_Update +#define SHA384_Final CyaSSL_SHA384_Final + +#endif /* CYASSL_SHA384 */ + +#ifdef CYASSL_SHA512 + +typedef struct CYASSL_SHA512_CTX { + long long holder[36]; /* big enough, but check on init */ +} CYASSL_SHA512_CTX; + +CYASSL_API void CyaSSL_SHA512_Init(CYASSL_SHA512_CTX*); +CYASSL_API void CyaSSL_SHA512_Update(CYASSL_SHA512_CTX*, const void*, + unsigned long); +CYASSL_API void CyaSSL_SHA512_Final(unsigned char*, CYASSL_SHA512_CTX*); + +enum { + SHA512_DIGEST_LENGTH = 64 +}; + + +typedef CYASSL_SHA512_CTX SHA512_CTX; + +#define SHA512_Init CyaSSL_SHA512_Init +#define SHA512_Update CyaSSL_SHA512_Update +#define SHA512_Final CyaSSL_SHA512_Final + +#endif /* CYASSL_SHA512 */ + + + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + + +#endif /* CYASSL_SHA_H_ */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/openssl/ssl.h b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/ssl.h new file mode 100644 index 000000000..2440b0d58 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/ssl.h @@ -0,0 +1,379 @@ +/* ssl.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * a with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +/* ssl.h defines openssl compatibility layer + * + */ + + +#ifndef CYASSL_OPENSSL_H_ +#define CYASSL_OPENSSL_H_ + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +#ifdef _WIN32 + /* wincrypt.h clashes */ + #undef X509_NAME + #undef OCSP_REQUEST + #undef OCSP_RESPONSE +#endif + + +typedef CYASSL SSL; +typedef CYASSL_SESSION SSL_SESSION; +typedef CYASSL_METHOD SSL_METHOD; +typedef CYASSL_CTX SSL_CTX; + +typedef CYASSL_X509 X509; +typedef CYASSL_X509_NAME X509_NAME; +typedef CYASSL_X509_CHAIN X509_CHAIN; + + +/* redeclare guard */ +#define CYASSL_TYPES_DEFINED + + +typedef CYASSL_EVP_PKEY EVP_PKEY; +typedef CYASSL_RSA RSA; +typedef CYASSL_DSA DSA; +typedef CYASSL_BIO BIO; +typedef CYASSL_BIO_METHOD BIO_METHOD; +typedef CYASSL_CIPHER SSL_CIPHER; +typedef CYASSL_X509_LOOKUP X509_LOOKUP; +typedef CYASSL_X509_LOOKUP_METHOD X509_LOOKUP_METHOD; +typedef CYASSL_X509_CRL X509_CRL; +typedef CYASSL_X509_EXTENSION X509_EXTENSION; +typedef CYASSL_ASN1_TIME ASN1_TIME; +typedef CYASSL_ASN1_INTEGER ASN1_INTEGER; +typedef CYASSL_ASN1_OBJECT ASN1_OBJECT; +typedef CYASSL_ASN1_STRING ASN1_STRING; +typedef CYASSL_dynlock_value CRYPTO_dynlock_value; + +#define ASN1_UTCTIME CYASSL_ASN1_TIME + +typedef CYASSL_MD4_CTX MD4_CTX; +typedef CYASSL_COMP_METHOD COMP_METHOD; +typedef CYASSL_X509_STORE X509_STORE; +typedef CYASSL_X509_REVOKED X509_REVOKED; +typedef CYASSL_X509_OBJECT X509_OBJECT; +typedef CYASSL_X509_STORE_CTX X509_STORE_CTX; + + +#define SSLv3_server_method CyaSSLv3_server_method +#define SSLv3_client_method CyaSSLv3_client_method +#define TLSv1_server_method CyaTLSv1_server_method +#define TLSv1_client_method CyaTLSv1_client_method +#define TLSv1_1_server_method CyaTLSv1_1_server_method +#define TLSv1_1_client_method CyaTLSv1_1_client_method +#define TLSv1_2_server_method CyaTLSv1_2_server_method +#define TLSv1_2_client_method CyaTLSv1_2_client_method + +#ifdef CYASSL_DTLS + #define DTLSv1_client_method CyaDTLSv1_client_method + #define DTLSv1_server_method CyaDTLSv1_server_method +#endif + + +#ifndef NO_FILESYSTEM + #define SSL_CTX_use_certificate_file CyaSSL_CTX_use_certificate_file + #define SSL_CTX_use_PrivateKey_file CyaSSL_CTX_use_PrivateKey_file + #define SSL_CTX_load_verify_locations CyaSSL_CTX_load_verify_locations + #define SSL_CTX_use_certificate_chain_file CyaSSL_CTX_use_certificate_chain_file + #define SSL_CTX_use_RSAPrivateKey_file CyaSSL_CTX_use_RSAPrivateKey_file + + #define SSL_use_certificate_file CyaSSL_use_certificate_file + #define SSL_use_PrivateKey_file CyaSSL_use_PrivateKey_file + #define SSL_use_certificate_chain_file CyaSSL_use_certificate_chain_file + #define SSL_use_RSAPrivateKey_file CyaSSL_use_RSAPrivateKey_file +#endif + +#define SSL_CTX_new CyaSSL_CTX_new +#define SSL_new CyaSSL_new +#define SSL_set_fd CyaSSL_set_fd +#define SSL_get_fd CyaSSL_get_fd +#define SSL_connect CyaSSL_connect + +#define SSL_write CyaSSL_write +#define SSL_read CyaSSL_read +#define SSL_accept CyaSSL_accept +#define SSL_CTX_free CyaSSL_CTX_free +#define SSL_free CyaSSL_free +#define SSL_shutdown CyaSSL_shutdown + +#define SSL_CTX_set_quiet_shutdown CyaSSL_CTX_set_quiet_shutdown +#define SSL_set_quiet_shutdown CyaSSL_set_quiet_shutdown +#define SSL_get_error CyaSSL_get_error +#define SSL_set_session CyaSSL_set_session +#define SSL_get_session CyaSSL_get_session +#define SSL_flush_sessions CyaSSL_flush_sessions + +#define SSL_CTX_set_verify CyaSSL_CTX_set_verify +#define SSL_set_verify CyaSSL_set_verify +#define SSL_pending CyaSSL_pending +#define SSL_load_error_strings CyaSSL_load_error_strings +#define SSL_library_init CyaSSL_library_init +#define SSL_CTX_set_session_cache_mode CyaSSL_CTX_set_session_cache_mode +#define SSL_CTX_set_cipher_list CyaSSL_CTX_set_cipher_list +#define SSL_set_cipher_list CyaSSL_set_cipher_list + +#define ERR_error_string CyaSSL_ERR_error_string +#define ERR_error_string_n CyaSSL_ERR_error_string_n + +#define SSL_set_ex_data CyaSSL_set_ex_data +#define SSL_get_shutdown CyaSSL_get_shutdown +#define SSL_set_rfd CyaSSL_set_rfd +#define SSL_set_wfd CyaSSL_set_wfd +#define SSL_set_shutdown CyaSSL_set_shutdown +#define SSL_set_session_id_context CyaSSL_set_session_id_context +#define SSL_set_connect_state CyaSSL_set_connect_state +#define SSL_set_accept_state CyaSSL_set_accept_state +#define SSL_session_reused CyaSSL_session_reused +#define SSL_SESSION_free CyaSSL_SESSION_free +#define SSL_is_init_finished CyaSSL_is_init_finished + +#define SSL_get_version CyaSSL_get_version +#define SSL_get_current_cipher CyaSSL_get_current_cipher +#define SSL_get_cipher CyaSSL_get_cipher +#define SSL_CIPHER_description CyaSSL_CIPHER_description +#define SSL_CIPHER_get_name CyaSSL_CIPHER_get_name +#define SSL_get1_session CyaSSL_get1_session + +#define SSL_get_keyblock_size CyaSSL_get_keyblock_size +#define SSL_get_keys CyaSSL_get_keys + +#define X509_free CyaSSL_X509_free +#define OPENSSL_free CyaSSL_OPENSSL_free + +#define OCSP_parse_url CyaSSL_OCSP_parse_url +#define SSLv23_client_method CyaSSLv23_client_method +#define SSLv2_client_method CyaSSLv2_client_method +#define SSLv2_server_method CyaSSLv2_server_method + +#define MD4_Init CyaSSL_MD4_Init +#define MD4_Update CyaSSL_MD4_Update +#define MD4_Final CyaSSL_MD4_Final + +#define BIO_new CyaSSL_BIO_new +#define BIO_free CyaSSL_BIO_free +#define BIO_free_all CyaSSL_BIO_free_all +#define BIO_read CyaSSL_BIO_read +#define BIO_write CyaSSL_BIO_write +#define BIO_push CyaSSL_BIO_push +#define BIO_pop CyaSSL_BIO_pop +#define BIO_flush CyaSSL_BIO_flush +#define BIO_pending CyaSSL_BIO_pending + +#define BIO_get_mem_data CyaSSL_BIO_get_mem_data +#define BIO_new_mem_buf CyaSSL_BIO_new_mem_buf + +#define BIO_f_buffer CyaSSL_BIO_f_buffer +#define BIO_set_write_buffer_size CyaSSL_BIO_set_write_buffer_size +#define BIO_f_ssl CyaSSL_BIO_f_ssl +#define BIO_new_socket CyaSSL_BIO_new_socket +#define SSL_set_bio CyaSSL_set_bio +#define BIO_eof CyaSSL_BIO_eof +#define BIO_set_ss CyaSSL_BIO_set_ss + +#define BIO_s_mem CyaSSL_BIO_s_mem +#define BIO_f_base64 CyaSSL_BIO_f_base64 +#define BIO_set_flags CyaSSL_BIO_set_flags + +#define OpenSSL_add_all_algorithms CyaSSL_add_all_algorithms +#define SSLeay_add_ssl_algorithms CyaSSL_add_all_algorithms +#define SSLeay_add_all_algorithms CyaSSL_add_all_algorithms + +#define RAND_screen CyaSSL_RAND_screen +#define RAND_file_name CyaSSL_RAND_file_name +#define RAND_write_file CyaSSL_RAND_write_file +#define RAND_load_file CyaSSL_RAND_load_file +#define RAND_egd CyaSSL_RAND_egd +#define RAND_seed CyaSSL_RAND_seed +#define RAND_add CyaSSL_RAND_add + +#define COMP_zlib CyaSSL_COMP_zlib +#define COMP_rle CyaSSL_COMP_rle +#define SSL_COMP_add_compression_method CyaSSL_COMP_add_compression_method + +#define SSL_get_ex_new_index CyaSSL_get_ex_new_index + +#define CRYPTO_set_id_callback CyaSSL_set_id_callback +#define CRYPTO_set_locking_callback CyaSSL_set_locking_callback +#define CRYPTO_set_dynlock_create_callback CyaSSL_set_dynlock_create_callback +#define CRYPTO_set_dynlock_lock_callback CyaSSL_set_dynlock_lock_callback +#define CRYPTO_set_dynlock_destroy_callback CyaSSL_set_dynlock_destroy_callback +#define CRYPTO_num_locks CyaSSL_num_locks + +#define X509_STORE_CTX_get_current_cert CyaSSL_X509_STORE_CTX_get_current_cert +#define X509_STORE_CTX_get_error CyaSSL_X509_STORE_CTX_get_error +#define X509_STORE_CTX_get_error_depth CyaSSL_X509_STORE_CTX_get_error_depth + +#define X509_NAME_oneline CyaSSL_X509_NAME_oneline +#define X509_get_issuer_name CyaSSL_X509_get_issuer_name +#define X509_get_subject_name CyaSSL_X509_get_subject_name +#define X509_verify_cert_error_string CyaSSL_X509_verify_cert_error_string + +#define X509_LOOKUP_add_dir CyaSSL_X509_LOOKUP_add_dir +#define X509_LOOKUP_load_file CyaSSL_X509_LOOKUP_load_file +#define X509_LOOKUP_hash_dir CyaSSL_X509_LOOKUP_hash_dir +#define X509_LOOKUP_file CyaSSL_X509_LOOKUP_file + +#define X509_STORE_add_lookup CyaSSL_X509_STORE_add_lookup +#define X509_STORE_new CyaSSL_X509_STORE_new +#define X509_STORE_get_by_subject CyaSSL_X509_STORE_get_by_subject +#define X509_STORE_CTX_init CyaSSL_X509_STORE_CTX_init +#define X509_STORE_CTX_cleanup CyaSSL_X509_STORE_CTX_cleanup + +#define X509_CRL_get_lastUpdate CyaSSL_X509_CRL_get_lastUpdate +#define X509_CRL_get_nextUpdate CyaSSL_X509_CRL_get_nextUpdate + +#define X509_get_pubkey CyaSSL_X509_get_pubkey +#define X509_CRL_verify CyaSSL_X509_CRL_verify +#define X509_STORE_CTX_set_error CyaSSL_X509_STORE_CTX_set_error +#define X509_OBJECT_free_contents CyaSSL_X509_OBJECT_free_contents +#define EVP_PKEY_free CyaSSL_EVP_PKEY_free +#define X509_cmp_current_time CyaSSL_X509_cmp_current_time +#define sk_X509_REVOKED_num CyaSSL_sk_X509_REVOKED_num +#define X509_CRL_get_REVOKED CyaSSL_X509_CRL_get_REVOKED +#define sk_X509_REVOKED_value CyaSSL_sk_X509_REVOKED_value + +#define X509_get_serialNumber CyaSSL_X509_get_serialNumber + +#define ASN1_TIME_pr CyaSSL_ASN1_TIME_pr + +#define ASN1_INTEGER_cmp CyaSSL_ASN1_INTEGER_cmp +#define ASN1_INTEGER_get CyaSSL_ASN1_INTEGER_get + +#define SSL_load_client_CA_file CyaSSL_load_client_CA_file + +#define SSL_CTX_set_client_CA_list CyaSSL_CTX_set_client_CA_list +#define X509_STORE_CTX_get_ex_data CyaSSL_X509_STORE_CTX_get_ex_data +#define SSL_get_ex_data_X509_STORE_CTX_idx CyaSSL_get_ex_data_X509_STORE_CTX_idx +#define SSL_get_ex_data CyaSSL_get_ex_data + +#define SSL_CTX_set_default_passwd_cb_userdata CyaSSL_CTX_set_default_passwd_cb_userdata +#define SSL_CTX_set_default_passwd_cb CyaSSL_CTX_set_default_passwd_cb + +#define SSL_CTX_set_timeout CyaSSL_CTX_set_timeout +#define SSL_CTX_set_info_callback CyaSSL_CTX_set_info_callback + +#define ERR_peek_error CyaSSL_ERR_peek_error +#define ERR_GET_REASON CyaSSL_ERR_GET_REASON + +#define SSL_alert_type_string CyaSSL_alert_type_string +#define SSL_alert_desc_string CyaSSL_alert_desc_string +#define SSL_state_string CyaSSL_state_string + +#define RSA_free CyaSSL_RSA_free +#define RSA_generate_key CyaSSL_RSA_generate_key +#define SSL_CTX_set_tmp_rsa_callback CyaSSL_CTX_set_tmp_rsa_callback + +#define PEM_def_callback CyaSSL_PEM_def_callback + +#define SSL_CTX_sess_accept CyaSSL_CTX_sess_accept +#define SSL_CTX_sess_connect CyaSSL_CTX_sess_connect +#define SSL_CTX_sess_accept_good CyaSSL_CTX_sess_accept_good +#define SSL_CTX_sess_connect_good CyaSSL_CTX_sess_connect_good +#define SSL_CTX_sess_accept_renegotiate CyaSSL_CTX_sess_accept_renegotiate +#define SSL_CTX_sess_connect_renegotiate CyaSSL_CTX_sess_connect_renegotiate +#define SSL_CTX_sess_hits CyaSSL_CTX_sess_hits +#define SSL_CTX_sess_cb_hits CyaSSL_CTX_sess_cb_hits +#define SSL_CTX_sess_cache_full CyaSSL_CTX_sess_cache_full +#define SSL_CTX_sess_misses CyaSSL_CTX_sess_misses +#define SSL_CTX_sess_timeouts CyaSSL_CTX_sess_timeouts +#define SSL_CTX_sess_number CyaSSL_CTX_sess_number +#define SSL_CTX_sess_get_cache_size CyaSSL_CTX_sess_get_cache_size + + +#define SSL_DEFAULT_CIPHER_LIST CYASSL_DEFAULT_CIPHER_LIST +#define RSA_F4 CYASSL_RSA_F4 + +#define SSL_CTX_set_psk_client_callback CyaSSL_CTX_set_psk_client_callback +#define SSL_set_psk_client_callback CyaSSL_set_psk_client_callback + +#define SSL_get_psk_identity_hint CyaSSL_get_psk_identity_hint +#define SSL_get_psk_identity CyaSSL_get_psk_identity + +#define SSL_CTX_use_psk_identity_hint CyaSSL_CTX_use_psk_identity_hint +#define SSL_use_psk_identity_hint CyaSSL_use_psk_identity_hint + +#define SSL_CTX_set_psk_server_callback CyaSSL_CTX_set_psk_server_callback +#define SSL_set_psk_server_callback CyaSSL_set_psk_server_callback + +#define ERR_get_error_line_data CyaSSL_ERR_get_error_line_data + +#define ERR_get_error CyaSSL_ERR_get_error +#define ERR_clear_error CyaSSL_ERR_clear_error + +#define RAND_status CyaSSL_RAND_status +#define RAND_bytes CyaSSL_RAND_bytes +#define SSLv23_server_method CyaSSLv23_server_method +#define SSL_CTX_set_options CyaSSL_CTX_set_options +#define SSL_CTX_check_private_key CyaSSL_CTX_check_private_key + +#define ERR_free_strings CyaSSL_ERR_free_strings +#define ERR_remove_state CyaSSL_ERR_remove_state +#define EVP_cleanup CyaSSL_EVP_cleanup + +#define CRYPTO_cleanup_all_ex_data CyaSSL_cleanup_all_ex_data +#define SSL_CTX_set_mode CyaSSL_CTX_set_mode +#define SSL_CTX_get_mode CyaSSL_CTX_get_mode +#define SSL_CTX_set_default_read_ahead CyaSSL_CTX_set_default_read_ahead + +#define SSL_CTX_sess_set_cache_size CyaSSL_CTX_sess_set_cache_size +#define SSL_CTX_set_default_verify_paths CyaSSL_CTX_set_default_verify_paths + +#define SSL_CTX_set_session_id_context CyaSSL_CTX_set_session_id_context +#define SSL_get_peer_certificate CyaSSL_get_peer_certificate + +#define SSL_want_read CyaSSL_want_read +#define SSL_want_write CyaSSL_want_write + +#define BIO_prf CyaSSL_BIO_prf +#define ASN1_UTCTIME_pr CyaSSL_ASN1_UTCTIME_pr + +#define sk_num CyaSSL_sk_num +#define sk_value CyaSSL_sk_value + +#define SSL_CTX_get_ex_data CyaSSL_CTX_get_ex_data +#define SSL_CTX_set_ex_data CyaSSL_CTX_set_ex_data +#define SSL_CTX_sess_set_get_cb CyaSSL_CTX_sess_set_get_cb +#define SSL_CTX_sess_set_new_cb CyaSSL_CTX_sess_set_new_cb +#define SSL_CTX_sess_set_remove_cb CyaSSL_CTX_sess_set_remove_cb + +#define i2d_SSL_SESSION CyaSSL_i2d_SSL_SESSION +#define d2i_SSL_SESSION CyaSSL_d2i_SSL_SESSION +#define SSL_SESSION_get_timeout CyaSSL_SESSION_get_timeout +#define SSL_SESSION_get_time CyaSSL_SESSION_get_time +#define SSL_CTX_get_ex_new_index CyaSSL_CTX_get_ex_new_index + + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + + +#endif /* CyaSSL_openssl_h__ */ diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/openssl/stack.h b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/stack.h new file mode 100644 index 000000000..374c1fcda --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/stack.h @@ -0,0 +1,2 @@ +/* stack.h for openssl */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/openssl/ui.h b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/ui.h new file mode 100644 index 000000000..a25393031 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/ui.h @@ -0,0 +1,2 @@ +/* ui.h for openssl */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/openssl/x509.h b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/x509.h new file mode 100644 index 000000000..645b3b5fb --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/x509.h @@ -0,0 +1,3 @@ +/* x509.h for openssl */ + +#include diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/openssl/x509v3.h b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/x509v3.h new file mode 100644 index 000000000..77828a33b --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/openssl/x509v3.h @@ -0,0 +1,2 @@ +/* x509v3.h for openssl */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/sniffer.h b/FreeRTOS-Plus/CyaSSL/cyassl/sniffer.h new file mode 100644 index 000000000..0d14fbc6f --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/sniffer.h @@ -0,0 +1,74 @@ +/* sniffer.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifndef CYASSL_SNIFFER_H +#define CYASSL_SNIFFER_H + +#include + +#ifdef _WIN32 + #ifdef SSL_SNIFFER_EXPORTS + #define SSL_SNIFFER_API __declspec(dllexport) + #else + #define SSL_SNIFFER_API __declspec(dllimport) + #endif +#else + #define SSL_SNIFFER_API +#endif /* _WIN32 */ + + +#ifdef __cplusplus + extern "C" { +#endif + + +CYASSL_API +SSL_SNIFFER_API int ssl_SetPrivateKey(const char* address, int port, + const char* keyFile, int keyType, + const char* password, char* error); + +CYASSL_API +SSL_SNIFFER_API int ssl_DecodePacket(const unsigned char* packet, int length, + unsigned char* data, char* error); + +CYASSL_API +SSL_SNIFFER_API int ssl_Trace(const char* traceFile, char* error); + + +CYASSL_API void ssl_InitSniffer(void); + +CYASSL_API void ssl_FreeSniffer(void); + + +/* ssl_SetPrivateKey keyTypes */ +enum { + FILETYPE_PEM = 1, + FILETYPE_DER = 2, +}; + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + +#endif /* CyaSSL_SNIFFER_H */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/sniffer_error.h b/FreeRTOS-Plus/CyaSSL/cyassl/sniffer_error.h new file mode 100644 index 000000000..ecd2e77a2 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/sniffer_error.h @@ -0,0 +1,101 @@ +/* sniffer_error.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#ifndef CYASSL_SNIFFER_ERROR_H +#define CYASSL_SNIFFER_ERROR_H + +/* need to have errors as #defines since .rc files can't handle enums */ +/* need to start at 1 and go in order for same reason */ + +#define MEMORY_STR 1 +#define NEW_SERVER_STR 2 +#define IP_CHECK_STR 3 +#define SERVER_NOT_REG_STR 4 +#define TCP_CHECK_STR 5 +#define SERVER_PORT_NOT_REG_STR 6 +#define RSA_DECRYPT_STR 7 +#define RSA_DECODE_STR 8 +#define BAD_CIPHER_SPEC_STR 9 +#define SERVER_HELLO_INPUT_STR 10 + +#define BAD_SESSION_RESUME_STR 11 +#define SERVER_DID_RESUMPTION_STR 12 +#define CLIENT_HELLO_INPUT_STR 13 +#define CLIENT_RESUME_TRY_STR 14 +#define HANDSHAKE_INPUT_STR 15 +#define GOT_HELLO_VERIFY_STR 16 +#define GOT_SERVER_HELLO_STR 17 +#define GOT_CERT_REQ_STR 18 +#define GOT_SERVER_KEY_EX_STR 19 +#define GOT_CERT_STR 20 + +#define GOT_SERVER_HELLO_DONE_STR 21 +#define GOT_FINISHED_STR 22 +#define GOT_CLIENT_HELLO_STR 23 +#define GOT_CLIENT_KEY_EX_STR 24 +#define GOT_CERT_VER_STR 25 +#define GOT_UNKNOWN_HANDSHAKE_STR 26 +#define NEW_SESSION_STR 27 +#define BAD_NEW_SSL_STR 28 +#define GOT_PACKET_STR 29 +#define NO_DATA_STR 30 + +#define BAD_SESSION_STR 31 +#define GOT_OLD_CLIENT_HELLO_STR 32 +#define OLD_CLIENT_INPUT_STR 33 +#define OLD_CLIENT_OK_STR 34 +#define BAD_OLD_CLIENT_STR 35 +#define BAD_RECORD_HDR_STR 36 +#define RECORD_INPUT_STR 37 +#define GOT_HANDSHAKE_STR 38 +#define BAD_HANDSHAKE_STR 39 +#define GOT_CHANGE_CIPHER_STR 40 + +#define GOT_APP_DATA_STR 41 +#define BAD_APP_DATA_STR 42 +#define GOT_ALERT_STR 43 +#define ANOTHER_MSG_STR 44 +#define REMOVE_SESSION_STR 45 +#define KEY_FILE_STR 46 +#define BAD_IPVER_STR 47 +#define BAD_PROTO_STR 48 +#define PACKET_HDR_SHORT_STR 49 +#define GOT_UNKNOWN_RECORD_STR 50 + +#define BAD_TRACE_FILE_STR 51 +#define FATAL_ERROR_STR 52 +#define PARTIAL_INPUT_STR 53 +#define BUFFER_ERROR_STR 54 +#define PARTIAL_ADD_STR 55 +#define DUPLICATE_STR 56 +#define OUT_OF_ORDER_STR 57 +#define OVERLAP_DUPLICATE_STR 58 +#define OVERLAP_REASSEMBLY_BEGIN_STR 59 + +#define OVERLAP_REASSEMBLY_END_STR 60 +#define MISSED_CLIENT_HELLO_STR 61 + +/* !!!! also add to msgTable in sniffer.c and .rc file !!!! */ + + +#endif /* CyaSSL_SNIFFER_ERROR_H */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/sniffer_error.rc b/FreeRTOS-Plus/CyaSSL/cyassl/sniffer_error.rc new file mode 100644 index 000000000..89b12e2e9 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/sniffer_error.rc @@ -0,0 +1,78 @@ + +STRINGTABLE +{ + 1, "Out of Memory" + 2, "New SSL Sniffer Server Registered" + 3, "Checking IP Header" + 4, "SSL Sniffer Server Not Registered" + 5, "Checking TCP Header" + + 6, "SSL Sniffer Server Port Not Registered" + 7, "RSA Private Decrypt Error" + 8, "RSA Private Decode Error" + 9, "Set Cipher Spec Error" + 10, "Server Hello Input Malformed" + + 11, "Couldn't Resume Session Error" + 12, "Server Did Resumption" + 13, "Client Hello Input Malformed" + 14, "Client Trying to Resume" + 15, "Handshake Input Malformed" + + 16, "Got Hello Verify msg" + 17, "Got Server Hello msg" + 18, "Got Cert Request msg" + 19, "Got Server Key Exchange msg" + 20, "Got Cert msg" + + 21, "Got Server Hello Done msg" + 22, "Got Finished msg" + 23, "Got Client Hello msg" + 24, "Got Client Key Exchange msg" + 25, "Got Cert Verify msg" + + 26, "Got Unknown Handshake msg" + 27, "New SSL Sniffer Session created" + 28, "Couldn't create new SSL" + 29, "Got a Packet to decode" + 30, "No data present" + + 31, "Session Not Found" + 32, "Got an Old Client Hello msg" + 33, "Old Client Hello Input Malformed" + 34, "Old Client Hello OK" + 35, "Bad Old Client Hello" + + 36, "Bad Record Header" + 37, "Record Header Input Malformed" + 38, "Got a HandShake msg" + 39, "Bad HandShake msg" + 40, "Got a Change Cipher Spec msg" + + 41, "Got Application Data msg" + 42, "Bad Application Data" + 43, "Got an Alert msg" + 44, "Another msg to Process" + 45, "Removing Session From Table" + + 46, "Bad Key File" + 47, "Wrong IP Version" + 48, "Wrong Protocol type" + 49, "Packet Short for header processing" + 50, "Got Unknown Record Type" + + 51, "Can't Open Trace File" + 52, "Session in Fatal Error State" + 53, "Partial SSL record received" + 54, "Buffer Error, malformed input" + 55, "Added to Partial Input" + + 56, "Received a Duplicate Packet" + 57, "Received an Out of Order Packet" + 58, "Received an Overlap Duplicate Packet" + 59, "Received an Overlap Reassembly Begin Duplicate Packet" + 60, "Received an Overlap Reassembly End Duplicate Packet" + + 61, "Missed the Client Hello Entirely" +} + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/ssl.h b/FreeRTOS-Plus/CyaSSL/cyassl/ssl.h new file mode 100644 index 000000000..88f4838ea --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/ssl.h @@ -0,0 +1,839 @@ +/* ssl.h + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +/* CyaSSL API */ + +#ifndef CYASSL_SSL_H +#define CYASSL_SSL_H + + +/* for users not using preprocessor flags*/ +#include +#include + + +#ifndef NO_FILESYSTEM + #include /* ERR_printf */ +#endif + +#ifdef YASSL_PREFIX + #include "prefix_ssl.h" +#endif + +#ifdef LIBCYASSL_VERSION_STRING + #define CYASSL_VERSION LIBCYASSL_VERSION_STRING +#endif + + + +#ifdef __cplusplus + extern "C" { +#endif + + +typedef struct CYASSL CYASSL; +typedef struct CYASSL_SESSION CYASSL_SESSION; +typedef struct CYASSL_METHOD CYASSL_METHOD; +typedef struct CYASSL_CTX CYASSL_CTX; + +typedef struct CYASSL_X509 CYASSL_X509; +typedef struct CYASSL_X509_NAME CYASSL_X509_NAME; +typedef struct CYASSL_X509_CHAIN CYASSL_X509_CHAIN; + +typedef struct CYASSL_CERT_MANAGER CYASSL_CERT_MANAGER; + +/* redeclare guard */ +#define CYASSL_TYPES_DEFINED + + +typedef struct CYASSL_RSA CYASSL_RSA; +typedef struct CYASSL_DSA CYASSL_DSA; +typedef struct CYASSL_CIPHER CYASSL_CIPHER; +typedef struct CYASSL_X509_LOOKUP CYASSL_X509_LOOKUP; +typedef struct CYASSL_X509_LOOKUP_METHOD CYASSL_X509_LOOKUP_METHOD; +typedef struct CYASSL_X509_CRL CYASSL_X509_CRL; +typedef struct CYASSL_BIO CYASSL_BIO; +typedef struct CYASSL_BIO_METHOD CYASSL_BIO_METHOD; +typedef struct CYASSL_X509_EXTENSION CYASSL_X509_EXTENSION; +typedef struct CYASSL_ASN1_TIME CYASSL_ASN1_TIME; +typedef struct CYASSL_ASN1_INTEGER CYASSL_ASN1_INTEGER; +typedef struct CYASSL_ASN1_OBJECT CYASSL_ASN1_OBJECT; +typedef struct CYASSL_ASN1_STRING CYASSL_ASN1_STRING; +typedef struct CYASSL_dynlock_value CYASSL_dynlock_value; + +#define CYASSL_ASN1_UTCTIME CYASSL_ASN1_TIME + +typedef struct CYASSL_EVP_PKEY { + int type; /* openssh dereference */ + int save_type; /* openssh dereference */ +} CYASSL_EVP_PKEY; + +typedef struct CYASSL_MD4_CTX { + int buffer[32]; /* big enough to hold, check size in Init */ +} CYASSL_MD4_CTX; + + +typedef struct CYASSL_COMP_METHOD { + int type; /* stunnel dereference */ +} CYASSL_COMP_METHOD; + + +typedef struct CYASSL_X509_STORE { + int cache; /* stunnel dereference */ +} CYASSL_X509_STORE; + + +typedef struct CYASSL_X509_REVOKED { + CYASSL_ASN1_INTEGER* serialNumber; /* stunnel dereference */ +} CYASSL_X509_REVOKED; + + +typedef struct CYASSL_X509_OBJECT { + union { + char* ptr; + CYASSL_X509_CRL* crl; /* stunnel dereference */ + } data; +} CYASSL_X509_OBJECT; + + +/* in internal.h too, change there !! */ +typedef struct CYASSL_X509_STORE_CTX { + int error; + int error_depth; + CYASSL_X509* current_cert; /* stunnel dereference */ + char* domain; /* subject CN domain name */ + void* ex_data; /* external data, for fortress build */ + /* in internal.h too, change there !! */ +} CYASSL_X509_STORE_CTX; + + +CYASSL_API CYASSL_METHOD *CyaSSLv3_server_method(void); +CYASSL_API CYASSL_METHOD *CyaSSLv3_client_method(void); +CYASSL_API CYASSL_METHOD *CyaTLSv1_server_method(void); +CYASSL_API CYASSL_METHOD *CyaTLSv1_client_method(void); +CYASSL_API CYASSL_METHOD *CyaTLSv1_1_server_method(void); +CYASSL_API CYASSL_METHOD *CyaTLSv1_1_client_method(void); +CYASSL_API CYASSL_METHOD *CyaTLSv1_2_server_method(void); +CYASSL_API CYASSL_METHOD *CyaTLSv1_2_client_method(void); + +#ifdef CYASSL_DTLS + CYASSL_API CYASSL_METHOD *CyaDTLSv1_client_method(void); + CYASSL_API CYASSL_METHOD *CyaDTLSv1_server_method(void); +#endif + +#ifndef NO_FILESYSTEM + +CYASSL_API int CyaSSL_CTX_use_certificate_file(CYASSL_CTX*, const char*, int); +CYASSL_API int CyaSSL_CTX_use_PrivateKey_file(CYASSL_CTX*, const char*, int); +CYASSL_API int CyaSSL_CTX_load_verify_locations(CYASSL_CTX*, const char*, + const char*); +CYASSL_API int CyaSSL_CTX_use_certificate_chain_file(CYASSL_CTX *, + const char *file); +CYASSL_API int CyaSSL_CTX_use_RSAPrivateKey_file(CYASSL_CTX*, const char*, int); + +CYASSL_API int CyaSSL_use_certificate_file(CYASSL*, const char*, int); +CYASSL_API int CyaSSL_use_PrivateKey_file(CYASSL*, const char*, int); +CYASSL_API int CyaSSL_use_certificate_chain_file(CYASSL*, const char *file); +CYASSL_API int CyaSSL_use_RSAPrivateKey_file(CYASSL*, const char*, int); + +#ifdef CYASSL_DER_LOAD + CYASSL_API int CyaSSL_CTX_der_load_verify_locations(CYASSL_CTX*, + const char*, int); +#endif + +#ifdef HAVE_NTRU + CYASSL_API int CyaSSL_CTX_use_NTRUPrivateKey_file(CYASSL_CTX*, const char*); + /* load NTRU private key blob */ +#endif + +CYASSL_API int CyaSSL_PemCertToDer(const char*, unsigned char*, int); + +#endif /* NO_FILESYSTEM */ + +CYASSL_API CYASSL_CTX* CyaSSL_CTX_new(CYASSL_METHOD*); +CYASSL_API CYASSL* CyaSSL_new(CYASSL_CTX*); +CYASSL_API int CyaSSL_set_fd (CYASSL*, int); +CYASSL_API int CyaSSL_get_fd(const CYASSL*); +CYASSL_API int CyaSSL_connect(CYASSL*); /* please see note at top of README + if you get an error from connect */ +CYASSL_API int CyaSSL_write(CYASSL*, const void*, int); +CYASSL_API int CyaSSL_read(CYASSL*, void*, int); +CYASSL_API int CyaSSL_accept(CYASSL*); +CYASSL_API void CyaSSL_CTX_free(CYASSL_CTX*); +CYASSL_API void CyaSSL_free(CYASSL*); +CYASSL_API int CyaSSL_shutdown(CYASSL*); + +CYASSL_API void CyaSSL_CTX_set_quiet_shutdown(CYASSL_CTX*, int); +CYASSL_API void CyaSSL_set_quiet_shutdown(CYASSL*, int); + +CYASSL_API int CyaSSL_get_error(CYASSL*, int); + +CYASSL_API int CyaSSL_set_session(CYASSL* ssl,CYASSL_SESSION* session); +CYASSL_API CYASSL_SESSION* CyaSSL_get_session(CYASSL* ssl); +CYASSL_API void CyaSSL_flush_sessions(CYASSL_CTX *ctx, long tm); + + +typedef int (*VerifyCallback)(int, CYASSL_X509_STORE_CTX*); +typedef int (*pem_password_cb)(char*, int, int, void*); + +CYASSL_API void CyaSSL_CTX_set_verify(CYASSL_CTX*, int, + VerifyCallback verify_callback); +CYASSL_API void CyaSSL_set_verify(CYASSL*, int, VerifyCallback verify_callback); + +CYASSL_API int CyaSSL_pending(CYASSL*); + +CYASSL_API void CyaSSL_load_error_strings(void); +CYASSL_API int CyaSSL_library_init(void); +CYASSL_API long CyaSSL_CTX_set_session_cache_mode(CYASSL_CTX*, long); + +/* only supports full name from cipher_name[] delimited by : */ +CYASSL_API int CyaSSL_CTX_set_cipher_list(CYASSL_CTX*, const char*); +CYASSL_API int CyaSSL_set_cipher_list(CYASSL*, const char*); + +CYASSL_API int CyaSSL_ERR_GET_REASON(int err); +CYASSL_API char* CyaSSL_ERR_error_string(unsigned long,char*); +CYASSL_API void CyaSSL_ERR_error_string_n(unsigned long e, char* buf, + unsigned long sz); + +/* extras */ + +#define STACK_OF(x) x + +CYASSL_API int CyaSSL_set_ex_data(CYASSL*, int, void*); +CYASSL_API int CyaSSL_get_shutdown(const CYASSL*); +CYASSL_API int CyaSSL_set_rfd(CYASSL*, int); +CYASSL_API int CyaSSL_set_wfd(CYASSL*, int); +CYASSL_API void CyaSSL_set_shutdown(CYASSL*, int); +CYASSL_API int CyaSSL_set_session_id_context(CYASSL*, const unsigned char*, + unsigned int); +CYASSL_API void CyaSSL_set_connect_state(CYASSL*); +CYASSL_API void CyaSSL_set_accept_state(CYASSL*); +CYASSL_API int CyaSSL_session_reused(CYASSL*); +CYASSL_API void CyaSSL_SESSION_free(CYASSL_SESSION* session); +CYASSL_API int CyaSSL_is_init_finished(CYASSL*); + +CYASSL_API const char* CyaSSL_get_version(CYASSL*); +CYASSL_API CYASSL_CIPHER* CyaSSL_get_current_cipher(CYASSL*); +CYASSL_API char* CyaSSL_CIPHER_description(CYASSL_CIPHER*, char*, int); +CYASSL_API const char* CyaSSL_CIPHER_get_name(const CYASSL_CIPHER* cipher); +CYASSL_API const char* CyaSSL_get_cipher(CYASSL*); +CYASSL_API CYASSL_SESSION* CyaSSL_get1_session(CYASSL* ssl); + /* what's ref count */ + +CYASSL_API void CyaSSL_X509_free(CYASSL_X509*); +CYASSL_API void CyaSSL_OPENSSL_free(void*); + +CYASSL_API int CyaSSL_OCSP_parse_url(char* url, char** host, char** port, + char** path, int* ssl); + +CYASSL_API CYASSL_METHOD* CyaSSLv23_client_method(void); +CYASSL_API CYASSL_METHOD* CyaSSLv2_client_method(void); +CYASSL_API CYASSL_METHOD* CyaSSLv2_server_method(void); + +CYASSL_API void CyaSSL_MD4_Init(CYASSL_MD4_CTX*); +CYASSL_API void CyaSSL_MD4_Update(CYASSL_MD4_CTX*, const void*, unsigned long); +CYASSL_API void CyaSSL_MD4_Final(unsigned char*, CYASSL_MD4_CTX*); + + +CYASSL_API CYASSL_BIO* CyaSSL_BIO_new(CYASSL_BIO_METHOD*); +CYASSL_API int CyaSSL_BIO_free(CYASSL_BIO*); +CYASSL_API int CyaSSL_BIO_free_all(CYASSL_BIO*); +CYASSL_API int CyaSSL_BIO_read(CYASSL_BIO*, void*, int); +CYASSL_API int CyaSSL_BIO_write(CYASSL_BIO*, const void*, int); +CYASSL_API CYASSL_BIO* CyaSSL_BIO_push(CYASSL_BIO*, CYASSL_BIO* append); +CYASSL_API CYASSL_BIO* CyaSSL_BIO_pop(CYASSL_BIO*); +CYASSL_API int CyaSSL_BIO_flush(CYASSL_BIO*); +CYASSL_API int CyaSSL_BIO_pending(CYASSL_BIO*); + +CYASSL_API CYASSL_BIO_METHOD* CyaSSL_BIO_f_buffer(void); +CYASSL_API long CyaSSL_BIO_set_write_buffer_size(CYASSL_BIO*, long size); +CYASSL_API CYASSL_BIO_METHOD* CyaSSL_BIO_f_ssl(void); +CYASSL_API CYASSL_BIO* CyaSSL_BIO_new_socket(int sfd, int flag); +CYASSL_API int CyaSSL_BIO_eof(CYASSL_BIO*); + +CYASSL_API CYASSL_BIO_METHOD* CyaSSL_BIO_s_mem(void); +CYASSL_API CYASSL_BIO_METHOD* CyaSSL_BIO_f_base64(void); +CYASSL_API void CyaSSL_BIO_set_flags(CYASSL_BIO*, int); + +CYASSL_API int CyaSSL_BIO_get_mem_data(CYASSL_BIO* bio,const unsigned char** p); +CYASSL_API CYASSL_BIO* CyaSSL_BIO_new_mem_buf(void* buf, int len); + + +CYASSL_API long CyaSSL_BIO_set_ssl(CYASSL_BIO*, CYASSL*, int flag); +CYASSL_API void CyaSSL_set_bio(CYASSL*, CYASSL_BIO* rd, CYASSL_BIO* wr); + +CYASSL_API int CyaSSL_add_all_algorithms(void); + +CYASSL_API void CyaSSL_RAND_screen(void); +CYASSL_API const char* CyaSSL_RAND_file_name(char*, unsigned long); +CYASSL_API int CyaSSL_RAND_write_file(const char*); +CYASSL_API int CyaSSL_RAND_load_file(const char*, long); +CYASSL_API int CyaSSL_RAND_egd(const char*); +CYASSL_API int CyaSSL_RAND_seed(const void*, int); +CYASSL_API void CyaSSL_RAND_add(const void*, int, double); + +CYASSL_API CYASSL_COMP_METHOD* CyaSSL_COMP_zlib(void); +CYASSL_API CYASSL_COMP_METHOD* CyaSSL_COMP_rle(void); +CYASSL_API int CyaSSL_COMP_add_compression_method(int, void*); + +CYASSL_API int CyaSSL_get_ex_new_index(long, void*, void*, void*, void*); + +CYASSL_API void CyaSSL_set_id_callback(unsigned long (*f)(void)); +CYASSL_API void CyaSSL_set_locking_callback(void (*f)(int, int, const char*, + int)); +CYASSL_API void CyaSSL_set_dynlock_create_callback(CYASSL_dynlock_value* (*f) + (const char*, int)); +CYASSL_API void CyaSSL_set_dynlock_lock_callback(void (*f)(int, + CYASSL_dynlock_value*, const char*, int)); +CYASSL_API void CyaSSL_set_dynlock_destroy_callback(void (*f) + (CYASSL_dynlock_value*, const char*, int)); +CYASSL_API int CyaSSL_num_locks(void); + +CYASSL_API CYASSL_X509* CyaSSL_X509_STORE_CTX_get_current_cert( + CYASSL_X509_STORE_CTX*); +CYASSL_API int CyaSSL_X509_STORE_CTX_get_error(CYASSL_X509_STORE_CTX*); +CYASSL_API int CyaSSL_X509_STORE_CTX_get_error_depth(CYASSL_X509_STORE_CTX*); + +CYASSL_API char* CyaSSL_X509_NAME_oneline(CYASSL_X509_NAME*, char*, int); +CYASSL_API CYASSL_X509_NAME* CyaSSL_X509_get_issuer_name(CYASSL_X509*); +CYASSL_API CYASSL_X509_NAME* CyaSSL_X509_get_subject_name(CYASSL_X509*); +CYASSL_API const char* CyaSSL_X509_verify_cert_error_string(long); + +CYASSL_API int CyaSSL_X509_LOOKUP_add_dir(CYASSL_X509_LOOKUP*,const char*,long); +CYASSL_API int CyaSSL_X509_LOOKUP_load_file(CYASSL_X509_LOOKUP*, const char*, + long); +CYASSL_API CYASSL_X509_LOOKUP_METHOD* CyaSSL_X509_LOOKUP_hash_dir(void); +CYASSL_API CYASSL_X509_LOOKUP_METHOD* CyaSSL_X509_LOOKUP_file(void); + +CYASSL_API CYASSL_X509_LOOKUP* CyaSSL_X509_STORE_add_lookup(CYASSL_X509_STORE*, + CYASSL_X509_LOOKUP_METHOD*); +CYASSL_API CYASSL_X509_STORE* CyaSSL_X509_STORE_new(void); +CYASSL_API int CyaSSL_X509_STORE_get_by_subject(CYASSL_X509_STORE_CTX*, + int, CYASSL_X509_NAME*, CYASSL_X509_OBJECT*); +CYASSL_API int CyaSSL_X509_STORE_CTX_init(CYASSL_X509_STORE_CTX*, + CYASSL_X509_STORE*, CYASSL_X509*, STACK_OF(CYASSL_X509)*); +CYASSL_API void CyaSSL_X509_STORE_CTX_cleanup(CYASSL_X509_STORE_CTX*); + +CYASSL_API CYASSL_ASN1_TIME* CyaSSL_X509_CRL_get_lastUpdate(CYASSL_X509_CRL*); +CYASSL_API CYASSL_ASN1_TIME* CyaSSL_X509_CRL_get_nextUpdate(CYASSL_X509_CRL*); + +CYASSL_API CYASSL_EVP_PKEY* CyaSSL_X509_get_pubkey(CYASSL_X509*); +CYASSL_API int CyaSSL_X509_CRL_verify(CYASSL_X509_CRL*, CYASSL_EVP_PKEY*); +CYASSL_API void CyaSSL_X509_STORE_CTX_set_error(CYASSL_X509_STORE_CTX*, + int); +CYASSL_API void CyaSSL_X509_OBJECT_free_contents(CYASSL_X509_OBJECT*); +CYASSL_API void CyaSSL_EVP_PKEY_free(CYASSL_EVP_PKEY*); +CYASSL_API int CyaSSL_X509_cmp_current_time(const CYASSL_ASN1_TIME*); +CYASSL_API int CyaSSL_sk_X509_REVOKED_num(CYASSL_X509_REVOKED*); + +CYASSL_API CYASSL_X509_REVOKED* CyaSSL_X509_CRL_get_REVOKED(CYASSL_X509_CRL*); +CYASSL_API CYASSL_X509_REVOKED* CyaSSL_sk_X509_REVOKED_value( + CYASSL_X509_REVOKED*,int); +CYASSL_API CYASSL_ASN1_INTEGER* CyaSSL_X509_get_serialNumber(CYASSL_X509*); + +CYASSL_API int CyaSSL_ASN1_TIME_print(CYASSL_BIO*, const CYASSL_ASN1_TIME*); + +CYASSL_API int CyaSSL_ASN1_INTEGER_cmp(const CYASSL_ASN1_INTEGER*, + const CYASSL_ASN1_INTEGER*); +CYASSL_API long CyaSSL_ASN1_INTEGER_get(const CYASSL_ASN1_INTEGER*); + +CYASSL_API STACK_OF(CYASSL_X509_NAME)* CyaSSL_load_client_CA_file(const char*); + +CYASSL_API void CyaSSL_CTX_set_client_CA_list(CYASSL_CTX*, + STACK_OF(CYASSL_X509_NAME)*); +CYASSL_API void* CyaSSL_X509_STORE_CTX_get_ex_data(CYASSL_X509_STORE_CTX*, int); +CYASSL_API int CyaSSL_get_ex_data_X509_STORE_CTX_idx(void); +CYASSL_API void* CyaSSL_get_ex_data(const CYASSL*, int); + +CYASSL_API void CyaSSL_CTX_set_default_passwd_cb_userdata(CYASSL_CTX*, + void* userdata); +CYASSL_API void CyaSSL_CTX_set_default_passwd_cb(CYASSL_CTX*, pem_password_cb); + + +CYASSL_API void CyaSSL_CTX_set_info_callback(CYASSL_CTX*, void (*)(void)); + +CYASSL_API unsigned long CyaSSL_ERR_peek_error(void); +CYASSL_API int CyaSSL_GET_REASON(int); + +CYASSL_API char* CyaSSL_alert_type_string_long(int); +CYASSL_API char* CyaSSL_alert_desc_string_long(int); +CYASSL_API char* CyaSSL_state_string_long(CYASSL*); + +CYASSL_API CYASSL_RSA* CyaSSL_RSA_generate_key(int, unsigned long, + void(*)(int, int, void*), void*); +CYASSL_API void CyaSSL_CTX_set_tmp_rsa_callback(CYASSL_CTX*, + CYASSL_RSA*(*)(CYASSL*, int, int)); + +CYASSL_API int CyaSSL_PEM_def_callback(char*, int num, int w, void* key); + +CYASSL_API long CyaSSL_CTX_sess_accept(CYASSL_CTX*); +CYASSL_API long CyaSSL_CTX_sess_connect(CYASSL_CTX*); +CYASSL_API long CyaSSL_CTX_sess_accept_good(CYASSL_CTX*); +CYASSL_API long CyaSSL_CTX_sess_connect_good(CYASSL_CTX*); +CYASSL_API long CyaSSL_CTX_sess_accept_renegotiate(CYASSL_CTX*); +CYASSL_API long CyaSSL_CTX_sess_connect_renegotiate(CYASSL_CTX*); +CYASSL_API long CyaSSL_CTX_sess_hits(CYASSL_CTX*); +CYASSL_API long CyaSSL_CTX_sess_cb_hits(CYASSL_CTX*); +CYASSL_API long CyaSSL_CTX_sess_cache_full(CYASSL_CTX*); +CYASSL_API long CyaSSL_CTX_sess_misses(CYASSL_CTX*); +CYASSL_API long CyaSSL_CTX_sess_timeouts(CYASSL_CTX*); +CYASSL_API long CyaSSL_CTX_sess_number(CYASSL_CTX*); +CYASSL_API long CyaSSL_CTX_sess_get_cache_size(CYASSL_CTX*); + + +#define CYASSL_DEFAULT_CIPHER_LIST "" /* default all */ +#define CYASSL_RSA_F4 0x10001L + +enum { + OCSP_NOCERTS = 1, + OCSP_NOINTERN = 2, + OCSP_NOSIGS = 4, + OCSP_NOCHAIN = 8, + OCSP_NOVERIFY = 16, + OCSP_NOEXPLICIT = 32, + OCSP_NOCASIGN = 64, + OCSP_NODELEGATED = 128, + OCSP_NOCHECKS = 256, + OCSP_TRUSTOTHER = 512, + OCSP_RESPID_KEY = 1024, + OCSP_NOTIME = 2048, + + OCSP_CERTID = 2, + OCSP_REQUEST = 4, + OCSP_RESPONSE = 8, + OCSP_BASICRESP = 16, + + CYASSL_CRL_CHECKALL = 1, + + ASN1_GENERALIZEDTIME = 4, + + SSL_OP_MICROSOFT_SESS_ID_BUG = 1, + SSL_OP_NETSCAPE_CHALLENGE_BUG = 2, + SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG = 3, + SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG = 4, + SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER = 5, + SSL_OP_MSIE_SSLV2_RSA_PADDING = 6, + SSL_OP_SSLEAY_080_CLIENT_DH_BUG = 7, + SSL_OP_TLS_D5_BUG = 8, + SSL_OP_TLS_BLOCK_PADDING_BUG = 9, + SSL_OP_TLS_ROLLBACK_BUG = 10, + SSL_OP_ALL = 11, + SSL_OP_EPHEMERAL_RSA = 12, + SSL_OP_NO_SSLv3 = 13, + SSL_OP_NO_TLSv1 = 14, + SSL_OP_PKCS1_CHECK_1 = 15, + SSL_OP_PKCS1_CHECK_2 = 16, + SSL_OP_NETSCAPE_CA_DN_BUG = 17, + SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG = 18, + SSL_OP_SINGLE_DH_USE = 19, + SSL_OP_NO_TICKET = 20, + SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS = 21, + SSL_OP_NO_QUERY_MTU = 22, + SSL_OP_COOKIE_EXCHANGE = 23, + SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION = 24, + SSL_OP_SINGLE_ECDH_USE = 25, + SSL_OP_CIPHER_SERVER_PREFERENCE = 26, + + SSL_MAX_SSL_SESSION_ID_LENGTH = 32, + + EVP_R_BAD_DECRYPT = 2, + + SSL_CB_LOOP = 4, + SSL_ST_CONNECT = 5, + SSL_ST_ACCEPT = 6, + SSL_CB_ALERT = 7, + SSL_CB_READ = 8, + SSL_CB_HANDSHAKE_DONE = 9, + + SSL_MODE_ENABLE_PARTIAL_WRITE = 2, + + BIO_FLAGS_BASE64_NO_NL = 1, + BIO_CLOSE = 1, + BIO_NOCLOSE = 0, + + NID_undef = 0, + + X509_FILETYPE_PEM = 8, + X509_LU_X509 = 9, + X509_LU_CRL = 12, + + X509_V_ERR_CRL_SIGNATURE_FAILURE = 13, + X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD = 14, + X509_V_ERR_CRL_HAS_EXPIRED = 15, + X509_V_ERR_CERT_REVOKED = 16, + X509_V_ERR_CERT_CHAIN_TOO_LONG = 17, + X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT = 18, + X509_V_ERR_CERT_NOT_YET_VALID = 19, + X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD = 20, + X509_V_ERR_CERT_HAS_EXPIRED = 21, + X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD = 22, + + X509_V_OK = 0, + + CRYPTO_LOCK = 1, + CRYPTO_NUM_LOCKS = 10 +}; + +/* extras end */ + +#ifndef NO_FILESYSTEM +/* CyaSSL extension, provide last error from SSL_get_error + since not using thread storage error queue */ +CYASSL_API void CyaSSL_ERR_print_errors_fp(FILE*, int err); +#endif + +enum { /* ssl Constants */ + SSL_ERROR_NONE = 0, /* for most functions */ + SSL_FAILURE = 0, /* for some functions */ + SSL_SUCCESS = 1, + + SSL_BAD_CERTTYPE = -8, + SSL_BAD_STAT = -7, + SSL_BAD_PATH = -6, + SSL_BAD_FILETYPE = -5, + SSL_BAD_FILE = -4, + SSL_NOT_IMPLEMENTED = -3, + SSL_UNKNOWN = -2, + SSL_FATAL_ERROR = -1, + + SSL_FILETYPE_ASN1 = 2, + SSL_FILETYPE_PEM = 1, + SSL_FILETYPE_DEFAULT = 2, /* ASN1 */ + SSL_FILETYPE_RAW = 3, /* NTRU raw key blob */ + + SSL_VERIFY_NONE = 0, + SSL_VERIFY_PEER = 1, + SSL_VERIFY_FAIL_IF_NO_PEER_CERT = 2, + SSL_VERIFY_CLIENT_ONCE = 4, + + SSL_SESS_CACHE_OFF = 30, + SSL_SESS_CACHE_CLIENT = 31, + SSL_SESS_CACHE_SERVER = 32, + SSL_SESS_CACHE_BOTH = 33, + SSL_SESS_CACHE_NO_AUTO_CLEAR = 34, + SSL_SESS_CACHE_NO_INTERNAL_LOOKUP = 35, + + SSL_ERROR_WANT_READ = 2, + SSL_ERROR_WANT_WRITE = 3, + SSL_ERROR_WANT_CONNECT = 7, + SSL_ERROR_WANT_ACCEPT = 8, + SSL_ERROR_SYSCALL = 5, + SSL_ERROR_WANT_X509_LOOKUP = 83, + SSL_ERROR_ZERO_RETURN = 6, + SSL_ERROR_SSL = 85, + + SSL_SENT_SHUTDOWN = 1, + SSL_RECEIVED_SHUTDOWN = 2, + SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER = 4, + SSL_OP_NO_SSLv2 = 8, + + SSL_R_SSL_HANDSHAKE_FAILURE = 101, + SSL_R_TLSV1_ALERT_UNKNOWN_CA = 102, + SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN = 103, + SSL_R_SSLV3_ALERT_BAD_CERTIFICATE = 104, + + PEM_BUFSIZE = 1024 +}; + + +#ifndef NO_PSK + typedef unsigned int (*psk_client_callback)(CYASSL*, const char*, char*, + unsigned int, unsigned char*, unsigned int); + CYASSL_API void CyaSSL_CTX_set_psk_client_callback(CYASSL_CTX*, + psk_client_callback); + CYASSL_API void CyaSSL_set_psk_client_callback(CYASSL*,psk_client_callback); + + CYASSL_API const char* CyaSSL_get_psk_identity_hint(const CYASSL*); + CYASSL_API const char* CyaSSL_get_psk_identity(const CYASSL*); + + CYASSL_API int CyaSSL_CTX_use_psk_identity_hint(CYASSL_CTX*, const char*); + CYASSL_API int CyaSSL_use_psk_identity_hint(CYASSL*, const char*); + + typedef unsigned int (*psk_server_callback)(CYASSL*, const char*, + unsigned char*, unsigned int); + CYASSL_API void CyaSSL_CTX_set_psk_server_callback(CYASSL_CTX*, + psk_server_callback); + CYASSL_API void CyaSSL_set_psk_server_callback(CYASSL*,psk_server_callback); + + #define PSK_TYPES_DEFINED +#endif /* NO_PSK */ + + +/* extra begins */ + +enum { /* ERR Constants */ + ERR_TXT_STRING = 1 +}; + +CYASSL_API unsigned long CyaSSL_ERR_get_error_line_data(const char**, int*, + const char**, int *); + +CYASSL_API unsigned long CyaSSL_ERR_get_error(void); +CYASSL_API void CyaSSL_ERR_clear_error(void); + + +CYASSL_API int CyaSSL_RAND_status(void); +CYASSL_API int CyaSSL_RAND_bytes(unsigned char* buf, int num); +CYASSL_API CYASSL_METHOD *CyaSSLv23_server_method(void); +CYASSL_API long CyaSSL_CTX_set_options(CYASSL_CTX*, long); +CYASSL_API int CyaSSL_CTX_check_private_key(CYASSL_CTX*); + + +CYASSL_API void CyaSSL_ERR_free_strings(void); +CYASSL_API void CyaSSL_ERR_remove_state(unsigned long); +CYASSL_API void CyaSSL_EVP_cleanup(void); + +CYASSL_API void CyaSSL_cleanup_all_ex_data(void); +CYASSL_API long CyaSSL_CTX_set_mode(CYASSL_CTX* ctx, long mode); +CYASSL_API long CyaSSL_CTX_get_mode(CYASSL_CTX* ctx); +CYASSL_API void CyaSSL_CTX_set_default_read_ahead(CYASSL_CTX* ctx, int m); + +CYASSL_API long CyaSSL_CTX_sess_set_cache_size(CYASSL_CTX*, long); + +CYASSL_API int CyaSSL_CTX_set_default_verify_paths(CYASSL_CTX*); +CYASSL_API int CyaSSL_CTX_set_session_id_context(CYASSL_CTX*, + const unsigned char*, unsigned int); +CYASSL_API CYASSL_X509* CyaSSL_get_peer_certificate(CYASSL* ssl); + +CYASSL_API int CyaSSL_want_read(CYASSL*); +CYASSL_API int CyaSSL_want_write(CYASSL*); + +CYASSL_API int CyaSSL_BIO_printf(CYASSL_BIO*, const char*, ...); +CYASSL_API int CyaSSL_ASN1_UTCTIME_print(CYASSL_BIO*, + const CYASSL_ASN1_UTCTIME*); +CYASSL_API int CyaSSL_sk_num(CYASSL_X509_REVOKED*); +CYASSL_API void* CyaSSL_sk_value(CYASSL_X509_REVOKED*, int); + +/* stunnel 4.28 needs */ +CYASSL_API void* CyaSSL_CTX_get_ex_data(const CYASSL_CTX*, int); +CYASSL_API int CyaSSL_CTX_set_ex_data(CYASSL_CTX*, int, void*); +CYASSL_API void CyaSSL_CTX_sess_set_get_cb(CYASSL_CTX*, + CYASSL_SESSION*(*f)(CYASSL*, unsigned char*, int, int*)); +CYASSL_API void CyaSSL_CTX_sess_set_new_cb(CYASSL_CTX*, + int (*f)(CYASSL*, CYASSL_SESSION*)); +CYASSL_API void CyaSSL_CTX_sess_set_remove_cb(CYASSL_CTX*, + void (*f)(CYASSL_CTX*, CYASSL_SESSION*)); + +CYASSL_API int CyaSSL_i2d_SSL_SESSION(CYASSL_SESSION*,unsigned char**); +CYASSL_API CYASSL_SESSION* CyaSSL_d2i_SSL_SESSION(CYASSL_SESSION**,const unsigned char**, + long); + +CYASSL_API long CyaSSL_SESSION_get_timeout(const CYASSL_SESSION*); +CYASSL_API long CyaSSL_SESSION_get_time(const CYASSL_SESSION*); +CYASSL_API int CyaSSL_CTX_get_ex_new_index(long, void*, void*, void*, void*); + +/* extra ends */ + + +/* CyaSSL extensions */ + +/* call before SSL_connect, if verifying will add name check to + date check and signature check */ +CYASSL_API int CyaSSL_check_domain_name(CYASSL* ssl, const char* dn); + +/* need to call once to load library (session cache) */ +CYASSL_API int CyaSSL_Init(void); +/* call when done to cleanup/free session cache mutex / resources */ +CYASSL_API int CyaSSL_Cleanup(void); + +/* turn logging on, only if compiled in */ +CYASSL_API int CyaSSL_Debugging_ON(void); +/* turn logging off */ +CYASSL_API void CyaSSL_Debugging_OFF(void); + +/* do accept or connect depedning on side */ +CYASSL_API int CyaSSL_negotiate(CYASSL* ssl); +/* turn on CyaSSL data compression */ +CYASSL_API int CyaSSL_set_compression(CYASSL* ssl); + +CYASSL_API int CyaSSL_set_timeout(CYASSL*, unsigned int); +CYASSL_API int CyaSSL_CTX_set_timeout(CYASSL_CTX*, unsigned int); + +/* get CyaSSL peer X509_CHAIN */ +CYASSL_API CYASSL_X509_CHAIN* CyaSSL_get_peer_chain(CYASSL* ssl); +/* peer chain count */ +CYASSL_API int CyaSSL_get_chain_count(CYASSL_X509_CHAIN* chain); +/* index cert length */ +CYASSL_API int CyaSSL_get_chain_length(CYASSL_X509_CHAIN*, int idx); +/* index cert */ +CYASSL_API unsigned char* CyaSSL_get_chain_cert(CYASSL_X509_CHAIN*, int idx); +/* get index cert in PEM */ +CYASSL_API int CyaSSL_get_chain_cert_pem(CYASSL_X509_CHAIN*, int idx, + unsigned char* buffer, int inLen, int* outLen); +CYASSL_API const unsigned char* CyaSSL_get_sessionID(const CYASSL_SESSION* s); +CYASSL_API int CyaSSL_X509_get_serial_number(CYASSL_X509*,unsigned char*,int*); +CYASSL_API char* CyaSSL_X509_get_subjectCN(CYASSL_X509*); +CYASSL_API const unsigned char* CyaSSL_X509_get_der(CYASSL_X509*, int*); + +CYASSL_API int CyaSSL_cmp_peer_cert_to_file(CYASSL*, const char*); + +/* connect enough to get peer cert */ +CYASSL_API int CyaSSL_connect_cert(CYASSL* ssl); + +/* server Diffie-Hellman parameters */ +CYASSL_API int CyaSSL_SetTmpDH(CYASSL*, const unsigned char* p, int pSz, + const unsigned char* g, int gSz); +CYASSL_API int CyaSSL_SetTmpDH_buffer(CYASSL*, const unsigned char* b, long sz, + int format); +CYASSL_API int CyaSSL_SetTmpEC_DHE_Sz(CYASSL*, unsigned short); +#ifndef NO_FILESYSTEM + CYASSL_API int CyaSSL_SetTmpDH_file(CYASSL*, const char* f, int format); +#endif + +/* server ctx Diffie-Hellman parameters */ +CYASSL_API int CyaSSL_CTX_SetTmpDH(CYASSL_CTX*, const unsigned char* p, + int pSz, const unsigned char* g, int gSz); +CYASSL_API int CyaSSL_CTX_SetTmpDH_buffer(CYASSL_CTX*, const unsigned char* b, + long sz, int format); +CYASSL_API int CyaSSL_CTX_SetTmpEC_DHE_Sz(CYASSL_CTX*, unsigned short); +#ifndef NO_FILESYSTEM + CYASSL_API int CyaSSL_CTX_SetTmpDH_file(CYASSL_CTX*, const char* f, + int format); +#endif + +/* keyblock size in bytes or -1 */ +CYASSL_API int CyaSSL_get_keyblock_size(CYASSL*); +CYASSL_API int CyaSSL_get_keys(CYASSL*,unsigned char** ms, unsigned int* msLen, + unsigned char** sr, unsigned int* srLen, + unsigned char** cr, unsigned int* crLen); + +#ifndef _WIN32 + #ifndef NO_WRITEV + #ifdef __PPU + #include + #include + #else + #include + #endif + /* allow writev style writing */ + CYASSL_API int CyaSSL_writev(CYASSL* ssl, const struct iovec* iov, + int iovcnt); + #endif +#endif + + +/* SSL_CTX versions */ +CYASSL_API int CyaSSL_CTX_load_verify_buffer(CYASSL_CTX*, const unsigned char*, + long, int); +CYASSL_API int CyaSSL_CTX_use_certificate_buffer(CYASSL_CTX*, + const unsigned char*, long, int); +CYASSL_API int CyaSSL_CTX_use_PrivateKey_buffer(CYASSL_CTX*, + const unsigned char*, long, int); +CYASSL_API int CyaSSL_CTX_use_certificate_chain_buffer(CYASSL_CTX*, + const unsigned char*, long); +CYASSL_API int CyaSSL_CTX_set_group_messages(CYASSL_CTX*); + +/* SSL versions */ +CYASSL_API int CyaSSL_use_certificate_buffer(CYASSL*, const unsigned char*, + long, int); +CYASSL_API int CyaSSL_use_PrivateKey_buffer(CYASSL*, const unsigned char*, long, + int); +CYASSL_API int CyaSSL_use_certificate_chain_buffer(CYASSL*, + const unsigned char*, long); +CYASSL_API int CyaSSL_set_group_messages(CYASSL*); + +/* I/O callbacks */ +typedef int (*CallbackIORecv)(char *buf, int sz, void *ctx); +typedef int (*CallbackIOSend)(char *buf, int sz, void *ctx); + +CYASSL_API void CyaSSL_SetIORecv(CYASSL_CTX*, CallbackIORecv); +CYASSL_API void CyaSSL_SetIOSend(CYASSL_CTX*, CallbackIOSend); + +CYASSL_API void CyaSSL_SetIOReadCtx(CYASSL* ssl, void *ctx); +CYASSL_API void CyaSSL_SetIOWriteCtx(CYASSL* ssl, void *ctx); + +/* CA cache callbacks */ +enum { + CYASSL_USER_CA = 1, /* user added as trusted */ + CYASSL_CHAIN_CA = 2 /* added to cache from trusted chain */ +}; + +CYASSL_API int CyaSSL_KeyPemToDer(const unsigned char*, int sz, unsigned char*, + int, const char*); + +typedef void (*CallbackCACache)(unsigned char* der, int sz, int type); +typedef void (*CbMissingCRL)(const char* url); + +CYASSL_API void CyaSSL_CTX_SetCACb(CYASSL_CTX*, CallbackCACache); + + +CYASSL_API CYASSL_CERT_MANAGER* CyaSSL_CertManagerNew(void); +CYASSL_API void CyaSSL_CertManagerFree(CYASSL_CERT_MANAGER*); + +CYASSL_API int CyaSSL_CertManagerLoadCA(CYASSL_CERT_MANAGER*, const char* f, + const char* d); +CYASSL_API int CyaSSL_CertManagerVerify(CYASSL_CERT_MANAGER*, const char* f, + int format); +CYASSL_API int CyaSSL_CertManagerCheckCRL(CYASSL_CERT_MANAGER*, unsigned char*, + int sz); +CYASSL_API int CyaSSL_CertManagerEnableCRL(CYASSL_CERT_MANAGER*, int options); +CYASSL_API int CyaSSL_CertManagerDisableCRL(CYASSL_CERT_MANAGER*); +CYASSL_API int CyaSSL_CertManagerLoadCRL(CYASSL_CERT_MANAGER*, const char*, int, + int); +CYASSL_API int CyaSSL_CertManagerSetCRL_Cb(CYASSL_CERT_MANAGER*, CbMissingCRL); + +CYASSL_API int CyaSSL_EnableCRL(CYASSL* ssl, int options); +CYASSL_API int CyaSSL_DisableCRL(CYASSL* ssl); +CYASSL_API int CyaSSL_LoadCRL(CYASSL*, const char*, int, int); +CYASSL_API int CyaSSL_SetCRL_Cb(CYASSL*, CbMissingCRL); + +CYASSL_API int CyaSSL_CTX_EnableCRL(CYASSL_CTX* ctx, int options); +CYASSL_API int CyaSSL_CTX_DisableCRL(CYASSL_CTX* ctx); +CYASSL_API int CyaSSL_CTX_LoadCRL(CYASSL_CTX*, const char*, int, int); +CYASSL_API int CyaSSL_CTX_SetCRL_Cb(CYASSL_CTX*, CbMissingCRL); + + + +#ifdef CYASSL_CALLBACKS + +/* used internally by CyaSSL while OpenSSL types aren't */ +#include + +typedef int (*HandShakeCallBack)(HandShakeInfo*); +typedef int (*TimeoutCallBack)(TimeoutInfo*); + +/* CyaSSL connect extension allowing HandShakeCallBack and/or TimeoutCallBack + for diagnostics */ +CYASSL_API int CyaSSL_connect_ex(CYASSL*, HandShakeCallBack, TimeoutCallBack, + Timeval); +CYASSL_API int CyaSSL_accept_ex(CYASSL*, HandShakeCallBack, TimeoutCallBack, + Timeval); + +#endif /* CYASSL_CALLBACKS */ + + +CYASSL_API long CyaSSL_CTX_OCSP_set_options(CYASSL_CTX*, long); +CYASSL_API int CyaSSL_CTX_OCSP_set_override_url(CYASSL_CTX*, const char*); + +/* OCSP Options */ +#define CYASSL_OCSP_ENABLE 0x0001 /* Enable OCSP lookups */ +#define CYASSL_OCSP_URL_OVERRIDE 0x0002 /* Use the override URL instead of URL + * in certificate */ + + +#ifdef __cplusplus + } /* extern "C" */ +#endif + + +#endif /* CYASSL_SSL_H */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/test.h b/FreeRTOS-Plus/CyaSSL/cyassl/test.h new file mode 100644 index 000000000..d68ad64b7 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/test.h @@ -0,0 +1,725 @@ +/* test.h */ + +#ifndef CyaSSL_TEST_H +#define CyaSSL_TEST_H + +#include +#include +#include +#include +#include + +#ifdef USE_WINDOWS_API + #include + #include + #ifdef TEST_IPV6 /* don't require newer SDK for IPV4 */ + #include + #include + #endif + #define SOCKET_T int +#else + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #ifdef NON_BLOCKING + #include + #endif + #ifdef TEST_IPV6 + #include + #endif + #define SOCKET_T unsigned int +#endif /* USE_WINDOWS_API */ + +#ifdef _MSC_VER + /* disable conversion warning */ + /* 4996 warning to use MS extensions e.g., strcpy_s instead of strncpy */ + #pragma warning(disable:4244 4996) +#endif + +#if defined(__MACH__) || defined(USE_WINDOWS_API) + #ifndef _SOCKLEN_T + typedef int socklen_t; + #endif +#endif + + +/* HPUX doesn't use socklent_t for third parameter to accept */ +#if !defined(__hpux__) + typedef socklen_t* ACCEPT_THIRD_T; +#else + typedef int* ACCEPT_THIRD_T; +#endif + + +#ifdef USE_WINDOWS_API + #define CloseSocket(s) closesocket(s) + #define StartTCP() { WSADATA wsd; WSAStartup(0x0002, &wsd); } +#else + #define CloseSocket(s) close(s) + #define StartTCP() +#endif + + +#ifdef SINGLE_THREADED + typedef unsigned int THREAD_RETURN; + typedef void* THREAD_TYPE; + #define CYASSL_THREAD +#else + #ifdef _POSIX_THREADS + typedef void* THREAD_RETURN; + typedef pthread_t THREAD_TYPE; + #define CYASSL_THREAD + #define INFINITE -1 + #define WAIT_OBJECT_0 0L + #else + typedef unsigned int THREAD_RETURN; + typedef HANDLE THREAD_TYPE; + #define CYASSL_THREAD __stdcall + #endif +#endif + + +#ifdef TEST_IPV6 + typedef struct sockaddr_in6 SOCKADDR_IN_T; + #define AF_INET_V AF_INET6 +#else + typedef struct sockaddr_in SOCKADDR_IN_T; + #define AF_INET_V AF_INET +#endif + + +/* all certs relative to CyaSSL home directory now */ +static const char* caCert = "./certs/ca-cert.pem"; +static const char* eccCert = "./certs/server-ecc.pem"; +static const char* eccKey = "./certs/ecc-key.pem"; +static const char* svrCert = "./certs/server-cert.pem"; +static const char* svrKey = "./certs/server-key.pem"; +static const char* cliCert = "./certs/client-cert.pem"; +static const char* cliKey = "./certs/client-key.pem"; +static const char* ntruCert = "./certs/ntru-cert.pem"; +static const char* ntruKey = "./certs/ntru-key.raw"; +static const char* dhParam = "./certs/dh2048.pem"; +static const char* cliEccKey = "./certs/ecc-client-key.pem"; +static const char* cliEccCert = "./certs/client-ecc-cert.pem"; +static const char* crlPemDir = "./certs/crl"; + +typedef struct tcp_ready { + int ready; /* predicate */ +#ifdef _POSIX_THREADS + pthread_mutex_t mutex; + pthread_cond_t cond; +#endif +} tcp_ready; + + +void InitTcpReady(tcp_ready*); +void FreeTcpReady(tcp_ready*); + + +typedef struct func_args { + int argc; + char** argv; + int return_code; + tcp_ready* signal; +} func_args; + + +typedef THREAD_RETURN CYASSL_THREAD THREAD_FUNC(void*); + +void start_thread(THREAD_FUNC, func_args*, THREAD_TYPE*); +void join_thread(THREAD_TYPE); + +/* yaSSL */ +static const char* const yasslIP = "127.0.0.1"; +static const word16 yasslPort = 11111; + + +static INLINE void err_sys(const char* msg) +{ + printf("yassl error: %s\n", msg); + exit(EXIT_FAILURE); +} + + +#ifdef OPENSSL_EXTRA + +static int PasswordCallBack(char* passwd, int sz, int rw, void* userdata) +{ + strncpy(passwd, "yassl123", sz); + return 8; +} + +#endif + + +static INLINE void showPeer(CYASSL* ssl) +{ +#ifdef OPENSSL_EXTRA + + CYASSL_CIPHER* cipher; + CYASSL_X509* peer = CyaSSL_get_peer_certificate(ssl); + if (peer) { + char* issuer = CyaSSL_X509_NAME_oneline( + CyaSSL_X509_get_issuer_name(peer), 0, 0); + char* subject = CyaSSL_X509_NAME_oneline( + CyaSSL_X509_get_subject_name(peer), 0, 0); + byte serial[32]; + int ret; + int sz = sizeof(serial); + + printf("peer's cert info:\n issuer : %s\n subject: %s\n", issuer, + subject); + ret = CyaSSL_X509_get_serial_number(peer, serial, &sz); + if (ret == 0) { + int i; + int strLen; + char serialMsg[80]; + + /* testsuite has multiple threads writing to stdout, get output + message ready to write once */ + strLen = sprintf(serialMsg, " serial number"); + for (i = 0; i < sz; i++) + sprintf(serialMsg + strLen + (i*3), ":%02x ", serial[i]); + printf("%s\n", serialMsg); + } + + XFREE(subject, 0, DYNAMIC_TYPE_OPENSSL); + XFREE(issuer, 0, DYNAMIC_TYPE_OPENSSL); + } + else + printf("peer has no cert!\n"); + printf("SSL version is %s\n", CyaSSL_get_version(ssl)); + + cipher = CyaSSL_get_current_cipher(ssl); + printf("SSL cipher suite is %s\n", CyaSSL_CIPHER_get_name(cipher)); +#endif + +#if defined(SESSION_CERTS) && defined(SHOW_CERTS) + { + X509_CHAIN* chain = CyaSSL_get_peer_chain(ssl); + int count = CyaSSL_get_chain_count(chain); + int i; + + for (i = 0; i < count; i++) { + int length; + unsigned char buffer[3072]; + + CyaSSL_get_chain_cert_pem(chain,i,buffer, sizeof(buffer), &length); + buffer[length] = 0; + printf("cert %d has length %d data = \n%s\n", i, length, buffer); + } + } +#endif + +} + + +static INLINE void tcp_socket(SOCKET_T* sockfd, SOCKADDR_IN_T* addr, + const char* peer, word16 port) +{ +#ifndef TEST_IPV6 + const char* host = peer; + + /* peer could be in human readable form */ + if (peer != INADDR_ANY && isalpha(peer[0])) { + struct hostent* entry = gethostbyname(peer); + + if (entry) { + struct sockaddr_in tmp; + memset(&tmp, 0, sizeof(struct sockaddr_in)); + memcpy(&tmp.sin_addr.s_addr, entry->h_addr_list[0], + entry->h_length); + host = inet_ntoa(tmp.sin_addr); + } + else + err_sys("no entry for host"); + } +#endif + +#ifdef CYASSL_DTLS + *sockfd = socket(AF_INET_V, SOCK_DGRAM, 0); +#else + *sockfd = socket(AF_INET_V, SOCK_STREAM, 0); +#endif + memset(addr, 0, sizeof(SOCKADDR_IN_T)); + +#ifndef TEST_IPV6 + addr->sin_family = AF_INET_V; + addr->sin_port = htons(port); + if (host == INADDR_ANY) + addr->sin_addr.s_addr = INADDR_ANY; + else + addr->sin_addr.s_addr = inet_addr(host); +#else + addr->sin6_family = AF_INET_V; + addr->sin6_port = htons(port); + addr->sin6_addr = in6addr_loopback; +#endif + +#ifndef USE_WINDOWS_API +#ifdef SO_NOSIGPIPE + { + int on = 1; + socklen_t len = sizeof(on); + int res = setsockopt(*sockfd, SOL_SOCKET, SO_NOSIGPIPE, &on, len); + if (res < 0) + err_sys("setsockopt SO_NOSIGPIPE failed\n"); + } +#endif + +#if defined(TCP_NODELAY) && !defined(CYASSL_DTLS) + { + int on = 1; + socklen_t len = sizeof(on); + int res = setsockopt(*sockfd, IPPROTO_TCP, TCP_NODELAY, &on, len); + if (res < 0) + err_sys("setsockopt TCP_NODELAY failed\n"); + } +#endif +#endif /* USE_WINDOWS_API */ +} + + +static INLINE void tcp_connect(SOCKET_T* sockfd, const char* ip, word16 port) +{ + SOCKADDR_IN_T addr; + tcp_socket(sockfd, &addr, ip, port); + + if (connect(*sockfd, (const struct sockaddr*)&addr, sizeof(addr)) != 0) + err_sys("tcp connect failed"); +} + + +static INLINE void tcp_listen(SOCKET_T* sockfd) +{ + SOCKADDR_IN_T addr; + + /* don't use INADDR_ANY by default, firewall may block, make user switch + on */ +#ifdef USE_ANY_ADDR + tcp_socket(sockfd, &addr, INADDR_ANY, yasslPort); +#else + tcp_socket(sockfd, &addr, yasslIP, yasslPort); +#endif + +#ifndef USE_WINDOWS_API + { + int on = 1; + socklen_t len = sizeof(on); + setsockopt(*sockfd, SOL_SOCKET, SO_REUSEADDR, &on, len); + } +#endif + + if (bind(*sockfd, (const struct sockaddr*)&addr, sizeof(addr)) != 0) + err_sys("tcp bind failed"); +#ifndef CYASSL_DTLS + if (listen(*sockfd, 5) != 0) + err_sys("tcp listen failed"); +#endif +} + + +static INLINE int udp_read_connect(SOCKET_T sockfd) +{ + SOCKADDR_IN_T cliaddr; + byte b[1500]; + int n; + socklen_t len = sizeof(cliaddr); + + n = recvfrom(sockfd, (char*)b, sizeof(b), MSG_PEEK, + (struct sockaddr*)&cliaddr, &len); + if (n > 0) { + if (connect(sockfd, (const struct sockaddr*)&cliaddr, + sizeof(cliaddr)) != 0) + err_sys("udp connect failed"); + } + else + err_sys("recvfrom failed"); + + return sockfd; +} + +static INLINE void udp_accept(SOCKET_T* sockfd, int* clientfd, func_args* args) +{ + SOCKADDR_IN_T addr; + + tcp_socket(sockfd, &addr, yasslIP, yasslPort); + + +#ifndef USE_WINDOWS_API + { + int on = 1; + socklen_t len = sizeof(on); + setsockopt(*sockfd, SOL_SOCKET, SO_REUSEADDR, &on, len); + } +#endif + + if (bind(*sockfd, (const struct sockaddr*)&addr, sizeof(addr)) != 0) + err_sys("tcp bind failed"); + +#if defined(_POSIX_THREADS) && defined(NO_MAIN_DRIVER) + /* signal ready to accept data */ + { + tcp_ready* ready = args->signal; + pthread_mutex_lock(&ready->mutex); + ready->ready = 1; + pthread_cond_signal(&ready->cond); + pthread_mutex_unlock(&ready->mutex); + } +#endif + + *clientfd = udp_read_connect(*sockfd); +} + +static INLINE void tcp_accept(SOCKET_T* sockfd, int* clientfd, func_args* args) +{ + SOCKADDR_IN_T client; + socklen_t client_len = sizeof(client); + + #ifdef CYASSL_DTLS + udp_accept(sockfd, clientfd, args); + return; + #endif + + tcp_listen(sockfd); + +#if defined(_POSIX_THREADS) && defined(NO_MAIN_DRIVER) + /* signal ready to tcp_accept */ + { + tcp_ready* ready = args->signal; + pthread_mutex_lock(&ready->mutex); + ready->ready = 1; + pthread_cond_signal(&ready->cond); + pthread_mutex_unlock(&ready->mutex); + } +#endif + + *clientfd = accept(*sockfd, (struct sockaddr*)&client, + (ACCEPT_THIRD_T)&client_len); + if (*clientfd == -1) + err_sys("tcp accept failed"); +} + + +static INLINE void tcp_set_nonblocking(SOCKET_T* sockfd) +{ +#ifdef NON_BLOCKING + #ifdef USE_WINDOWS_API + unsigned long blocking = 1; + int ret = ioctlsocket(*sockfd, FIONBIO, &blocking); + #else + int flags = fcntl(*sockfd, F_GETFL, 0); + int ret = fcntl(*sockfd, F_SETFL, flags | O_NONBLOCK); + #endif +#endif +} + + +#ifndef NO_PSK + +static INLINE unsigned int my_psk_client_cb(CYASSL* ssl, const char* hint, + char* identity, unsigned int id_max_len, unsigned char* key, + unsigned int key_max_len) +{ + /* identity is OpenSSL testing default for openssl s_client, keep same */ + strncpy(identity, "Client_identity", id_max_len); + + + /* test key in hex is 0x1a2b3c4d , in decimal 439,041,101 , we're using + unsigned binary */ + key[0] = 26; + key[1] = 43; + key[2] = 60; + key[3] = 77; + + return 4; /* length of key in octets or 0 for error */ +} + + +static INLINE unsigned int my_psk_server_cb(CYASSL* ssl, const char* identity, + unsigned char* key, unsigned int key_max_len) +{ + /* identity is OpenSSL testing default for openssl s_client, keep same */ + if (strncmp(identity, "Client_identity", 15) != 0) + return 0; + + /* test key in hex is 0x1a2b3c4d , in decimal 439,041,101 , we're using + unsigned binary */ + key[0] = 26; + key[1] = 43; + key[2] = 60; + key[3] = 77; + + return 4; /* length of key in octets or 0 for error */ +} + +#endif /* NO_PSK */ + + +#ifdef USE_WINDOWS_API + + #define WIN32_LEAN_AND_MEAN + #include + + static INLINE double current_time() + { + static int init = 0; + static LARGE_INTEGER freq; + + LARGE_INTEGER count; + + if (!init) { + QueryPerformanceFrequency(&freq); + init = 1; + } + + QueryPerformanceCounter(&count); + + return (double)count.QuadPart / freq.QuadPart; + } + +#else + + #include + + static INLINE double current_time() + { + struct timeval tv; + gettimeofday(&tv, 0); + + return (double)tv.tv_sec + (double)tv.tv_usec / 1000000; + } + +#endif /* USE_WINDOWS_API */ + + +#ifdef NO_FILESYSTEM + + enum { + CYASSL_CA = 1, + CYASSL_CERT = 2, + CYASSL_KEY = 3 + }; + + static INLINE void load_buffer(CYASSL_CTX* ctx, const char* fname, int type) + { + /* test buffer load */ + long sz = 0; + byte buff[10000]; + FILE* file = fopen(fname, "rb"); + + if (!file) + err_sys("can't open file for buffer load " + "Please run from CyaSSL home directory if not"); + fseek(file, 0, SEEK_END); + sz = ftell(file); + rewind(file); + fread(buff, sizeof(buff), 1, file); + + if (type == CYASSL_CA) { + if (CyaSSL_CTX_load_verify_buffer(ctx, buff, sz, SSL_FILETYPE_PEM) + != SSL_SUCCESS) + err_sys("can't load buffer ca file"); + } + else if (type == CYASSL_CERT) { + if (CyaSSL_CTX_use_certificate_buffer(ctx, buff, sz, + SSL_FILETYPE_PEM) != SSL_SUCCESS) + err_sys("can't load buffer cert file"); + } + else if (type == CYASSL_KEY) { + if (CyaSSL_CTX_use_PrivateKey_buffer(ctx, buff, sz, + SSL_FILETYPE_PEM) != SSL_SUCCESS) + err_sys("can't load buffer key file"); + } + } + +#endif /* NO_FILESYSTEM */ + +#ifdef VERIFY_CALLBACK + +static int myVerify(int preverify, CYASSL_X509_STORE_CTX* store) +{ + char buffer[80]; + + printf("In verification callback, error = %d, %s\n", store->error, + CyaSSL_ERR_error_string(store->error, buffer)); +#ifdef OPENSSL_EXTRA + CYASSL_X509* peer = store->current_cert; + if (peer) { + char* issuer = CyaSSL_X509_NAME_oneline( + CyaSSL_X509_get_issuer_name(peer), 0, 0); + char* subject = CyaSSL_X509_NAME_oneline( + CyaSSL_X509_get_subject_name(peer), 0, 0); + printf("peer's cert info:\n issuer : %s\n subject: %s\n", issuer, + subject); + XFREE(subject, 0, DYNAMIC_TYPE_OPENSSL); + XFREE(issuer, 0, DYNAMIC_TYPE_OPENSSL); + } + else + printf("peer has no cert!\n"); +#endif + printf("Subject's domain name is %s\n", store->domain); + + printf("Allowing to continue anyway (shouldn't do this, EVER!!!)\n"); + return 1; +} + +#endif /* VERIFY_CALLBACK */ + + +#ifdef HAVE_CRL + +static void CRL_CallBack(char* url) +{ + printf("CRL callback url = %s\n", url); +} + +#endif + + +static INLINE void CaCb(unsigned char* der, int sz, int type) +{ + printf("Got CA cache add callback, derSz = %d, type = %d\n", sz, type); +} + + +static INLINE void SetDH(CYASSL* ssl) +{ + /* dh1024 p */ + static unsigned char p[] = + { + 0xE6, 0x96, 0x9D, 0x3D, 0x49, 0x5B, 0xE3, 0x2C, 0x7C, 0xF1, 0x80, 0xC3, + 0xBD, 0xD4, 0x79, 0x8E, 0x91, 0xB7, 0x81, 0x82, 0x51, 0xBB, 0x05, 0x5E, + 0x2A, 0x20, 0x64, 0x90, 0x4A, 0x79, 0xA7, 0x70, 0xFA, 0x15, 0xA2, 0x59, + 0xCB, 0xD5, 0x23, 0xA6, 0xA6, 0xEF, 0x09, 0xC4, 0x30, 0x48, 0xD5, 0xA2, + 0x2F, 0x97, 0x1F, 0x3C, 0x20, 0x12, 0x9B, 0x48, 0x00, 0x0E, 0x6E, 0xDD, + 0x06, 0x1C, 0xBC, 0x05, 0x3E, 0x37, 0x1D, 0x79, 0x4E, 0x53, 0x27, 0xDF, + 0x61, 0x1E, 0xBB, 0xBE, 0x1B, 0xAC, 0x9B, 0x5C, 0x60, 0x44, 0xCF, 0x02, + 0x3D, 0x76, 0xE0, 0x5E, 0xEA, 0x9B, 0xAD, 0x99, 0x1B, 0x13, 0xA6, 0x3C, + 0x97, 0x4E, 0x9E, 0xF1, 0x83, 0x9E, 0xB5, 0xDB, 0x12, 0x51, 0x36, 0xF7, + 0x26, 0x2E, 0x56, 0xA8, 0x87, 0x15, 0x38, 0xDF, 0xD8, 0x23, 0xC6, 0x50, + 0x50, 0x85, 0xE2, 0x1F, 0x0D, 0xD5, 0xC8, 0x6B, + }; + + /* dh1024 g */ + static unsigned char g[] = + { + 0x02, + }; + + CyaSSL_SetTmpDH(ssl, p, sizeof(p), g, sizeof(g)); +} + +static INLINE void SetDHCtx(CYASSL_CTX* ctx) +{ + /* dh1024 p */ + static unsigned char p[] = + { + 0xE6, 0x96, 0x9D, 0x3D, 0x49, 0x5B, 0xE3, 0x2C, 0x7C, 0xF1, 0x80, 0xC3, + 0xBD, 0xD4, 0x79, 0x8E, 0x91, 0xB7, 0x81, 0x82, 0x51, 0xBB, 0x05, 0x5E, + 0x2A, 0x20, 0x64, 0x90, 0x4A, 0x79, 0xA7, 0x70, 0xFA, 0x15, 0xA2, 0x59, + 0xCB, 0xD5, 0x23, 0xA6, 0xA6, 0xEF, 0x09, 0xC4, 0x30, 0x48, 0xD5, 0xA2, + 0x2F, 0x97, 0x1F, 0x3C, 0x20, 0x12, 0x9B, 0x48, 0x00, 0x0E, 0x6E, 0xDD, + 0x06, 0x1C, 0xBC, 0x05, 0x3E, 0x37, 0x1D, 0x79, 0x4E, 0x53, 0x27, 0xDF, + 0x61, 0x1E, 0xBB, 0xBE, 0x1B, 0xAC, 0x9B, 0x5C, 0x60, 0x44, 0xCF, 0x02, + 0x3D, 0x76, 0xE0, 0x5E, 0xEA, 0x9B, 0xAD, 0x99, 0x1B, 0x13, 0xA6, 0x3C, + 0x97, 0x4E, 0x9E, 0xF1, 0x83, 0x9E, 0xB5, 0xDB, 0x12, 0x51, 0x36, 0xF7, + 0x26, 0x2E, 0x56, 0xA8, 0x87, 0x15, 0x38, 0xDF, 0xD8, 0x23, 0xC6, 0x50, + 0x50, 0x85, 0xE2, 0x1F, 0x0D, 0xD5, 0xC8, 0x6B, + }; + + /* dh1024 g */ + static unsigned char g[] = + { + 0x02, + }; + + CyaSSL_CTX_SetTmpDH(ctx, p, sizeof(p), g, sizeof(g)); +} + +#ifdef USE_WINDOWS_API + +/* do back x number of directories */ +static INLINE void ChangeDirBack(int x) +{ + char path[MAX_PATH]; + + if (x == 1) + strncpy(path, "..\\", MAX_PATH); + else if (x == 2) + strncpy(path, "..\\..\\", MAX_PATH); + else if (x == 3) + strncpy(path, "..\\..\\..\\", MAX_PATH); + else if (x == 4) + strncpy(path, "..\\..\\..\\..\\", MAX_PATH); + else + strncpy(path, ".\\", MAX_PATH); + + SetCurrentDirectoryA(path); +} + +/* does current dir contain str */ +static INLINE int CurrentDir(const char* str) +{ + char path[MAX_PATH]; + + GetCurrentDirectoryA(sizeof(path), path); + if (strstr(path, str)) + return 1; + + return 0; +} + +#else + +#ifndef MAX_PATH + #define MAX_PATH 256 +#endif + +/* do back x number of directories */ +static INLINE void ChangeDirBack(int x) +{ + char path[MAX_PATH]; + + if (x == 1) + strncpy(path, "../", MAX_PATH); + else if (x == 2) + strncpy(path, "../../", MAX_PATH); + else if (x == 3) + strncpy(path, "../../../", MAX_PATH); + else if (x == 4) + strncpy(path, "../../../../", MAX_PATH); + else + strncpy(path, "./", MAX_PATH); + + if (chdir(path) < 0) + printf("chdir to %s failed\n", path); +} + +/* does current dir contain str */ +static INLINE int CurrentDir(const char* str) +{ + char path[MAX_PATH]; + + if (getcwd(path, sizeof(path)) == NULL) { + printf("no current dir?\n"); + return 0; + } + if (strstr(path, str)) + return 1; + + return 0; +} + +#endif /* USE_WINDOWS_API */ + +#endif /* CyaSSL_TEST_H */ + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/version.h b/FreeRTOS-Plus/CyaSSL/cyassl/version.h new file mode 100644 index 000000000..83dbee159 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/version.h @@ -0,0 +1,35 @@ +/* cyassl_version.h.in + * + * Copyright (C) 2006-2011 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +#define LIBCYASSL_VERSION_STRING "2.2.0" +#define LIBCYASSL_VERSION_HEX 0x02002000 + +#ifdef __cplusplus +} +#endif + diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/version.h.in b/FreeRTOS-Plus/CyaSSL/cyassl/version.h.in new file mode 100644 index 000000000..6af4f0ae5 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/cyassl/version.h.in @@ -0,0 +1,35 @@ +/* cyassl_version.h.in + * + * Copyright (C) 2006-2011 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +#define LIBCYASSL_VERSION_STRING "@VERSION@" +#define LIBCYASSL_VERSION_HEX @HEX_VERSION@ + +#ifdef __cplusplus +} +#endif + diff --git a/FreeRTOS-Plus/CyaSSL/doc/README.txt b/FreeRTOS-Plus/CyaSSL/doc/README.txt new file mode 100644 index 000000000..d9b367bed --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/doc/README.txt @@ -0,0 +1,3 @@ +The CyaSSL manual is availalbe at: +http://www.yassl.com/documentation/CyaSSL-Manual.pdf + diff --git a/FreeRTOS-Plus/CyaSSL/doc/include.am b/FreeRTOS-Plus/CyaSSL/doc/include.am new file mode 100644 index 000000000..fa44fcf8f --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/doc/include.am @@ -0,0 +1,5 @@ +# vim:ft=automake +# included from Top Level Makefile.am +# All paths should be given relative to the root + +doc_DATA+= doc/README.txt diff --git a/FreeRTOS-Plus/CyaSSL/examples/client/client-ntru.vcproj b/FreeRTOS-Plus/CyaSSL/examples/client/client-ntru.vcproj new file mode 100644 index 000000000..c89100393 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/examples/client/client-ntru.vcproj @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FreeRTOS-Plus/CyaSSL/examples/client/client.c b/FreeRTOS-Plus/CyaSSL/examples/client/client.c new file mode 100644 index 000000000..7e5abcdb9 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/examples/client/client.c @@ -0,0 +1,371 @@ +/* client.c + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +#ifdef HAVE_CONFIG_H + #include +#endif + +#include +#include + +/* +#define TEST_RESUME +*/ + + +#ifdef CYASSL_CALLBACKS + int handShakeCB(HandShakeInfo*); + int timeoutCB(TimeoutInfo*); + Timeval timeout; +#endif + +#if defined(NON_BLOCKING) || defined(CYASSL_CALLBACKS) + void NonBlockingSSL_Connect(CyaSSL* ssl) + { +#ifndef CYASSL_CALLBACKS + int ret = CyaSSL_connect(ssl); +#else + int ret = CyaSSL_connect_ex(ssl, handShakeCB, timeoutCB, timeout); +#endif + int error = CyaSSL_get_error(ssl, 0); + while (ret != SSL_SUCCESS && (error == SSL_ERROR_WANT_READ || + error == SSL_ERROR_WANT_WRITE)) { + if (error == SSL_ERROR_WANT_READ) + printf("... client would read block\n"); + else + printf("... client would write block\n"); + #ifdef USE_WINDOWS_API + Sleep(100); + #else + sleep(1); + #endif + #ifndef CYASSL_CALLBACKS + ret = CyaSSL_connect(ssl); + #else + ret = CyaSSL_connect_ex(ssl, handShakeCB, timeoutCB, timeout); + #endif + error = CyaSSL_get_error(ssl, 0); + } + if (ret != SSL_SUCCESS) + err_sys("SSL_connect failed"); + } +#endif + + +void client_test(void* args) +{ + SOCKET_T sockfd = 0; + + CYASSL_METHOD* method = 0; + CYASSL_CTX* ctx = 0; + CYASSL* ssl = 0; + +#ifdef TEST_RESUME + CYASSL* sslResume = 0; + CYASSL_SESSION* session = 0; + char resumeMsg[] = "resuming cyassl!"; + int resumeSz = sizeof(resumeMsg); +#endif + + char msg[64] = "hello cyassl!"; + char reply[1024]; + int input; + int msgSz = strlen(msg); + + int argc = ((func_args*)args)->argc; + char** argv = ((func_args*)args)->argv; + + ((func_args*)args)->return_code = -1; /* error state */ + +#if defined(CYASSL_DTLS) + method = CyaDTLSv1_client_method(); +#elif !defined(NO_TLS) + method = CyaSSLv23_client_method(); +#else + method = CyaSSLv3_client_method(); +#endif + ctx = CyaSSL_CTX_new(method); + +#ifndef NO_PSK + CyaSSL_CTX_set_psk_client_callback(ctx, my_psk_client_cb); +#endif + +#ifdef OPENSSL_EXTRA + CyaSSL_CTX_set_default_passwd_cb(ctx, PasswordCallBack); +#endif + +#if defined(CYASSL_SNIFFER) && !defined(HAVE_NTRU) && !defined(HAVE_ECC) + /* don't use EDH, can't sniff tmp keys */ + CyaSSL_CTX_set_cipher_list(ctx, "AES256-SHA"); +#endif + +#ifdef USER_CA_CB + CyaSSL_CTX_SetCACb(ctx, CaCb); +#endif + +#ifndef NO_FILESYSTEM + if (CyaSSL_CTX_load_verify_locations(ctx, caCert, 0) != SSL_SUCCESS) + err_sys("can't load ca file, Please run from CyaSSL home dir"); + #ifdef HAVE_ECC + if (CyaSSL_CTX_load_verify_locations(ctx, eccCert, 0) != SSL_SUCCESS) + err_sys("can't load ca file, Please run from CyaSSL home dir"); + #endif +#else + load_buffer(ctx, caCert, CYASSL_CA); +#endif + +#ifdef VERIFY_CALLBACK + CyaSSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, myVerify); +#endif + + + if (argc == 3) { + /* ./client server securePort */ + CyaSSL_CTX_set_verify(ctx, SSL_VERIFY_NONE, 0); /* TODO: add ca cert */ + /* this is just to allow easy testing of other servers */ + tcp_connect(&sockfd, argv[1], (short)atoi(argv[2])); + } + else if (argc == 1) { + /* ./client // plain mode */ + /* for client cert authentication if server requests */ +#ifndef NO_FILESYSTEM + #ifdef HAVE_ECC + if (CyaSSL_CTX_use_certificate_file(ctx, cliEccCert, SSL_FILETYPE_PEM) + != SSL_SUCCESS) + err_sys("can't load ecc client cert file, " + "Please run from CyaSSL home dir"); + + if (CyaSSL_CTX_use_PrivateKey_file(ctx, cliEccKey, SSL_FILETYPE_PEM) + != SSL_SUCCESS) + err_sys("can't load ecc client key file, " + "Please run from CyaSSL home dir"); + #else + if (CyaSSL_CTX_use_certificate_file(ctx, cliCert, SSL_FILETYPE_PEM) + != SSL_SUCCESS) + err_sys("can't load client cert file, " + "Please run from CyaSSL home dir"); + + if (CyaSSL_CTX_use_PrivateKey_file(ctx, cliKey, SSL_FILETYPE_PEM) + != SSL_SUCCESS) + err_sys("can't load client key file, " + "Please run from CyaSSL home dir"); + #endif /* HAVE_ECC */ +#else + load_buffer(ctx, cliCert, CYASSL_CERT); + load_buffer(ctx, cliKey, CYASSL_KEY); +#endif + + tcp_connect(&sockfd, yasslIP, yasslPort); + } + else if (argc == 2) { + /* time passed in number of connects give average */ + int times = atoi(argv[1]); + int i = 0; + + double start = current_time(), avg; + + for (i = 0; i < times; i++) { + tcp_connect(&sockfd, yasslIP, yasslPort); + ssl = CyaSSL_new(ctx); + CyaSSL_set_fd(ssl, sockfd); + if (CyaSSL_connect(ssl) != SSL_SUCCESS) + err_sys("SSL_connect failed"); + + CyaSSL_shutdown(ssl); + CyaSSL_free(ssl); + CloseSocket(sockfd); + } + avg = current_time() - start; + avg /= times; + avg *= 1000; /* milliseconds */ + printf("SSL_connect avg took:%6.3f milliseconds\n", avg); + + CyaSSL_CTX_free(ctx); + ((func_args*)args)->return_code = 0; + return; + } + else + err_sys("usage: ./client server securePort"); + + ssl = CyaSSL_new(ctx); + CyaSSL_set_fd(ssl, sockfd); +#ifdef HAVE_CRL + CyaSSL_EnableCRL(ssl, 0); + CyaSSL_LoadCRL(ssl, crlPemDir, SSL_FILETYPE_PEM, 0); + CyaSSL_SetCRL_Cb(ssl, CRL_CallBack); +#endif + if (argc != 3) + CyaSSL_check_domain_name(ssl, "www.yassl.com"); +#ifdef NON_BLOCKING + tcp_set_nonblocking(&sockfd); + NonBlockingSSL_Connect(ssl); +#else + #ifndef CYASSL_CALLBACKS + if (CyaSSL_connect(ssl) != SSL_SUCCESS) {/* see note at top of README */ + int err = CyaSSL_get_error(ssl, 0); + char buffer[80]; + printf("err = %d, %s\n", err, CyaSSL_ERR_error_string(err, buffer)); + err_sys("SSL_connect failed");/* if you're getting an error here */ + } + #else + timeout.tv_sec = 2; + timeout.tv_usec = 0; + NonBlockingSSL_Connect(ssl); /* will keep retrying on timeout */ + #endif +#endif + showPeer(ssl); + + if (argc == 3) { + printf("SSL connect ok, sending GET...\n"); + msgSz = 28; + strncpy(msg, "GET /index.html HTTP/1.0\r\n\r\n", msgSz); + } + if (CyaSSL_write(ssl, msg, msgSz) != msgSz) + err_sys("SSL_write failed"); + + input = CyaSSL_read(ssl, reply, sizeof(reply)); + if (input > 0) { + reply[input] = 0; + printf("Server response: %s\n", reply); + + if (argc == 3) { /* get html */ + while (1) { + input = CyaSSL_read(ssl, reply, sizeof(reply)); + if (input > 0) { + reply[input] = 0; + printf("%s\n", reply); + } + else + break; + } + } + } + +#ifdef TEST_RESUME + #ifdef CYASSL_DTLS + strncpy(msg, "break", 6); + msgSz = (int)strlen(msg); + /* try to send session close */ + CyaSSL_write(ssl, msg, msgSz); + #endif + session = CyaSSL_get_session(ssl); + sslResume = CyaSSL_new(ctx); +#endif + + CyaSSL_shutdown(ssl); + CyaSSL_free(ssl); + CloseSocket(sockfd); + +#ifdef TEST_RESUME + #ifdef CYASSL_DTLS + #ifdef USE_WINDOWS_API + Sleep(500); + #else + sleep(1); + #endif + #endif + if (argc == 3) + tcp_connect(&sockfd, argv[1], (short)atoi(argv[2])); + else + tcp_connect(&sockfd, yasslIP, yasslPort); + CyaSSL_set_fd(sslResume, sockfd); + CyaSSL_set_session(sslResume, session); + + showPeer(sslResume); + if (CyaSSL_connect(sslResume) != SSL_SUCCESS) err_sys("SSL resume failed"); + +#ifdef OPENSSL_EXTRA + if (CyaSSL_session_reused(sslResume)) + printf("reused session id\n"); + else + printf("didn't reuse session id!!!\n"); +#endif + + if (CyaSSL_write(sslResume, resumeMsg, resumeSz) != resumeSz) + err_sys("SSL_write failed"); + + input = CyaSSL_read(sslResume, reply, sizeof(reply)); + if (input > 0) { + reply[input] = 0; + printf("Server resume response: %s\n", reply); + } + + /* try to send session break */ + CyaSSL_write(sslResume, msg, msgSz); + + CyaSSL_shutdown(sslResume); + CyaSSL_free(sslResume); +#endif /* TEST_RESUME */ + + CyaSSL_CTX_free(ctx); + CloseSocket(sockfd); + + ((func_args*)args)->return_code = 0; +} + + +/* so overall tests can pull in test function */ +#ifndef NO_MAIN_DRIVER + + int main(int argc, char** argv) + { + func_args args; + + StartTCP(); + + args.argc = argc; + args.argv = argv; + + CyaSSL_Init(); +#ifdef DEBUG_CYASSL + CyaSSL_Debugging_ON(); +#endif + if (CurrentDir("client") || CurrentDir("build")) + ChangeDirBack(2); + + client_test(&args); + CyaSSL_Cleanup(); + + return args.return_code; + } + +#endif /* NO_MAIN_DRIVER */ + + + +#ifdef CYASSL_CALLBACKS + + int handShakeCB(HandShakeInfo* info) + { + + return 0; + } + + + int timeoutCB(TimeoutInfo* info) + { + + return 0; + } + +#endif + + diff --git a/FreeRTOS-Plus/CyaSSL/examples/client/client.sln b/FreeRTOS-Plus/CyaSSL/examples/client/client.sln new file mode 100644 index 000000000..3c4bbb12d --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/examples/client/client.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual C++ Express 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "client", "client.vcproj", "{F117DD21-2672-4001-9FF8-8DBEBBFCA380}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F117DD21-2672-4001-9FF8-8DBEBBFCA380}.Debug|Win32.ActiveCfg = Debug|Win32 + {F117DD21-2672-4001-9FF8-8DBEBBFCA380}.Debug|Win32.Build.0 = Debug|Win32 + {F117DD21-2672-4001-9FF8-8DBEBBFCA380}.Release|Win32.ActiveCfg = Release|Win32 + {F117DD21-2672-4001-9FF8-8DBEBBFCA380}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/FreeRTOS-Plus/CyaSSL/examples/client/client.vcproj b/FreeRTOS-Plus/CyaSSL/examples/client/client.vcproj new file mode 100644 index 000000000..a743bcaff --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/examples/client/client.vcproj @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FreeRTOS-Plus/CyaSSL/examples/client/include.am b/FreeRTOS-Plus/CyaSSL/examples/client/include.am new file mode 100644 index 000000000..0b900c221 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/examples/client/include.am @@ -0,0 +1,12 @@ +# vim:ft=automake +# All paths should be given relative to the root + +noinst_PROGRAMS += examples/client/client +examples_client_client_SOURCES = examples/client/client.c +examples_client_client_LDADD = src/libcyassl.la +examples_client_client_DEPENDENCIES = src/libcyassl.la +EXTRA_DIST += examples/client/client.sln +EXTRA_DIST += examples/client/client-ntru.vcproj +EXTRA_DIST += examples/client/client.vcproj + +example_DATA+= examples/client/client.c diff --git a/FreeRTOS-Plus/CyaSSL/examples/echoclient/echoclient-ntru.vcproj b/FreeRTOS-Plus/CyaSSL/examples/echoclient/echoclient-ntru.vcproj new file mode 100644 index 000000000..3fa0caf6b --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/examples/echoclient/echoclient-ntru.vcproj @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FreeRTOS-Plus/CyaSSL/examples/echoclient/echoclient.c b/FreeRTOS-Plus/CyaSSL/examples/echoclient/echoclient.c new file mode 100644 index 000000000..a800555ec --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/examples/echoclient/echoclient.c @@ -0,0 +1,179 @@ +/* echoclient.c + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +#ifdef HAVE_CONFIG_H + #include +#endif + +#include +#include + + +void echoclient_test(void* args) +{ + SOCKET_T sockfd = 0; + + FILE* fin = stdin; + FILE* fout = stdout; + + int inCreated = 0; + int outCreated = 0; + + char send[1024]; + char reply[1024]; + + SSL_METHOD* method = 0; + SSL_CTX* ctx = 0; + SSL* ssl = 0; + + int sendSz; + int argc = 0; + char** argv = 0; + + ((func_args*)args)->return_code = -1; /* error state */ + argc = ((func_args*)args)->argc; + argv = ((func_args*)args)->argv; + + if (argc >= 2) { + fin = fopen(argv[1], "r"); + inCreated = 1; + } + if (argc >= 3) { + fout = fopen(argv[2], "w"); + outCreated = 1; + } + + if (!fin) err_sys("can't open input file"); + if (!fout) err_sys("can't open output file"); + + tcp_connect(&sockfd, yasslIP, yasslPort); + +#if defined(CYASSL_DTLS) + method = DTLSv1_client_method(); +#elif !defined(NO_TLS) + method = TLSv1_client_method(); +#else + method = SSLv3_client_method(); +#endif + ctx = SSL_CTX_new(method); + +#ifndef NO_FILESYSTEM + if (SSL_CTX_load_verify_locations(ctx, caCert, 0) != SSL_SUCCESS) + err_sys("can't load ca file, Please run from CyaSSL home dir"); + #ifdef HAVE_ECC + if (SSL_CTX_load_verify_locations(ctx, eccCert, 0) != SSL_SUCCESS) + err_sys("can't load ca file, Please run from CyaSSL home dir"); + #endif +#else + load_buffer(ctx, caCert, CYASSL_CA); +#endif + +#if defined(CYASSL_SNIFFER) && !defined(HAVE_NTRU) && !defined(HAVE_ECC) + /* don't use EDH, can't sniff tmp keys */ + SSL_CTX_set_cipher_list(ctx, "AES256-SHA"); +#endif + +#ifdef OPENSSL_EXTRA + SSL_CTX_set_default_passwd_cb(ctx, PasswordCallBack); +#endif + ssl = SSL_new(ctx); + + SSL_set_fd(ssl, sockfd); +#if defined(USE_WINDOWS_API) && defined(CYASSL_DTLS) && defined(NO_MAIN_DRIVER) + /* let echoserver bind first, TODO: add Windows signal like pthreads does */ + Sleep(100); +#endif + if (SSL_connect(ssl) != SSL_SUCCESS) err_sys("SSL_connect failed"); + + while (fgets(send, sizeof(send), fin)) { + + sendSz = (int)strlen(send) + 1; + + if (SSL_write(ssl, send, sendSz) != sendSz) + err_sys("SSL_write failed"); + + if (strncmp(send, "quit", 4) == 0) { + fputs("sending server shutdown command: quit!\n", fout); + break; + } + + if (strncmp(send, "break", 4) == 0) { + fputs("sending server session close: break!\n", fout); + break; + } + + while (sendSz) { + int got; + if ( (got = SSL_read(ssl, reply, sizeof(reply))) > 0) { + fputs(reply, fout); + sendSz -= got; + } + else + break; + } + } + +#ifdef CYASSL_DTLS + strncpy(send, "break", 6); + sendSz = (int)strlen(send); + /* try to tell server done */ + SSL_write(ssl, send, sendSz); +#else + SSL_shutdown(ssl); +#endif + + SSL_free(ssl); + SSL_CTX_free(ctx); + + fflush(fout); + if (inCreated) fclose(fin); + if (outCreated) fclose(fout); + + CloseSocket(sockfd); + ((func_args*)args)->return_code = 0; +} + + +/* so overall tests can pull in test function */ +#ifndef NO_MAIN_DRIVER + + int main(int argc, char** argv) + { + func_args args; + + StartTCP(); + + args.argc = argc; + args.argv = argv; + + CyaSSL_Init(); + if (CurrentDir("echoclient") || CurrentDir("build")) + ChangeDirBack(2); + echoclient_test(&args); + CyaSSL_Cleanup(); + + return args.return_code; + } + +#endif /* NO_MAIN_DRIVER */ + + + diff --git a/FreeRTOS-Plus/CyaSSL/examples/echoclient/echoclient.sln b/FreeRTOS-Plus/CyaSSL/examples/echoclient/echoclient.sln new file mode 100644 index 000000000..3fb7851d7 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/examples/echoclient/echoclient.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual C++ Express 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "echoclient", "echoclient.vcproj", "{A7AA93AD-AFF0-4FF0-8AED-14685DE55CF3}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A7AA93AD-AFF0-4FF0-8AED-14685DE55CF3}.Debug|Win32.ActiveCfg = Debug|Win32 + {A7AA93AD-AFF0-4FF0-8AED-14685DE55CF3}.Debug|Win32.Build.0 = Debug|Win32 + {A7AA93AD-AFF0-4FF0-8AED-14685DE55CF3}.Release|Win32.ActiveCfg = Release|Win32 + {A7AA93AD-AFF0-4FF0-8AED-14685DE55CF3}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/FreeRTOS-Plus/CyaSSL/examples/echoclient/echoclient.vcproj b/FreeRTOS-Plus/CyaSSL/examples/echoclient/echoclient.vcproj new file mode 100644 index 000000000..3a2a085a4 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/examples/echoclient/echoclient.vcproj @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FreeRTOS-Plus/CyaSSL/examples/echoclient/include.am b/FreeRTOS-Plus/CyaSSL/examples/echoclient/include.am new file mode 100644 index 000000000..8f09c24d3 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/examples/echoclient/include.am @@ -0,0 +1,14 @@ +# vim:ft=automake +# included from Top Level Makefile.am +# All paths should be given relative to the root + + +noinst_PROGRAMS += examples/echoclient/echoclient +examples_echoclient_echoclient_SOURCES = examples/echoclient/echoclient.c +examples_echoclient_echoclient_LDADD = src/libcyassl.la +examples_echoclient_echoclient_DEPENDENCIES = src/libcyassl.la +EXTRA_DIST += examples/echoclient/echoclient.sln +EXTRA_DIST += examples/echoclient/echoclient-ntru.vcproj +EXTRA_DIST += examples/echoclient/echoclient.vcproj + +example_DATA+= examples/echoclient/echoclient.c diff --git a/FreeRTOS-Plus/CyaSSL/examples/echoserver/echoserver-ntru.vcproj b/FreeRTOS-Plus/CyaSSL/examples/echoserver/echoserver-ntru.vcproj new file mode 100644 index 000000000..539b2e789 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/examples/echoserver/echoserver-ntru.vcproj @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FreeRTOS-Plus/CyaSSL/examples/echoserver/echoserver.c b/FreeRTOS-Plus/CyaSSL/examples/echoserver/echoserver.c new file mode 100644 index 000000000..9f7fceee1 --- /dev/null +++ b/FreeRTOS-Plus/CyaSSL/examples/echoserver/echoserver.c @@ -0,0 +1,279 @@ +/* echoserver.c + * + * Copyright (C) 2006-2012 Sawtooth Consulting Ltd. + * + * This file is part of CyaSSL. + * + * CyaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * CyaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +#ifdef HAVE_CONFIG_H + #include +#endif + +#include +#include + +#ifndef NO_MAIN_DRIVER + #define ECHO_OUT +#endif + + +#ifdef SESSION_STATS + CYASSL_API void PrintSessionStats(void); +#endif + + +static void SignalReady(void* args) +{ +#if defined(_POSIX_THREADS) && defined(NO_MAIN_DRIVER) + /* signal ready to tcp_accept */ + func_args* server_args = (func_args*)args; + tcp_ready* ready = server_args->signal; + pthread_mutex_lock(&ready->mutex); + ready->ready = 1; + pthread_cond_signal(&ready->cond); + pthread_mutex_unlock(&ready->mutex); +#endif +} + + +THREAD_RETURN CYASSL_THREAD echoserver_test(void* args) +{ + SOCKET_T sockfd = 0; + CYASSL_METHOD* method = 0; + CYASSL_CTX* ctx = 0; + + int outCreated = 0; + int shutdown = 0; + int argc = ((func_args*)args)->argc; + char** argv = ((func_args*)args)->argv; + +#ifdef ECHO_OUT + FILE* fout = stdout; + if (argc >= 2) { + fout = fopen(argv[1], "w"); + outCreated = 1; + } + if (!fout) err_sys("can't open output file"); +#endif + + ((func_args*)args)->return_code = -1; /* error state */ + + tcp_listen(&sockfd); + +#if defined(CYASSL_DTLS) + method = CyaDTLSv1_server_method(); +#elif !defined(NO_TLS) + method = CyaSSLv23_server_method(); +#else + method = CyaSSLv3_server_method(); +#endif + ctx = CyaSSL_CTX_new(method); + /* CyaSSL_CTX_set_session_cache_mode(ctx, SSL_SESS_CACHE_OFF); */ + +#ifdef OPENSSL_EXTRA + CyaSSL_CTX_set_default_passwd_cb(ctx, PasswordCallBack); +#endif + +#ifndef NO_FILESYSTEM + #ifdef HAVE_NTRU + /* ntru */ + if (CyaSSL_CTX_use_certificate_file(ctx, ntruCert, SSL_FILETYPE_PEM) + != SSL_SUCCESS) + err_sys("can't load ntru cert file, " + "Please run from CyaSSL home dir"); + + if (CyaSSL_CTX_use_NTRUPrivateKey_file(ctx, ntruKey) + != SSL_SUCCESS) + err_sys("can't load ntru key file, " + "Please run from CyaSSL home dir"); + #elif HAVE_ECC + /* ecc */ + if (CyaSSL_CTX_use_certificate_file(ctx, eccCert, SSL_FILETYPE_PEM) + != SSL_SUCCESS) + err_sys("can't load server cert file, " + "Please run from CyaSSL home dir"); + + if (CyaSSL_CTX_use_PrivateKey_file(ctx, eccKey, SSL_FILETYPE_PEM) + != SSL_SUCCESS) + err_sys("can't load server key file, " + "Please run from CyaSSL home dir"); + #else + /* normal */ + if (CyaSSL_CTX_use_certificate_file(ctx, svrCert, SSL_FILETYPE_PEM) + != SSL_SUCCESS) + err_sys("can't load server cert file, " + "Please run from CyaSSL home dir"); + + if (CyaSSL_CTX_use_PrivateKey_file(ctx, svrKey, SSL_FILETYPE_PEM) + != SSL_SUCCESS) + err_sys("can't load server key file, " + "Please run from CyaSSL home dir"); + #endif +#else + load_buffer(ctx, svrCert, CYASSL_CERT); + load_buffer(ctx, svrKey, CYASSL_KEY); +#endif + + SignalReady(args); + + while (!shutdown) { + CYASSL* ssl = 0; + char command[1024]; + int echoSz = 0; + int clientfd; + int firstRead = 1; + int gotFirstG = 0; + +#ifndef CYASSL_DTLS + SOCKADDR_IN_T client; + socklen_t client_len = sizeof(client); + clientfd = accept(sockfd, (struct sockaddr*)&client, + (ACCEPT_THIRD_T)&client_len); +#else + clientfd = udp_read_connect(sockfd); +#endif + if (clientfd == -1) err_sys("tcp accept failed"); + + ssl = CyaSSL_new(ctx); + if (ssl == NULL) err_sys("SSL_new failed"); + CyaSSL_set_fd(ssl, clientfd); + #if !defined(NO_FILESYSTEM) && defined(OPENSSL_EXTRA) + CyaSSL_SetTmpDH_file(ssl, dhParam, SSL_FILETYPE_PEM); + #else + SetDH(ssl); /* will repick suites with DHE, higher than PSK */ + #endif + if (CyaSSL_accept(ssl) != SSL_SUCCESS) { + printf("SSL_accept failed\n"); + CyaSSL_free(ssl); + CloseSocket(clientfd); + continue; + } +#if defined(PEER_INFO) + showPeer(ssl); +#endif + + while ( (echoSz = CyaSSL_read(ssl, command, sizeof(command))) > 0) { + + if (firstRead == 1) { + firstRead = 0; /* browser may send 1 byte 'G' to start */ + if (echoSz == 1 && command[0] == 'G') { + gotFirstG = 1; + continue; + } + } + else if (gotFirstG == 1 && strncmp(command, "ET /", 4) == 0) { + strncpy(command, "GET", 4); + /* fall through to normal GET */ + } + + if ( strncmp(command, "quit", 4) == 0) { + printf("client sent quit command: shutting down!\n"); + shutdown = 1; + break; + } + if ( strncmp(command, "break", 5) == 0) { + printf("client sent break command: closing session!\n"); + break; + } +#ifdef SESSION_STATS + if ( strncmp(command, "printstats", 10) == 0) { + PrintSessionStats(); + break; + } +#endif + if ( strncmp(command, "GET", 3) == 0) { + char type[] = "HTTP/1.0 200 ok\r\nContent-type:" + " text/html\r\n\r\n"; + char header[] = "\n

\n";
+                char body[]   = "greetings from CyaSSL\n";
+                char footer[] = "\r\n\r\n";
+            
+                strncpy(command, type, sizeof(type));
+                echoSz = sizeof(type) - 1;
+
+                strncpy(&command[echoSz], header, sizeof(header));
+                echoSz += sizeof(header) - 1;
+                strncpy(&command[echoSz], body, sizeof(body));
+                echoSz += sizeof(body) - 1;
+                strncpy(&command[echoSz], footer, sizeof(footer));
+                echoSz += sizeof(footer);
+
+                if (CyaSSL_write(ssl, command, echoSz) != echoSz)
+                    err_sys("SSL_write failed");
+                break;
+            }
+            command[echoSz] = 0;
+
+            #ifdef ECHO_OUT
+                fputs(command, fout);
+            #endif
+
+            if (CyaSSL_write(ssl, command, echoSz) != echoSz)
+                err_sys("SSL_write failed");
+        }
+#ifndef CYASSL_DTLS
+        CyaSSL_shutdown(ssl);
+#endif
+        CyaSSL_free(ssl);
+        CloseSocket(clientfd);
+#ifdef CYASSL_DTLS
+        tcp_listen(&sockfd);
+        SignalReady(args);
+#endif
+    }
+
+    CloseSocket(sockfd);
+    CyaSSL_CTX_free(ctx);
+
+#ifdef ECHO_OUT
+    if (outCreated)
+        fclose(fout);
+#endif
+
+    ((func_args*)args)->return_code = 0;
+    return 0;
+}
+
+
+/* so overall tests can pull in test function */
+#ifndef NO_MAIN_DRIVER
+
+    int main(int argc, char** argv)
+    {
+        func_args args;
+
+        StartTCP();
+
+        args.argc = argc;
+        args.argv = argv;
+
+        CyaSSL_Init();
+#ifdef DEBUG_CYASSL
+        CyaSSL_Debugging_ON();
+#endif
+        if (CurrentDir("echoserver") || CurrentDir("build"))
+            ChangeDirBack(2);
+        echoserver_test(&args);
+        CyaSSL_Cleanup();
+
+        return args.return_code;
+    }
+
+#endif /* NO_MAIN_DRIVER */
+
+
+
diff --git a/FreeRTOS-Plus/CyaSSL/examples/echoserver/echoserver.sln b/FreeRTOS-Plus/CyaSSL/examples/echoserver/echoserver.sln
new file mode 100644
index 000000000..6bda3549c
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/examples/echoserver/echoserver.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual C++ Express 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "echoserver", "echoserver.vcproj", "{4F3F3EF1-BB95-466A-87B2-A91C059D0197}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{4F3F3EF1-BB95-466A-87B2-A91C059D0197}.Debug|Win32.ActiveCfg = Debug|Win32
+		{4F3F3EF1-BB95-466A-87B2-A91C059D0197}.Debug|Win32.Build.0 = Debug|Win32
+		{4F3F3EF1-BB95-466A-87B2-A91C059D0197}.Release|Win32.ActiveCfg = Release|Win32
+		{4F3F3EF1-BB95-466A-87B2-A91C059D0197}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/FreeRTOS-Plus/CyaSSL/examples/echoserver/echoserver.vcproj b/FreeRTOS-Plus/CyaSSL/examples/echoserver/echoserver.vcproj
new file mode 100644
index 000000000..0fc396f06
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/examples/echoserver/echoserver.vcproj
@@ -0,0 +1,197 @@
+
+
+	
+		
+	
+	
+	
+	
+		
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+		
+		
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+		
+	
+	
+	
+	
+		
+			
+			
+		
+		
+		
+		
+		
+	
+	
+	
+
diff --git a/FreeRTOS-Plus/CyaSSL/examples/echoserver/include.am b/FreeRTOS-Plus/CyaSSL/examples/echoserver/include.am
new file mode 100644
index 000000000..c998c56ef
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/examples/echoserver/include.am
@@ -0,0 +1,14 @@
+# vim:ft=automake
+# included from Top Level Makefile.am
+# All paths should be given relative to the root
+
+
+noinst_PROGRAMS += examples/echoserver/echoserver
+examples_echoserver_echoserver_SOURCES      = examples/echoserver/echoserver.c
+examples_echoserver_echoserver_LDADD        = src/libcyassl.la
+examples_echoserver_echoserver_DEPENDENCIES = src/libcyassl.la
+EXTRA_DIST += examples/echoserver/echoserver.sln
+EXTRA_DIST += examples/echoserver/echoserver-ntru.vcproj
+EXTRA_DIST += examples/echoserver/echoserver.vcproj
+
+example_DATA+= examples/echoserver/echoserver.c
diff --git a/FreeRTOS-Plus/CyaSSL/examples/server/include.am b/FreeRTOS-Plus/CyaSSL/examples/server/include.am
new file mode 100644
index 000000000..fab37fd0f
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/examples/server/include.am
@@ -0,0 +1,14 @@
+# vim:ft=automake
+# included from Top Level Makefile.am
+# All paths should be given relative to the root
+
+
+noinst_PROGRAMS += examples/server/server
+examples_server_server_SOURCES      = examples/server/server.c
+examples_server_server_LDADD        = src/libcyassl.la
+examples_server_server_DEPENDENCIES = src/libcyassl.la
+EXTRA_DIST += examples/server/server.sln
+EXTRA_DIST += examples/server/server-ntru.vcproj
+EXTRA_DIST += examples/server/server.vcproj
+
+example_DATA+= examples/server/server.c
diff --git a/FreeRTOS-Plus/CyaSSL/examples/server/server-ntru.vcproj b/FreeRTOS-Plus/CyaSSL/examples/server/server-ntru.vcproj
new file mode 100644
index 000000000..c6e204b7c
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/examples/server/server-ntru.vcproj
@@ -0,0 +1,199 @@
+
+
+	
+		
+	
+	
+	
+	
+		
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+		
+		
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+		
+	
+	
+	
+	
+		
+			
+			
+		
+		
+		
+		
+		
+	
+	
+	
+
diff --git a/FreeRTOS-Plus/CyaSSL/examples/server/server.c b/FreeRTOS-Plus/CyaSSL/examples/server/server.c
new file mode 100644
index 000000000..c7fe1f965
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/examples/server/server.c
@@ -0,0 +1,245 @@
+/* server.c
+ *
+ * Copyright (C) 2006-2012 Sawtooth Consulting Ltd.
+ *
+ * This file is part of CyaSSL.
+ *
+ * CyaSSL is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * CyaSSL is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifdef HAVE_CONFIG_H
+    #include 
+#endif
+
+#include 
+#include 
+
+
+#ifdef CYASSL_CALLBACKS
+    int srvHandShakeCB(HandShakeInfo*);
+    int srvTimeoutCB(TimeoutInfo*);
+    Timeval srvTo;
+#endif
+
+#if defined(NON_BLOCKING) || defined(CYASSL_CALLBACKS)
+    void NonBlockingSSL_Accept(SSL* ssl)
+    {
+    #ifndef CYASSL_CALLBACKS
+        int ret = SSL_accept(ssl);
+    #else
+        int ret = CyaSSL_accept_ex(ssl, srvHandShakeCB, srvTimeoutCB, srvTo);
+    #endif
+        int error = SSL_get_error(ssl, 0);
+        while (ret != SSL_SUCCESS && (error == SSL_ERROR_WANT_READ ||
+                                      error == SSL_ERROR_WANT_WRITE)) {
+            printf("... server would block\n");
+            #ifdef USE_WINDOWS_API 
+                Sleep(1000);
+            #else
+                sleep(1);
+            #endif
+            #ifndef CYASSL_CALLBACKS
+                ret = SSL_accept(ssl);
+            #else
+                ret = CyaSSL_accept_ex(ssl, srvHandShakeCB, srvTimeoutCB,srvTo);
+            #endif
+            error = SSL_get_error(ssl, 0);
+        }
+        if (ret != SSL_SUCCESS)
+            err_sys("SSL_accept failed");
+    }
+#endif
+
+
+THREAD_RETURN CYASSL_THREAD server_test(void* args)
+{
+    SOCKET_T sockfd   = 0;
+    int      clientfd = 0;
+
+    SSL_METHOD* method = 0;
+    SSL_CTX*    ctx    = 0;
+    SSL*        ssl    = 0;
+
+    char msg[] = "I hear you fa shizzle!";
+    char input[1024];
+    int  idx;
+   
+    ((func_args*)args)->return_code = -1; /* error state */
+#if defined(CYASSL_DTLS)
+    method  = DTLSv1_server_method();
+#elif  !defined(NO_TLS)
+    method = SSLv23_server_method();
+#else
+    method = SSLv3_server_method();
+#endif
+    ctx    = SSL_CTX_new(method);
+
+#ifndef NO_PSK
+    /* do PSK */
+    SSL_CTX_set_psk_server_callback(ctx, my_psk_server_cb);
+    SSL_CTX_use_psk_identity_hint(ctx, "cyassl server");
+    SSL_CTX_set_cipher_list(ctx, "PSK-AES256-CBC-SHA");
+#else
+    /* not using PSK, verify peer with certs */
+    SSL_CTX_set_verify(ctx,SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT,0);
+#endif
+
+#ifdef OPENSSL_EXTRA
+    SSL_CTX_set_default_passwd_cb(ctx, PasswordCallBack);
+#endif
+
+#ifndef NO_FILESYSTEM
+    /* for client auth */
+    if (SSL_CTX_load_verify_locations(ctx, cliCert, 0) != SSL_SUCCESS)
+        err_sys("can't load ca file, Please run from CyaSSL home dir");
+
+    #ifdef HAVE_ECC
+        if (SSL_CTX_use_certificate_file(ctx, eccCert, SSL_FILETYPE_PEM)
+                != SSL_SUCCESS)
+            err_sys("can't load server ecc cert file, "
+                    "Please run from CyaSSL home dir");
+
+        if (SSL_CTX_use_PrivateKey_file(ctx, eccKey, SSL_FILETYPE_PEM)
+                != SSL_SUCCESS)
+            err_sys("can't load server ecc key file, "
+                    "Please run from CyaSSL home dir");
+        /* for client auth */
+        if (SSL_CTX_load_verify_locations(ctx, cliEccCert, 0) != SSL_SUCCESS)
+            err_sys("can't load ecc ca file, Please run from CyaSSL home dir");
+
+    #elif HAVE_NTRU
+        if (SSL_CTX_use_certificate_file(ctx, ntruCert, SSL_FILETYPE_PEM)
+                != SSL_SUCCESS)
+            err_sys("can't load ntru cert file, "
+                    "Please run from CyaSSL home dir");
+
+        if (CyaSSL_CTX_use_NTRUPrivateKey_file(ctx, ntruKey)
+                != SSL_SUCCESS)
+            err_sys("can't load ntru key file, "
+                    "Please run from CyaSSL home dir");
+    #else  /* normal */
+        if (SSL_CTX_use_certificate_file(ctx, svrCert, SSL_FILETYPE_PEM)
+                != SSL_SUCCESS)
+            err_sys("can't load server cert chain file, "
+                    "Please run from CyaSSL home dir");
+
+        if (SSL_CTX_use_PrivateKey_file(ctx, svrKey, SSL_FILETYPE_PEM)
+                != SSL_SUCCESS)
+            err_sys("can't load server key file, "
+                    "Please run from CyaSSL home dir");
+    #endif /* NTRU */
+#else
+    load_buffer(ctx, cliCert, CYASSL_CA);
+    load_buffer(ctx, svrCert, CYASSL_CERT);
+    load_buffer(ctx, svrKey,  CYASSL_KEY);
+#endif /* NO_FILESYSTEM */
+
+    ssl = SSL_new(ctx);
+    tcp_accept(&sockfd, &clientfd, (func_args*)args);
+#ifndef CYASSL_DTLS
+    CloseSocket(sockfd);
+#endif
+
+    SSL_set_fd(ssl, clientfd);
+#ifdef NO_PSK
+    #if !defined(NO_FILESYSTEM) && defined(OPENSSL_EXTRA)
+        CyaSSL_SetTmpDH_file(ssl, dhParam, SSL_FILETYPE_PEM);
+    #else
+        SetDH(ssl);  /* will repick suites with DHE, higher priority than PSK */
+    #endif
+#endif
+
+#ifdef NON_BLOCKING
+    tcp_set_nonblocking(&clientfd);
+    NonBlockingSSL_Accept(ssl);
+#else
+    #ifndef CYASSL_CALLBACKS
+        if (SSL_accept(ssl) != SSL_SUCCESS) {
+            int err = SSL_get_error(ssl, 0);
+            char buffer[80];
+            printf("error = %d, %s\n", err, ERR_error_string(err, buffer));
+            err_sys("SSL_accept failed");
+        }
+    #else
+        NonBlockingSSL_Accept(ssl);
+    #endif
+#endif
+    showPeer(ssl);
+
+    idx = SSL_read(ssl, input, sizeof(input));
+    if (idx > 0) {
+        input[idx] = 0;
+        printf("Client message: %s\n", input);
+    }
+    
+    if (SSL_write(ssl, msg, sizeof(msg)) != sizeof(msg))
+        err_sys("SSL_write failed");
+
+    SSL_shutdown(ssl);
+    SSL_free(ssl);
+    SSL_CTX_free(ctx);
+    
+    CloseSocket(clientfd);
+    ((func_args*)args)->return_code = 0;
+    return 0;
+}
+
+
+/* so overall tests can pull in test function */
+#ifndef NO_MAIN_DRIVER
+
+    int main(int argc, char** argv)
+    {
+        func_args args;
+
+        StartTCP();
+
+        args.argc = argc;
+        args.argv = argv;
+
+        CyaSSL_Init();
+#ifdef DEBUG_CYASSL
+        CyaSSL_Debugging_ON();
+#endif
+        if (CurrentDir("server") || CurrentDir("build"))
+            ChangeDirBack(2);
+   
+        server_test(&args);
+        CyaSSL_Cleanup();
+
+        return args.return_code;
+    }
+
+#endif /* NO_MAIN_DRIVER */
+
+
+#ifdef CYASSL_CALLBACKS
+
+    int srvHandShakeCB(HandShakeInfo* info)
+    {
+
+        return 0;
+    }
+
+
+    int srvTimeoutCB(TimeoutInfo* info)
+    {
+
+        return 0;
+    }
+
+#endif
+
+
diff --git a/FreeRTOS-Plus/CyaSSL/examples/server/server.sln b/FreeRTOS-Plus/CyaSSL/examples/server/server.sln
new file mode 100644
index 000000000..7c9de3020
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/examples/server/server.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual C++ Express 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "server", "server.vcproj", "{13A60276-EFB2-4D3F-AFC3-D66E4C4CC27B}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{13A60276-EFB2-4D3F-AFC3-D66E4C4CC27B}.Debug|Win32.ActiveCfg = Debug|Win32
+		{13A60276-EFB2-4D3F-AFC3-D66E4C4CC27B}.Debug|Win32.Build.0 = Debug|Win32
+		{13A60276-EFB2-4D3F-AFC3-D66E4C4CC27B}.Release|Win32.ActiveCfg = Release|Win32
+		{13A60276-EFB2-4D3F-AFC3-D66E4C4CC27B}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/FreeRTOS-Plus/CyaSSL/examples/server/server.vcproj b/FreeRTOS-Plus/CyaSSL/examples/server/server.vcproj
new file mode 100644
index 000000000..ebb1af4a4
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/examples/server/server.vcproj
@@ -0,0 +1,197 @@
+
+
+	
+		
+	
+	
+	
+	
+		
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+		
+		
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+		
+	
+	
+	
+	
+		
+			
+			
+		
+		
+		
+		
+		
+	
+	
+	
+
diff --git a/FreeRTOS-Plus/CyaSSL/input b/FreeRTOS-Plus/CyaSSL/input
new file mode 100644
index 000000000..06dbbf076
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/input
@@ -0,0 +1,87 @@
+/* echoclient.c  */
+
+#include "openssl/ssl.h"
+#include "../test.h"
+
+
+int main(int argc, char** argv)
+{
+    SOCKET_T sockfd = 0;
+
+    FILE* fin  = stdin;
+    FILE* fout = stdout;
+
+    int inCreated  = 0;
+    int outCreated = 0;
+
+    char send[1024];
+    char reply[1024];
+
+    SSL_METHOD* method = 0;
+    SSL_CTX*    ctx    = 0;
+    SSL*        ssl    = 0;
+
+#ifdef _WIN32
+    WSADATA wsd;
+    WSAStartup(0x0002, &wsd);
+#endif
+
+    if (argc >= 2) {
+        fin  = fopen(argv[1], "r"); 
+        inCreated = 1;
+    }
+    if (argc >= 3) {
+        fout = fopen(argv[2], "w");
+        outCreated = 1;
+    }
+
+    if (!fin)  err_sys("can't open input file");
+    if (!fout) err_sys("can't open output file");
+
+    tcp_connect(&sockfd);
+
+    method = SSLv3_client_method();
+    ctx    = SSL_CTX_new(method);
+
+    if (SSL_CTX_load_verify_locations(ctx, caCert, 0) != SSL_SUCCESS)
+        err_sys("can't load ca file");
+
+    ssl = SSL_new(ctx);
+
+    SSL_set_fd(ssl, sockfd);
+    if (SSL_connect(ssl) != SSL_SUCCESS) err_sys("SSL_connect failed");
+
+    while (fgets(send, sizeof(send), fin)) {
+
+        int  sendSz = strlen(send) + 1;
+
+        if (SSL_write(ssl, send, sendSz) != sendSz)
+            err_sys("SSL_write failed");
+
+        if (strncmp(send, "quit", 4) == 0) {
+            fputs("sending server shutdown command: quit!\n", fout);
+            break;
+        }
+
+        if (SSL_read(ssl, reply, sizeof(reply)) > 0) 
+            fputs(reply, fout);
+    }
+
+    SSL_shutdown(ssl);
+    SSL_free(ssl);
+    SSL_CTX_free(ctx);
+
+    fflush(fout);
+    if (inCreated)  fclose(fin);
+    if (outCreated) fclose(fout);
+
+#ifdef _WIN32
+    closesocket(sockfd);
+#else
+    close(sockfd);
+#endif
+
+    return 0;
+}
+
+
diff --git a/FreeRTOS-Plus/CyaSSL/lib/dummy b/FreeRTOS-Plus/CyaSSL/lib/dummy
new file mode 100644
index 000000000..13c3b18cd
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/lib/dummy
@@ -0,0 +1,2 @@
+// this is a dummy file
+
diff --git a/FreeRTOS-Plus/CyaSSL/m4/ax_pthread.m4 b/FreeRTOS-Plus/CyaSSL/m4/ax_pthread.m4
new file mode 100644
index 000000000..a6bf596c3
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/m4/ax_pthread.m4
@@ -0,0 +1,302 @@
+# ===========================================================================
+#        http://www.gnu.org/software/autoconf-archive/ax_pthread.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+#   AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
+#
+# DESCRIPTION
+#
+#   This macro figures out how to build C programs using POSIX threads. It
+#   sets the PTHREAD_LIBS output variable to the threads library and linker
+#   flags, and the PTHREAD_CFLAGS output variable to any special C compiler
+#   flags that are needed. (The user can also force certain compiler
+#   flags/libs to be tested by setting these environment variables.)
+#
+#   Also sets PTHREAD_CC to any special C compiler that is needed for
+#   multi-threaded programs (defaults to the value of CC otherwise). (This
+#   is necessary on AIX to use the special cc_r compiler alias.)
+#
+#   NOTE: You are assumed to not only compile your program with these flags,
+#   but also link it with them as well. e.g. you should link with
+#   $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS
+#
+#   If you are only building threads programs, you may wish to use these
+#   variables in your default LIBS, CFLAGS, and CC:
+#
+#     LIBS="$PTHREAD_LIBS $LIBS"
+#     CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+#     CC="$PTHREAD_CC"
+#
+#   In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant
+#   has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name
+#   (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
+#
+#   Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the
+#   PTHREAD_PRIO_INHERIT symbol is defined when compiling with
+#   PTHREAD_CFLAGS.
+#
+#   ACTION-IF-FOUND is a list of shell commands to run if a threads library
+#   is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it
+#   is not found. If ACTION-IF-FOUND is not specified, the default action
+#   will define HAVE_PTHREAD.
+#
+#   Please let the authors know if this macro fails on any platform, or if
+#   you have any other suggestions or comments. This macro was based on work
+#   by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help
+#   from M. Frigo), as well as ac_pthread and hb_pthread macros posted by
+#   Alejandro Forero Cuervo to the autoconf macro repository. We are also
+#   grateful for the helpful feedback of numerous users.
+#
+#   Updated for Autoconf 2.68 by Daniel Richard G.
+#
+# LICENSE
+#
+#   Copyright (c) 2008 Steven G. Johnson 
+#   Copyright (c) 2011 Daniel Richard G. 
+#
+#   This program is free software: you can redistribute it and/or modify it
+#   under the terms of the GNU General Public License as published by the
+#   Free Software Foundation, either version 3 of the License, or (at your
+#   option) any later version.
+#
+#   This program is distributed in the hope that it will be useful, but
+#   WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+#   Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License along
+#   with this program. If not, see .
+#
+#   As a special exception, the respective Autoconf Macro's copyright owner
+#   gives unlimited permission to copy, distribute and modify the configure
+#   scripts that are the output of Autoconf when processing the Macro. You
+#   need not follow the terms of the GNU General Public License when using
+#   or distributing such scripts, even though portions of the text of the
+#   Macro appear in them. The GNU General Public License (GPL) does govern
+#   all other use of the material that constitutes the Autoconf Macro.
+#
+#   This special exception to the GPL applies to versions of the Autoconf
+#   Macro released by the Autoconf Archive. When you make and distribute a
+#   modified version of the Autoconf Macro, you may extend this special
+#   exception to the GPL to apply to your modified version as well.
+
+#serial 16
+
+AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD])
+AC_DEFUN([AX_PTHREAD], [
+AC_REQUIRE([AC_CANONICAL_HOST])
+AC_LANG_PUSH([C])
+ax_pthread_ok=no
+
+# We used to check for pthread.h first, but this fails if pthread.h
+# requires special compiler flags (e.g. on True64 or Sequent).
+# It gets checked for in the link test anyway.
+
+# First of all, check if the user has set any of the PTHREAD_LIBS,
+# etcetera environment variables, and if threads linking works using
+# them:
+if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
+        save_CFLAGS="$CFLAGS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+        save_LIBS="$LIBS"
+        LIBS="$PTHREAD_LIBS $LIBS"
+        AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS])
+        AC_TRY_LINK_FUNC(pthread_join, ax_pthread_ok=yes)
+        AC_MSG_RESULT($ax_pthread_ok)
+        if test x"$ax_pthread_ok" = xno; then
+                PTHREAD_LIBS=""
+                PTHREAD_CFLAGS=""
+        fi
+        LIBS="$save_LIBS"
+        CFLAGS="$save_CFLAGS"
+fi
+
+# We must check for the threads library under a number of different
+# names; the ordering is very important because some systems
+# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
+# libraries is broken (non-POSIX).
+
+# Create a list of thread flags to try.  Items starting with a "-" are
+# C compiler flags, and other items are library names, except for "none"
+# which indicates that we try without any flags at all, and "pthread-config"
+# which is a program returning the flags for the Pth emulation library.
+
+ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
+
+# The ordering *is* (sometimes) important.  Some notes on the
+# individual items follow:
+
+# pthreads: AIX (must check this before -lpthread)
+# none: in case threads are in libc; should be tried before -Kthread and
+#       other compiler flags to prevent continual compiler warnings
+# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
+# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
+# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
+# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)
+# -pthreads: Solaris/gcc
+# -mthreads: Mingw32/gcc, Lynx/gcc
+# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
+#      doesn't hurt to check since this sometimes defines pthreads too;
+#      also defines -D_REENTRANT)
+#      ... -mt is also the pthreads flag for HP/aCC
+# pthread: Linux, etcetera
+# --thread-safe: KAI C++
+# pthread-config: use pthread-config program (for GNU Pth library)
+
+case "${host_cpu}-${host_os}" in
+        *solaris*)
+
+        # On Solaris (at least, for some versions), libc contains stubbed
+        # (non-functional) versions of the pthreads routines, so link-based
+        # tests will erroneously succeed.  (We need to link with -pthreads/-mt/
+        # -lpthread.)  (The stubs are missing pthread_cleanup_push, or rather
+        # a function called by this macro, so we could check for that, but
+        # who knows whether they'll stub that too in a future libc.)  So,
+        # we'll just look for -pthreads and -lpthread first:
+
+        ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags"
+        ;;
+
+        *-darwin*)
+        ax_pthread_flags="-pthread $ax_pthread_flags"
+        ;;
+esac
+
+if test x"$ax_pthread_ok" = xno; then
+for flag in $ax_pthread_flags; do
+
+        case $flag in
+                none)
+                AC_MSG_CHECKING([whether pthreads work without any flags])
+                ;;
+
+                -*)
+                AC_MSG_CHECKING([whether pthreads work with $flag])
+                PTHREAD_CFLAGS="$flag"
+                ;;
+
+                pthread-config)
+                AC_CHECK_PROG(ax_pthread_config, pthread-config, yes, no)
+                if test x"$ax_pthread_config" = xno; then continue; fi
+                PTHREAD_CFLAGS="`pthread-config --cflags`"
+                PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
+                ;;
+
+                *)
+                AC_MSG_CHECKING([for the pthreads library -l$flag])
+                PTHREAD_LIBS="-l$flag"
+                ;;
+        esac
+
+        save_LIBS="$LIBS"
+        save_CFLAGS="$CFLAGS"
+        LIBS="$PTHREAD_LIBS $LIBS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+
+        # Check for various functions.  We must include pthread.h,
+        # since some functions may be macros.  (On the Sequent, we
+        # need a special flag -Kthread to make this header compile.)
+        # We check for pthread_join because it is in -lpthread on IRIX
+        # while pthread_create is in libc.  We check for pthread_attr_init
+        # due to DEC craziness with -lpthreads.  We check for
+        # pthread_cleanup_push because it is one of the few pthread
+        # functions on Solaris that doesn't have a non-functional libc stub.
+        # We try pthread_create on general principles.
+        AC_LINK_IFELSE([AC_LANG_PROGRAM([#include 
+                        static void routine(void *a) { a = 0; }
+                        static void *start_routine(void *a) { return a; }],
+                       [pthread_t th; pthread_attr_t attr;
+                        pthread_create(&th, 0, start_routine, 0);
+                        pthread_join(th, 0);
+                        pthread_attr_init(&attr);
+                        pthread_cleanup_push(routine, 0);
+                        pthread_cleanup_pop(0) /* ; */])],
+                [ax_pthread_ok=yes],
+                [])
+
+        LIBS="$save_LIBS"
+        CFLAGS="$save_CFLAGS"
+
+        AC_MSG_RESULT($ax_pthread_ok)
+        if test "x$ax_pthread_ok" = xyes; then
+                break;
+        fi
+
+        PTHREAD_LIBS=""
+        PTHREAD_CFLAGS=""
+done
+fi
+
+# Various other checks:
+if test "x$ax_pthread_ok" = xyes; then
+        save_LIBS="$LIBS"
+        LIBS="$PTHREAD_LIBS $LIBS"
+        save_CFLAGS="$CFLAGS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+
+        # Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
+        AC_MSG_CHECKING([for joinable pthread attribute])
+        attr_name=unknown
+        for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
+            AC_LINK_IFELSE([AC_LANG_PROGRAM([#include ],
+                           [int attr = $attr; return attr /* ; */])],
+                [attr_name=$attr; break],
+                [])
+        done
+        AC_MSG_RESULT($attr_name)
+        if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then
+            AC_DEFINE_UNQUOTED(PTHREAD_CREATE_JOINABLE, $attr_name,
+                               [Define to necessary symbol if this constant
+                                uses a non-standard name on your system.])
+        fi
+
+        AC_MSG_CHECKING([if more special flags are required for pthreads])
+        flag=no
+        case "${host_cpu}-${host_os}" in
+            *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";;
+            *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";;
+        esac
+        AC_MSG_RESULT(${flag})
+        if test "x$flag" != xno; then
+            PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
+        fi
+
+        AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
+            ax_cv_PTHREAD_PRIO_INHERIT, [
+                AC_LINK_IFELSE([
+                    AC_LANG_PROGRAM([[#include ]], [[int i = PTHREAD_PRIO_INHERIT;]])],
+                    [ax_cv_PTHREAD_PRIO_INHERIT=yes],
+                    [ax_cv_PTHREAD_PRIO_INHERIT=no])
+            ])
+        AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"],
+            AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], 1, [Have PTHREAD_PRIO_INHERIT.]))
+
+        LIBS="$save_LIBS"
+        CFLAGS="$save_CFLAGS"
+
+        # More AIX lossage: must compile with xlc_r or cc_r
+        if test x"$GCC" != xyes; then
+          AC_CHECK_PROGS(PTHREAD_CC, xlc_r cc_r, ${CC})
+        else
+          PTHREAD_CC=$CC
+        fi
+else
+        PTHREAD_CC="$CC"
+fi
+
+AC_SUBST(PTHREAD_LIBS)
+AC_SUBST(PTHREAD_CFLAGS)
+AC_SUBST(PTHREAD_CC)
+
+# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
+if test x"$ax_pthread_ok" = xyes; then
+        ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1])
+        :
+else
+        ax_pthread_ok=no
+        $2
+fi
+AC_LANG_POP
+])dnl AX_PTHREAD
diff --git a/FreeRTOS-Plus/CyaSSL/m4/hexversion.m4 b/FreeRTOS-Plus/CyaSSL/m4/hexversion.m4
new file mode 100644
index 000000000..8d26155e5
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/m4/hexversion.m4
@@ -0,0 +1,6 @@
+AC_DEFUN([CREATE_HEX_VERSION],[
+
+  HEX_VERSION=`echo $VERSION | sed 's|[\-a-z0-9]*$||' | \
+    awk -F. '{printf "0x%0.2d%0.3d%0.3d", $[]1, $[]2, $[]3}'`
+  AC_SUBST([HEX_VERSION])
+])
diff --git a/FreeRTOS-Plus/CyaSSL/m4/lib_socket_nsl.m4 b/FreeRTOS-Plus/CyaSSL/m4/lib_socket_nsl.m4
new file mode 100644
index 000000000..e786e61c5
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/m4/lib_socket_nsl.m4
@@ -0,0 +1,25 @@
+dnl @synopsis LIB_SOCKET_NSL
+dnl
+dnl This macro figures out what libraries are required on this platform
+dnl to link sockets programs.
+dnl
+dnl The common cases are not to need any extra libraries, or to need
+dnl -lsocket and -lnsl. We need to avoid linking with libnsl unless we
+dnl need it, though, since on some OSes where it isn't necessary it
+dnl will totally break networking. Unisys also includes gethostbyname()
+dnl in libsocket but needs libnsl for socket().
+dnl
+dnl @category Misc
+dnl @author Russ Allbery 
+dnl @author Stepan Kasal 
+dnl @author Warren Young 
+dnl @version 2005-09-06
+dnl @license AllPermissive
+
+AC_DEFUN([LIB_SOCKET_NSL],
+[
+	AC_SEARCH_LIBS([gethostbyname], [nsl])
+	AC_SEARCH_LIBS([socket], [socket], [], [
+		AC_CHECK_LIB([socket], [socket], [LIBS="-lsocket -lnsl $LIBS"],
+		[], [-lnsl])])
+])
diff --git a/FreeRTOS-Plus/CyaSSL/m4/libtool.m4 b/FreeRTOS-Plus/CyaSSL/m4/libtool.m4
new file mode 100644
index 000000000..dfd481729
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/m4/libtool.m4
@@ -0,0 +1,7437 @@
+# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
+#
+#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+#                 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
+#                 Inc.
+#   Written by Gordon Matzigkeit, 1996
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+m4_define([_LT_COPYING], [dnl
+#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+#                 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
+#                 Inc.
+#   Written by Gordon Matzigkeit, 1996
+#
+#   This file is part of GNU Libtool.
+#
+# GNU Libtool is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# As a special exception to the GNU General Public License,
+# if you distribute this file as part of a program or library that
+# is built using GNU Libtool, you may include this file under the
+# same distribution terms that you use for the rest of that program.
+#
+# GNU Libtool is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Libtool; see the file COPYING.  If not, a copy
+# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
+# obtained by writing to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+])
+
+# serial 57 LT_INIT
+
+
+# LT_PREREQ(VERSION)
+# ------------------
+# Complain and exit if this libtool version is less that VERSION.
+m4_defun([LT_PREREQ],
+[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1,
+       [m4_default([$3],
+		   [m4_fatal([Libtool version $1 or higher is required],
+		             63)])],
+       [$2])])
+
+
+# _LT_CHECK_BUILDDIR
+# ------------------
+# Complain if the absolute build directory name contains unusual characters
+m4_defun([_LT_CHECK_BUILDDIR],
+[case `pwd` in
+  *\ * | *\	*)
+    AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;;
+esac
+])
+
+
+# LT_INIT([OPTIONS])
+# ------------------
+AC_DEFUN([LT_INIT],
+[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
+AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
+AC_BEFORE([$0], [LT_LANG])dnl
+AC_BEFORE([$0], [LT_OUTPUT])dnl
+AC_BEFORE([$0], [LTDL_INIT])dnl
+m4_require([_LT_CHECK_BUILDDIR])dnl
+
+dnl Autoconf doesn't catch unexpanded LT_ macros by default:
+m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
+m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
+dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
+dnl unless we require an AC_DEFUNed macro:
+AC_REQUIRE([LTOPTIONS_VERSION])dnl
+AC_REQUIRE([LTSUGAR_VERSION])dnl
+AC_REQUIRE([LTVERSION_VERSION])dnl
+AC_REQUIRE([LTOBSOLETE_VERSION])dnl
+m4_require([_LT_PROG_LTMAIN])dnl
+
+_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}])
+
+dnl Parse OPTIONS
+_LT_SET_OPTIONS([$0], [$1])
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ltmain"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+AC_SUBST(LIBTOOL)dnl
+
+_LT_SETUP
+
+# Only expand once:
+m4_define([LT_INIT])
+])# LT_INIT
+
+# Old names:
+AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT])
+AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_PROG_LIBTOOL], [])
+dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
+
+
+# _LT_CC_BASENAME(CC)
+# -------------------
+# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
+m4_defun([_LT_CC_BASENAME],
+[for cc_temp in $1""; do
+  case $cc_temp in
+    compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
+    distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+])
+
+
+# _LT_FILEUTILS_DEFAULTS
+# ----------------------
+# It is okay to use these file commands and assume they have been set
+# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'.
+m4_defun([_LT_FILEUTILS_DEFAULTS],
+[: ${CP="cp -f"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+])# _LT_FILEUTILS_DEFAULTS
+
+
+# _LT_SETUP
+# ---------
+m4_defun([_LT_SETUP],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
+
+_LT_DECL([], [host_alias], [0], [The host system])dnl
+_LT_DECL([], [host], [0])dnl
+_LT_DECL([], [host_os], [0])dnl
+dnl
+_LT_DECL([], [build_alias], [0], [The build system])dnl
+_LT_DECL([], [build], [0])dnl
+_LT_DECL([], [build_os], [0])dnl
+dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([LT_PATH_LD])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+dnl
+AC_REQUIRE([AC_PROG_LN_S])dnl
+test -z "$LN_S" && LN_S="ln -s"
+_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl
+dnl
+AC_REQUIRE([LT_CMD_MAX_LEN])dnl
+_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl
+_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
+dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_CHECK_SHELL_FEATURES])dnl
+m4_require([_LT_CMD_RELOAD])dnl
+m4_require([_LT_CHECK_MAGIC_METHOD])dnl
+m4_require([_LT_CMD_OLD_ARCHIVE])dnl
+m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+
+_LT_CONFIG_LIBTOOL_INIT([
+# See if we are running on zsh, and set the options which allow our
+# commands through without removal of \ escapes INIT.
+if test -n "\${ZSH_VERSION+set}" ; then
+   setopt NO_GLOB_SUBST
+fi
+])
+if test -n "${ZSH_VERSION+set}" ; then
+   setopt NO_GLOB_SUBST
+fi
+
+_LT_CHECK_OBJDIR
+
+m4_require([_LT_TAG_COMPILER])dnl
+
+case $host_os in
+aix3*)
+  # AIX sometimes has problems with the GCC collect2 program.  For some
+  # reason, if we set the COLLECT_NAMES environment variable, the problems
+  # vanish in a puff of smoke.
+  if test "X${COLLECT_NAMES+set}" != Xset; then
+    COLLECT_NAMES=
+    export COLLECT_NAMES
+  fi
+  ;;
+esac
+
+# Global variables:
+ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$LD" && LD=ld
+test -z "$ac_objext" && ac_objext=o
+
+_LT_CC_BASENAME([$compiler])
+
+# Only perform the check for file, if the check method requires it
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+case $deplibs_check_method in
+file_magic*)
+  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+    _LT_PATH_MAGIC
+  fi
+  ;;
+esac
+
+# Use C for the default configuration in the libtool script
+LT_SUPPORTED_TAG([CC])
+_LT_LANG_C_CONFIG
+_LT_LANG_DEFAULT_CONFIG
+_LT_CONFIG_COMMANDS
+])# _LT_SETUP
+
+
+# _LT_PREPARE_SED_QUOTE_VARS
+# --------------------------
+# Define a few sed substitution that help us do robust quoting.
+m4_defun([_LT_PREPARE_SED_QUOTE_VARS],
+[# Backslashify metacharacters that are still active within
+# double-quoted strings.
+sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\([["`\\]]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+])
+
+# _LT_PROG_LTMAIN
+# ---------------
+# Note that this code is called both from `configure', and `config.status'
+# now that we use AC_CONFIG_COMMANDS to generate libtool.  Notably,
+# `config.status' has no value for ac_aux_dir unless we are using Automake,
+# so we pass a copy along to make sure it has a sensible value anyway.
+m4_defun([_LT_PROG_LTMAIN],
+[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl
+_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir'])
+ltmain="$ac_aux_dir/ltmain.sh"
+])# _LT_PROG_LTMAIN
+
+
+## ------------------------------------- ##
+## Accumulate code for creating libtool. ##
+## ------------------------------------- ##
+
+# So that we can recreate a full libtool script including additional
+# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
+# in macros and then make a single call at the end using the `libtool'
+# label.
+
+
+# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])
+# ----------------------------------------
+# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.
+m4_define([_LT_CONFIG_LIBTOOL_INIT],
+[m4_ifval([$1],
+          [m4_append([_LT_OUTPUT_LIBTOOL_INIT],
+                     [$1
+])])])
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_INIT])
+
+
+# _LT_CONFIG_LIBTOOL([COMMANDS])
+# ------------------------------
+# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
+m4_define([_LT_CONFIG_LIBTOOL],
+[m4_ifval([$1],
+          [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS],
+                     [$1
+])])])
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS])
+
+
+# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
+# -----------------------------------------------------
+m4_defun([_LT_CONFIG_SAVE_COMMANDS],
+[_LT_CONFIG_LIBTOOL([$1])
+_LT_CONFIG_LIBTOOL_INIT([$2])
+])
+
+
+# _LT_FORMAT_COMMENT([COMMENT])
+# -----------------------------
+# Add leading comment marks to the start of each line, and a trailing
+# full-stop to the whole comment if one is not present already.
+m4_define([_LT_FORMAT_COMMENT],
+[m4_ifval([$1], [
+m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])],
+              [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.])
+)])
+
+
+
+## ------------------------ ##
+## FIXME: Eliminate VARNAME ##
+## ------------------------ ##
+
+
+# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])
+# -------------------------------------------------------------------
+# CONFIGNAME is the name given to the value in the libtool script.
+# VARNAME is the (base) name used in the configure script.
+# VALUE may be 0, 1 or 2 for a computed quote escaped value based on
+# VARNAME.  Any other value will be used directly.
+m4_define([_LT_DECL],
+[lt_if_append_uniq([lt_decl_varnames], [$2], [, ],
+    [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name],
+	[m4_ifval([$1], [$1], [$2])])
+    lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3])
+    m4_ifval([$4],
+	[lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])])
+    lt_dict_add_subkey([lt_decl_dict], [$2],
+	[tagged?], [m4_ifval([$5], [yes], [no])])])
+])
+
+
+# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])
+# --------------------------------------------------------
+m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])])
+
+
+# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
+# ------------------------------------------------
+m4_define([lt_decl_tag_varnames],
+[_lt_decl_filter([tagged?], [yes], $@)])
+
+
+# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
+# ---------------------------------------------------------
+m4_define([_lt_decl_filter],
+[m4_case([$#],
+  [0], [m4_fatal([$0: too few arguments: $#])],
+  [1], [m4_fatal([$0: too few arguments: $#: $1])],
+  [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)],
+  [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)],
+  [lt_dict_filter([lt_decl_dict], $@)])[]dnl
+])
+
+
+# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])
+# --------------------------------------------------
+m4_define([lt_decl_quote_varnames],
+[_lt_decl_filter([value], [1], $@)])
+
+
+# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
+# ---------------------------------------------------
+m4_define([lt_decl_dquote_varnames],
+[_lt_decl_filter([value], [2], $@)])
+
+
+# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
+# ---------------------------------------------------
+m4_define([lt_decl_varnames_tagged],
+[m4_assert([$# <= 2])dnl
+_$0(m4_quote(m4_default([$1], [[, ]])),
+    m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]),
+    m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))])
+m4_define([_lt_decl_varnames_tagged],
+[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])])
+
+
+# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
+# ------------------------------------------------
+m4_define([lt_decl_all_varnames],
+[_$0(m4_quote(m4_default([$1], [[, ]])),
+     m4_if([$2], [],
+	   m4_quote(lt_decl_varnames),
+	m4_quote(m4_shift($@))))[]dnl
+])
+m4_define([_lt_decl_all_varnames],
+[lt_join($@, lt_decl_varnames_tagged([$1],
+			lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl
+])
+
+
+# _LT_CONFIG_STATUS_DECLARE([VARNAME])
+# ------------------------------------
+# Quote a variable value, and forward it to `config.status' so that its
+# declaration there will have the same value as in `configure'.  VARNAME
+# must have a single quote delimited value for this to work.
+m4_define([_LT_CONFIG_STATUS_DECLARE],
+[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
+
+
+# _LT_CONFIG_STATUS_DECLARATIONS
+# ------------------------------
+# We delimit libtool config variables with single quotes, so when
+# we write them to config.status, we have to be sure to quote all
+# embedded single quotes properly.  In configure, this macro expands
+# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
+#
+#    ='`$ECHO "$" | $SED "$delay_single_quote_subst"`'
+m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
+[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
+    [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
+
+
+# _LT_LIBTOOL_TAGS
+# ----------------
+# Output comment and list of tags supported by the script
+m4_defun([_LT_LIBTOOL_TAGS],
+[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
+available_tags="_LT_TAGS"dnl
+])
+
+
+# _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
+# -----------------------------------
+# Extract the dictionary values for VARNAME (optionally with TAG) and
+# expand to a commented shell variable setting:
+#
+#    # Some comment about what VAR is for.
+#    visible_name=$lt_internal_name
+m4_define([_LT_LIBTOOL_DECLARE],
+[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1],
+					   [description])))[]dnl
+m4_pushdef([_libtool_name],
+    m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl
+m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])),
+    [0], [_libtool_name=[$]$1],
+    [1], [_libtool_name=$lt_[]$1],
+    [2], [_libtool_name=$lt_[]$1],
+    [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl
+m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl
+])
+
+
+# _LT_LIBTOOL_CONFIG_VARS
+# -----------------------
+# Produce commented declarations of non-tagged libtool config variables
+# suitable for insertion in the LIBTOOL CONFIG section of the `libtool'
+# script.  Tagged libtool config variables (even for the LIBTOOL CONFIG
+# section) are produced by _LT_LIBTOOL_TAG_VARS.
+m4_defun([_LT_LIBTOOL_CONFIG_VARS],
+[m4_foreach([_lt_var],
+    m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)),
+    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])])
+
+
+# _LT_LIBTOOL_TAG_VARS(TAG)
+# -------------------------
+m4_define([_LT_LIBTOOL_TAG_VARS],
+[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames),
+    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])])
+
+
+# _LT_TAGVAR(VARNAME, [TAGNAME])
+# ------------------------------
+m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])])
+
+
+# _LT_CONFIG_COMMANDS
+# -------------------
+# Send accumulated output to $CONFIG_STATUS.  Thanks to the lists of
+# variables for single and double quote escaping we saved from calls
+# to _LT_DECL, we can put quote escaped variables declarations
+# into `config.status', and then the shell code to quote escape them in
+# for loops in `config.status'.  Finally, any additional code accumulated
+# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
+m4_defun([_LT_CONFIG_COMMANDS],
+[AC_PROVIDE_IFELSE([LT_OUTPUT],
+	dnl If the libtool generation code has been placed in $CONFIG_LT,
+	dnl instead of duplicating it all over again into config.status,
+	dnl then we will have config.status run $CONFIG_LT later, so it
+	dnl needs to know what name is stored there:
+        [AC_CONFIG_COMMANDS([libtool],
+            [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])],
+    dnl If the libtool generation code is destined for config.status,
+    dnl expand the accumulated commands and init code now:
+    [AC_CONFIG_COMMANDS([libtool],
+        [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])])
+])#_LT_CONFIG_COMMANDS
+
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT],
+[
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+sed_quote_subst='$sed_quote_subst'
+double_quote_subst='$double_quote_subst'
+delay_variable_subst='$delay_variable_subst'
+_LT_CONFIG_STATUS_DECLARATIONS
+LTCC='$LTCC'
+LTCFLAGS='$LTCFLAGS'
+compiler='$compiler_DEFAULT'
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+\$[]1
+_LTECHO_EOF'
+}
+
+# Quote evaled strings.
+for var in lt_decl_all_varnames([[ \
+]], lt_decl_quote_varnames); do
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+    *[[\\\\\\\`\\"\\\$]]*)
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
+      ;;
+    *)
+      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+      ;;
+    esac
+done
+
+# Double-quote double-evaled strings.
+for var in lt_decl_all_varnames([[ \
+]], lt_decl_dquote_varnames); do
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+    *[[\\\\\\\`\\"\\\$]]*)
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
+      ;;
+    *)
+      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+      ;;
+    esac
+done
+
+_LT_OUTPUT_LIBTOOL_INIT
+])
+
+# _LT_GENERATED_FILE_INIT(FILE, [COMMENT])
+# ------------------------------------
+# Generate a child script FILE with all initialization necessary to
+# reuse the environment learned by the parent script, and make the
+# file executable.  If COMMENT is supplied, it is inserted after the
+# `#!' sequence but before initialization text begins.  After this
+# macro, additional text can be appended to FILE to form the body of
+# the child script.  The macro ends with non-zero status if the
+# file could not be fully written (such as if the disk is full).
+m4_ifdef([AS_INIT_GENERATED],
+[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])],
+[m4_defun([_LT_GENERATED_FILE_INIT],
+[m4_require([AS_PREPARE])]dnl
+[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl
+[lt_write_fail=0
+cat >$1 <<_ASEOF || lt_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+$2
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$1 <<\_ASEOF || lt_write_fail=1
+AS_SHELL_SANITIZE
+_AS_PREPARE
+exec AS_MESSAGE_FD>&1
+_ASEOF
+test $lt_write_fail = 0 && chmod +x $1[]dnl
+m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT
+
+# LT_OUTPUT
+# ---------
+# This macro allows early generation of the libtool script (before
+# AC_OUTPUT is called), incase it is used in configure for compilation
+# tests.
+AC_DEFUN([LT_OUTPUT],
+[: ${CONFIG_LT=./config.lt}
+AC_MSG_NOTICE([creating $CONFIG_LT])
+_LT_GENERATED_FILE_INIT(["$CONFIG_LT"],
+[# Run this file to recreate a libtool stub with the current configuration.])
+
+cat >>"$CONFIG_LT" <<\_LTEOF
+lt_cl_silent=false
+exec AS_MESSAGE_LOG_FD>>config.log
+{
+  echo
+  AS_BOX([Running $as_me.])
+} >&AS_MESSAGE_LOG_FD
+
+lt_cl_help="\
+\`$as_me' creates a local libtool stub from the current configuration,
+for use in further configure time tests before the real libtool is
+generated.
+
+Usage: $[0] [[OPTIONS]]
+
+  -h, --help      print this help, then exit
+  -V, --version   print version number, then exit
+  -q, --quiet     do not print progress messages
+  -d, --debug     don't remove temporary files
+
+Report bugs to ."
+
+lt_cl_version="\
+m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
+m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
+configured by $[0], generated by m4_PACKAGE_STRING.
+
+Copyright (C) 2010 Free Software Foundation, Inc.
+This config.lt script is free software; the Free Software Foundation
+gives unlimited permision to copy, distribute and modify it."
+
+while test $[#] != 0
+do
+  case $[1] in
+    --version | --v* | -V )
+      echo "$lt_cl_version"; exit 0 ;;
+    --help | --h* | -h )
+      echo "$lt_cl_help"; exit 0 ;;
+    --debug | --d* | -d )
+      debug=: ;;
+    --quiet | --q* | --silent | --s* | -q )
+      lt_cl_silent=: ;;
+
+    -*) AC_MSG_ERROR([unrecognized option: $[1]
+Try \`$[0] --help' for more information.]) ;;
+
+    *) AC_MSG_ERROR([unrecognized argument: $[1]
+Try \`$[0] --help' for more information.]) ;;
+  esac
+  shift
+done
+
+if $lt_cl_silent; then
+  exec AS_MESSAGE_FD>/dev/null
+fi
+_LTEOF
+
+cat >>"$CONFIG_LT" <<_LTEOF
+_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
+_LTEOF
+
+cat >>"$CONFIG_LT" <<\_LTEOF
+AC_MSG_NOTICE([creating $ofile])
+_LT_OUTPUT_LIBTOOL_COMMANDS
+AS_EXIT(0)
+_LTEOF
+chmod +x "$CONFIG_LT"
+
+# configure is writing to config.log, but config.lt does its own redirection,
+# appending to config.log, which fails on DOS, as config.log is still kept
+# open by configure.  Here we exec the FD to /dev/null, effectively closing
+# config.log, so it can be properly (re)opened and appended to by config.lt.
+lt_cl_success=:
+test "$silent" = yes &&
+  lt_config_lt_args="$lt_config_lt_args --quiet"
+exec AS_MESSAGE_LOG_FD>/dev/null
+$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
+exec AS_MESSAGE_LOG_FD>>config.log
+$lt_cl_success || AS_EXIT(1)
+])# LT_OUTPUT
+
+
+# _LT_CONFIG(TAG)
+# ---------------
+# If TAG is the built-in tag, create an initial libtool script with a
+# default configuration from the untagged config vars.  Otherwise add code
+# to config.status for appending the configuration named by TAG from the
+# matching tagged config vars.
+m4_defun([_LT_CONFIG],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+_LT_CONFIG_SAVE_COMMANDS([
+  m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl
+  m4_if(_LT_TAG, [C], [
+    # See if we are running on zsh, and set the options which allow our
+    # commands through without removal of \ escapes.
+    if test -n "${ZSH_VERSION+set}" ; then
+      setopt NO_GLOB_SUBST
+    fi
+
+    cfgfile="${ofile}T"
+    trap "$RM -f \"$cfgfile\"; exit 1" 1 2 15
+    $RM -f "$cfgfile"
+
+    cat <<_LT_EOF >> "$cfgfile"
+#! $SHELL
+
+# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+_LT_COPYING
+_LT_LIBTOOL_TAGS
+
+# ### BEGIN LIBTOOL CONFIG
+_LT_LIBTOOL_CONFIG_VARS
+_LT_LIBTOOL_TAG_VARS
+# ### END LIBTOOL CONFIG
+
+_LT_EOF
+
+  case $host_os in
+  aix3*)
+    cat <<\_LT_EOF >> "$cfgfile"
+# AIX sometimes has problems with the GCC collect2 program.  For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+  COLLECT_NAMES=
+  export COLLECT_NAMES
+fi
+_LT_EOF
+    ;;
+  esac
+
+  _LT_PROG_LTMAIN
+
+  # We use sed instead of cat because bash on DJGPP gets confused if
+  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
+  # text mode, it properly converts lines to CR/LF.  This bash problem
+  # is reportedly fixed, but why not run on old versions too?
+  sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
+    || (rm -f "$cfgfile"; exit 1)
+
+  _LT_PROG_XSI_SHELLFNS
+
+  sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
+    || (rm -f "$cfgfile"; exit 1)
+
+  mv -f "$cfgfile" "$ofile" ||
+    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+  chmod +x "$ofile"
+],
+[cat <<_LT_EOF >> "$ofile"
+
+dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded
+dnl in a comment (ie after a #).
+# ### BEGIN LIBTOOL TAG CONFIG: $1
+_LT_LIBTOOL_TAG_VARS(_LT_TAG)
+# ### END LIBTOOL TAG CONFIG: $1
+_LT_EOF
+])dnl /m4_if
+],
+[m4_if([$1], [], [
+    PACKAGE='$PACKAGE'
+    VERSION='$VERSION'
+    TIMESTAMP='$TIMESTAMP'
+    RM='$RM'
+    ofile='$ofile'], [])
+])dnl /_LT_CONFIG_SAVE_COMMANDS
+])# _LT_CONFIG
+
+
+# LT_SUPPORTED_TAG(TAG)
+# ---------------------
+# Trace this macro to discover what tags are supported by the libtool
+# --tag option, using:
+#    autoconf --trace 'LT_SUPPORTED_TAG:$1'
+AC_DEFUN([LT_SUPPORTED_TAG], [])
+
+
+# C support is built-in for now
+m4_define([_LT_LANG_C_enabled], [])
+m4_define([_LT_TAGS], [])
+
+
+# LT_LANG(LANG)
+# -------------
+# Enable libtool support for the given language if not already enabled.
+AC_DEFUN([LT_LANG],
+[AC_BEFORE([$0], [LT_OUTPUT])dnl
+m4_case([$1],
+  [C],			[_LT_LANG(C)],
+  [C++],		[_LT_LANG(CXX)],
+  [Java],		[_LT_LANG(GCJ)],
+  [Fortran 77],		[_LT_LANG(F77)],
+  [Fortran],		[_LT_LANG(FC)],
+  [Windows Resource],	[_LT_LANG(RC)],
+  [m4_ifdef([_LT_LANG_]$1[_CONFIG],
+    [_LT_LANG($1)],
+    [m4_fatal([$0: unsupported language: "$1"])])])dnl
+])# LT_LANG
+
+
+# _LT_LANG(LANGNAME)
+# ------------------
+m4_defun([_LT_LANG],
+[m4_ifdef([_LT_LANG_]$1[_enabled], [],
+  [LT_SUPPORTED_TAG([$1])dnl
+  m4_append([_LT_TAGS], [$1 ])dnl
+  m4_define([_LT_LANG_]$1[_enabled], [])dnl
+  _LT_LANG_$1_CONFIG($1)])dnl
+])# _LT_LANG
+
+
+# _LT_LANG_DEFAULT_CONFIG
+# -----------------------
+m4_defun([_LT_LANG_DEFAULT_CONFIG],
+[AC_PROVIDE_IFELSE([AC_PROG_CXX],
+  [LT_LANG(CXX)],
+  [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])])
+
+AC_PROVIDE_IFELSE([AC_PROG_F77],
+  [LT_LANG(F77)],
+  [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])])
+
+AC_PROVIDE_IFELSE([AC_PROG_FC],
+  [LT_LANG(FC)],
+  [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])])
+
+dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal
+dnl pulling things in needlessly.
+AC_PROVIDE_IFELSE([AC_PROG_GCJ],
+  [LT_LANG(GCJ)],
+  [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
+    [LT_LANG(GCJ)],
+    [AC_PROVIDE_IFELSE([LT_PROG_GCJ],
+      [LT_LANG(GCJ)],
+      [m4_ifdef([AC_PROG_GCJ],
+	[m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])])
+       m4_ifdef([A][M_PROG_GCJ],
+	[m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])])
+       m4_ifdef([LT_PROG_GCJ],
+	[m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
+
+AC_PROVIDE_IFELSE([LT_PROG_RC],
+  [LT_LANG(RC)],
+  [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
+])# _LT_LANG_DEFAULT_CONFIG
+
+# Obsolete macros:
+AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
+AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
+AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
+AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
+AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
+dnl AC_DEFUN([AC_LIBTOOL_F77], [])
+dnl AC_DEFUN([AC_LIBTOOL_FC], [])
+dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
+dnl AC_DEFUN([AC_LIBTOOL_RC], [])
+
+
+# _LT_TAG_COMPILER
+# ----------------
+m4_defun([_LT_TAG_COMPILER],
+[AC_REQUIRE([AC_PROG_CC])dnl
+
+_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl
+_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl
+_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl
+_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+])# _LT_TAG_COMPILER
+
+
+# _LT_COMPILER_BOILERPLATE
+# ------------------------
+# Check for compiler boilerplate output or warnings with
+# the simple compiler test code.
+m4_defun([_LT_COMPILER_BOILERPLATE],
+[m4_require([_LT_DECL_SED])dnl
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM -r conftest*
+])# _LT_COMPILER_BOILERPLATE
+
+
+# _LT_LINKER_BOILERPLATE
+# ----------------------
+# Check for linker boilerplate output or warnings with
+# the simple link test code.
+m4_defun([_LT_LINKER_BOILERPLATE],
+[m4_require([_LT_DECL_SED])dnl
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+])# _LT_LINKER_BOILERPLATE
+
+# _LT_REQUIRED_DARWIN_CHECKS
+# -------------------------
+m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
+  case $host_os in
+    rhapsody* | darwin*)
+    AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
+    AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
+    AC_CHECK_TOOL([LIPO], [lipo], [:])
+    AC_CHECK_TOOL([OTOOL], [otool], [:])
+    AC_CHECK_TOOL([OTOOL64], [otool64], [:])
+    _LT_DECL([], [DSYMUTIL], [1],
+      [Tool to manipulate archived DWARF debug symbol files on Mac OS X])
+    _LT_DECL([], [NMEDIT], [1],
+      [Tool to change global to local symbols on Mac OS X])
+    _LT_DECL([], [LIPO], [1],
+      [Tool to manipulate fat objects and archives on Mac OS X])
+    _LT_DECL([], [OTOOL], [1],
+      [ldd/readelf like tool for Mach-O binaries on Mac OS X])
+    _LT_DECL([], [OTOOL64], [1],
+      [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4])
+
+    AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
+      [lt_cv_apple_cc_single_mod=no
+      if test -z "${LT_MULTI_MODULE}"; then
+	# By default we will add the -single_module flag. You can override
+	# by either setting the environment variable LT_MULTI_MODULE
+	# non-empty at configure time, or by adding -multi_module to the
+	# link flags.
+	rm -rf libconftest.dylib*
+	echo "int foo(void){return 1;}" > conftest.c
+	echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD
+	$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+	  -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
+        _lt_result=$?
+	if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
+	  lt_cv_apple_cc_single_mod=yes
+	else
+	  cat conftest.err >&AS_MESSAGE_LOG_FD
+	fi
+	rm -rf libconftest.dylib*
+	rm -f conftest.*
+      fi])
+    AC_CACHE_CHECK([for -exported_symbols_list linker flag],
+      [lt_cv_ld_exported_symbols_list],
+      [lt_cv_ld_exported_symbols_list=no
+      save_LDFLAGS=$LDFLAGS
+      echo "_main" > conftest.sym
+      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+      AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+	[lt_cv_ld_exported_symbols_list=yes],
+	[lt_cv_ld_exported_symbols_list=no])
+	LDFLAGS="$save_LDFLAGS"
+    ])
+    AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
+      [lt_cv_ld_force_load=no
+      cat > conftest.c << _LT_EOF
+int forced_loaded() { return 2;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
+      $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
+      echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
+      $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
+      echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
+      $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
+      cat > conftest.c << _LT_EOF
+int main() { return 0;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
+      $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
+      _lt_result=$?
+      if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then
+	lt_cv_ld_force_load=yes
+      else
+	cat conftest.err >&AS_MESSAGE_LOG_FD
+      fi
+        rm -f conftest.err libconftest.a conftest conftest.c
+        rm -rf conftest.dSYM
+    ])
+    case $host_os in
+    rhapsody* | darwin1.[[012]])
+      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
+    darwin1.*)
+      _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+    darwin*) # darwin 5.x on
+      # if running on 10.5 or later, the deployment target defaults
+      # to the OS version, if on x86, and 10.4, the deployment
+      # target defaults to 10.4. Don't you love it?
+      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+	10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
+	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+	10.[[012]]*)
+	  _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+	10.*)
+	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+      esac
+    ;;
+  esac
+    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
+      _lt_dar_single_mod='$single_module'
+    fi
+    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
+      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
+    else
+      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    fi
+    if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
+      _lt_dsymutil='~$DSYMUTIL $lib || :'
+    else
+      _lt_dsymutil=
+    fi
+    ;;
+  esac
+])
+
+
+# _LT_DARWIN_LINKER_FEATURES
+# --------------------------
+# Checks for linker and compiler features on darwin
+m4_defun([_LT_DARWIN_LINKER_FEATURES],
+[
+  m4_require([_LT_REQUIRED_DARWIN_CHECKS])
+  _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+  _LT_TAGVAR(hardcode_direct, $1)=no
+  _LT_TAGVAR(hardcode_automatic, $1)=yes
+  _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+  if test "$lt_cv_ld_force_load" = "yes"; then
+    _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+  else
+    _LT_TAGVAR(whole_archive_flag_spec, $1)=''
+  fi
+  _LT_TAGVAR(link_all_deplibs, $1)=yes
+  _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
+  case $cc_basename in
+     ifort*) _lt_dar_can_shared=yes ;;
+     *) _lt_dar_can_shared=$GCC ;;
+  esac
+  if test "$_lt_dar_can_shared" = "yes"; then
+    output_verbose_link_cmd=func_echo_all
+    _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+    _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+    _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+    _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+    m4_if([$1], [CXX],
+[   if test "$lt_cv_apple_cc_single_mod" != "yes"; then
+      _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
+      _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
+    fi
+],[])
+  else
+  _LT_TAGVAR(ld_shlibs, $1)=no
+  fi
+])
+
+# _LT_SYS_MODULE_PATH_AIX
+# -----------------------
+# Links a minimal program and checks the executable
+# for the system default hardcoded library path. In most cases,
+# this is /usr/lib:/lib, but when the MPI compilers are used
+# the location of the communication and MPI libs are included too.
+# If we don't find anything, use the default library path according
+# to the aix ld manual.
+m4_defun([_LT_SYS_MODULE_PATH_AIX],
+[m4_require([_LT_DECL_SED])dnl
+AC_LINK_IFELSE(AC_LANG_PROGRAM,[
+lt_aix_libpath_sed='
+    /Import File Strings/,/^$/ {
+	/^0/ {
+	    s/^0  *\(.*\)$/\1/
+	    p
+	}
+    }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi],[])
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+])# _LT_SYS_MODULE_PATH_AIX
+
+
+# _LT_SHELL_INIT(ARG)
+# -------------------
+m4_define([_LT_SHELL_INIT],
+[m4_divert_text([M4SH-INIT], [$1
+])])# _LT_SHELL_INIT
+
+
+
+# _LT_PROG_ECHO_BACKSLASH
+# -----------------------
+# Find how we can fake an echo command that does not interpret backslash.
+# In particular, with Autoconf 2.60 or later we add some code to the start
+# of the generated configure script which will find a shell with a builtin
+# printf (which we can use as an echo command).
+m4_defun([_LT_PROG_ECHO_BACKSLASH],
+[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+
+AC_MSG_CHECKING([how to print strings])
+# Test print first, because it will be a builtin if present.
+if test "X`print -r -- -n 2>/dev/null`" = X-n && \
+   test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='print -r --'
+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='printf %s\n'
+else
+  # Use this function as a fallback that always works.
+  func_fallback_echo ()
+  {
+    eval 'cat <<_LTECHO_EOF
+$[]1
+_LTECHO_EOF'
+  }
+  ECHO='func_fallback_echo'
+fi
+
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+    $ECHO "$*" 
+}
+
+case "$ECHO" in
+  printf*) AC_MSG_RESULT([printf]) ;;
+  print*) AC_MSG_RESULT([print -r]) ;;
+  *) AC_MSG_RESULT([cat]) ;;
+esac
+
+m4_ifdef([_AS_DETECT_SUGGESTED],
+[_AS_DETECT_SUGGESTED([
+  test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || (
+    ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+    ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+    ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+    PATH=/empty FPATH=/empty; export PATH FPATH
+    test "X`printf %s $ECHO`" = "X$ECHO" \
+      || test "X`print -r -- $ECHO`" = "X$ECHO" )])])
+
+_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
+_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
+])# _LT_PROG_ECHO_BACKSLASH
+
+
+# _LT_ENABLE_LOCK
+# ---------------
+m4_defun([_LT_ENABLE_LOCK],
+[AC_ARG_ENABLE([libtool-lock],
+  [AS_HELP_STRING([--disable-libtool-lock],
+    [avoid locking (might break parallel builds)])])
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.$ac_objext` in
+      *ELF-32*)
+	HPUX_IA64_MODE="32"
+	;;
+      *ELF-64*)
+	HPUX_IA64_MODE="64"
+	;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+*-*-irix6*)
+  # Find out which ABI we are using.
+  echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    if test "$lt_cv_prog_gnu_ld" = yes; then
+      case `/usr/bin/file conftest.$ac_objext` in
+	*32-bit*)
+	  LD="${LD-ld} -melf32bsmip"
+	  ;;
+	*N32*)
+	  LD="${LD-ld} -melf32bmipn32"
+	  ;;
+	*64-bit*)
+	  LD="${LD-ld} -melf64bmip"
+	;;
+      esac
+    else
+      case `/usr/bin/file conftest.$ac_objext` in
+	*32-bit*)
+	  LD="${LD-ld} -32"
+	  ;;
+	*N32*)
+	  LD="${LD-ld} -n32"
+	  ;;
+	*64-bit*)
+	  LD="${LD-ld} -64"
+	  ;;
+      esac
+    fi
+  fi
+  rm -rf conftest*
+  ;;
+
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.o` in
+      *32-bit*)
+	case $host in
+	  x86_64-*kfreebsd*-gnu)
+	    LD="${LD-ld} -m elf_i386_fbsd"
+	    ;;
+	  x86_64-*linux*)
+	    LD="${LD-ld} -m elf_i386"
+	    ;;
+	  ppc64-*linux*|powerpc64-*linux*)
+	    LD="${LD-ld} -m elf32ppclinux"
+	    ;;
+	  s390x-*linux*)
+	    LD="${LD-ld} -m elf_s390"
+	    ;;
+	  sparc64-*linux*)
+	    LD="${LD-ld} -m elf32_sparc"
+	    ;;
+	esac
+	;;
+      *64-bit*)
+	case $host in
+	  x86_64-*kfreebsd*-gnu)
+	    LD="${LD-ld} -m elf_x86_64_fbsd"
+	    ;;
+	  x86_64-*linux*)
+	    LD="${LD-ld} -m elf_x86_64"
+	    ;;
+	  ppc*-*linux*|powerpc*-*linux*)
+	    LD="${LD-ld} -m elf64ppc"
+	    ;;
+	  s390*-*linux*|s390*-*tpf*)
+	    LD="${LD-ld} -m elf64_s390"
+	    ;;
+	  sparc*-*linux*)
+	    LD="${LD-ld} -m elf64_sparc"
+	    ;;
+	esac
+	;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+
+*-*-sco3.2v5*)
+  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+  SAVE_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -belf"
+  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
+    [AC_LANG_PUSH(C)
+     AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
+     AC_LANG_POP])
+  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+    CFLAGS="$SAVE_CFLAGS"
+  fi
+  ;;
+sparc*-*solaris*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.o` in
+    *64-bit*)
+      case $lt_cv_prog_gnu_ld in
+      yes*) LD="${LD-ld} -m elf64_sparc" ;;
+      *)
+	if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+	  LD="${LD-ld} -64"
+	fi
+	;;
+      esac
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+esac
+
+need_locks="$enable_libtool_lock"
+])# _LT_ENABLE_LOCK
+
+
+# _LT_CMD_OLD_ARCHIVE
+# -------------------
+m4_defun([_LT_CMD_OLD_ARCHIVE],
+[AC_CHECK_TOOL(AR, ar, false)
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+_LT_DECL([], [AR], [1], [The archiver])
+_LT_DECL([], [AR_FLAGS], [1])
+
+AC_CHECK_TOOL(STRIP, strip, :)
+test -z "$STRIP" && STRIP=:
+_LT_DECL([], [STRIP], [1], [A symbol stripping program])
+
+AC_CHECK_TOOL(RANLIB, ranlib, :)
+test -z "$RANLIB" && RANLIB=:
+_LT_DECL([], [RANLIB], [1],
+    [Commands used to install an old-style archive])
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+  case $host_os in
+  openbsd*)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+    ;;
+  *)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+    ;;
+  esac
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+
+case $host_os in
+  darwin*)
+    lock_old_archive_extraction=yes ;;
+  *)
+    lock_old_archive_extraction=no ;;
+esac
+_LT_DECL([], [old_postinstall_cmds], [2])
+_LT_DECL([], [old_postuninstall_cmds], [2])
+_LT_TAGDECL([], [old_archive_cmds], [2],
+    [Commands used to build an old-style archive])
+_LT_DECL([], [lock_old_archive_extraction], [0],
+    [Whether to use a lock for old archive extraction])
+])# _LT_CMD_OLD_ARCHIVE
+
+
+# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#		[OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------------------
+# Check whether the given compiler option works
+AC_DEFUN([_LT_COMPILER_OPTION],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+  [$2=no
+   m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$3"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&AS_MESSAGE_LOG_FD
+   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       $2=yes
+     fi
+   fi
+   $RM -r conftest*
+])
+
+if test x"[$]$2" = xyes; then
+    m4_if([$5], , :, [$5])
+else
+    m4_if([$6], , :, [$6])
+fi
+])# _LT_COMPILER_OPTION
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [])
+
+
+# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#                  [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------
+# Check whether the given linker option works
+AC_DEFUN([_LT_LINKER_OPTION],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+  [$2=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $3"
+   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&AS_MESSAGE_LOG_FD
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         $2=yes
+       fi
+     else
+       $2=yes
+     fi
+   fi
+   $RM -r conftest*
+   LDFLAGS="$save_LDFLAGS"
+])
+
+if test x"[$]$2" = xyes; then
+    m4_if([$4], , :, [$4])
+else
+    m4_if([$5], , :, [$5])
+fi
+])# _LT_LINKER_OPTION
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [])
+
+
+# LT_CMD_MAX_LEN
+#---------------
+AC_DEFUN([LT_CMD_MAX_LEN],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+# find the maximum length of command line arguments
+AC_MSG_CHECKING([the maximum length of command line arguments])
+AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
+  i=0
+  teststring="ABCD"
+
+  case $build_os in
+  msdosdjgpp*)
+    # On DJGPP, this test can blow up pretty badly due to problems in libc
+    # (any single argument exceeding 2000 bytes causes a buffer overrun
+    # during glob expansion).  Even if it were fixed, the result of this
+    # check would be larger than it should be.
+    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
+    ;;
+
+  gnu*)
+    # Under GNU Hurd, this test is not required because there is
+    # no limit to the length of command line arguments.
+    # Libtool will interpret -1 as no limit whatsoever
+    lt_cv_sys_max_cmd_len=-1;
+    ;;
+
+  cygwin* | mingw* | cegcc*)
+    # On Win9x/ME, this test blows up -- it succeeds, but takes
+    # about 5 minutes as the teststring grows exponentially.
+    # Worse, since 9x/ME are not pre-emptively multitasking,
+    # you end up with a "frozen" computer, even though with patience
+    # the test eventually succeeds (with a max line length of 256k).
+    # Instead, let's just punt: use the minimum linelength reported by
+    # all of the supported platforms: 8192 (on NT/2K/XP).
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  mint*)
+    # On MiNT this can take a long time and run out of memory.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  amigaos*)
+    # On AmigaOS with pdksh, this test takes hours, literally.
+    # So we just punt and use a minimum line length of 8192.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+    # This has been around since 386BSD, at least.  Likely further.
+    if test -x /sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+    elif test -x /usr/sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+    else
+      lt_cv_sys_max_cmd_len=65536	# usable default for all BSDs
+    fi
+    # And add a safety zone
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    ;;
+
+  interix*)
+    # We know the value 262144 and hardcode it with a safety zone (like BSD)
+    lt_cv_sys_max_cmd_len=196608
+    ;;
+
+  osf*)
+    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+    # nice to cause kernel panics so lets avoid the loop below.
+    # First set a reasonable default.
+    lt_cv_sys_max_cmd_len=16384
+    #
+    if test -x /sbin/sysconfig; then
+      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+        *1*) lt_cv_sys_max_cmd_len=-1 ;;
+      esac
+    fi
+    ;;
+  sco3.2v5*)
+    lt_cv_sys_max_cmd_len=102400
+    ;;
+  sysv5* | sco5v6* | sysv4.2uw2*)
+    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+    if test -n "$kargmax"; then
+      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[	 ]]//'`
+    else
+      lt_cv_sys_max_cmd_len=32768
+    fi
+    ;;
+  *)
+    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+    if test -n "$lt_cv_sys_max_cmd_len"; then
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    else
+      # Make teststring a little bigger before we do anything with it.
+      # a 1K string should be a reasonable start.
+      for i in 1 2 3 4 5 6 7 8 ; do
+        teststring=$teststring$teststring
+      done
+      SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+      # If test is not a shell built-in, we'll probably end up computing a
+      # maximum length that is only half of the actual maximum length, but
+      # we can't tell.
+      while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \
+	         = "X$teststring$teststring"; } >/dev/null 2>&1 &&
+	      test $i != 17 # 1/2 MB should be enough
+      do
+        i=`expr $i + 1`
+        teststring=$teststring$teststring
+      done
+      # Only check the string length outside the loop.
+      lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
+      teststring=
+      # Add a significant safety factor because C++ compilers can tack on
+      # massive amounts of additional arguments before passing them to the
+      # linker.  It appears as though 1/2 is a usable value.
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+    fi
+    ;;
+  esac
+])
+if test -n $lt_cv_sys_max_cmd_len ; then
+  AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
+else
+  AC_MSG_RESULT(none)
+fi
+max_cmd_len=$lt_cv_sys_max_cmd_len
+_LT_DECL([], [max_cmd_len], [0],
+    [What is the maximum length of a command?])
+])# LT_CMD_MAX_LEN
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [])
+
+
+# _LT_HEADER_DLFCN
+# ----------------
+m4_defun([_LT_HEADER_DLFCN],
+[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl
+])# _LT_HEADER_DLFCN
+
+
+# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
+#                      ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
+# ----------------------------------------------------------------
+m4_defun([_LT_TRY_DLOPEN_SELF],
+[m4_require([_LT_HEADER_DLFCN])dnl
+if test "$cross_compiling" = yes; then :
+  [$4]
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<_LT_EOF
+[#line $LINENO "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include 
+#endif
+
+#include 
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+/* When -fvisbility=hidden is used, assume the code has been annotated
+   correspondingly for the symbols needed.  */
+#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+void fnord () __attribute__((visibility("default")));
+#endif
+
+void fnord () { int i=42; }
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else
+        {
+	  if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
+          else puts (dlerror ());
+	}
+      /* dlclose (self); */
+    }
+  else
+    puts (dlerror ());
+
+  return status;
+}]
+_LT_EOF
+  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) $1 ;;
+      x$lt_dlneed_uscore) $2 ;;
+      x$lt_dlunknown|x*) $3 ;;
+    esac
+  else :
+    # compilation failed
+    $3
+  fi
+fi
+rm -fr conftest*
+])# _LT_TRY_DLOPEN_SELF
+
+
+# LT_SYS_DLOPEN_SELF
+# ------------------
+AC_DEFUN([LT_SYS_DLOPEN_SELF],
+[m4_require([_LT_HEADER_DLFCN])dnl
+if test "x$enable_dlopen" != xyes; then
+  enable_dlopen=unknown
+  enable_dlopen_self=unknown
+  enable_dlopen_self_static=unknown
+else
+  lt_cv_dlopen=no
+  lt_cv_dlopen_libs=
+
+  case $host_os in
+  beos*)
+    lt_cv_dlopen="load_add_on"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ;;
+
+  mingw* | pw32* | cegcc*)
+    lt_cv_dlopen="LoadLibrary"
+    lt_cv_dlopen_libs=
+    ;;
+
+  cygwin*)
+    lt_cv_dlopen="dlopen"
+    lt_cv_dlopen_libs=
+    ;;
+
+  darwin*)
+  # if libdl is installed we need to link against it
+    AC_CHECK_LIB([dl], [dlopen],
+		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
+    lt_cv_dlopen="dyld"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ])
+    ;;
+
+  *)
+    AC_CHECK_FUNC([shl_load],
+	  [lt_cv_dlopen="shl_load"],
+      [AC_CHECK_LIB([dld], [shl_load],
+	    [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"],
+	[AC_CHECK_FUNC([dlopen],
+	      [lt_cv_dlopen="dlopen"],
+	  [AC_CHECK_LIB([dl], [dlopen],
+		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
+	    [AC_CHECK_LIB([svld], [dlopen],
+		  [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
+	      [AC_CHECK_LIB([dld], [dld_link],
+		    [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"])
+	      ])
+	    ])
+	  ])
+	])
+      ])
+    ;;
+  esac
+
+  if test "x$lt_cv_dlopen" != xno; then
+    enable_dlopen=yes
+  else
+    enable_dlopen=no
+  fi
+
+  case $lt_cv_dlopen in
+  dlopen)
+    save_CPPFLAGS="$CPPFLAGS"
+    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+    save_LDFLAGS="$LDFLAGS"
+    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+    save_LIBS="$LIBS"
+    LIBS="$lt_cv_dlopen_libs $LIBS"
+
+    AC_CACHE_CHECK([whether a program can dlopen itself],
+	  lt_cv_dlopen_self, [dnl
+	  _LT_TRY_DLOPEN_SELF(
+	    lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
+	    lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
+    ])
+
+    if test "x$lt_cv_dlopen_self" = xyes; then
+      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+      AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
+	  lt_cv_dlopen_self_static, [dnl
+	  _LT_TRY_DLOPEN_SELF(
+	    lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
+	    lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)
+      ])
+    fi
+
+    CPPFLAGS="$save_CPPFLAGS"
+    LDFLAGS="$save_LDFLAGS"
+    LIBS="$save_LIBS"
+    ;;
+  esac
+
+  case $lt_cv_dlopen_self in
+  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+  *) enable_dlopen_self=unknown ;;
+  esac
+
+  case $lt_cv_dlopen_self_static in
+  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+  *) enable_dlopen_self_static=unknown ;;
+  esac
+fi
+_LT_DECL([dlopen_support], [enable_dlopen], [0],
+	 [Whether dlopen is supported])
+_LT_DECL([dlopen_self], [enable_dlopen_self], [0],
+	 [Whether dlopen of programs is supported])
+_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0],
+	 [Whether dlopen of statically linked programs is supported])
+])# LT_SYS_DLOPEN_SELF
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [])
+
+
+# _LT_COMPILER_C_O([TAGNAME])
+# ---------------------------
+# Check to see if options -c and -o are simultaneously supported by compiler.
+# This macro does not hard code the compiler like AC_PROG_CC_C_O.
+m4_defun([_LT_COMPILER_C_O],
+[m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
+  [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
+  [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
+   $RM -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&AS_MESSAGE_LOG_FD
+   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+     fi
+   fi
+   chmod u+w . 2>&AS_MESSAGE_LOG_FD
+   $RM -r conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+   $RM out/* && rmdir out
+   cd ..
+   $RM -r conftest
+   $RM -r conftest*
+])
+_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1],
+	[Does compiler simultaneously support -c and -o options?])
+])# _LT_COMPILER_C_O
+
+
+# _LT_COMPILER_FILE_LOCKS([TAGNAME])
+# ----------------------------------
+# Check to see if we can do hard links to lock some files if needed
+m4_defun([_LT_COMPILER_FILE_LOCKS],
+[m4_require([_LT_ENABLE_LOCK])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+_LT_COMPILER_C_O([$1])
+
+hard_links="nottested"
+if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  AC_MSG_CHECKING([if we can lock with hard links])
+  hard_links=yes
+  $RM -r conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  AC_MSG_RESULT([$hard_links])
+  if test "$hard_links" = no; then
+    AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?])
+])# _LT_COMPILER_FILE_LOCKS
+
+
+# _LT_CHECK_OBJDIR
+# ----------------
+m4_defun([_LT_CHECK_OBJDIR],
+[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
+[rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+  lt_cv_objdir=.libs
+else
+  # MS-DOS does not allow filenames that begin with a dot.
+  lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null])
+objdir=$lt_cv_objdir
+_LT_DECL([], [objdir], [0],
+         [The name of the directory that contains temporary libtool files])dnl
+m4_pattern_allow([LT_OBJDIR])dnl
+AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/",
+  [Define to the sub-directory in which libtool stores uninstalled libraries.])
+])# _LT_CHECK_OBJDIR
+
+
+# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME])
+# --------------------------------------
+# Check hardcoding attributes.
+m4_defun([_LT_LINKER_HARDCODE_LIBPATH],
+[AC_MSG_CHECKING([how to hardcode library paths into programs])
+_LT_TAGVAR(hardcode_action, $1)=
+if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" ||
+   test -n "$_LT_TAGVAR(runpath_var, $1)" ||
+   test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
+
+  # We can hardcode non-existent directories.
+  if test "$_LT_TAGVAR(hardcode_direct, $1)" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
+     test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then
+    # Linking always hardcodes the temporary library directory.
+    _LT_TAGVAR(hardcode_action, $1)=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    _LT_TAGVAR(hardcode_action, $1)=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  _LT_TAGVAR(hardcode_action, $1)=unsupported
+fi
+AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)])
+
+if test "$_LT_TAGVAR(hardcode_action, $1)" = relink ||
+   test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+_LT_TAGDECL([], [hardcode_action], [0],
+    [How to hardcode a shared library path into an executable])
+])# _LT_LINKER_HARDCODE_LIBPATH
+
+
+# _LT_CMD_STRIPLIB
+# ----------------
+m4_defun([_LT_CMD_STRIPLIB],
+[m4_require([_LT_DECL_EGREP])
+striplib=
+old_striplib=
+AC_MSG_CHECKING([whether stripping libraries is possible])
+if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+  AC_MSG_RESULT([yes])
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+  case $host_os in
+  darwin*)
+    if test -n "$STRIP" ; then
+      striplib="$STRIP -x"
+      old_striplib="$STRIP -S"
+      AC_MSG_RESULT([yes])
+    else
+      AC_MSG_RESULT([no])
+    fi
+    ;;
+  *)
+    AC_MSG_RESULT([no])
+    ;;
+  esac
+fi
+_LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
+_LT_DECL([], [striplib], [1])
+])# _LT_CMD_STRIPLIB
+
+
+# _LT_SYS_DYNAMIC_LINKER([TAG])
+# -----------------------------
+# PORTME Fill in your ld.so characteristics
+m4_defun([_LT_SYS_DYNAMIC_LINKER],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_OBJDUMP])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_CHECK_SHELL_FEATURES])dnl
+AC_MSG_CHECKING([dynamic linker characteristics])
+m4_if([$1],
+	[], [
+if test "$GCC" = yes; then
+  case $host_os in
+    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
+    *) lt_awk_arg="/^libraries:/" ;;
+  esac
+  case $host_os in
+    mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;;
+    *) lt_sed_strip_eq="s,=/,/,g" ;;
+  esac
+  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
+  case $lt_search_path_spec in
+  *\;*)
+    # if the path contains ";" then we assume it to be the separator
+    # otherwise default to the standard path separator (i.e. ":") - it is
+    # assumed that no part of a normal pathname contains ";" but that should
+    # okay in the real world where ";" in dirpaths is itself problematic.
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
+    ;;
+  *)
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
+    ;;
+  esac
+  # Ok, now we have the path, separated by spaces, we can step through it
+  # and add multilib dir if necessary.
+  lt_tmp_lt_search_path_spec=
+  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+  for lt_sys_path in $lt_search_path_spec; do
+    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
+      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
+    else
+      test -d "$lt_sys_path" && \
+	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+    fi
+  done
+  lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
+BEGIN {RS=" "; FS="/|\n";} {
+  lt_foo="";
+  lt_count=0;
+  for (lt_i = NF; lt_i > 0; lt_i--) {
+    if ($lt_i != "" && $lt_i != ".") {
+      if ($lt_i == "..") {
+        lt_count++;
+      } else {
+        if (lt_count == 0) {
+          lt_foo="/" $lt_i lt_foo;
+        } else {
+          lt_count--;
+        }
+      }
+    }
+  }
+  if (lt_foo != "") { lt_freq[[lt_foo]]++; }
+  if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
+}'`
+  # AWK program above erroneously prepends '/' to C:/dos/paths
+  # for these hosts.
+  case $host_os in
+    mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
+      $SED 's,/\([[A-Za-z]]:\),\1,g'` ;;
+  esac
+  sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
+else
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi])
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
+
+aix[[4-9]]*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[[01]] | aix4.[[01]].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib.so
+      # instead of lib.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  case $host_cpu in
+  powerpc)
+    # Since July 2007 AmigaOS4 officially supports .so libraries.
+    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    ;;
+  m68k)
+    library_names_spec='$libname.ixlibrary $libname.a'
+    # Create ${libname}_ixlibrary.a entries in /sys/libs.
+    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+    ;;
+  esac
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi[[45]]*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+  version_type=windows
+  shrext_cmds=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$host_os in
+  yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname~
+      chmod a+x \$dldir/$dlname~
+      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+      fi'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+m4_if([$1], [],[
+      sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
+      ;;
+    mingw* | cegcc*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    ;;
+
+  *)
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    ;;
+  esac
+  dynamic_linker='Win32 ld.exe'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext ${libname}${release}${versuffix}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+m4_if([$1], [],[
+  sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd1*)
+  dynamic_linker=no
+  ;;
+
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
+  if test -x /usr/bin/objformat; then
+    objformat=`/usr/bin/objformat`
+  else
+    case $host_os in
+    freebsd[[123]]*) objformat=aout ;;
+    *) objformat=elf ;;
+    esac
+  fi
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[[01]]* | freebsdelf3.[[01]]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
+  freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  *) # from 4.6 on, and DragonFly
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  ;;
+
+haiku*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  dynamic_linker="$host_os runtime_loader"
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case $host_cpu in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+  hppa*64*)
+    shrext_cmds='.sl'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+  *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
+  postinstall_cmds='chmod 555 $lib'
+  # or fails outright, so override atomically:
+  install_override_mode=555
+  ;;
+
+interix[[3-9]]*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test "$lt_cv_prog_gnu_ld" = yes; then
+		version_type=linux
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+
+  # Some binutils ld are patched to set DT_RUNPATH
+  AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath],
+    [lt_cv_shlibpath_overrides_runpath=no
+    save_LDFLAGS=$LDFLAGS
+    save_libdir=$libdir
+    eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
+	 LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
+    AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+      [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
+	 [lt_cv_shlibpath_overrides_runpath=yes])])
+    LDFLAGS=$save_LDFLAGS
+    libdir=$save_libdir
+    ])
+  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
+
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # Append ld.so.conf contents to the search path
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+  fi
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+*nto* | *qnx*)
+  version_type=qnx
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='ldqnx.so'
+  ;;
+
+openbsd*)
+  version_type=sunos
+  sys_lib_dlsearch_path_spec="/usr/lib"
+  need_lib_prefix=no
+  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+  case $host_os in
+    openbsd3.3 | openbsd3.3.*)	need_version=yes ;;
+    *)				need_version=no  ;;
+  esac
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[[89]] | openbsd2.[[89]].*)
+	shlibpath_overrides_runpath=no
+	;;
+      *)
+	shlibpath_overrides_runpath=yes
+	;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext_cmds=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+rdos*)
+  dynamic_linker=no
+  ;;
+
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  version_type=freebsd-elf
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  if test "$with_gnu_ld" = yes; then
+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+  else
+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+    case $host_os in
+      sco3.2v5*)
+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+	;;
+    esac
+  fi
+  sys_lib_dlsearch_path_spec='/usr/lib'
+  ;;
+
+tpf*)
+  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+AC_MSG_RESULT([$dynamic_linker])
+test "$dynamic_linker" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+fi
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+fi
+
+_LT_DECL([], [variables_saved_for_relink], [1],
+    [Variables whose values should be saved in libtool wrapper scripts and
+    restored at link time])
+_LT_DECL([], [need_lib_prefix], [0],
+    [Do we need the "lib" prefix for modules?])
+_LT_DECL([], [need_version], [0], [Do we need a version for libraries?])
+_LT_DECL([], [version_type], [0], [Library versioning type])
+_LT_DECL([], [runpath_var], [0],  [Shared library runtime path variable])
+_LT_DECL([], [shlibpath_var], [0],[Shared library path variable])
+_LT_DECL([], [shlibpath_overrides_runpath], [0],
+    [Is shlibpath searched before the hard-coded library search path?])
+_LT_DECL([], [libname_spec], [1], [Format of library name prefix])
+_LT_DECL([], [library_names_spec], [1],
+    [[List of archive names.  First name is the real one, the rest are links.
+    The last name is the one that the linker finds with -lNAME]])
+_LT_DECL([], [soname_spec], [1],
+    [[The coded name of the library, if different from the real name]])
+_LT_DECL([], [install_override_mode], [1],
+    [Permission mode override for installation of shared libraries])
+_LT_DECL([], [postinstall_cmds], [2],
+    [Command to use after installation of a shared archive])
+_LT_DECL([], [postuninstall_cmds], [2],
+    [Command to use after uninstallation of a shared archive])
+_LT_DECL([], [finish_cmds], [2],
+    [Commands used to finish a libtool library installation in a directory])
+_LT_DECL([], [finish_eval], [1],
+    [[As "finish_cmds", except a single script fragment to be evaled but
+    not shown]])
+_LT_DECL([], [hardcode_into_libs], [0],
+    [Whether we should hardcode library paths into libraries])
+_LT_DECL([], [sys_lib_search_path_spec], [2],
+    [Compile-time system search path for libraries])
+_LT_DECL([], [sys_lib_dlsearch_path_spec], [2],
+    [Run-time system search path for libraries])
+])# _LT_SYS_DYNAMIC_LINKER
+
+
+# _LT_PATH_TOOL_PREFIX(TOOL)
+# --------------------------
+# find a file program which can recognize shared library
+AC_DEFUN([_LT_PATH_TOOL_PREFIX],
+[m4_require([_LT_DECL_EGREP])dnl
+AC_MSG_CHECKING([for $1])
+AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
+[case $MAGIC_CMD in
+[[\\/*] |  ?:[\\/]*])
+  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  ;;
+*)
+  lt_save_MAGIC_CMD="$MAGIC_CMD"
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+dnl $ac_dummy forces splitting on constant user-supplied paths.
+dnl POSIX.2 word splitting is done only on the output of word expansions,
+dnl not every word.  This closes a longstanding sh security hole.
+  ac_dummy="m4_if([$2], , $PATH, [$2])"
+  for ac_dir in $ac_dummy; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$1; then
+      lt_cv_path_MAGIC_CMD="$ac_dir/$1"
+      if test -n "$file_magic_test_file"; then
+	case $deplibs_check_method in
+	"file_magic "*)
+	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+	    $EGREP "$file_magic_regex" > /dev/null; then
+	    :
+	  else
+	    cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+	  fi ;;
+	esac
+      fi
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  ;;
+esac])
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+  AC_MSG_RESULT($MAGIC_CMD)
+else
+  AC_MSG_RESULT(no)
+fi
+_LT_DECL([], [MAGIC_CMD], [0],
+	 [Used to examine libraries when file_magic_cmd begins with "file"])dnl
+])# _LT_PATH_TOOL_PREFIX
+
+# Old name:
+AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], [])
+
+
+# _LT_PATH_MAGIC
+# --------------
+# find a file program which can recognize a shared library
+m4_defun([_LT_PATH_MAGIC],
+[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+  if test -n "$ac_tool_prefix"; then
+    _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
+  else
+    MAGIC_CMD=:
+  fi
+fi
+])# _LT_PATH_MAGIC
+
+
+# LT_PATH_LD
+# ----------
+# find the pathname to the GNU or non-GNU linker
+AC_DEFUN([LT_PATH_LD],
+[AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_PROG_ECHO_BACKSLASH])dnl
+
+AC_ARG_WITH([gnu-ld],
+    [AS_HELP_STRING([--with-gnu-ld],
+	[assume the C compiler uses GNU ld @<:@default=no@:>@])],
+    [test "$withval" = no || with_gnu_ld=yes],
+    [with_gnu_ld=no])dnl
+
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  AC_MSG_CHECKING([for ld used by $CC])
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [[\\/]]* | ?:[[\\/]]*)
+      re_direlt='/[[^/]][[^/]]*/\.\./'
+      # Canonicalize the pathname of ld
+      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  AC_MSG_CHECKING([for GNU ld])
+else
+  AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(lt_cv_path_LD,
+[if test -z "$LD"; then
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      lt_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some variants of GNU ld only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then
+    lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+    lt_cv_file_magic_cmd='func_win32_libid'
+  else
+    # Keep this pattern in sync with the one in func_win32_libid.
+    lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
+    lt_cv_file_magic_cmd='$OBJDUMP -f'
+  fi
+  ;;
+
+cegcc*)
+  # use the weaker test based on 'objdump'. See mingw*.
+  lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
+  lt_cv_file_magic_cmd='$OBJDUMP -f'
+  ;;
+
+darwin* | rhapsody*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+freebsd* | dragonfly*)
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+    case $host_cpu in
+    i*86 )
+      # Not sure whether the presence of OpenBSD here was a mistake.
+      # Let's accept both of them until this is cleared up.
+      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
+      lt_cv_file_magic_cmd=/usr/bin/file
+      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+      ;;
+    esac
+  else
+    lt_cv_deplibs_check_method=pass_all
+  fi
+  ;;
+
+gnu*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+haiku*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+hpux10.20* | hpux11*)
+  lt_cv_file_magic_cmd=/usr/bin/file
+  case $host_cpu in
+  ia64*)
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
+    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+    ;;
+  hppa*64*)
+    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]']
+    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+    ;;
+  *)
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library'
+    lt_cv_file_magic_test_file=/usr/lib/libc.sl
+    ;;
+  esac
+  ;;
+
+interix[[3-9]]*)
+  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+  lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $LD in
+  *-32|*"-32 ") libmagic=32-bit;;
+  *-n32|*"-n32 ") libmagic=N32;;
+  *-64|*"-64 ") libmagic=64-bit;;
+  *) libmagic=never-match;;
+  esac
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+netbsd*)
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
+  fi
+  ;;
+
+newos6*)
+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
+  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_test_file=/usr/lib/libnls.so
+  ;;
+
+*nto* | *qnx*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+openbsd*)
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+  fi
+  ;;
+
+osf3* | osf4* | osf5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+rdos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+solaris*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv4 | sysv4.3*)
+  case $host_vendor in
+  motorola)
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
+    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+    ;;
+  ncr)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  sequent)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
+    ;;
+  sni)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
+    lt_cv_file_magic_test_file=/lib/libc.so
+    ;;
+  siemens)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  pc)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  esac
+  ;;
+
+tpf*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+esac
+])
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+_LT_DECL([], [deplibs_check_method], [1],
+    [Method to check whether dependent libraries are shared objects])
+_LT_DECL([], [file_magic_cmd], [1],
+    [Command to use when deplibs_check_method == "file_magic"])
+])# _LT_CHECK_MAGIC_METHOD
+
+
+# LT_PATH_NM
+# ----------
+# find the pathname to a BSD- or MS-compatible name lister
+AC_DEFUN([LT_PATH_NM],
+[AC_REQUIRE([AC_PROG_CC])dnl
+AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
+[if test -n "$NM"; then
+  # Let the user override the test.
+  lt_cv_path_NM="$NM"
+else
+  lt_nm_to_check="${ac_tool_prefix}nm"
+  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+    lt_nm_to_check="$lt_nm_to_check nm"
+  fi
+  for lt_tmp_nm in $lt_nm_to_check; do
+    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+      IFS="$lt_save_ifs"
+      test -z "$ac_dir" && ac_dir=.
+      tmp_nm="$ac_dir/$lt_tmp_nm"
+      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+	# Check to see if the nm accepts a BSD-compat flag.
+	# Adding the `sed 1q' prevents false positives on HP-UX, which says:
+	#   nm: unknown option "B" ignored
+	# Tru64's nm complains that /dev/null is an invalid object file
+	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+	*/dev/null* | *'Invalid file or object type'*)
+	  lt_cv_path_NM="$tmp_nm -B"
+	  break
+	  ;;
+	*)
+	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+	  */dev/null*)
+	    lt_cv_path_NM="$tmp_nm -p"
+	    break
+	    ;;
+	  *)
+	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+	    continue # so that we can try to find one that supports BSD flags
+	    ;;
+	  esac
+	  ;;
+	esac
+      fi
+    done
+    IFS="$lt_save_ifs"
+  done
+  : ${lt_cv_path_NM=no}
+fi])
+if test "$lt_cv_path_NM" != "no"; then
+  NM="$lt_cv_path_NM"
+else
+  # Didn't find any BSD compatible name lister, look for dumpbin.
+  if test -n "$DUMPBIN"; then :
+    # Let the user override the test.
+  else
+    AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
+    case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
+    *COFF*)
+      DUMPBIN="$DUMPBIN -symbols"
+      ;;
+    *)
+      DUMPBIN=:
+      ;;
+    esac
+  fi
+  AC_SUBST([DUMPBIN])
+  if test "$DUMPBIN" != ":"; then
+    NM="$DUMPBIN"
+  fi
+fi
+test -z "$NM" && NM=nm
+AC_SUBST([NM])
+_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
+
+AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
+  [lt_cv_nm_interface="BSD nm"
+  echo "int some_variable = 0;" > conftest.$ac_ext
+  (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
+  (eval "$ac_compile" 2>conftest.err)
+  cat conftest.err >&AS_MESSAGE_LOG_FD
+  (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
+  (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+  cat conftest.err >&AS_MESSAGE_LOG_FD
+  (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD)
+  cat conftest.out >&AS_MESSAGE_LOG_FD
+  if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+    lt_cv_nm_interface="MS dumpbin"
+  fi
+  rm -r -f conftest*])
+])# LT_PATH_NM
+
+# Old names:
+AU_ALIAS([AM_PROG_NM], [LT_PATH_NM])
+AU_ALIAS([AC_PROG_NM], [LT_PATH_NM])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_PROG_NM], [])
+dnl AC_DEFUN([AC_PROG_NM], [])
+
+
+# LT_LIB_M
+# --------
+# check for math library
+AC_DEFUN([LT_LIB_M],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case $host in
+*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
+  # These system don't have libm, or don't need it
+  ;;
+*-ncr-sysv4.3*)
+  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
+  AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
+  ;;
+*)
+  AC_CHECK_LIB(m, cos, LIBM="-lm")
+  ;;
+esac
+AC_SUBST([LIBM])
+])# LT_LIB_M
+
+# Old name:
+AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_CHECK_LIBM], [])
+
+
+# _LT_COMPILER_NO_RTTI([TAGNAME])
+# -------------------------------
+m4_defun([_LT_COMPILER_NO_RTTI],
+[m4_require([_LT_TAG_COMPILER])dnl
+
+_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+
+if test "$GCC" = yes; then
+  case $cc_basename in
+  nvcc*)
+    _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;;
+  *)
+    _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;;
+  esac
+
+  _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
+    lt_cv_prog_compiler_rtti_exceptions,
+    [-fno-rtti -fno-exceptions], [],
+    [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
+fi
+_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1],
+	[Compiler flag to turn off builtin functions])
+])# _LT_COMPILER_NO_RTTI
+
+
+# _LT_CMD_GLOBAL_SYMBOLS
+# ----------------------
+m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+AC_REQUIRE([LT_PATH_LD])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+AC_MSG_CHECKING([command to parse $NM output from $compiler object])
+AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
+[
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[[BCDEGRST]]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+  symcode='[[BCDT]]'
+  ;;
+cygwin* | mingw* | pw32* | cegcc*)
+  symcode='[[ABCDGISTW]]'
+  ;;
+hpux*)
+  if test "$host_cpu" = ia64; then
+    symcode='[[ABCDEGRST]]'
+  fi
+  ;;
+irix* | nonstopux*)
+  symcode='[[BCDEGRST]]'
+  ;;
+osf*)
+  symcode='[[BCDEGQRST]]'
+  ;;
+solaris*)
+  symcode='[[BDRT]]'
+  ;;
+sco3.2v5*)
+  symcode='[[DT]]'
+  ;;
+sysv4.2uw2*)
+  symcode='[[DT]]'
+  ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+  symcode='[[ABDT]]'
+  ;;
+sysv4)
+  symcode='[[DFNSTU]]'
+  ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+  symcode='[[ABCDGIRSTW]]' ;;
+esac
+
+# Transform an extracted symbol line into a proper C declaration.
+# Some systems (esp. on ia64) link data and code symbols differently,
+# so use this general approach.
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+  opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+  ;;
+esac
+
+# Try without a prefix underscore, then with it.
+for ac_symprfx in "" "_"; do
+
+  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+  symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+  # Write the raw and C identifiers.
+  if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+    # Fake it for dumpbin and say T for any non-static function
+    # and D for any global variable.
+    # Also find C++ and __fastcall symbols from MSVC++,
+    # which start with @ or ?.
+    lt_cv_sys_global_symbol_pipe="$AWK ['"\
+"     {last_section=section; section=\$ 3};"\
+"     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+"     \$ 0!~/External *\|/{next};"\
+"     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
+"     {if(hide[section]) next};"\
+"     {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
+"     {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
+"     s[1]~/^[@?]/{print s[1], s[1]; next};"\
+"     s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
+"     ' prfx=^$ac_symprfx]"
+  else
+    lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[	 ]]\($symcode$symcode*\)[[	 ]][[	 ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+  fi
+
+  # Check to see that the pipe works correctly.
+  pipe_works=no
+
+  rm -r -f conftest*
+  cat > conftest.$ac_ext <<_LT_EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(void);
+void nm_test_func(void){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+_LT_EOF
+
+  if AC_TRY_EVAL(ac_compile); then
+    # Now try to grab the symbols.
+    nlist=conftest.nm
+    if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
+      # Try sorting and uniquifying the output.
+      if sort "$nlist" | uniq > "$nlist"T; then
+	mv -f "$nlist"T "$nlist"
+      else
+	rm -f "$nlist"T
+      fi
+
+      # Make sure that we snagged all the symbols we need.
+      if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+	  cat <<_LT_EOF > conftest.$ac_ext
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+_LT_EOF
+	  # Now generate the symbol file.
+	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
+
+	  cat <<_LT_EOF >> conftest.$ac_ext
+
+/* The mapping between symbol names and symbols.  */
+const struct {
+  const char *name;
+  void       *address;
+}
+lt__PROGRAM__LTX_preloaded_symbols[[]] =
+{
+  { "@PROGRAM@", (void *) 0 },
+_LT_EOF
+	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+	  cat <<\_LT_EOF >> conftest.$ac_ext
+  {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+  return lt__PROGRAM__LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+_LT_EOF
+	  # Now try linking the two files.
+	  mv conftest.$ac_objext conftstm.$ac_objext
+	  lt_save_LIBS="$LIBS"
+	  lt_save_CFLAGS="$CFLAGS"
+	  LIBS="conftstm.$ac_objext"
+	  CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
+	  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
+	    pipe_works=yes
+	  fi
+	  LIBS="$lt_save_LIBS"
+	  CFLAGS="$lt_save_CFLAGS"
+	else
+	  echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
+	fi
+      else
+	echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
+      fi
+    else
+      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
+    fi
+  else
+    echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
+    cat conftest.$ac_ext >&5
+  fi
+  rm -rf conftest* conftst*
+
+  # Do not use the global_symbol_pipe unless it works.
+  if test "$pipe_works" = yes; then
+    break
+  else
+    lt_cv_sys_global_symbol_pipe=
+  fi
+done
+])
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+  lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+  AC_MSG_RESULT(failed)
+else
+  AC_MSG_RESULT(ok)
+fi
+
+_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
+    [Take the output of nm and produce a listing of raw symbols and C names])
+_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
+    [Transform the output of nm in a proper C declaration])
+_LT_DECL([global_symbol_to_c_name_address],
+    [lt_cv_sys_global_symbol_to_c_name_address], [1],
+    [Transform the output of nm in a C name address pair])
+_LT_DECL([global_symbol_to_c_name_address_lib_prefix],
+    [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
+    [Transform the output of nm in a C name address pair when lib prefix is needed])
+]) # _LT_CMD_GLOBAL_SYMBOLS
+
+
+# _LT_COMPILER_PIC([TAGNAME])
+# ---------------------------
+m4_defun([_LT_COMPILER_PIC],
+[m4_require([_LT_TAG_COMPILER])dnl
+_LT_TAGVAR(lt_prog_compiler_wl, $1)=
+_LT_TAGVAR(lt_prog_compiler_pic, $1)=
+_LT_TAGVAR(lt_prog_compiler_static, $1)=
+
+AC_MSG_CHECKING([for $compiler option to produce PIC])
+m4_if([$1], [CXX], [
+  # C++ specific cases for pic, static, wl, etc.
+  if test "$GXX" = yes; then
+    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+    case $host_os in
+    aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+        ;;
+      m68k)
+            # FIXME: we need at least 68020 code to build shared libraries, but
+            # adding the `-m68020' flag to GCC prevents building anything better,
+            # like `-m68040'.
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+        ;;
+      esac
+      ;;
+
+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+    mingw* | cygwin* | os2* | pw32* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+      # (--disable-auto-import) libraries
+      m4_if([$1], [GCJ], [],
+	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      ;;
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      ;;
+    *djgpp*)
+      # DJGPP does not support shared libraries at all
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+      ;;
+    haiku*)
+      # PIC is the default for Haiku.
+      # The "-static" flag exists, but is broken.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)=
+      ;;
+    interix[[3-9]]*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+      fi
+      ;;
+    hpux*)
+      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
+      # sets the default TLS model and affects inlining.
+      case $host_cpu in
+      hppa*64*)
+	;;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	;;
+      esac
+      ;;
+    *qnx* | *nto*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+      ;;
+    *)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+    esac
+  else
+    case $host_os in
+      aix[[4-9]]*)
+	# All AIX code is PIC.
+	if test "$host_cpu" = ia64; then
+	  # AIX 5 now supports IA64 processor
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	else
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+	fi
+	;;
+      chorus*)
+	case $cc_basename in
+	cxch68*)
+	  # Green Hills C++ Compiler
+	  # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+	  ;;
+	esac
+	;;
+      dgux*)
+	case $cc_basename in
+	  ec++*)
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    ;;
+	  ghcx*)
+	    # Green Hills C++ Compiler
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      freebsd* | dragonfly*)
+	# FreeBSD uses GNU C++
+	;;
+      hpux9* | hpux10* | hpux11*)
+	case $cc_basename in
+	  CC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+	    if test "$host_cpu" != ia64; then
+	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	    fi
+	    ;;
+	  aCC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+	    case $host_cpu in
+	    hppa*64*|ia64*)
+	      # +Z the default
+	      ;;
+	    *)
+	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	      ;;
+	    esac
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      interix*)
+	# This is c89, which is MS Visual C++ (no shared libs)
+	# Anyone wants to do a port?
+	;;
+      irix5* | irix6* | nonstopux*)
+	case $cc_basename in
+	  CC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    # CC pic flag -KPIC is the default.
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      linux* | k*bsd*-gnu | kopensolaris*-gnu)
+	case $cc_basename in
+	  KCC*)
+	    # KAI C++ Compiler
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	    ;;
+	  ecpc* )
+	    # old Intel C++ for x86_64 which still supported -KPIC.
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+	    ;;
+	  icpc* )
+	    # Intel C++, used to be incompatible with GCC.
+	    # ICC 10 doesn't accept -KPIC any more.
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+	    ;;
+	  pgCC* | pgcpp*)
+	    # Portland Group C++ compiler
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    ;;
+	  cxx*)
+	    # Compaq C++
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    ;;
+	  xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*)
+	    # IBM XL 8.0, 9.0 on PPC and BlueGene
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
+	    ;;
+	  *)
+	    case `$CC -V 2>&1 | sed 5q` in
+	    *Sun\ C*)
+	      # Sun C++ 5.9
+	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+	      ;;
+	    esac
+	    ;;
+	esac
+	;;
+      lynxos*)
+	;;
+      m88k*)
+	;;
+      mvs*)
+	case $cc_basename in
+	  cxx*)
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      netbsd*)
+	;;
+      *qnx* | *nto*)
+        # QNX uses GNU C++, but need to define -shared option too, otherwise
+        # it will coredump.
+        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+        ;;
+      osf3* | osf4* | osf5*)
+	case $cc_basename in
+	  KCC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+	    ;;
+	  RCC*)
+	    # Rational C++ 2.4.1
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  cxx*)
+	    # Digital/Compaq C++
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      psos*)
+	;;
+      solaris*)
+	case $cc_basename in
+	  CC* | sunCC*)
+	    # Sun C++ 4.2, 5.x and Centerline C++
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+	    ;;
+	  gcx*)
+	    # Green Hills C++ Compiler
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      sunos4*)
+	case $cc_basename in
+	  CC*)
+	    # Sun C++ 4.x
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    ;;
+	  lcc*)
+	    # Lucid
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+	case $cc_basename in
+	  CC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    ;;
+	esac
+	;;
+      tandem*)
+	case $cc_basename in
+	  NCC*)
+	    # NonStop-UX NCC 3.20
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      vxworks*)
+	;;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+	;;
+    esac
+  fi
+],
+[
+  if test "$GCC" = yes; then
+    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+    case $host_os in
+      aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+        ;;
+      m68k)
+            # FIXME: we need at least 68020 code to build shared libraries, but
+            # adding the `-m68020' flag to GCC prevents building anything better,
+            # like `-m68040'.
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+        ;;
+      esac
+      ;;
+
+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+
+    mingw* | cygwin* | pw32* | os2* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+      # (--disable-auto-import) libraries
+      m4_if([$1], [GCJ], [],
+	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      ;;
+
+    haiku*)
+      # PIC is the default for Haiku.
+      # The "-static" flag exists, but is broken.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)=
+      ;;
+
+    hpux*)
+      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
+      # sets the default TLS model and affects inlining.
+      case $host_cpu in
+      hppa*64*)
+	# +Z the default
+	;;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	;;
+      esac
+      ;;
+
+    interix[[3-9]]*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+
+    msdosdjgpp*)
+      # Just because we use GCC doesn't mean we suddenly get shared libraries
+      # on systems that don't support them.
+      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      enable_shared=no
+      ;;
+
+    *nto* | *qnx*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+      fi
+      ;;
+
+    *)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+    esac
+
+    case $cc_basename in
+    nvcc*) # Cuda Compiler Driver 2.2
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Xcompiler -fPIC'
+      ;;
+    esac
+  else
+    # PORTME Check for flag to pass linker flags through the system compiler.
+    case $host_os in
+    aix*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      else
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+      fi
+      ;;
+
+    mingw* | cygwin* | pw32* | os2* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      m4_if([$1], [GCJ], [],
+	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      ;;
+
+    hpux9* | hpux10* | hpux11*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	;;
+      esac
+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # PIC (with -KPIC) is the default.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    linux* | k*bsd*-gnu | kopensolaris*-gnu)
+      case $cc_basename in
+      # old Intel for x86_64 which still supported -KPIC.
+      ecc*)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+        ;;
+      # icc used to be incompatible with GCC.
+      # ICC 10 doesn't accept -KPIC any more.
+      icc* | ifort*)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+        ;;
+      # Lahey Fortran 8.1.
+      lf95*)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
+	;;
+      pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+        # Portland Group compilers (*not* the Pentium gcc compiler,
+	# which looks to be a dead project)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+        ;;
+      ccc*)
+        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+        # All Alpha code is PIC.
+        _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+        ;;
+      xl* | bgxl* | bgf* | mpixl*)
+	# IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
+	;;
+      *)
+	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ F* | *Sun*Fortran*)
+	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
+	  ;;
+	*Sun\ C*)
+	  # Sun C 5.9
+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	  ;;
+	esac
+	;;
+      esac
+      ;;
+
+    newsos6)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    *nto* | *qnx*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+      ;;
+
+    osf3* | osf4* | osf5*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # All OSF/1 code is PIC.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    rdos*)
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    solaris*)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      case $cc_basename in
+      f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
+      esac
+      ;;
+
+    sunos4*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sysv4 | sysv4.2uw2* | sysv4.3*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec ;then
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    unicos*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      ;;
+
+    uts4*)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    *)
+      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      ;;
+    esac
+  fi
+])
+case $host_os in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+    ;;
+  *)
+    _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
+    ;;
+esac
+AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
+_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
+	[How to pass a linker flag through the compiler])
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
+  _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works],
+    [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)],
+    [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [],
+    [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in
+     "" | " "*) ;;
+     *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;;
+     esac],
+    [_LT_TAGVAR(lt_prog_compiler_pic, $1)=
+     _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
+fi
+_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
+	[Additional compiler flags for building library objects])
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\"
+_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
+  _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1),
+  $lt_tmp_static_flag,
+  [],
+  [_LT_TAGVAR(lt_prog_compiler_static, $1)=])
+_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
+	[Compiler flag to prevent dynamic linking])
+])# _LT_COMPILER_PIC
+
+
+# _LT_LINKER_SHLIBS([TAGNAME])
+# ----------------------------
+# See if the linker supports building shared libraries.
+m4_defun([_LT_LINKER_SHLIBS],
+[AC_REQUIRE([LT_PATH_LD])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+m4_if([$1], [CXX], [
+  _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  case $host_os in
+  aix[[4-9]]*)
+    # If we're using GNU nm, then we don't want the "-C" option.
+    # -C means demangle to AIX nm, but means don't demangle with GNU nm
+    # Also, AIX nm treats weak defined symbols like other global defined
+    # symbols, whereas GNU nm marks them as "W".
+    if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+    else
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+    fi
+    ;;
+  pw32*)
+    _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
+  ;;
+  cygwin* | mingw* | cegcc*)
+    _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+  ;;
+  *)
+    _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  ;;
+  esac
+  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
+], [
+  runpath_var=
+  _LT_TAGVAR(allow_undefined_flag, $1)=
+  _LT_TAGVAR(always_export_symbols, $1)=no
+  _LT_TAGVAR(archive_cmds, $1)=
+  _LT_TAGVAR(archive_expsym_cmds, $1)=
+  _LT_TAGVAR(compiler_needs_object, $1)=no
+  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+  _LT_TAGVAR(export_dynamic_flag_spec, $1)=
+  _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  _LT_TAGVAR(hardcode_automatic, $1)=no
+  _LT_TAGVAR(hardcode_direct, $1)=no
+  _LT_TAGVAR(hardcode_direct_absolute, $1)=no
+  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+  _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+  _LT_TAGVAR(hardcode_libdir_separator, $1)=
+  _LT_TAGVAR(hardcode_minus_L, $1)=no
+  _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+  _LT_TAGVAR(inherit_rpath, $1)=no
+  _LT_TAGVAR(link_all_deplibs, $1)=unknown
+  _LT_TAGVAR(module_cmds, $1)=
+  _LT_TAGVAR(module_expsym_cmds, $1)=
+  _LT_TAGVAR(old_archive_from_new_cmds, $1)=
+  _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)=
+  _LT_TAGVAR(thread_safe_flag_spec, $1)=
+  _LT_TAGVAR(whole_archive_flag_spec, $1)=
+  # include_expsyms should be a list of space-separated symbols to be *always*
+  # included in the symbol list
+  _LT_TAGVAR(include_expsyms, $1)=
+  # exclude_expsyms can be an extended regexp of symbols to exclude
+  # it will be wrapped by ` (' and `)$', so one must not match beginning or
+  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+  # as well as any symbol that contains `d'.
+  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
+  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+  # platforms (ab)use it in PIC code, but their linkers get confused if
+  # the symbol is explicitly referenced.  Since portable code cannot
+  # rely on this symbol name, it's probably fine to never include it in
+  # preloaded symbol tables.
+  # Exclude shared library initialization/finalization symbols.
+dnl Note also adjust exclude_expsyms for C++ above.
+  extract_expsyms_cmds=
+
+  case $host_os in
+  cygwin* | mingw* | pw32* | cegcc*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  interix*)
+    # we just hope/assume this is gcc and not c89 (= MSVC++)
+    with_gnu_ld=yes
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+  esac
+
+  _LT_TAGVAR(ld_shlibs, $1)=yes
+
+  # On some targets, GNU ld is compatible enough with the native linker
+  # that we're better off using the native interface for both.
+  lt_use_gnu_ld_interface=no
+  if test "$with_gnu_ld" = yes; then
+    case $host_os in
+      aix*)
+	# The AIX port of GNU ld has always aspired to compatibility
+	# with the native linker.  However, as the warning in the GNU ld
+	# block says, versions before 2.19.5* couldn't really create working
+	# shared libraries, regardless of the interface used.
+	case `$LD -v 2>&1` in
+	  *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
+	  *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;;
+	  *\ \(GNU\ Binutils\)\ [[3-9]]*) ;;
+	  *)
+	    lt_use_gnu_ld_interface=yes
+	    ;;
+	esac
+	;;
+      *)
+	lt_use_gnu_ld_interface=yes
+	;;
+    esac
+  fi
+
+  if test "$lt_use_gnu_ld_interface" = yes; then
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    wlarc='${wl}'
+
+    # Set some defaults for GNU ld with shared library support. These
+    # are reset later if shared libraries are not supported. Putting them
+    # here allows them to be overridden if necessary.
+    runpath_var=LD_RUN_PATH
+    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
+      _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+    else
+      _LT_TAGVAR(whole_archive_flag_spec, $1)=
+    fi
+    supports_anon_versioning=no
+    case `$LD -v 2>&1` in
+      *GNU\ gold*) supports_anon_versioning=yes ;;
+      *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
+      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+      *\ 2.11.*) ;; # other 2.11 versions
+      *) supports_anon_versioning=yes ;;
+    esac
+
+    # See if GNU ld supports shared libraries.
+    case $host_os in
+    aix[[3-9]]*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+	_LT_TAGVAR(ld_shlibs, $1)=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.19, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to install binutils
+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
+*** You will then need to restart the configuration process.
+
+_LT_EOF
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+            _LT_TAGVAR(archive_expsym_cmds, $1)=''
+        ;;
+      m68k)
+            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+            _LT_TAGVAR(hardcode_minus_L, $1)=yes
+        ;;
+      esac
+      ;;
+
+    beos*)
+      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+	# Joseph Beckenbach  says some releases of gcc
+	# support --undefined.  This deserves some investigation.  FIXME
+	_LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    cygwin* | mingw* | pw32* | cegcc*)
+      # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+      # as there is no search path for DLLs.
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_TAGVAR(always_export_symbols, $1)=no
+      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
+
+      if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	# If the export-symbols file already is a .def file (1st line
+	# is EXPORTS), use it as is; otherwise, prepend...
+	_LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	  cp $export_symbols $output_objdir/$soname.def;
+	else
+	  echo EXPORTS > $output_objdir/$soname.def;
+	  cat $export_symbols >> $output_objdir/$soname.def;
+	fi~
+	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    haiku*)
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    interix[[3-9]]*)
+      _LT_TAGVAR(hardcode_direct, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+      # Instead, shared libraries are loaded at an image base (0x10000000 by
+      # default) and relocated if they conflict, which is a slow very memory
+      # consuming and fragmenting process.  To avoid this, we pick a random,
+      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      ;;
+
+    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+      tmp_diet=no
+      if test "$host_os" = linux-dietlibc; then
+	case $cc_basename in
+	  diet\ *) tmp_diet=yes;;	# linux-dietlibc with static linking (!diet-dyn)
+	esac
+      fi
+      if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
+	 && test "$tmp_diet" = no
+      then
+	tmp_addflag=
+	tmp_sharedflag='-shared'
+	case $cc_basename,$host_cpu in
+        pgcc*)				# Portland Group C compiler
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag'
+	  ;;
+	pgf77* | pgf90* | pgf95* | pgfortran*)
+					# Portland Group f77 and f90 compilers
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag -Mnomain' ;;
+	ecc*,ia64* | icc*,ia64*)	# Intel C compiler on ia64
+	  tmp_addflag=' -i_dynamic' ;;
+	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
+	  tmp_addflag=' -i_dynamic -nofor_main' ;;
+	ifc* | ifort*)			# Intel Fortran compiler
+	  tmp_addflag=' -nofor_main' ;;
+	lf95*)				# Lahey Fortran 8.1
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)=
+	  tmp_sharedflag='--shared' ;;
+	xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+	  tmp_sharedflag='-qmkshrobj'
+	  tmp_addflag= ;;
+	nvcc*)	# Cuda Compiler Driver 2.2
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+	  _LT_TAGVAR(compiler_needs_object, $1)=yes
+	  ;;
+	esac
+	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ C*)			# Sun C 5.9
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+	  _LT_TAGVAR(compiler_needs_object, $1)=yes
+	  tmp_sharedflag='-G' ;;
+	*Sun\ F*)			# Sun Fortran 8.3
+	  tmp_sharedflag='-G' ;;
+	esac
+	_LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+        if test "x$supports_anon_versioning" = xyes; then
+          _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+	    cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+	    echo "local: *; };" >> $output_objdir/$libname.ver~
+	    $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+        fi
+
+	case $cc_basename in
+	xlf* | bgf* | bgxlf* | mpixlf*)
+	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+	  _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
+	  if test "x$supports_anon_versioning" = xyes; then
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+	      cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+	      echo "local: *; };" >> $output_objdir/$libname.ver~
+	      $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+	  fi
+	  ;;
+	esac
+      else
+        _LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+	wlarc=
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      fi
+      ;;
+
+    solaris*)
+      if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
+	_LT_TAGVAR(ld_shlibs, $1)=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+      elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+      case `$LD -v 2>&1` in
+        *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
+	_LT_TAGVAR(ld_shlibs, $1)=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+	;;
+	*)
+	  # For security reasons, it is highly recommended that you always
+	  # use absolute paths for naming shared libraries, and exclude the
+	  # DT_RUNPATH tag from executables and libraries.  But doing so
+	  # requires that you compile everything twice, which is a pain.
+	  if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	  else
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	  fi
+	;;
+      esac
+      ;;
+
+    sunos4*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      wlarc=
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *)
+      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+    esac
+
+    if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then
+      runpath_var=
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)=
+      _LT_TAGVAR(whole_archive_flag_spec, $1)=
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case $host_os in
+    aix3*)
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_TAGVAR(always_export_symbols, $1)=yes
+      _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+	# Neither direct hardcoding nor static linking is supported with a
+	# broken collect2.
+	_LT_TAGVAR(hardcode_direct, $1)=unsupported
+      fi
+      ;;
+
+    aix[[4-9]]*)
+      if test "$host_cpu" = ia64; then
+	# On IA64, the linker does run time linking by default, so we don't
+	# have to do anything special.
+	aix_use_runtimelinking=no
+	exp_sym_flag='-Bexport'
+	no_entry_flag=""
+      else
+	# If we're using GNU nm, then we don't want the "-C" option.
+	# -C means demangle to AIX nm, but means don't demangle with GNU nm
+	# Also, AIX nm treats weak defined symbols like other global
+	# defined symbols, whereas GNU nm marks them as "W".
+	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+	else
+	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+	fi
+	aix_use_runtimelinking=no
+
+	# Test if we are trying to use run time linking or normal
+	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
+	# need to do runtime linking.
+	case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
+	  for ld_flag in $LDFLAGS; do
+	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+	    aix_use_runtimelinking=yes
+	    break
+	  fi
+	  done
+	  ;;
+	esac
+
+	exp_sym_flag='-bexport'
+	no_entry_flag='-bnoentry'
+      fi
+
+      # When large executables or shared objects are built, AIX ld can
+      # have problems creating the table of contents.  If linking a library
+      # or program results in "error TOC overflow" add -mminimal-toc to
+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+      _LT_TAGVAR(archive_cmds, $1)=''
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
+
+      if test "$GCC" = yes; then
+	case $host_os in aix4.[[012]]|aix4.[[012]].*)
+	# We only want to do this on AIX 4.2 and lower, the check
+	# below for broken collect2 doesn't work under 4.3+
+	  collect2name=`${CC} -print-prog-name=collect2`
+	  if test -f "$collect2name" &&
+	   strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+	  then
+	  # We have reworked collect2
+	  :
+	  else
+	  # We have old collect2
+	  _LT_TAGVAR(hardcode_direct, $1)=unsupported
+	  # It fails to find uninstalled libraries when the uninstalled
+	  # path is not listed in the libpath.  Setting hardcode_minus_L
+	  # to unsupported forces relinking
+	  _LT_TAGVAR(hardcode_minus_L, $1)=yes
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+	  _LT_TAGVAR(hardcode_libdir_separator, $1)=
+	  fi
+	  ;;
+	esac
+	shared_flag='-shared'
+	if test "$aix_use_runtimelinking" = yes; then
+	  shared_flag="$shared_flag "'${wl}-G'
+	fi
+      else
+	# not using gcc
+	if test "$host_cpu" = ia64; then
+	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+	# chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+	else
+	  if test "$aix_use_runtimelinking" = yes; then
+	    shared_flag='${wl}-G'
+	  else
+	    shared_flag='${wl}-bM:SRE'
+	  fi
+	fi
+      fi
+
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
+      # It seems that -bexpall does not export symbols beginning with
+      # underscore (_), so it is better to generate a list of symbols to export.
+      _LT_TAGVAR(always_export_symbols, $1)=yes
+      if test "$aix_use_runtimelinking" = yes; then
+	# Warning - without using the other runtime loading flags (-brtl),
+	# -berok will link without error, but may produce a broken library.
+	_LT_TAGVAR(allow_undefined_flag, $1)='-berok'
+        # Determine the default libpath from the value encoded in an
+        # empty executable.
+        _LT_SYS_MODULE_PATH_AIX
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+      else
+	if test "$host_cpu" = ia64; then
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+	  _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+	  _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+	else
+	 # Determine the default libpath from the value encoded in an
+	 # empty executable.
+	 _LT_SYS_MODULE_PATH_AIX
+	 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+	  # Warning - without using the other run time loading flags,
+	  # -berok will link without error, but may produce a broken library.
+	  _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+	  _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+	  if test "$with_gnu_ld" = yes; then
+	    # We only use this code for GNU lds that support --whole-archive.
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+	  else
+	    # Exported symbols can be pulled into shared objects from archives
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+	  fi
+	  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+	  # This is similar to how AIX traditionally builds its shared libraries.
+	  _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	fi
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+            _LT_TAGVAR(archive_expsym_cmds, $1)=''
+        ;;
+      m68k)
+            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+            _LT_TAGVAR(hardcode_minus_L, $1)=yes
+        ;;
+      esac
+      ;;
+
+    bsdi[[45]]*)
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
+      ;;
+
+    cygwin* | mingw* | pw32* | cegcc*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      # Tell ltmain to make .lib files, not .a files.
+      libext=lib
+      # Tell ltmain to make .dll files, not .so files.
+      shrext_cmds=".dll"
+      # FIXME: Setting linknames here is a bad hack.
+      _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+      # The linker will automatically build a .lib file if we build a DLL.
+      _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+      # FIXME: Should let the user specify the lib program.
+      _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
+      _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`'
+      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      ;;
+
+    darwin* | rhapsody*)
+      _LT_DARWIN_LINKER_FEATURES($1)
+      ;;
+
+    dgux*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    freebsd1*)
+      _LT_TAGVAR(ld_shlibs, $1)=no
+      ;;
+
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # does not break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+    freebsd2*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+    freebsd* | dragonfly*)
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    hpux9*)
+      if test "$GCC" = yes; then
+	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      ;;
+
+    hpux10*)
+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      if test "$with_gnu_ld" = no; then
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
+	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
+	_LT_TAGVAR(hardcode_direct, $1)=yes
+	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+	# hardcode_minus_L: Not really in the search PATH,
+	# but as the default location of the library.
+	_LT_TAGVAR(hardcode_minus_L, $1)=yes
+      fi
+      ;;
+
+    hpux11*)
+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+	case $host_cpu in
+	hppa*64*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      else
+	case $host_cpu in
+	hppa*64*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	m4_if($1, [], [
+	  # Older versions of the 11.00 compiler do not understand -b yet
+	  # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
+	  _LT_LINKER_OPTION([if $CC understands -b],
+	    _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b],
+	    [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'],
+	    [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])],
+	  [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'])
+	  ;;
+	esac
+      fi
+      if test "$with_gnu_ld" = no; then
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	case $host_cpu in
+	hppa*64*|ia64*)
+	  _LT_TAGVAR(hardcode_direct, $1)=no
+	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	  ;;
+	*)
+	  _LT_TAGVAR(hardcode_direct, $1)=yes
+	  _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  _LT_TAGVAR(hardcode_minus_L, $1)=yes
+	  ;;
+	esac
+      fi
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      if test "$GCC" = yes; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	# Try to use the -exported_symbol ld option, if it does not
+	# work, assume that -exports_file does not work either and
+	# implicitly export all symbols.
+        save_LDFLAGS="$LDFLAGS"
+        LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+        AC_LINK_IFELSE(int foo(void) {},
+          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+        )
+        LDFLAGS="$save_LDFLAGS"
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+      fi
+      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_TAGVAR(inherit_rpath, $1)=yes
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    newsos6)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *nto* | *qnx*)
+      ;;
+
+    openbsd*)
+      if test -f /usr/libexec/ld.so; then
+	_LT_TAGVAR(hardcode_direct, $1)=yes
+	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+	if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+	else
+	  case $host_os in
+	   openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
+	     _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+	     _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	     ;;
+	   *)
+	     _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	     _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	     ;;
+	  esac
+	fi
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    os2*)
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      ;;
+
+    osf3*)
+      if test "$GCC" = yes; then
+	_LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+      fi
+      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      ;;
+
+    osf4* | osf5*)	# as osf3* with the addition of -msym flag
+      if test "$GCC" = yes; then
+	_LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      else
+	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
+	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+
+	# Both c and cxx compiler support -rpath directly
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+      fi
+      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      ;;
+
+    solaris*)
+      _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
+      if test "$GCC" = yes; then
+	wlarc='${wl}'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+	  $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+      else
+	case `$CC -V 2>&1` in
+	*"Compilers 5.0"*)
+	  wlarc=''
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+	  $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+	  ;;
+	*)
+	  wlarc='${wl}'
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+	  $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+	  ;;
+	esac
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      case $host_os in
+      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+      *)
+	# The compiler driver will combine and reorder linker options,
+	# but understands `-z linker_flag'.  GCC discards it without `$wl',
+	# but is careful enough not to reorder.
+	# Supported since Solaris 2.6 (maybe 2.5.1?)
+	if test "$GCC" = yes; then
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+	else
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
+	fi
+	;;
+      esac
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    sunos4*)
+      if test "x$host_vendor" = xsequent; then
+	# Use $CC to link under sequent, because it throws in some extra .o
+	# files that make .init and .fini sections work.
+	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv4)
+      case $host_vendor in
+	sni)
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true???
+	;;
+	siemens)
+	  ## LD is ld it makes a PLAMLIB
+	  ## CC just makes a GrossModule.
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
+	  _LT_TAGVAR(hardcode_direct, $1)=no
+        ;;
+	motorola)
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
+	;;
+      esac
+      runpath_var='LD_RUN_PATH'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv4.3*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	runpath_var=LD_RUN_PATH
+	hardcode_runpath_var=yes
+	_LT_TAGVAR(ld_shlibs, $1)=yes
+      fi
+      ;;
+
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6*)
+      # Note: We can NOT use -z defs as we might desire, because we do not
+      # link with -lc, and that would cause any symbols used from libc to
+      # always be unresolved, which means just about no library would
+      # ever link correctly.  If we're not using GNU ld we use -z text
+      # though, which does catch some bad symbols but isn't as heavy-handed
+      # as -z defs.
+      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+      _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    uts4*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *)
+      _LT_TAGVAR(ld_shlibs, $1)=no
+      ;;
+    esac
+
+    if test x$host_vendor = xsni; then
+      case $host in
+      sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym'
+	;;
+      esac
+    fi
+  fi
+])
+AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
+test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld
+
+_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl
+_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl
+_LT_DECL([], [extract_expsyms_cmds], [2],
+    [The commands to extract the exported symbol list from a shared archive])
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in
+x|xyes)
+  # Assume -lc should be added
+  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $_LT_TAGVAR(archive_cmds, $1) in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      AC_CACHE_CHECK([whether -lc should be explicitly linked in],
+	[lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1),
+	[$RM -r conftest*
+	echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+	if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
+	  soname=conftest
+	  lib=conftest
+	  libobjs=conftest.$ac_objext
+	  deplibs=
+	  wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
+	  pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
+	  compiler_flags=-v
+	  linker_flags=-v
+	  verstring=
+	  output_objdir=.
+	  libname=conftest
+	  lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
+	  _LT_TAGVAR(allow_undefined_flag, $1)=
+	  if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
+	  then
+	    lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+	  else
+	    lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+	  fi
+	  _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
+	else
+	  cat conftest.err 1>&5
+	fi
+	$RM -r conftest*
+	])
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)
+      ;;
+    esac
+  fi
+  ;;
+esac
+
+_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0],
+    [Whether or not to add -lc for building shared libraries])
+_LT_TAGDECL([allow_libtool_libs_with_static_runtimes],
+    [enable_shared_with_static_runtimes], [0],
+    [Whether or not to disallow shared libs when runtime libs are static])
+_LT_TAGDECL([], [export_dynamic_flag_spec], [1],
+    [Compiler flag to allow reflexive dlopens])
+_LT_TAGDECL([], [whole_archive_flag_spec], [1],
+    [Compiler flag to generate shared objects directly from archives])
+_LT_TAGDECL([], [compiler_needs_object], [1],
+    [Whether the compiler copes with passing no objects directly])
+_LT_TAGDECL([], [old_archive_from_new_cmds], [2],
+    [Create an old-style archive from a shared archive])
+_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2],
+    [Create a temporary old-style archive to link instead of a shared archive])
+_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive])
+_LT_TAGDECL([], [archive_expsym_cmds], [2])
+_LT_TAGDECL([], [module_cmds], [2],
+    [Commands used to build a loadable module if different from building
+    a shared archive.])
+_LT_TAGDECL([], [module_expsym_cmds], [2])
+_LT_TAGDECL([], [with_gnu_ld], [1],
+    [Whether we are building with GNU ld or not])
+_LT_TAGDECL([], [allow_undefined_flag], [1],
+    [Flag that allows shared libraries with undefined symbols to be built])
+_LT_TAGDECL([], [no_undefined_flag], [1],
+    [Flag that enforces no undefined symbols])
+_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
+    [Flag to hardcode $libdir into a binary during linking.
+    This must work even if $libdir does not exist])
+_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1],
+    [[If ld is used when linking, flag to hardcode $libdir into a binary
+    during linking.  This must work even if $libdir does not exist]])
+_LT_TAGDECL([], [hardcode_libdir_separator], [1],
+    [Whether we need a single "-rpath" flag with a separated argument])
+_LT_TAGDECL([], [hardcode_direct], [0],
+    [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+    DIR into the resulting binary])
+_LT_TAGDECL([], [hardcode_direct_absolute], [0],
+    [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+    DIR into the resulting binary and the resulting library dependency is
+    "absolute", i.e impossible to change by setting ${shlibpath_var} if the
+    library is relocated])
+_LT_TAGDECL([], [hardcode_minus_L], [0],
+    [Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+    into the resulting binary])
+_LT_TAGDECL([], [hardcode_shlibpath_var], [0],
+    [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+    into the resulting binary])
+_LT_TAGDECL([], [hardcode_automatic], [0],
+    [Set to "yes" if building a shared library automatically hardcodes DIR
+    into the library and all subsequent libraries and executables linked
+    against it])
+_LT_TAGDECL([], [inherit_rpath], [0],
+    [Set to yes if linker adds runtime paths of dependent libraries
+    to runtime path list])
+_LT_TAGDECL([], [link_all_deplibs], [0],
+    [Whether libtool must link a program against all its dependency libraries])
+_LT_TAGDECL([], [fix_srcfile_path], [1],
+    [Fix the shell variable $srcfile for the compiler])
+_LT_TAGDECL([], [always_export_symbols], [0],
+    [Set to "yes" if exported symbols are required])
+_LT_TAGDECL([], [export_symbols_cmds], [2],
+    [The commands to list exported symbols])
+_LT_TAGDECL([], [exclude_expsyms], [1],
+    [Symbols that should not be listed in the preloaded symbols])
+_LT_TAGDECL([], [include_expsyms], [1],
+    [Symbols that must always be exported])
+_LT_TAGDECL([], [prelink_cmds], [2],
+    [Commands necessary for linking programs (against libraries) with templates])
+_LT_TAGDECL([], [file_list_spec], [1],
+    [Specify filename containing input files])
+dnl FIXME: Not yet implemented
+dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1],
+dnl    [Compiler flag to generate thread safe objects])
+])# _LT_LINKER_SHLIBS
+
+
+# _LT_LANG_C_CONFIG([TAG])
+# ------------------------
+# Ensure that the configuration variables for a C compiler are suitably
+# defined.  These variables are subsequently used by _LT_CONFIG to write
+# the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_C_CONFIG],
+[m4_require([_LT_DECL_EGREP])dnl
+lt_save_CC="$CC"
+AC_LANG_PUSH(C)
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+_LT_TAG_COMPILER
+# Save the default compiler, since it gets overwritten when the other
+# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
+compiler_DEFAULT=$CC
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+  _LT_COMPILER_NO_RTTI($1)
+  _LT_COMPILER_PIC($1)
+  _LT_COMPILER_C_O($1)
+  _LT_COMPILER_FILE_LOCKS($1)
+  _LT_LINKER_SHLIBS($1)
+  _LT_SYS_DYNAMIC_LINKER($1)
+  _LT_LINKER_HARDCODE_LIBPATH($1)
+  LT_SYS_DLOPEN_SELF
+  _LT_CMD_STRIPLIB
+
+  # Report which library types will actually be built
+  AC_MSG_CHECKING([if libtool supports shared libraries])
+  AC_MSG_RESULT([$can_build_shared])
+
+  AC_MSG_CHECKING([whether to build shared libraries])
+  test "$can_build_shared" = "no" && enable_shared=no
+
+  # On AIX, shared libraries and static libraries use the same namespace, and
+  # are all built from PIC.
+  case $host_os in
+  aix3*)
+    test "$enable_shared" = yes && enable_static=no
+    if test -n "$RANLIB"; then
+      archive_cmds="$archive_cmds~\$RANLIB \$lib"
+      postinstall_cmds='$RANLIB $lib'
+    fi
+    ;;
+
+  aix[[4-9]]*)
+    if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+      test "$enable_shared" = yes && enable_static=no
+    fi
+    ;;
+  esac
+  AC_MSG_RESULT([$enable_shared])
+
+  AC_MSG_CHECKING([whether to build static libraries])
+  # Make sure either enable_shared or enable_static is yes.
+  test "$enable_shared" = yes || enable_static=yes
+  AC_MSG_RESULT([$enable_static])
+
+  _LT_CONFIG($1)
+fi
+AC_LANG_POP
+CC="$lt_save_CC"
+])# _LT_LANG_C_CONFIG
+
+
+# _LT_LANG_CXX_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for a C++ compiler are suitably
+# defined.  These variables are subsequently used by _LT_CONFIG to write
+# the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_CXX_CONFIG],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_EGREP])dnl
+if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+    (test "X$CXX" != "Xg++"))) ; then
+  AC_PROG_CXXCPP
+else
+  _lt_caught_CXX_error=yes
+fi
+
+AC_LANG_PUSH(C++)
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(compiler_needs_object, $1)=no
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for C++ test sources.
+ac_ext=cpp
+
+# Object file extension for compiled C++ test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the CXX compiler isn't working.  Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test "$_lt_caught_CXX_error" != yes; then
+  # Code to be used in simple compile tests
+  lt_simple_compile_test_code="int some_variable = 0;"
+
+  # Code to be used in simple link tests
+  lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
+
+  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+  _LT_TAG_COMPILER
+
+  # save warnings/boilerplate of simple test code
+  _LT_COMPILER_BOILERPLATE
+  _LT_LINKER_BOILERPLATE
+
+  # Allow CC to be a program name with arguments.
+  lt_save_CC=$CC
+  lt_save_LD=$LD
+  lt_save_GCC=$GCC
+  GCC=$GXX
+  lt_save_with_gnu_ld=$with_gnu_ld
+  lt_save_path_LD=$lt_cv_path_LD
+  if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+    lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+  else
+    $as_unset lt_cv_prog_gnu_ld
+  fi
+  if test -n "${lt_cv_path_LDCXX+set}"; then
+    lt_cv_path_LD=$lt_cv_path_LDCXX
+  else
+    $as_unset lt_cv_path_LD
+  fi
+  test -z "${LDCXX+set}" || LD=$LDCXX
+  CC=${CXX-"c++"}
+  compiler=$CC
+  _LT_TAGVAR(compiler, $1)=$CC
+  _LT_CC_BASENAME([$compiler])
+
+  if test -n "$compiler"; then
+    # We don't want -fno-exception when compiling C++ code, so set the
+    # no_builtin_flag separately
+    if test "$GXX" = yes; then
+      _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+    else
+      _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+    fi
+
+    if test "$GXX" = yes; then
+      # Set up default GNU C++ configuration
+
+      LT_PATH_LD
+
+      # Check if GNU C++ uses GNU ld as the underlying linker, since the
+      # archiving commands below assume that GNU ld is being used.
+      if test "$with_gnu_ld" = yes; then
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+        # If archive_cmds runs LD, not CC, wlarc should be empty
+        # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+        #     investigate it a little bit more. (MM)
+        wlarc='${wl}'
+
+        # ancient GNU ld didn't support --whole-archive et. al.
+        if eval "`$CC -print-prog-name=ld` --help 2>&1" |
+	  $GREP 'no-whole-archive' > /dev/null; then
+          _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+        else
+          _LT_TAGVAR(whole_archive_flag_spec, $1)=
+        fi
+      else
+        with_gnu_ld=no
+        wlarc=
+
+        # A generic and very simple default shared library creation
+        # command for GNU C++ for the case where it uses the native
+        # linker, instead of GNU ld.  If possible, this setting should
+        # overridden to take advantage of the native linker features on
+        # the platform it is being used on.
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+      fi
+
+      # Commands to make compiler produce verbose output that lists
+      # what "hidden" libraries, object files and flags are used when
+      # linking a shared library.
+      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+
+    else
+      GXX=no
+      with_gnu_ld=no
+      wlarc=
+    fi
+
+    # PORTME: fill in a description of your system's C++ link characteristics
+    AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+    _LT_TAGVAR(ld_shlibs, $1)=yes
+    case $host_os in
+      aix3*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+      aix[[4-9]]*)
+        if test "$host_cpu" = ia64; then
+          # On IA64, the linker does run time linking by default, so we don't
+          # have to do anything special.
+          aix_use_runtimelinking=no
+          exp_sym_flag='-Bexport'
+          no_entry_flag=""
+        else
+          aix_use_runtimelinking=no
+
+          # Test if we are trying to use run time linking or normal
+          # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+          # need to do runtime linking.
+          case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
+	    for ld_flag in $LDFLAGS; do
+	      case $ld_flag in
+	      *-brtl*)
+	        aix_use_runtimelinking=yes
+	        break
+	        ;;
+	      esac
+	    done
+	    ;;
+          esac
+
+          exp_sym_flag='-bexport'
+          no_entry_flag='-bnoentry'
+        fi
+
+        # When large executables or shared objects are built, AIX ld can
+        # have problems creating the table of contents.  If linking a library
+        # or program results in "error TOC overflow" add -mminimal-toc to
+        # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+        # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+        _LT_TAGVAR(archive_cmds, $1)=''
+        _LT_TAGVAR(hardcode_direct, $1)=yes
+        _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+        _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+        _LT_TAGVAR(link_all_deplibs, $1)=yes
+        _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
+
+        if test "$GXX" = yes; then
+          case $host_os in aix4.[[012]]|aix4.[[012]].*)
+          # We only want to do this on AIX 4.2 and lower, the check
+          # below for broken collect2 doesn't work under 4.3+
+	  collect2name=`${CC} -print-prog-name=collect2`
+	  if test -f "$collect2name" &&
+	     strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+	  then
+	    # We have reworked collect2
+	    :
+	  else
+	    # We have old collect2
+	    _LT_TAGVAR(hardcode_direct, $1)=unsupported
+	    # It fails to find uninstalled libraries when the uninstalled
+	    # path is not listed in the libpath.  Setting hardcode_minus_L
+	    # to unsupported forces relinking
+	    _LT_TAGVAR(hardcode_minus_L, $1)=yes
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+	    _LT_TAGVAR(hardcode_libdir_separator, $1)=
+	  fi
+          esac
+          shared_flag='-shared'
+	  if test "$aix_use_runtimelinking" = yes; then
+	    shared_flag="$shared_flag "'${wl}-G'
+	  fi
+        else
+          # not using gcc
+          if test "$host_cpu" = ia64; then
+	  # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+	  # chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+          else
+	    if test "$aix_use_runtimelinking" = yes; then
+	      shared_flag='${wl}-G'
+	    else
+	      shared_flag='${wl}-bM:SRE'
+	    fi
+          fi
+        fi
+
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
+        # It seems that -bexpall does not export symbols beginning with
+        # underscore (_), so it is better to generate a list of symbols to
+	# export.
+        _LT_TAGVAR(always_export_symbols, $1)=yes
+        if test "$aix_use_runtimelinking" = yes; then
+          # Warning - without using the other runtime loading flags (-brtl),
+          # -berok will link without error, but may produce a broken library.
+          _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
+          # Determine the default libpath from the value encoded in an empty
+          # executable.
+          _LT_SYS_MODULE_PATH_AIX
+          _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+
+          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+        else
+          if test "$host_cpu" = ia64; then
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+	    _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+	    _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+          else
+	    # Determine the default libpath from the value encoded in an
+	    # empty executable.
+	    _LT_SYS_MODULE_PATH_AIX
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+	    # Warning - without using the other run time loading flags,
+	    # -berok will link without error, but may produce a broken library.
+	    _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+	    _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+	    if test "$with_gnu_ld" = yes; then
+	      # We only use this code for GNU lds that support --whole-archive.
+	      _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+	    else
+	      # Exported symbols can be pulled into shared objects from archives
+	      _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+	    fi
+	    _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+	    # This is similar to how AIX traditionally builds its shared
+	    # libraries.
+	    _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+          fi
+        fi
+        ;;
+
+      beos*)
+	if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+	  # Joseph Beckenbach  says some releases of gcc
+	  # support --undefined.  This deserves some investigation.  FIXME
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	else
+	  _LT_TAGVAR(ld_shlibs, $1)=no
+	fi
+	;;
+
+      chorus*)
+        case $cc_basename in
+          *)
+	  # FIXME: insert proper C++ library support
+	  _LT_TAGVAR(ld_shlibs, $1)=no
+	  ;;
+        esac
+        ;;
+
+      cygwin* | mingw* | pw32* | cegcc*)
+        # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+        # as there is no search path for DLLs.
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
+        _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+        _LT_TAGVAR(always_export_symbols, $1)=no
+        _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+
+        if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+          # If the export-symbols file already is a .def file (1st line
+          # is EXPORTS), use it as is; otherwise, prepend...
+          _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	    cp $export_symbols $output_objdir/$soname.def;
+          else
+	    echo EXPORTS > $output_objdir/$soname.def;
+	    cat $export_symbols >> $output_objdir/$soname.def;
+          fi~
+          $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+        else
+          _LT_TAGVAR(ld_shlibs, $1)=no
+        fi
+        ;;
+      darwin* | rhapsody*)
+        _LT_DARWIN_LINKER_FEATURES($1)
+	;;
+
+      dgux*)
+        case $cc_basename in
+          ec++*)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          ghcx*)
+	    # Green Hills C++ Compiler
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          *)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+        esac
+        ;;
+
+      freebsd[[12]]*)
+        # C++ shared libraries reported to be fairly broken before
+	# switch to ELF
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+
+      freebsd-elf*)
+        _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+        ;;
+
+      freebsd* | dragonfly*)
+        # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+        # conventions
+        _LT_TAGVAR(ld_shlibs, $1)=yes
+        ;;
+
+      gnu*)
+        ;;
+
+      haiku*)
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        _LT_TAGVAR(link_all_deplibs, $1)=yes
+        ;;
+
+      hpux9*)
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+        _LT_TAGVAR(hardcode_direct, $1)=yes
+        _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+				             # but as the default
+				             # location of the library.
+
+        case $cc_basename in
+          CC*)
+            # FIXME: insert proper C++ library support
+            _LT_TAGVAR(ld_shlibs, $1)=no
+            ;;
+          aCC*)
+            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+            # Commands to make compiler produce verbose output that lists
+            # what "hidden" libraries, object files and flags are used when
+            # linking a shared library.
+            #
+            # There doesn't appear to be a way to prevent this compiler from
+            # explicitly linking system object files so we need to strip them
+            # from the output so that they don't get included in the library
+            # dependencies.
+            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+            ;;
+          *)
+            if test "$GXX" = yes; then
+              _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+            else
+              # FIXME: insert proper C++ library support
+              _LT_TAGVAR(ld_shlibs, $1)=no
+            fi
+            ;;
+        esac
+        ;;
+
+      hpux10*|hpux11*)
+        if test $with_gnu_ld = no; then
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	  _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+          case $host_cpu in
+            hppa*64*|ia64*)
+              ;;
+            *)
+	      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+              ;;
+          esac
+        fi
+        case $host_cpu in
+          hppa*64*|ia64*)
+            _LT_TAGVAR(hardcode_direct, $1)=no
+            _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+            ;;
+          *)
+            _LT_TAGVAR(hardcode_direct, $1)=yes
+            _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+            _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+					         # but as the default
+					         # location of the library.
+            ;;
+        esac
+
+        case $cc_basename in
+          CC*)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          aCC*)
+	    case $host_cpu in
+	      hppa*64*)
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	        ;;
+	      ia64*)
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	        ;;
+	      *)
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	        ;;
+	    esac
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    #
+	    # There doesn't appear to be a way to prevent this compiler from
+	    # explicitly linking system object files so we need to strip them
+	    # from the output so that they don't get included in the library
+	    # dependencies.
+	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+	    ;;
+          *)
+	    if test "$GXX" = yes; then
+	      if test $with_gnu_ld = no; then
+	        case $host_cpu in
+	          hppa*64*)
+	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            ;;
+	          ia64*)
+	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            ;;
+	          *)
+	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            ;;
+	        esac
+	      fi
+	    else
+	      # FIXME: insert proper C++ library support
+	      _LT_TAGVAR(ld_shlibs, $1)=no
+	    fi
+	    ;;
+        esac
+        ;;
+
+      interix[[3-9]]*)
+	_LT_TAGVAR(hardcode_direct, $1)=no
+	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+	# Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+	# Instead, shared libraries are loaded at an image base (0x10000000 by
+	# default) and relocated if they conflict, which is a slow very memory
+	# consuming and fragmenting process.  To avoid this, we pick a random,
+	# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+	# time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+	;;
+      irix5* | irix6*)
+        case $cc_basename in
+          CC*)
+	    # SGI C++
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+
+	    # Archives containing C++ object files must be created using
+	    # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
+	    # necessary to make sure instantiated templates are included
+	    # in the archive.
+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
+	    ;;
+          *)
+	    if test "$GXX" = yes; then
+	      if test "$with_gnu_ld" = no; then
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	      else
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
+	      fi
+	    fi
+	    _LT_TAGVAR(link_all_deplibs, $1)=yes
+	    ;;
+        esac
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+        _LT_TAGVAR(inherit_rpath, $1)=yes
+        ;;
+
+      linux* | k*bsd*-gnu | kopensolaris*-gnu)
+        case $cc_basename in
+          KCC*)
+	    # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	    # KCC will only create a shared library if the output file
+	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
+	    # to its proper name (with version) after linking.
+	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    #
+	    # There doesn't appear to be a way to prevent this compiler from
+	    # explicitly linking system object files so we need to strip them
+	    # from the output so that they don't get included in the library
+	    # dependencies.
+	    output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+	    # Archives containing C++ object files must be created using
+	    # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+	    ;;
+	  icpc* | ecpc* )
+	    # Intel C++
+	    with_gnu_ld=yes
+	    # version 8.0 and above of icpc choke on multiply defined symbols
+	    # if we add $predep_objects and $postdep_objects, however 7.1 and
+	    # earlier do not add the objects themselves.
+	    case `$CC -V 2>&1` in
+	      *"Version 7."*)
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+		_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+		;;
+	      *)  # Version 8.0 or newer
+	        tmp_idyn=
+	        case $host_cpu in
+		  ia64*) tmp_idyn=' -i_dynamic';;
+		esac
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+		_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+		;;
+	    esac
+	    _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+	    ;;
+          pgCC* | pgcpp*)
+            # Portland Group C++ compiler
+	    case `$CC -V` in
+	    *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*)
+	      _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
+		rm -rf $tpldir~
+		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+		compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
+	      _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
+		rm -rf $tpldir~
+		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
+		$RANLIB $oldlib'
+	      _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
+		rm -rf $tpldir~
+		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+	      _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
+		rm -rf $tpldir~
+		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+	      ;;
+	    *) # Version 6 and above use weak symbols
+	      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+	      ;;
+	    esac
+
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+            ;;
+	  cxx*)
+	    # Compaq C++
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+
+	    runpath_var=LD_RUN_PATH
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    #
+	    # There doesn't appear to be a way to prevent this compiler from
+	    # explicitly linking system object files so we need to strip them
+	    # from the output so that they don't get included in the library
+	    # dependencies.
+	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
+	    ;;
+	  xl* | mpixl* | bgxl*)
+	    # IBM XL 8.0 on PPC, with GNU ld
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	    if test "x$supports_anon_versioning" = xyes; then
+	      _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+		cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+		echo "local: *; };" >> $output_objdir/$libname.ver~
+		$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+	    fi
+	    ;;
+	  *)
+	    case `$CC -V 2>&1 | sed 5q` in
+	    *Sun\ C*)
+	      # Sun C++ 5.9
+	      _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+	      _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
+	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	      _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+	      _LT_TAGVAR(compiler_needs_object, $1)=yes
+
+	      # Not sure whether something based on
+	      # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
+	      # would be better.
+	      output_verbose_link_cmd='func_echo_all'
+
+	      # Archives containing C++ object files must be created using
+	      # "CC -xar", where "CC" is the Sun C++ compiler.  This is
+	      # necessary to make sure instantiated templates are included
+	      # in the archive.
+	      _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+	      ;;
+	    esac
+	    ;;
+	esac
+	;;
+
+      lynxos*)
+        # FIXME: insert proper C++ library support
+	_LT_TAGVAR(ld_shlibs, $1)=no
+	;;
+
+      m88k*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+	;;
+
+      mvs*)
+        case $cc_basename in
+          cxx*)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+	  *)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+	esac
+	;;
+
+      netbsd*)
+        if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+	  wlarc=
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	  _LT_TAGVAR(hardcode_direct, $1)=yes
+	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	fi
+	# Workaround some broken pre-1.5 toolchains
+	output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+	;;
+
+      *nto* | *qnx*)
+        _LT_TAGVAR(ld_shlibs, $1)=yes
+	;;
+
+      openbsd2*)
+        # C++ shared libraries are fairly broken
+	_LT_TAGVAR(ld_shlibs, $1)=no
+	;;
+
+      openbsd*)
+	if test -f /usr/libexec/ld.so; then
+	  _LT_TAGVAR(hardcode_direct, $1)=yes
+	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	  _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+	  fi
+	  output_verbose_link_cmd=func_echo_all
+	else
+	  _LT_TAGVAR(ld_shlibs, $1)=no
+	fi
+	;;
+
+      osf3* | osf4* | osf5*)
+        case $cc_basename in
+          KCC*)
+	    # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	    # KCC will only create a shared library if the output file
+	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
+	    # to its proper name (with version) after linking.
+	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	    # Archives containing C++ object files must be created using
+	    # the KAI C++ compiler.
+	    case $host in
+	      osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;;
+	      *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;;
+	    esac
+	    ;;
+          RCC*)
+	    # Rational C++ 2.4.1
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          cxx*)
+	    case $host in
+	      osf3*)
+	        _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+		;;
+	      *)
+	        _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+	        _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+	          echo "-hidden">> $lib.exp~
+	          $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~
+	          $RM $lib.exp'
+	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+		;;
+	    esac
+
+	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    #
+	    # There doesn't appear to be a way to prevent this compiler from
+	    # explicitly linking system object files so we need to strip them
+	    # from the output so that they don't get included in the library
+	    # dependencies.
+	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+	    ;;
+	  *)
+	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	      _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	      case $host in
+	        osf3*)
+	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+		  ;;
+	        *)
+	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+		  ;;
+	      esac
+
+	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	      # Commands to make compiler produce verbose output that lists
+	      # what "hidden" libraries, object files and flags are used when
+	      # linking a shared library.
+	      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+
+	    else
+	      # FIXME: insert proper C++ library support
+	      _LT_TAGVAR(ld_shlibs, $1)=no
+	    fi
+	    ;;
+        esac
+        ;;
+
+      psos*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+
+      sunos4*)
+        case $cc_basename in
+          CC*)
+	    # Sun C++ 4.x
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          lcc*)
+	    # Lucid
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          *)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+        esac
+        ;;
+
+      solaris*)
+        case $cc_basename in
+          CC* | sunCC*)
+	    # Sun C++ 4.2, 5.x and Centerline C++
+            _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
+	    _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag}  -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+	      $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	    _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	    case $host_os in
+	      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+	      *)
+		# The compiler driver will combine and reorder linker options,
+		# but understands `-z linker_flag'.
+	        # Supported since Solaris 2.6 (maybe 2.5.1?)
+		_LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
+	        ;;
+	    esac
+	    _LT_TAGVAR(link_all_deplibs, $1)=yes
+
+	    output_verbose_link_cmd='func_echo_all'
+
+	    # Archives containing C++ object files must be created using
+	    # "CC -xar", where "CC" is the Sun C++ compiler.  This is
+	    # necessary to make sure instantiated templates are included
+	    # in the archive.
+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+	    ;;
+          gcx*)
+	    # Green Hills C++ Compiler
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+
+	    # The C++ compiler must be used to create the archive.
+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+	    ;;
+          *)
+	    # GNU C++ compiler with Solaris linker
+	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	      _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
+	      if $CC --version | $GREP -v '^2\.7' > /dev/null; then
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+		  $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+	        # Commands to make compiler produce verbose output that lists
+	        # what "hidden" libraries, object files and flags are used when
+	        # linking a shared library.
+	        output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+	      else
+	        # g++ 2.7 appears to require `-G' NOT `-shared' on this
+	        # platform.
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+		  $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+	        # Commands to make compiler produce verbose output that lists
+	        # what "hidden" libraries, object files and flags are used when
+	        # linking a shared library.
+	        output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+	      fi
+
+	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
+	      case $host_os in
+		solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+		*)
+		  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+		  ;;
+	      esac
+	    fi
+	    ;;
+        esac
+        ;;
+
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      runpath_var='LD_RUN_PATH'
+
+      case $cc_basename in
+        CC*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+      esac
+      ;;
+
+      sysv5* | sco3.2v5* | sco5v6*)
+	# Note: We can NOT use -z defs as we might desire, because we do not
+	# link with -lc, and that would cause any symbols used from libc to
+	# always be unresolved, which means just about no library would
+	# ever link correctly.  If we're not using GNU ld we use -z text
+	# though, which does catch some bad symbols but isn't as heavy-handed
+	# as -z defs.
+	_LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+	_LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
+	_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
+	_LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+	_LT_TAGVAR(link_all_deplibs, $1)=yes
+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+	runpath_var='LD_RUN_PATH'
+
+	case $cc_basename in
+          CC*)
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
+	      '"$_LT_TAGVAR(old_archive_cmds, $1)"
+	    _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~
+	      '"$_LT_TAGVAR(reload_cmds, $1)"
+	    ;;
+	  *)
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    ;;
+	esac
+      ;;
+
+      tandem*)
+        case $cc_basename in
+          NCC*)
+	    # NonStop-UX NCC 3.20
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          *)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+        esac
+        ;;
+
+      vxworks*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+
+      *)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+    esac
+
+    AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
+    test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+    _LT_TAGVAR(GCC, $1)="$GXX"
+    _LT_TAGVAR(LD, $1)="$LD"
+
+    ## CAVEAT EMPTOR:
+    ## There is no encapsulation within the following macros, do not change
+    ## the running order or otherwise move them around unless you know exactly
+    ## what you are doing...
+    _LT_SYS_HIDDEN_LIBDEPS($1)
+    _LT_COMPILER_PIC($1)
+    _LT_COMPILER_C_O($1)
+    _LT_COMPILER_FILE_LOCKS($1)
+    _LT_LINKER_SHLIBS($1)
+    _LT_SYS_DYNAMIC_LINKER($1)
+    _LT_LINKER_HARDCODE_LIBPATH($1)
+
+    _LT_CONFIG($1)
+  fi # test -n "$compiler"
+
+  CC=$lt_save_CC
+  LDCXX=$LD
+  LD=$lt_save_LD
+  GCC=$lt_save_GCC
+  with_gnu_ld=$lt_save_with_gnu_ld
+  lt_cv_path_LDCXX=$lt_cv_path_LD
+  lt_cv_path_LD=$lt_save_path_LD
+  lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+  lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+fi # test "$_lt_caught_CXX_error" != yes
+
+AC_LANG_POP
+])# _LT_LANG_CXX_CONFIG
+
+
+# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
+# ---------------------------------
+# Figure out "hidden" library dependencies from verbose
+# compiler output when linking a shared library.
+# Parse the compiler output and extract the necessary
+# objects, libraries and library flags.
+m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+# Dependencies to place before and after the object being linked:
+_LT_TAGVAR(predep_objects, $1)=
+_LT_TAGVAR(postdep_objects, $1)=
+_LT_TAGVAR(predeps, $1)=
+_LT_TAGVAR(postdeps, $1)=
+_LT_TAGVAR(compiler_lib_search_path, $1)=
+
+dnl we can't use the lt_simple_compile_test_code here,
+dnl because it contains code intended for an executable,
+dnl not a library.  It's possible we should let each
+dnl tag define a new lt_????_link_test_code variable,
+dnl but it's only used here...
+m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF
+int a;
+void foo (void) { a = 0; }
+_LT_EOF
+], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF
+class Foo
+{
+public:
+  Foo (void) { a = 0; }
+private:
+  int a;
+};
+_LT_EOF
+], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF
+      subroutine foo
+      implicit none
+      integer*4 a
+      a=0
+      return
+      end
+_LT_EOF
+], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF
+      subroutine foo
+      implicit none
+      integer a
+      a=0
+      return
+      end
+_LT_EOF
+], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF
+public class foo {
+  private int a;
+  public void bar (void) {
+    a = 0;
+  }
+};
+_LT_EOF
+])
+dnl Parse the compiler output and extract the necessary
+dnl objects, libraries and library flags.
+if AC_TRY_EVAL(ac_compile); then
+  # Parse the compiler output and extract the necessary
+  # objects, libraries and library flags.
+
+  # Sentinel used to keep track of whether or not we are before
+  # the conftest object file.
+  pre_test_object_deps_done=no
+
+  for p in `eval "$output_verbose_link_cmd"`; do
+    case $p in
+
+    -L* | -R* | -l*)
+       # Some compilers place space between "-{L,R}" and the path.
+       # Remove the space.
+       if test $p = "-L" ||
+          test $p = "-R"; then
+	 prev=$p
+	 continue
+       else
+	 prev=
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+	 case $p in
+	 -L* | -R*)
+	   # Internal compiler library paths should come after those
+	   # provided the user.  The postdeps already come after the
+	   # user supplied libs so there is no need to process them.
+	   if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then
+	     _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
+	   else
+	     _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
+	   fi
+	   ;;
+	 # The "-l" case would never come before the object being
+	 # linked, so don't bother handling this case.
+	 esac
+       else
+	 if test -z "$_LT_TAGVAR(postdeps, $1)"; then
+	   _LT_TAGVAR(postdeps, $1)="${prev}${p}"
+	 else
+	   _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
+	 fi
+       fi
+       ;;
+
+    *.$objext)
+       # This assumes that the test object file only shows up
+       # once in the compiler output.
+       if test "$p" = "conftest.$objext"; then
+	 pre_test_object_deps_done=yes
+	 continue
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+	 if test -z "$_LT_TAGVAR(predep_objects, $1)"; then
+	   _LT_TAGVAR(predep_objects, $1)="$p"
+	 else
+	   _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p"
+	 fi
+       else
+	 if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then
+	   _LT_TAGVAR(postdep_objects, $1)="$p"
+	 else
+	   _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p"
+	 fi
+       fi
+       ;;
+
+    *) ;; # Ignore the rest.
+
+    esac
+  done
+
+  # Clean up.
+  rm -f a.out a.exe
+else
+  echo "libtool.m4: error: problem compiling $1 test program"
+fi
+
+$RM -f confest.$objext
+
+# PORTME: override above test on systems where it is broken
+m4_if([$1], [CXX],
+[case $host_os in
+interix[[3-9]]*)
+  # Interix 3.5 installs completely hosed .la files for C++, so rather than
+  # hack all around it, let's just trust "g++" to DTRT.
+  _LT_TAGVAR(predep_objects,$1)=
+  _LT_TAGVAR(postdep_objects,$1)=
+  _LT_TAGVAR(postdeps,$1)=
+  ;;
+
+linux*)
+  case `$CC -V 2>&1 | sed 5q` in
+  *Sun\ C*)
+    # Sun C++ 5.9
+
+    # The more standards-conforming stlport4 library is
+    # incompatible with the Cstd library. Avoid specifying
+    # it if it's in CXXFLAGS. Ignore libCrun as
+    # -library=stlport4 depends on it.
+    case " $CXX $CXXFLAGS " in
+    *" -library=stlport4 "*)
+      solaris_use_stlport4=yes
+      ;;
+    esac
+
+    if test "$solaris_use_stlport4" != yes; then
+      _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
+    fi
+    ;;
+  esac
+  ;;
+
+solaris*)
+  case $cc_basename in
+  CC* | sunCC*)
+    # The more standards-conforming stlport4 library is
+    # incompatible with the Cstd library. Avoid specifying
+    # it if it's in CXXFLAGS. Ignore libCrun as
+    # -library=stlport4 depends on it.
+    case " $CXX $CXXFLAGS " in
+    *" -library=stlport4 "*)
+      solaris_use_stlport4=yes
+      ;;
+    esac
+
+    # Adding this requires a known-good setup of shared libraries for
+    # Sun compiler versions before 5.6, else PIC objects from an old
+    # archive will be linked into the output, leading to subtle bugs.
+    if test "$solaris_use_stlport4" != yes; then
+      _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
+    fi
+    ;;
+  esac
+  ;;
+esac
+])
+
+case " $_LT_TAGVAR(postdeps, $1) " in
+*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;;
+esac
+ _LT_TAGVAR(compiler_lib_search_dirs, $1)=
+if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then
+ _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
+fi
+_LT_TAGDECL([], [compiler_lib_search_dirs], [1],
+    [The directories searched by this compiler when creating a shared library])
+_LT_TAGDECL([], [predep_objects], [1],
+    [Dependencies to place before and after the objects being linked to
+    create a shared library])
+_LT_TAGDECL([], [postdep_objects], [1])
+_LT_TAGDECL([], [predeps], [1])
+_LT_TAGDECL([], [postdeps], [1])
+_LT_TAGDECL([], [compiler_lib_search_path], [1],
+    [The library search path used internally by the compiler when linking
+    a shared library])
+])# _LT_SYS_HIDDEN_LIBDEPS
+
+
+# _LT_LANG_F77_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for a Fortran 77 compiler are
+# suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_F77_CONFIG],
+[AC_LANG_PUSH(Fortran 77)
+if test -z "$F77" || test "X$F77" = "Xno"; then
+  _lt_disable_F77=yes
+fi
+
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for f77 test sources.
+ac_ext=f
+
+# Object file extension for compiled f77 test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the F77 compiler isn't working.  Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test "$_lt_disable_F77" != yes; then
+  # Code to be used in simple compile tests
+  lt_simple_compile_test_code="\
+      subroutine t
+      return
+      end
+"
+
+  # Code to be used in simple link tests
+  lt_simple_link_test_code="\
+      program t
+      end
+"
+
+  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+  _LT_TAG_COMPILER
+
+  # save warnings/boilerplate of simple test code
+  _LT_COMPILER_BOILERPLATE
+  _LT_LINKER_BOILERPLATE
+
+  # Allow CC to be a program name with arguments.
+  lt_save_CC="$CC"
+  lt_save_GCC=$GCC
+  CC=${F77-"f77"}
+  compiler=$CC
+  _LT_TAGVAR(compiler, $1)=$CC
+  _LT_CC_BASENAME([$compiler])
+  GCC=$G77
+  if test -n "$compiler"; then
+    AC_MSG_CHECKING([if libtool supports shared libraries])
+    AC_MSG_RESULT([$can_build_shared])
+
+    AC_MSG_CHECKING([whether to build shared libraries])
+    test "$can_build_shared" = "no" && enable_shared=no
+
+    # On AIX, shared libraries and static libraries use the same namespace, and
+    # are all built from PIC.
+    case $host_os in
+      aix3*)
+        test "$enable_shared" = yes && enable_static=no
+        if test -n "$RANLIB"; then
+          archive_cmds="$archive_cmds~\$RANLIB \$lib"
+          postinstall_cmds='$RANLIB $lib'
+        fi
+        ;;
+      aix[[4-9]]*)
+	if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+	  test "$enable_shared" = yes && enable_static=no
+	fi
+        ;;
+    esac
+    AC_MSG_RESULT([$enable_shared])
+
+    AC_MSG_CHECKING([whether to build static libraries])
+    # Make sure either enable_shared or enable_static is yes.
+    test "$enable_shared" = yes || enable_static=yes
+    AC_MSG_RESULT([$enable_static])
+
+    _LT_TAGVAR(GCC, $1)="$G77"
+    _LT_TAGVAR(LD, $1)="$LD"
+
+    ## CAVEAT EMPTOR:
+    ## There is no encapsulation within the following macros, do not change
+    ## the running order or otherwise move them around unless you know exactly
+    ## what you are doing...
+    _LT_COMPILER_PIC($1)
+    _LT_COMPILER_C_O($1)
+    _LT_COMPILER_FILE_LOCKS($1)
+    _LT_LINKER_SHLIBS($1)
+    _LT_SYS_DYNAMIC_LINKER($1)
+    _LT_LINKER_HARDCODE_LIBPATH($1)
+
+    _LT_CONFIG($1)
+  fi # test -n "$compiler"
+
+  GCC=$lt_save_GCC
+  CC="$lt_save_CC"
+fi # test "$_lt_disable_F77" != yes
+
+AC_LANG_POP
+])# _LT_LANG_F77_CONFIG
+
+
+# _LT_LANG_FC_CONFIG([TAG])
+# -------------------------
+# Ensure that the configuration variables for a Fortran compiler are
+# suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_FC_CONFIG],
+[AC_LANG_PUSH(Fortran)
+
+if test -z "$FC" || test "X$FC" = "Xno"; then
+  _lt_disable_FC=yes
+fi
+
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for fc test sources.
+ac_ext=${ac_fc_srcext-f}
+
+# Object file extension for compiled fc test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the FC compiler isn't working.  Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test "$_lt_disable_FC" != yes; then
+  # Code to be used in simple compile tests
+  lt_simple_compile_test_code="\
+      subroutine t
+      return
+      end
+"
+
+  # Code to be used in simple link tests
+  lt_simple_link_test_code="\
+      program t
+      end
+"
+
+  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+  _LT_TAG_COMPILER
+
+  # save warnings/boilerplate of simple test code
+  _LT_COMPILER_BOILERPLATE
+  _LT_LINKER_BOILERPLATE
+
+  # Allow CC to be a program name with arguments.
+  lt_save_CC="$CC"
+  lt_save_GCC=$GCC
+  CC=${FC-"f95"}
+  compiler=$CC
+  GCC=$ac_cv_fc_compiler_gnu
+
+  _LT_TAGVAR(compiler, $1)=$CC
+  _LT_CC_BASENAME([$compiler])
+
+  if test -n "$compiler"; then
+    AC_MSG_CHECKING([if libtool supports shared libraries])
+    AC_MSG_RESULT([$can_build_shared])
+
+    AC_MSG_CHECKING([whether to build shared libraries])
+    test "$can_build_shared" = "no" && enable_shared=no
+
+    # On AIX, shared libraries and static libraries use the same namespace, and
+    # are all built from PIC.
+    case $host_os in
+      aix3*)
+        test "$enable_shared" = yes && enable_static=no
+        if test -n "$RANLIB"; then
+          archive_cmds="$archive_cmds~\$RANLIB \$lib"
+          postinstall_cmds='$RANLIB $lib'
+        fi
+        ;;
+      aix[[4-9]]*)
+	if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+	  test "$enable_shared" = yes && enable_static=no
+	fi
+        ;;
+    esac
+    AC_MSG_RESULT([$enable_shared])
+
+    AC_MSG_CHECKING([whether to build static libraries])
+    # Make sure either enable_shared or enable_static is yes.
+    test "$enable_shared" = yes || enable_static=yes
+    AC_MSG_RESULT([$enable_static])
+
+    _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu"
+    _LT_TAGVAR(LD, $1)="$LD"
+
+    ## CAVEAT EMPTOR:
+    ## There is no encapsulation within the following macros, do not change
+    ## the running order or otherwise move them around unless you know exactly
+    ## what you are doing...
+    _LT_SYS_HIDDEN_LIBDEPS($1)
+    _LT_COMPILER_PIC($1)
+    _LT_COMPILER_C_O($1)
+    _LT_COMPILER_FILE_LOCKS($1)
+    _LT_LINKER_SHLIBS($1)
+    _LT_SYS_DYNAMIC_LINKER($1)
+    _LT_LINKER_HARDCODE_LIBPATH($1)
+
+    _LT_CONFIG($1)
+  fi # test -n "$compiler"
+
+  GCC=$lt_save_GCC
+  CC="$lt_save_CC"
+fi # test "$_lt_disable_FC" != yes
+
+AC_LANG_POP
+])# _LT_LANG_FC_CONFIG
+
+
+# _LT_LANG_GCJ_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for the GNU Java Compiler compiler
+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_GCJ_CONFIG],
+[AC_REQUIRE([LT_PROG_GCJ])dnl
+AC_LANG_SAVE
+
+# Source file extension for Java test sources.
+ac_ext=java
+
+# Object file extension for compiled Java test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="class foo {}"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+lt_save_GCC=$GCC
+GCC=yes
+CC=${GCJ-"gcj"}
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_TAGVAR(LD, $1)="$LD"
+_LT_CC_BASENAME([$compiler])
+
+# GCJ did not exist at the time GCC didn't implicitly link libc in.
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+  _LT_COMPILER_NO_RTTI($1)
+  _LT_COMPILER_PIC($1)
+  _LT_COMPILER_C_O($1)
+  _LT_COMPILER_FILE_LOCKS($1)
+  _LT_LINKER_SHLIBS($1)
+  _LT_LINKER_HARDCODE_LIBPATH($1)
+
+  _LT_CONFIG($1)
+fi
+
+AC_LANG_RESTORE
+
+GCC=$lt_save_GCC
+CC="$lt_save_CC"
+])# _LT_LANG_GCJ_CONFIG
+
+
+# _LT_LANG_RC_CONFIG([TAG])
+# -------------------------
+# Ensure that the configuration variables for the Windows resource compiler
+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_RC_CONFIG],
+[AC_REQUIRE([LT_PROG_RC])dnl
+AC_LANG_SAVE
+
+# Source file extension for RC test sources.
+ac_ext=rc
+
+# Object file extension for compiled RC test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="$lt_simple_compile_test_code"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+lt_save_GCC=$GCC
+GCC=
+CC=${RC-"windres"}
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+
+if test -n "$compiler"; then
+  :
+  _LT_CONFIG($1)
+fi
+
+GCC=$lt_save_GCC
+AC_LANG_RESTORE
+CC="$lt_save_CC"
+])# _LT_LANG_RC_CONFIG
+
+
+# LT_PROG_GCJ
+# -----------
+AC_DEFUN([LT_PROG_GCJ],
+[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
+  [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
+    [AC_CHECK_TOOL(GCJ, gcj,)
+      test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
+      AC_SUBST(GCJFLAGS)])])[]dnl
+])
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
+
+
+# LT_PROG_RC
+# ----------
+AC_DEFUN([LT_PROG_RC],
+[AC_CHECK_TOOL(RC, windres,)
+])
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_RC], [])
+
+
+# _LT_DECL_EGREP
+# --------------
+# If we don't have a new enough Autoconf to choose the best grep
+# available, choose the one first in the user's PATH.
+m4_defun([_LT_DECL_EGREP],
+[AC_REQUIRE([AC_PROG_EGREP])dnl
+AC_REQUIRE([AC_PROG_FGREP])dnl
+test -z "$GREP" && GREP=grep
+_LT_DECL([], [GREP], [1], [A grep program that handles long lines])
+_LT_DECL([], [EGREP], [1], [An ERE matcher])
+_LT_DECL([], [FGREP], [1], [A literal string matcher])
+dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too
+AC_SUBST([GREP])
+])
+
+
+# _LT_DECL_OBJDUMP
+# --------------
+# If we don't have a new enough Autoconf to choose the best objdump
+# available, choose the one first in the user's PATH.
+m4_defun([_LT_DECL_OBJDUMP],
+[AC_CHECK_TOOL(OBJDUMP, objdump, false)
+test -z "$OBJDUMP" && OBJDUMP=objdump
+_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
+AC_SUBST([OBJDUMP])
+])
+
+
+# _LT_DECL_SED
+# ------------
+# Check for a fully-functional sed program, that truncates
+# as few characters as possible.  Prefer GNU sed if found.
+m4_defun([_LT_DECL_SED],
+[AC_PROG_SED
+test -z "$SED" && SED=sed
+Xsed="$SED -e 1s/^X//"
+_LT_DECL([], [SED], [1], [A sed program that does not truncate output])
+_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"],
+    [Sed that helps us avoid accidentally triggering echo(1) options like -n])
+])# _LT_DECL_SED
+
+m4_ifndef([AC_PROG_SED], [
+############################################################
+# NOTE: This macro has been submitted for inclusion into   #
+#  GNU Autoconf as AC_PROG_SED.  When it is available in   #
+#  a released version of Autoconf we should remove this    #
+#  macro and use it instead.                               #
+############################################################
+
+m4_defun([AC_PROG_SED],
+[AC_MSG_CHECKING([for a sed that does not truncate output])
+AC_CACHE_VAL(lt_cv_path_SED,
+[# Loop through the user's path and test for sed and gsed.
+# Then use that list of sed's as ones to test for truncation.
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for lt_ac_prog in sed gsed; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
+      fi
+    done
+  done
+done
+IFS=$as_save_IFS
+lt_ac_max=0
+lt_ac_count=0
+# Add /usr/xpg4/bin/sed as it is typically found on Solaris
+# along with /bin/sed that truncates output.
+for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
+  test ! -f $lt_ac_sed && continue
+  cat /dev/null > conftest.in
+  lt_ac_count=0
+  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
+  # Check for GNU sed and select it if it is found.
+  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
+    lt_cv_path_SED=$lt_ac_sed
+    break
+  fi
+  while true; do
+    cat conftest.in conftest.in >conftest.tmp
+    mv conftest.tmp conftest.in
+    cp conftest.in conftest.nl
+    echo >>conftest.nl
+    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
+    cmp -s conftest.out conftest.nl || break
+    # 10000 chars as input seems more than enough
+    test $lt_ac_count -gt 10 && break
+    lt_ac_count=`expr $lt_ac_count + 1`
+    if test $lt_ac_count -gt $lt_ac_max; then
+      lt_ac_max=$lt_ac_count
+      lt_cv_path_SED=$lt_ac_sed
+    fi
+  done
+done
+])
+SED=$lt_cv_path_SED
+AC_SUBST([SED])
+AC_MSG_RESULT([$SED])
+])#AC_PROG_SED
+])#m4_ifndef
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_SED], [])
+
+
+# _LT_CHECK_SHELL_FEATURES
+# ------------------------
+# Find out whether the shell is Bourne or XSI compatible,
+# or has some other useful features.
+m4_defun([_LT_CHECK_SHELL_FEATURES],
+[AC_MSG_CHECKING([whether the shell understands some XSI constructs])
+# Try some XSI features
+xsi_shell=no
+( _lt_dummy="a/b/c"
+  test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
+      = c,a/b,, \
+    && eval 'test $(( 1 + 1 )) -eq 2 \
+    && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
+  && xsi_shell=yes
+AC_MSG_RESULT([$xsi_shell])
+_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell'])
+
+AC_MSG_CHECKING([whether the shell understands "+="])
+lt_shell_append=no
+( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \
+    >/dev/null 2>&1 \
+  && lt_shell_append=yes
+AC_MSG_RESULT([$lt_shell_append])
+_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append'])
+
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+  lt_unset=unset
+else
+  lt_unset=false
+fi
+_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl
+
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+  lt_SP2NL='tr \040 \012'
+  lt_NL2SP='tr \015\012 \040\040'
+  ;;
+ *) # EBCDIC based system
+  lt_SP2NL='tr \100 \n'
+  lt_NL2SP='tr \r\n \100\100'
+  ;;
+esac
+_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl
+_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
+])# _LT_CHECK_SHELL_FEATURES
+
+
+# _LT_PROG_XSI_SHELLFNS
+# ---------------------
+# Bourne and XSI compatible variants of some useful shell functions.
+m4_defun([_LT_PROG_XSI_SHELLFNS],
+[case $xsi_shell in
+  yes)
+    cat << \_LT_EOF >> "$cfgfile"
+
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+  case ${1} in
+    */*) func_dirname_result="${1%/*}${2}" ;;
+    *  ) func_dirname_result="${3}" ;;
+  esac
+}
+
+# func_basename file
+func_basename ()
+{
+  func_basename_result="${1##*/}"
+}
+
+# func_dirname_and_basename file append nondir_replacement
+# perform func_basename and func_dirname in a single function
+# call:
+#   dirname:  Compute the dirname of FILE.  If nonempty,
+#             add APPEND to the result, otherwise set result
+#             to NONDIR_REPLACEMENT.
+#             value returned in "$func_dirname_result"
+#   basename: Compute filename of FILE.
+#             value retuned in "$func_basename_result"
+# Implementation must be kept synchronized with func_dirname
+# and func_basename. For efficiency, we do not delegate to
+# those functions but instead duplicate the functionality here.
+func_dirname_and_basename ()
+{
+  case ${1} in
+    */*) func_dirname_result="${1%/*}${2}" ;;
+    *  ) func_dirname_result="${3}" ;;
+  esac
+  func_basename_result="${1##*/}"
+}
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+func_stripname ()
+{
+  # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+  # positional parameters, so assign one to ordinary parameter first.
+  func_stripname_result=${3}
+  func_stripname_result=${func_stripname_result#"${1}"}
+  func_stripname_result=${func_stripname_result%"${2}"}
+}
+
+# func_opt_split
+func_opt_split ()
+{
+  func_opt_split_opt=${1%%=*}
+  func_opt_split_arg=${1#*=}
+}
+
+# func_lo2o object
+func_lo2o ()
+{
+  case ${1} in
+    *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
+    *)    func_lo2o_result=${1} ;;
+  esac
+}
+
+# func_xform libobj-or-source
+func_xform ()
+{
+  func_xform_result=${1%.*}.lo
+}
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+  func_arith_result=$(( $[*] ))
+}
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+  func_len_result=${#1}
+}
+
+_LT_EOF
+    ;;
+  *) # Bourne compatible functions.
+    cat << \_LT_EOF >> "$cfgfile"
+
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+  # Extract subdirectory from the argument.
+  func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
+  if test "X$func_dirname_result" = "X${1}"; then
+    func_dirname_result="${3}"
+  else
+    func_dirname_result="$func_dirname_result${2}"
+  fi
+}
+
+# func_basename file
+func_basename ()
+{
+  func_basename_result=`$ECHO "${1}" | $SED "$basename"`
+}
+
+dnl func_dirname_and_basename
+dnl A portable version of this function is already defined in general.m4sh
+dnl so there is no need for it here.
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+# func_strip_suffix prefix name
+func_stripname ()
+{
+  case ${2} in
+    .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
+    *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+  esac
+}
+
+# sed scripts:
+my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q'
+my_sed_long_arg='1s/^-[[^=]]*=//'
+
+# func_opt_split
+func_opt_split ()
+{
+  func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"`
+  func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"`
+}
+
+# func_lo2o object
+func_lo2o ()
+{
+  func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
+}
+
+# func_xform libobj-or-source
+func_xform ()
+{
+  func_xform_result=`$ECHO "${1}" | $SED 's/\.[[^.]]*$/.lo/'`
+}
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+  func_arith_result=`expr "$[@]"`
+}
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+  func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len`
+}
+
+_LT_EOF
+esac
+
+case $lt_shell_append in
+  yes)
+    cat << \_LT_EOF >> "$cfgfile"
+
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+  eval "$[1]+=\$[2]"
+}
+_LT_EOF
+    ;;
+  *)
+    cat << \_LT_EOF >> "$cfgfile"
+
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+  eval "$[1]=\$$[1]\$[2]"
+}
+
+_LT_EOF
+    ;;
+  esac
+])
diff --git a/FreeRTOS-Plus/CyaSSL/m4/ltoptions.m4 b/FreeRTOS-Plus/CyaSSL/m4/ltoptions.m4
new file mode 100644
index 000000000..17cfd51c0
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/m4/ltoptions.m4
@@ -0,0 +1,369 @@
+# Helper functions for option handling.                    -*- Autoconf -*-
+#
+#   Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation,
+#   Inc.
+#   Written by Gary V. Vaughan, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 7 ltoptions.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
+
+
+# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
+# ------------------------------------------
+m4_define([_LT_MANGLE_OPTION],
+[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
+
+
+# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
+# ---------------------------------------
+# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
+# matching handler defined, dispatch to it.  Other OPTION-NAMEs are
+# saved as a flag.
+m4_define([_LT_SET_OPTION],
+[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
+m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
+        _LT_MANGLE_DEFUN([$1], [$2]),
+    [m4_warning([Unknown $1 option `$2'])])[]dnl
+])
+
+
+# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
+# ------------------------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+m4_define([_LT_IF_OPTION],
+[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
+
+
+# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
+# -------------------------------------------------------
+# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
+# are set.
+m4_define([_LT_UNLESS_OPTIONS],
+[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
+	    [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
+		      [m4_define([$0_found])])])[]dnl
+m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
+])[]dnl
+])
+
+
+# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
+# ----------------------------------------
+# OPTION-LIST is a space-separated list of Libtool options associated
+# with MACRO-NAME.  If any OPTION has a matching handler declared with
+# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
+# the unknown option and exit.
+m4_defun([_LT_SET_OPTIONS],
+[# Set options
+m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
+    [_LT_SET_OPTION([$1], _LT_Option)])
+
+m4_if([$1],[LT_INIT],[
+  dnl
+  dnl Simply set some default values (i.e off) if boolean options were not
+  dnl specified:
+  _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
+  ])
+  _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
+  ])
+  dnl
+  dnl If no reference was made to various pairs of opposing options, then
+  dnl we run the default mode handler for the pair.  For example, if neither
+  dnl `shared' nor `disable-shared' was passed, we enable building of shared
+  dnl archives by default:
+  _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
+  _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
+  _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
+  _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
+  		   [_LT_ENABLE_FAST_INSTALL])
+  ])
+])# _LT_SET_OPTIONS
+
+
+## --------------------------------- ##
+## Macros to handle LT_INIT options. ##
+## --------------------------------- ##
+
+# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
+# -----------------------------------------
+m4_define([_LT_MANGLE_DEFUN],
+[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
+
+
+# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
+# -----------------------------------------------
+m4_define([LT_OPTION_DEFINE],
+[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
+])# LT_OPTION_DEFINE
+
+
+# dlopen
+# ------
+LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
+])
+
+AU_DEFUN([AC_LIBTOOL_DLOPEN],
+[_LT_SET_OPTION([LT_INIT], [dlopen])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `dlopen' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
+
+
+# win32-dll
+# ---------
+# Declare package support for building win32 dll's.
+LT_OPTION_DEFINE([LT_INIT], [win32-dll],
+[enable_win32_dll=yes
+
+case $host in
+*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
+  AC_CHECK_TOOL(AS, as, false)
+  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+  AC_CHECK_TOOL(OBJDUMP, objdump, false)
+  ;;
+esac
+
+test -z "$AS" && AS=as
+_LT_DECL([], [AS],      [1], [Assembler program])dnl
+
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
+])# win32-dll
+
+AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+_LT_SET_OPTION([LT_INIT], [win32-dll])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `win32-dll' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
+
+
+# _LT_ENABLE_SHARED([DEFAULT])
+# ----------------------------
+# implement the --enable-shared flag, and supports the `shared' and
+# `disable-shared' LT_INIT options.
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+m4_define([_LT_ENABLE_SHARED],
+[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([shared],
+    [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
+	[build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_shared=yes ;;
+    no) enable_shared=no ;;
+    *)
+      enable_shared=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_shared=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
+
+    _LT_DECL([build_libtool_libs], [enable_shared], [0],
+	[Whether or not to build shared libraries])
+])# _LT_ENABLE_SHARED
+
+LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
+
+# Old names:
+AC_DEFUN([AC_ENABLE_SHARED],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
+])
+
+AC_DEFUN([AC_DISABLE_SHARED],
+[_LT_SET_OPTION([LT_INIT], [disable-shared])
+])
+
+AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
+AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_ENABLE_SHARED], [])
+dnl AC_DEFUN([AM_DISABLE_SHARED], [])
+
+
+
+# _LT_ENABLE_STATIC([DEFAULT])
+# ----------------------------
+# implement the --enable-static flag, and support the `static' and
+# `disable-static' LT_INIT options.
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+m4_define([_LT_ENABLE_STATIC],
+[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([static],
+    [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
+	[build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_static=yes ;;
+    no) enable_static=no ;;
+    *)
+     enable_static=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_static=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
+
+    _LT_DECL([build_old_libs], [enable_static], [0],
+	[Whether or not to build static libraries])
+])# _LT_ENABLE_STATIC
+
+LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
+
+# Old names:
+AC_DEFUN([AC_ENABLE_STATIC],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
+])
+
+AC_DEFUN([AC_DISABLE_STATIC],
+[_LT_SET_OPTION([LT_INIT], [disable-static])
+])
+
+AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
+AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_ENABLE_STATIC], [])
+dnl AC_DEFUN([AM_DISABLE_STATIC], [])
+
+
+
+# _LT_ENABLE_FAST_INSTALL([DEFAULT])
+# ----------------------------------
+# implement the --enable-fast-install flag, and support the `fast-install'
+# and `disable-fast-install' LT_INIT options.
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+m4_define([_LT_ENABLE_FAST_INSTALL],
+[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([fast-install],
+    [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
+    [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_fast_install=yes ;;
+    no) enable_fast_install=no ;;
+    *)
+      enable_fast_install=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_fast_install=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
+
+_LT_DECL([fast_install], [enable_fast_install], [0],
+	 [Whether or not to optimize for fast installation])dnl
+])# _LT_ENABLE_FAST_INSTALL
+
+LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
+
+# Old names:
+AU_DEFUN([AC_ENABLE_FAST_INSTALL],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the `fast-install' option into LT_INIT's first parameter.])
+])
+
+AU_DEFUN([AC_DISABLE_FAST_INSTALL],
+[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the `disable-fast-install' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
+dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
+
+
+# _LT_WITH_PIC([MODE])
+# --------------------
+# implement the --with-pic flag, and support the `pic-only' and `no-pic'
+# LT_INIT options.
+# MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
+m4_define([_LT_WITH_PIC],
+[AC_ARG_WITH([pic],
+    [AS_HELP_STRING([--with-pic],
+	[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
+    [pic_mode="$withval"],
+    [pic_mode=default])
+
+test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
+
+_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
+])# _LT_WITH_PIC
+
+LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
+LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
+
+# Old name:
+AU_DEFUN([AC_LIBTOOL_PICMODE],
+[_LT_SET_OPTION([LT_INIT], [pic-only])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `pic-only' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
+
+## ----------------- ##
+## LTDL_INIT Options ##
+## ----------------- ##
+
+m4_define([_LTDL_MODE], [])
+LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
+		 [m4_define([_LTDL_MODE], [nonrecursive])])
+LT_OPTION_DEFINE([LTDL_INIT], [recursive],
+		 [m4_define([_LTDL_MODE], [recursive])])
+LT_OPTION_DEFINE([LTDL_INIT], [subproject],
+		 [m4_define([_LTDL_MODE], [subproject])])
+
+m4_define([_LTDL_TYPE], [])
+LT_OPTION_DEFINE([LTDL_INIT], [installable],
+		 [m4_define([_LTDL_TYPE], [installable])])
+LT_OPTION_DEFINE([LTDL_INIT], [convenience],
+		 [m4_define([_LTDL_TYPE], [convenience])])
diff --git a/FreeRTOS-Plus/CyaSSL/m4/ltsugar.m4 b/FreeRTOS-Plus/CyaSSL/m4/ltsugar.m4
new file mode 100644
index 000000000..9000a057d
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/m4/ltsugar.m4
@@ -0,0 +1,123 @@
+# ltsugar.m4 -- libtool m4 base layer.                         -*-Autoconf-*-
+#
+# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
+# Written by Gary V. Vaughan, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 6 ltsugar.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
+
+
+# lt_join(SEP, ARG1, [ARG2...])
+# -----------------------------
+# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
+# associated separator.
+# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
+# versions in m4sugar had bugs.
+m4_define([lt_join],
+[m4_if([$#], [1], [],
+       [$#], [2], [[$2]],
+       [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
+m4_define([_lt_join],
+[m4_if([$#$2], [2], [],
+       [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
+
+
+# lt_car(LIST)
+# lt_cdr(LIST)
+# ------------
+# Manipulate m4 lists.
+# These macros are necessary as long as will still need to support
+# Autoconf-2.59 which quotes differently.
+m4_define([lt_car], [[$1]])
+m4_define([lt_cdr],
+[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
+       [$#], 1, [],
+       [m4_dquote(m4_shift($@))])])
+m4_define([lt_unquote], $1)
+
+
+# lt_append(MACRO-NAME, STRING, [SEPARATOR])
+# ------------------------------------------
+# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
+# Note that neither SEPARATOR nor STRING are expanded; they are appended
+# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
+# No SEPARATOR is output if MACRO-NAME was previously undefined (different
+# than defined and empty).
+#
+# This macro is needed until we can rely on Autoconf 2.62, since earlier
+# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
+m4_define([lt_append],
+[m4_define([$1],
+	   m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
+
+
+
+# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
+# ----------------------------------------------------------
+# Produce a SEP delimited list of all paired combinations of elements of
+# PREFIX-LIST with SUFFIX1 through SUFFIXn.  Each element of the list
+# has the form PREFIXmINFIXSUFFIXn.
+# Needed until we can rely on m4_combine added in Autoconf 2.62.
+m4_define([lt_combine],
+[m4_if(m4_eval([$# > 3]), [1],
+       [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
+[[m4_foreach([_Lt_prefix], [$2],
+	     [m4_foreach([_Lt_suffix],
+		]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
+	[_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
+
+
+# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
+# -----------------------------------------------------------------------
+# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
+# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
+m4_define([lt_if_append_uniq],
+[m4_ifdef([$1],
+	  [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
+		 [lt_append([$1], [$2], [$3])$4],
+		 [$5])],
+	  [lt_append([$1], [$2], [$3])$4])])
+
+
+# lt_dict_add(DICT, KEY, VALUE)
+# -----------------------------
+m4_define([lt_dict_add],
+[m4_define([$1($2)], [$3])])
+
+
+# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
+# --------------------------------------------
+m4_define([lt_dict_add_subkey],
+[m4_define([$1($2:$3)], [$4])])
+
+
+# lt_dict_fetch(DICT, KEY, [SUBKEY])
+# ----------------------------------
+m4_define([lt_dict_fetch],
+[m4_ifval([$3],
+	m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
+    m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
+
+
+# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
+# -----------------------------------------------------------------
+m4_define([lt_if_dict_fetch],
+[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
+	[$5],
+    [$6])])
+
+
+# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
+# --------------------------------------------------------------
+m4_define([lt_dict_filter],
+[m4_if([$5], [], [],
+  [lt_join(m4_quote(m4_default([$4], [[, ]])),
+           lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
+		      [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
+])
diff --git a/FreeRTOS-Plus/CyaSSL/m4/ltversion.m4 b/FreeRTOS-Plus/CyaSSL/m4/ltversion.m4
new file mode 100644
index 000000000..93fc77124
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/m4/ltversion.m4
@@ -0,0 +1,23 @@
+# ltversion.m4 -- version numbers			-*- Autoconf -*-
+#
+#   Copyright (C) 2004 Free Software Foundation, Inc.
+#   Written by Scott James Remnant, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# Generated from ltversion.in.
+
+# serial 3175 ltversion.m4
+# This file is part of GNU Libtool
+
+m4_define([LT_PACKAGE_VERSION], [2.2.10])
+m4_define([LT_PACKAGE_REVISION], [1.3175])
+
+AC_DEFUN([LTVERSION_VERSION],
+[macro_version='2.2.10'
+macro_revision='1.3175'
+_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
+_LT_DECL(, macro_revision, 0)
+])
diff --git a/FreeRTOS-Plus/CyaSSL/m4/lt~obsolete.m4 b/FreeRTOS-Plus/CyaSSL/m4/lt~obsolete.m4
new file mode 100644
index 000000000..c573da90c
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/m4/lt~obsolete.m4
@@ -0,0 +1,98 @@
+# lt~obsolete.m4 -- aclocal satisfying obsolete definitions.    -*-Autoconf-*-
+#
+#   Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
+#   Written by Scott James Remnant, 2004.
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 5 lt~obsolete.m4
+
+# These exist entirely to fool aclocal when bootstrapping libtool.
+#
+# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
+# which have later been changed to m4_define as they aren't part of the
+# exported API, or moved to Autoconf or Automake where they belong.
+#
+# The trouble is, aclocal is a bit thick.  It'll see the old AC_DEFUN
+# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
+# using a macro with the same name in our local m4/libtool.m4 it'll
+# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
+# and doesn't know about Autoconf macros at all.)
+#
+# So we provide this file, which has a silly filename so it's always
+# included after everything else.  This provides aclocal with the
+# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
+# because those macros already exist, or will be overwritten later.
+# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. 
+#
+# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
+# Yes, that means every name once taken will need to remain here until
+# we give up compatibility with versions before 1.7, at which point
+# we need to keep only those names which we still refer to.
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
+
+m4_ifndef([AC_LIBTOOL_LINKER_OPTION],	[AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
+m4_ifndef([AC_PROG_EGREP],		[AC_DEFUN([AC_PROG_EGREP])])
+m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH],	[AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
+m4_ifndef([_LT_AC_SHELL_INIT],		[AC_DEFUN([_LT_AC_SHELL_INIT])])
+m4_ifndef([_LT_AC_SYS_LIBPATH_AIX],	[AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
+m4_ifndef([_LT_PROG_LTMAIN],		[AC_DEFUN([_LT_PROG_LTMAIN])])
+m4_ifndef([_LT_AC_TAGVAR],		[AC_DEFUN([_LT_AC_TAGVAR])])
+m4_ifndef([AC_LTDL_ENABLE_INSTALL],	[AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
+m4_ifndef([AC_LTDL_PREOPEN],		[AC_DEFUN([AC_LTDL_PREOPEN])])
+m4_ifndef([_LT_AC_SYS_COMPILER],	[AC_DEFUN([_LT_AC_SYS_COMPILER])])
+m4_ifndef([_LT_AC_LOCK],		[AC_DEFUN([_LT_AC_LOCK])])
+m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE],	[AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
+m4_ifndef([_LT_AC_TRY_DLOPEN_SELF],	[AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
+m4_ifndef([AC_LIBTOOL_PROG_CC_C_O],	[AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
+m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
+m4_ifndef([AC_LIBTOOL_OBJDIR],		[AC_DEFUN([AC_LIBTOOL_OBJDIR])])
+m4_ifndef([AC_LTDL_OBJDIR],		[AC_DEFUN([AC_LTDL_OBJDIR])])
+m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
+m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP],	[AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
+m4_ifndef([AC_PATH_MAGIC],		[AC_DEFUN([AC_PATH_MAGIC])])
+m4_ifndef([AC_PROG_LD_GNU],		[AC_DEFUN([AC_PROG_LD_GNU])])
+m4_ifndef([AC_PROG_LD_RELOAD_FLAG],	[AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
+m4_ifndef([AC_DEPLIBS_CHECK_METHOD],	[AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
+m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
+m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
+m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
+m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS],	[AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
+m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP],	[AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
+m4_ifndef([LT_AC_PROG_EGREP],		[AC_DEFUN([LT_AC_PROG_EGREP])])
+m4_ifndef([LT_AC_PROG_SED],		[AC_DEFUN([LT_AC_PROG_SED])])
+m4_ifndef([_LT_CC_BASENAME],		[AC_DEFUN([_LT_CC_BASENAME])])
+m4_ifndef([_LT_COMPILER_BOILERPLATE],	[AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
+m4_ifndef([_LT_LINKER_BOILERPLATE],	[AC_DEFUN([_LT_LINKER_BOILERPLATE])])
+m4_ifndef([_AC_PROG_LIBTOOL],		[AC_DEFUN([_AC_PROG_LIBTOOL])])
+m4_ifndef([AC_LIBTOOL_SETUP],		[AC_DEFUN([AC_LIBTOOL_SETUP])])
+m4_ifndef([_LT_AC_CHECK_DLFCN],		[AC_DEFUN([_LT_AC_CHECK_DLFCN])])
+m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER],	[AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
+m4_ifndef([_LT_AC_TAGCONFIG],		[AC_DEFUN([_LT_AC_TAGCONFIG])])
+m4_ifndef([AC_DISABLE_FAST_INSTALL],	[AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
+m4_ifndef([_LT_AC_LANG_CXX],		[AC_DEFUN([_LT_AC_LANG_CXX])])
+m4_ifndef([_LT_AC_LANG_F77],		[AC_DEFUN([_LT_AC_LANG_F77])])
+m4_ifndef([_LT_AC_LANG_GCJ],		[AC_DEFUN([_LT_AC_LANG_GCJ])])
+m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
+m4_ifndef([_LT_AC_LANG_C_CONFIG],	[AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
+m4_ifndef([_LT_AC_LANG_CXX_CONFIG],	[AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
+m4_ifndef([_LT_AC_LANG_F77_CONFIG],	[AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
+m4_ifndef([_LT_AC_LANG_GCJ_CONFIG],	[AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
+m4_ifndef([_LT_AC_LANG_RC_CONFIG],	[AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
+m4_ifndef([AC_LIBTOOL_CONFIG],		[AC_DEFUN([AC_LIBTOOL_CONFIG])])
+m4_ifndef([_LT_AC_FILE_LTDLL_C],	[AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
+m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS],	[AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])])
+m4_ifndef([_LT_AC_PROG_CXXCPP],		[AC_DEFUN([_LT_AC_PROG_CXXCPP])])
+m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS],	[AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])])
+m4_ifndef([_LT_PROG_ECHO_BACKSLASH],	[AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])])
+m4_ifndef([_LT_PROG_F77],		[AC_DEFUN([_LT_PROG_F77])])
+m4_ifndef([_LT_PROG_FC],		[AC_DEFUN([_LT_PROG_FC])])
+m4_ifndef([_LT_PROG_CXX],		[AC_DEFUN([_LT_PROG_CXX])])
diff --git a/FreeRTOS-Plus/CyaSSL/m4/visibility.m4 b/FreeRTOS-Plus/CyaSSL/m4/visibility.m4
new file mode 100644
index 000000000..077c4765e
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/m4/visibility.m4
@@ -0,0 +1,74 @@
+# visibility.m4 serial 3 (gettext-0.18)
+dnl Copyright (C) 2005, 2008-2010 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+
+dnl Tests whether the compiler supports the command-line option
+dnl -fvisibility=hidden and the function and variable attributes
+dnl __attribute__((__visibility__("hidden"))) and
+dnl __attribute__((__visibility__("default"))).
+dnl Does *not* test for __visibility__("protected") - which has tricky
+dnl semantics (see the 'vismain' test in glibc) and does not exist e.g. on
+dnl MacOS X.
+dnl Does *not* test for __visibility__("internal") - which has processor
+dnl dependent semantics.
+dnl Does *not* test for #pragma GCC visibility push(hidden) - which is
+dnl "really only recommended for legacy code".
+dnl Set the variable CFLAG_VISIBILITY.
+dnl Defines and sets the variable HAVE_VISIBILITY.
+
+AC_DEFUN([gl_VISIBILITY],
+[
+  AC_REQUIRE([AC_PROG_CC])
+  CFLAG_VISIBILITY=
+  HAVE_VISIBILITY=0
+  if test -n "$GCC"; then
+    dnl First, check whether -Werror can be added to the command line, or
+    dnl whether it leads to an error because of some other option that the
+    dnl user has put into $CC $CFLAGS $CPPFLAGS.
+    AC_MSG_CHECKING([whether the -Werror option is usable])
+    AC_CACHE_VAL([gl_cv_cc_vis_werror], [
+      gl_save_CFLAGS="$CFLAGS"
+      CFLAGS="$CFLAGS -Werror"
+      AC_TRY_COMPILE([], [],
+        [gl_cv_cc_vis_werror=yes],
+        [gl_cv_cc_vis_werror=no])
+      CFLAGS="$gl_save_CFLAGS"])
+    AC_MSG_RESULT([$gl_cv_cc_vis_werror])
+    dnl Now check whether visibility declarations are supported.
+    AC_MSG_CHECKING([for simple visibility declarations])
+    AC_CACHE_VAL([gl_cv_cc_visibility], [
+      gl_save_CFLAGS="$CFLAGS"
+      CFLAGS="$CFLAGS -fvisibility=hidden"
+      dnl We use the option -Werror and a function dummyfunc, because on some
+      dnl platforms (Cygwin 1.7) the use of -fvisibility triggers a warning
+      dnl "visibility attribute not supported in this configuration; ignored"
+      dnl at the first function definition in every compilation unit, and we
+      dnl don't want to use the option in this case.
+      if test $gl_cv_cc_vis_werror = yes; then
+        CFLAGS="$CFLAGS -Werror"
+      fi
+      AC_TRY_COMPILE(
+        [extern __attribute__((__visibility__("hidden"))) int hiddenvar;
+         extern __attribute__((__visibility__("default"))) int exportedvar;
+         extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void);
+         extern __attribute__((__visibility__("default"))) int exportedfunc (void);
+         void dummyfunc (void) {}],
+        [],
+        [gl_cv_cc_visibility=yes],
+        [gl_cv_cc_visibility=no])
+      CFLAGS="$gl_save_CFLAGS"])
+    AC_MSG_RESULT([$gl_cv_cc_visibility])
+    if test $gl_cv_cc_visibility = yes; then
+      CFLAG_VISIBILITY="-fvisibility=hidden"
+      HAVE_VISIBILITY=1
+    fi
+  fi
+  AC_SUBST([CFLAG_VISIBILITY])
+  AC_SUBST([HAVE_VISIBILITY])
+  AC_DEFINE_UNQUOTED([HAVE_VISIBILITY], [$HAVE_VISIBILITY],
+    [Define to 1 or 0, depending whether the compiler supports simple visibility declarations.])
+])
diff --git a/FreeRTOS-Plus/CyaSSL/quit b/FreeRTOS-Plus/CyaSSL/quit
new file mode 100644
index 000000000..3db49b3ad
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/quit
@@ -0,0 +1,2 @@
+quit
+
diff --git a/FreeRTOS-Plus/CyaSSL/src/crl.c b/FreeRTOS-Plus/CyaSSL/src/crl.c
new file mode 100644
index 000000000..561d573bf
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/src/crl.c
@@ -0,0 +1,303 @@
+/* crl.c
+ *
+ * Copyright (C) 2006-2012 Sawtooth Consulting Ltd.
+ *
+ * This file is part of CyaSSL.
+ *
+ * CyaSSL is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * CyaSSL is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifdef HAVE_CONFIG_H
+    #include 
+#endif
+
+
+#ifdef HAVE_CRL
+
+#include 
+#include 
+
+#include 
+#include 
+
+
+/* Initialze CRL members */
+int InitCRL(CYASSL_CRL* crl, CYASSL_CERT_MANAGER* cm)
+{
+	CYASSL_ENTER("InitCRL");
+
+	crl->cm = cm;
+	crl->crlList = NULL;
+	if (InitMutex(&crl->crlLock) != 0)
+		return BAD_MUTEX_ERROR; 
+
+	return 0;
+}
+
+
+/* Initialze CRL Entry */
+static int InitCRL_Entry(CRL_Entry* crle, DecodedCRL* dcrl)
+{
+	CYASSL_ENTER("FreeCRL_Entry");
+
+	XMEMCPY(crle->issuerHash, dcrl->issuerHash, SHA_DIGEST_SIZE);
+	XMEMCPY(crle->crlHash, dcrl->crlHash, MD5_DIGEST_SIZE);
+	XMEMCPY(crle->lastDate, dcrl->lastDate, MAX_DATE_SIZE);
+	XMEMCPY(crle->nextDate, dcrl->nextDate, MAX_DATE_SIZE);
+
+	crle->certs = dcrl->certs;   /* take ownsership */
+	dcrl->certs = NULL;
+	crle->totalCerts = dcrl->totalCerts;
+
+	return 0;
+}
+
+
+/* Free all CRL Entry resources */
+static void FreeCRL_Entry(CRL_Entry* crle)
+{
+	RevokedCert* tmp = crle->certs; 
+
+	CYASSL_ENTER("FreeCRL_Entry");
+
+    while(tmp) {
+        RevokedCert* next = tmp->next;
+        XFREE(tmp, NULL, DYNAMIC_TYPE_REVOKED);
+        tmp = next;
+    }
+}
+
+
+
+/* Free all CRL resources */
+void FreeCRL(CYASSL_CRL* crl)
+{
+	CRL_Entry* tmp = crl->crlList;
+
+	CYASSL_ENTER("FreeCRL");
+
+    while(tmp) {
+        CRL_Entry* next = tmp->next;
+        FreeCRL_Entry(tmp);
+        XFREE(tmp, NULL, DYNAMIC_TYPE_CRL_ENTRY);
+        tmp = next;
+    }	
+
+    FreeMutex(&crl->crlLock);
+}
+
+
+/* Is the cert ok with CRL, return 0 on success */
+int CheckCertCRL(CYASSL_CRL* crl, DecodedCert* cert)
+{
+	CRL_Entry* crle;
+	int        foundEntry = 0;
+	int        revoked = 0;
+	int        ret = 0;
+
+	CYASSL_ENTER("CheckCertCRL");
+
+	if (LockMutex(&crl->crlLock) != 0) {
+		CYASSL_MSG("LockMutex failed");
+		return BAD_MUTEX_ERROR;
+	}
+
+	crle = crl->crlList;
+
+	while (crle) {
+		if (XMEMCMP(crle->issuerHash, cert->issuerHash, SHA_DIGEST_SIZE) == 0) {
+			CYASSL_MSG("Found CRL Entry on list");
+			foundEntry = 1;
+			break;
+		}
+		crle = crle->next;
+	}
+
+	if (foundEntry) {
+		RevokedCert* rc = crle->certs;
+
+		while (rc) {
+			if (XMEMCMP(rc->serialNumber, cert->serial, rc->serialSz) == 0) {
+				CYASSL_MSG("Cert revoked");
+				revoked = 1;
+				ret = CRL_CERT_REVOKED;
+				break;
+			}
+			rc = rc->next;	
+		}
+	}
+
+	UnLockMutex(&crl->crlLock);
+
+	if (foundEntry == 0) {
+		CYASSL_MSG("Couldn't find CRL for status check");
+		ret = CRL_MISSING;
+		if (crl->cm->cbMissingCRL) {
+			char url[256];
+
+			CYASSL_MSG("Issuing missing CRL callback");
+			url[0] = '\0';
+			if (cert->extCrlInfoSz < (int)sizeof(url) -1 ) {
+				XMEMCPY(url, cert->extCrlInfo, cert->extCrlInfoSz);
+				url[cert->extCrlInfoSz] = '\0';
+			}
+			else  {
+				CYASSL_MSG("CRL url too long");
+            }
+			crl->cm->cbMissingCRL(url);
+		}
+	}
+
+
+	return ret;	
+}
+
+
+/* Add Decoded CRL, 0 on success */
+static int AddCRL(CYASSL_CRL* crl, DecodedCRL* dcrl)
+{
+	CRL_Entry* crle;
+
+	CYASSL_ENTER("AddCRL");
+
+	crle = (CRL_Entry*)XMALLOC(sizeof(CRL_Entry), NULL, DYNAMIC_TYPE_CRL_ENTRY);
+	if (crle == NULL) {
+		CYASSL_MSG("alloc CRL Entry failed");
+		return -1;
+	}
+
+	if (InitCRL_Entry(crle, dcrl) < 0) {
+		CYASSL_MSG("Init CRL Entry failed");
+		return -1;
+	}
+
+	if (LockMutex(&crl->crlLock) != 0) {
+		CYASSL_MSG("LockMutex failed");
+		FreeCRL_Entry(crle);
+		return BAD_MUTEX_ERROR;
+	}
+	crle->next = crl->crlList;
+	crl->crlList = crle;
+	UnLockMutex(&crl->crlLock);
+
+	return 0;
+}
+
+
+/* Load CRL File of type, SSL_SUCCESS on ok */
+int BufferLoadCRL(CYASSL_CRL* crl, const byte* buff, long sz, int type)
+{
+	int          ret = SSL_SUCCESS;
+	const byte*  myBuffer = buff;    /* if DER ok, otherwise switch */
+	buffer       der;
+	DecodedCRL   dcrl;
+
+	der.buffer = NULL;
+
+	CYASSL_ENTER("BufferLoadCRL");
+
+	if (crl == NULL || buff == NULL || sz == 0)
+		return BAD_FUNC_ARG;
+
+	if (type == SSL_FILETYPE_PEM) {
+		int eccKey = 0;   /* not used */
+		EncryptedInfo info;
+		info.ctx = NULL;
+
+		ret = PemToDer(buff, sz, CRL_TYPE, &der, NULL, &info, &eccKey);
+		if (ret == 0) {
+			myBuffer = der.buffer;
+			sz = der.length;
+		}
+		else {
+			CYASSL_MSG("Pem to Der failed");
+			return -1;
+		}
+	}
+
+	InitDecodedCRL(&dcrl);
+	ret = ParseCRL(&dcrl, myBuffer, sz);
+	if (ret != 0) {
+		CYASSL_MSG("ParseCRL error");
+	}
+	else {
+		ret = AddCRL(crl, &dcrl);
+		if (ret != 0) {
+			CYASSL_MSG("AddCRL error");
+        }
+	}
+	FreeDecodedCRL(&dcrl);
+
+	if (der.buffer)
+		XFREE(der.buffer, NULL, DYNAMIC_TYPE_CRL);
+
+	if (ret == 0)
+		return SSL_SUCCESS;  /* convert */
+	return ret;
+}
+
+
+/* Load CRL path files of type, SSL_SUCCESS on ok */ 
+int LoadCRL(CYASSL_CRL* crl, const char* path, int type, int monitor)
+{
+	struct dirent* entry;
+	DIR*   dir;
+	int    ret = SSL_SUCCESS;
+
+	CYASSL_ENTER("LoadCRL");
+	if (crl == NULL)
+		return BAD_FUNC_ARG;
+
+	dir = opendir(path);
+	if (dir == NULL) {
+		CYASSL_MSG("opendir path crl load failed");
+		return BAD_PATH_ERROR;
+	}
+	while ( ret == SSL_SUCCESS && (entry = readdir(dir)) != NULL) {
+		if (entry->d_type & DT_REG) {
+			char name[MAX_FILENAME_SZ];
+
+			if (type == SSL_FILETYPE_PEM) {
+				if (strstr(entry->d_name, ".pem") == NULL) {
+					CYASSL_MSG("not .pem file, skipping");
+					continue;
+				}
+			}
+			else {
+				if (strstr(entry->d_name, ".der") == NULL &&
+					strstr(entry->d_name, ".crl") == NULL) {
+
+					CYASSL_MSG("not .der or .crl file, skipping");
+					continue;
+				}
+			}
+
+			XMEMSET(name, 0, sizeof(name));
+			XSTRNCPY(name, path, MAX_FILENAME_SZ/2 - 2);
+			XSTRNCAT(name, "/", 1);
+			XSTRNCAT(name, entry->d_name, MAX_FILENAME_SZ/2);
+
+			ret = ProcessFile(NULL, name, type, CRL_TYPE, NULL, 0, crl);
+		}
+	}
+
+    if (monitor) {
+        CYASSL_MSG("monitor path requested");
+    }
+
+	return SSL_SUCCESS;
+}
+
+#endif /* HAVE_CRL */
diff --git a/FreeRTOS-Plus/CyaSSL/src/include.am b/FreeRTOS-Plus/CyaSSL/src/include.am
new file mode 100644
index 000000000..9890a8f7e
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/src/include.am
@@ -0,0 +1,76 @@
+# vim:ft=automake
+# included from Top Level Makefile.am
+# All paths should be given relative to the root
+
+lib_LTLIBRARIES+= src/libcyassl.la
+src_libcyassl_la_SOURCES = \
+			   src/internal.c \
+			   src/io.c \
+			   src/keys.c \
+			   src/ssl.c \
+			   src/tls.c  \
+			   ctaocrypt/src/asn.c \
+			   ctaocrypt/src/coding.c \
+			   ctaocrypt/src/des3.c \
+			   ctaocrypt/src/hmac.c \
+			   ctaocrypt/src/md5.c \
+			   ctaocrypt/src/md4.c \
+			   ctaocrypt/src/random.c \
+			   ctaocrypt/src/rsa.c \
+			   ctaocrypt/src/sha.c \
+			   ctaocrypt/src/aes.c \
+			   ctaocrypt/src/sha256.c \
+			   ctaocrypt/src/dh.c \
+			   ctaocrypt/src/dsa.c \
+			   ctaocrypt/src/arc4.c \
+			   ctaocrypt/src/rabbit.c \
+			   ctaocrypt/src/pwdbased.c \
+			   ctaocrypt/src/logging.c \
+			   ctaocrypt/src/memory.c
+src_libcyassl_la_LDFLAGS = ${AM_LDFLAGS} -no-undefined -version-info ${CYASSL_LIBRARY_VERSION}
+src_libcyassl_la_LIBADD = $(LIBM)
+src_libcyassl_la_CFLAGS = -DBUILDING_CYASSL $(AM_CFLAGS)
+src_libcyassl_la_CPPFLAGS = -DBUILDING_CYASSL $(AM_CPPFLAGS)
+
+if BUILD_AESNI
+src_libcyassl_la_SOURCES += ctaocrypt/src/aes_asm.s
+endif
+
+if BUILD_RIPEMD
+src_libcyassl_la_SOURCES += ctaocrypt/src/ripemd.c
+endif
+
+if BUILD_SHA512
+src_libcyassl_la_SOURCES += ctaocrypt/src/sha512.c
+endif
+
+if BUILD_SNIFFER
+src_libcyassl_la_SOURCES += src/sniffer.c
+endif
+
+if BUILD_HC128
+src_libcyassl_la_SOURCES += ctaocrypt/src/hc128.c
+endif
+
+if BUILD_NOINLINE
+src_libcyassl_la_SOURCES += ctaocrypt/src/misc.c
+endif
+
+if BUILD_FASTMATH
+src_libcyassl_la_SOURCES += ctaocrypt/src/tfm.c
+else
+src_libcyassl_la_SOURCES += ctaocrypt/src/integer.c
+endif
+
+if BUILD_ECC
+src_libcyassl_la_SOURCES += ctaocrypt/src/ecc.c
+endif
+
+if BUILD_OCSP
+src_libcyassl_la_SOURCES += src/ocsp.c
+endif
+
+if BUILD_CRL
+src_libcyassl_la_SOURCES += src/crl.c
+endif
+
diff --git a/FreeRTOS-Plus/CyaSSL/src/internal.c b/FreeRTOS-Plus/CyaSSL/src/internal.c
new file mode 100644
index 000000000..beb73aeca
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/src/internal.c
@@ -0,0 +1,6324 @@
+/* internal.c
+ *
+ * Copyright (C) 2006-2012 Sawtooth Consulting Ltd.
+ *
+ * This file is part of CyaSSL.
+ *
+ * CyaSSL is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * CyaSSL is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+
+#ifdef HAVE_CONFIG_H
+    #include 
+#endif
+
+#include 
+#include 
+#include 
+
+#ifdef HAVE_LIBZ
+    #include "zlib.h"
+#endif
+
+#ifdef HAVE_NTRU
+    #include "crypto_ntru.h"
+#endif
+
+#if defined(DEBUG_CYASSL) || defined(SHOW_SECRETS)
+    #include 
+#endif
+
+#ifdef __sun
+    #include 
+#endif
+
+#define TRUE  1
+#define FALSE 0
+
+
+#if defined(OPENSSL_EXTRA) && defined(NO_DH)
+    #error OPENSSL_EXTRA needs DH, please remove NO_DH
+#endif
+
+
+#ifndef NO_CYASSL_CLIENT
+    static int DoHelloVerifyRequest(CYASSL* ssl, const byte* input, word32*);
+    static int DoServerHello(CYASSL* ssl, const byte* input, word32*);
+    static int DoCertificateRequest(CYASSL* ssl, const byte* input, word32*);
+    static int DoServerKeyExchange(CYASSL* ssl, const byte* input, word32*);
+#endif
+
+
+#ifndef NO_CYASSL_SERVER
+    static int DoClientHello(CYASSL* ssl, const byte* input, word32*, word32,
+                             word32);
+    static int DoCertificateVerify(CYASSL* ssl, byte*, word32*, word32);
+    static int DoClientKeyExchange(CYASSL* ssl, byte* input, word32*);
+#endif
+
+typedef enum {
+    doProcessInit = 0,
+#ifndef NO_CYASSL_SERVER
+    runProcessOldClientHello,
+#endif
+    getRecordLayerHeader,
+    getData,
+    runProcessingOneMessage
+} processReply;
+
+static void Hmac(CYASSL* ssl, byte* digest, const byte* buffer, word32 sz,
+                 int content, int verify);
+
+static void BuildCertHashes(CYASSL* ssl, Hashes* hashes);
+
+
+#ifndef min
+
+    static INLINE word32 min(word32 a, word32 b)
+    {
+        return a > b ? b : a;
+    }
+
+#endif /* min */
+
+
+int IsTLS(const CYASSL* ssl)
+{
+    if (ssl->version.major == SSLv3_MAJOR && ssl->version.minor >=TLSv1_MINOR)
+        return 1;
+
+    return 0;
+}
+
+
+int IsAtLeastTLSv1_2(const CYASSL* ssl)
+{
+    if (ssl->version.major == SSLv3_MAJOR && ssl->version.minor >=TLSv1_2_MINOR)
+        return 1;
+
+    return 0;
+}
+
+
+#ifdef HAVE_NTRU
+
+static byte GetEntropy(ENTROPY_CMD cmd, byte* out)
+{
+    /* TODO: add locking? */
+    static RNG rng;
+
+    if (cmd == INIT) {
+        int ret = InitRng(&rng);
+        if (ret == 0)
+            return 1;
+        else
+            return 0;
+    }
+
+    if (out == NULL)
+        return 0;
+
+    if (cmd == GET_BYTE_OF_ENTROPY) {
+        RNG_GenerateBlock(&rng, out, 1);
+        return 1;
+    }
+
+    if (cmd == GET_NUM_BYTES_PER_BYTE_OF_ENTROPY) {
+        *out = 1;
+        return 1;
+    }
+
+    return 0;
+}
+
+#endif /* HAVE_NTRU */
+
+/* used by ssl.c too */
+void c32to24(word32 in, word24 out)
+{
+    out[0] = (in >> 16) & 0xff;
+    out[1] = (in >>  8) & 0xff;
+    out[2] =  in & 0xff;
+}
+
+
+#ifdef CYASSL_DTLS
+
+static INLINE void c32to48(word32 in, byte out[6])
+{
+    out[0] = 0;
+    out[1] = 0;
+    out[2] = (in >> 24) & 0xff;
+    out[3] = (in >> 16) & 0xff;
+    out[4] = (in >>  8) & 0xff;
+    out[5] =  in & 0xff;
+}
+
+#endif /* CYASSL_DTLS */
+
+
+/* convert 16 bit integer to opaque */
+static INLINE void c16toa(word16 u16, byte* c)
+{
+    c[0] = (u16 >> 8) & 0xff;
+    c[1] =  u16 & 0xff;
+}
+
+
+/* convert 32 bit integer to opaque */
+static INLINE void c32toa(word32 u32, byte* c)
+{
+    c[0] = (u32 >> 24) & 0xff;
+    c[1] = (u32 >> 16) & 0xff;
+    c[2] = (u32 >>  8) & 0xff;
+    c[3] =  u32 & 0xff;
+}
+
+
+/* convert a 24 bit integer into a 32 bit one */
+static INLINE void c24to32(const word24 u24, word32* u32)
+{
+    *u32 = 0;
+    *u32 = (u24[0] << 16) | (u24[1] << 8) | u24[2];
+}
+
+
+/* convert opaque to 16 bit integer */
+static INLINE void ato16(const byte* c, word16* u16)
+{
+    *u16 = 0;
+    *u16 = (c[0] << 8) | (c[1]);
+}
+
+
+#ifdef CYASSL_DTLS
+
+/* convert opaque to 32 bit integer */
+static INLINE void ato32(const byte* c, word32* u32)
+{
+    *u32 = 0;
+    *u32 = (c[0] << 24) | (c[1] << 16) | (c[2] << 8) | c[3];
+}
+
+#endif /* CYASSL_DTLS */
+
+
+#ifdef HAVE_LIBZ
+
+    /* alloc user allocs to work with zlib */
+    static void* myAlloc(void* opaque, unsigned int item, unsigned int size)
+    {
+        (void)opaque;
+        return XMALLOC(item * size, opaque, DYNAMIC_TYPE_LIBZ);
+    }
+
+
+    static void myFree(void* opaque, void* memory)
+    {
+        (void)opaque;
+        XFREE(memory, opaque, DYNAMIC_TYPE_LIBZ);
+    }
+
+
+    /* init zlib comp/decomp streams, 0 on success */
+    static int InitStreams(CYASSL* ssl)
+    {
+        ssl->c_stream.zalloc = (alloc_func)myAlloc;
+        ssl->c_stream.zfree  = (free_func)myFree;
+        ssl->c_stream.opaque = (voidpf)ssl->heap;
+
+        if (deflateInit(&ssl->c_stream, 8) != Z_OK) return ZLIB_INIT_ERROR;
+
+        ssl->didStreamInit = 1;
+
+        ssl->d_stream.zalloc = (alloc_func)myAlloc;
+        ssl->d_stream.zfree  = (free_func)myFree;
+        ssl->d_stream.opaque = (voidpf)ssl->heap;
+
+        if (inflateInit(&ssl->d_stream) != Z_OK) return ZLIB_INIT_ERROR;
+
+        return 0;
+    }
+
+
+    static void FreeStreams(CYASSL* ssl)
+    {
+        if (ssl->didStreamInit) {
+            deflateEnd(&ssl->c_stream);
+            inflateEnd(&ssl->d_stream);
+        }
+    }
+
+
+    /* compress in to out, return out size or error */
+    static int Compress(CYASSL* ssl, byte* in, int inSz, byte* out, int outSz)
+    {
+        int    err;
+        int    currTotal = ssl->c_stream.total_out;
+
+        /* put size in front of compression */
+        c16toa((word16)inSz, out);
+        out   += 2;
+        outSz -= 2;
+
+        ssl->c_stream.next_in   = in;
+        ssl->c_stream.avail_in  = inSz;
+        ssl->c_stream.next_out  = out;
+        ssl->c_stream.avail_out = outSz;
+
+        err = deflate(&ssl->c_stream, Z_SYNC_FLUSH);
+        if (err != Z_OK && err != Z_STREAM_END) return ZLIB_COMPRESS_ERROR;
+
+        return ssl->c_stream.total_out - currTotal + sizeof(word16);
+    }
+        
+
+    /* decompress in to out, returnn out size or error */
+    static int DeCompress(CYASSL* ssl, byte* in, int inSz, byte* out, int outSz)
+    {
+        int    err;
+        int    currTotal = ssl->d_stream.total_out;
+        word16 len;
+
+        /* find size in front of compression */
+        ato16(in, &len);
+        in   += 2;
+        inSz -= 2;
+
+        ssl->d_stream.next_in   = in;
+        ssl->d_stream.avail_in  = inSz;
+        ssl->d_stream.next_out  = out;
+        ssl->d_stream.avail_out = outSz;
+
+        err = inflate(&ssl->d_stream, Z_SYNC_FLUSH);
+        if (err != Z_OK && err != Z_STREAM_END) return ZLIB_DECOMPRESS_ERROR;
+
+        return ssl->d_stream.total_out - currTotal;
+    }
+        
+#endif /* HAVE_LIBZ */
+
+
+void InitSSL_Method(CYASSL_METHOD* method, ProtocolVersion pv)
+{
+    method->version    = pv;
+    method->side       = CLIENT_END;
+    method->verifyPeer = 0;
+    method->verifyNone = 0;
+    method->failNoCert = 0;
+    method->downgrade  = 0;
+}
+
+
+/* Initialze SSL context, return 0 on success */
+int InitSSL_Ctx(CYASSL_CTX* ctx, CYASSL_METHOD* method)
+{
+    ctx->method = method;
+    ctx->refCount = 1;          /* so either CTX_free or SSL_free can release */
+    ctx->certificate.buffer = 0;
+    ctx->certChain.buffer   = 0;
+    ctx->privateKey.buffer  = 0;
+    ctx->serverDH_P.buffer  = 0;
+    ctx->serverDH_G.buffer  = 0;
+    ctx->haveDH             = 0;
+    ctx->haveNTRU           = 0;    /* start off */
+    ctx->haveECDSA          = 0;    /* start off */
+    ctx->haveStaticECC      = 0;    /* start off */
+    ctx->heap               = ctx;  /* defaults to self */
+#ifndef NO_PSK
+    ctx->havePSK            = 0;
+    ctx->server_hint[0]     = 0;
+    ctx->client_psk_cb      = 0;
+    ctx->server_psk_cb      = 0;
+#endif /* NO_PSK */
+#ifdef HAVE_ECC
+    ctx->eccTempKeySz       = ECDHE_SIZE;   
+#endif
+
+#ifdef OPENSSL_EXTRA
+    ctx->passwd_cb   = 0;
+    ctx->userdata    = 0;
+#endif /* OPENSSL_EXTRA */
+
+    ctx->timeout = DEFAULT_TIMEOUT;
+
+#ifndef CYASSL_USER_IO
+    ctx->CBIORecv = EmbedReceive;
+    ctx->CBIOSend = EmbedSend;
+#else
+    /* user will set */
+    ctx->CBIORecv = NULL;
+    ctx->CBIOSend = NULL;
+#endif
+    ctx->partialWrite   = 0;
+    ctx->verifyCallback = 0;
+
+    ctx->cm = CyaSSL_CertManagerNew();
+#ifdef HAVE_NTRU
+    if (method->side == CLIENT_END)
+        ctx->haveNTRU = 1;           /* always on cliet side */
+                                     /* server can turn on by loading key */
+#endif
+#ifdef HAVE_ECC
+    if (method->side == CLIENT_END) {
+        ctx->haveECDSA     = 1;        /* always on cliet side */
+        ctx->haveStaticECC = 1;        /* server can turn on by loading key */
+    }
+#endif
+    ctx->suites.setSuites = 0;  /* user hasn't set yet */
+    /* remove DH later if server didn't set, add psk later */
+    InitSuites(&ctx->suites, method->version, TRUE, FALSE, ctx->haveNTRU,
+               ctx->haveECDSA, ctx->haveStaticECC, method->side);  
+    ctx->verifyPeer = 0;
+    ctx->verifyNone = 0;
+    ctx->failNoCert = 0;
+    ctx->sessionCacheOff      = 0;  /* initially on */
+    ctx->sessionCacheFlushOff = 0;  /* initially on */
+    ctx->sendVerify = 0;
+    ctx->quietShutdown = 0;
+    ctx->groupMessages = 0;
+#ifdef HAVE_OCSP
+    CyaSSL_OCSP_Init(&ctx->ocsp);
+#endif
+
+    if (InitMutex(&ctx->countMutex) < 0) {
+        CYASSL_MSG("Mutex error on CTX init");
+        return BAD_MUTEX_ERROR;
+    } 
+    if (ctx->cm == NULL) {
+        CYASSL_MSG("Bad Cert Manager New");
+        return BAD_CERT_MANAGER_ERROR;
+    }
+    return 0;
+}
+
+
+/* In case contexts are held in array and don't want to free actual ctx */
+void SSL_CtxResourceFree(CYASSL_CTX* ctx)
+{
+    XFREE(ctx->serverDH_G.buffer, ctx->heap, DYNAMIC_TYPE_DH);
+    XFREE(ctx->serverDH_P.buffer, ctx->heap, DYNAMIC_TYPE_DH);
+    XFREE(ctx->privateKey.buffer, ctx->heap, DYNAMIC_TYPE_KEY);
+    XFREE(ctx->certificate.buffer, ctx->heap, DYNAMIC_TYPE_CERT);
+    XFREE(ctx->certChain.buffer, ctx->heap, DYNAMIC_TYPE_CERT);
+    XFREE(ctx->method, ctx->heap, DYNAMIC_TYPE_METHOD);
+
+    CyaSSL_CertManagerFree(ctx->cm);
+
+#ifdef HAVE_OCSP
+    CyaSSL_OCSP_Cleanup(&ctx->ocsp);
+#endif
+}
+
+
+void FreeSSL_Ctx(CYASSL_CTX* ctx)
+{
+    int doFree = 0;
+
+    if (LockMutex(&ctx->countMutex) != 0) {
+        CYASSL_MSG("Couldn't lock count mutex");
+        return;
+    }
+    ctx->refCount--;
+    if (ctx->refCount == 0)
+        doFree = 1;
+    UnLockMutex(&ctx->countMutex);
+
+    if (doFree) {
+        CYASSL_MSG("CTX ref count down to 0, doing full free");
+        SSL_CtxResourceFree(ctx);
+        XFREE(ctx, ctx->heap, DYNAMIC_TYPE_CTX);
+    }
+    else {
+        (void)ctx;
+        CYASSL_MSG("CTX ref count not 0 yet, no free");
+    }
+}
+
+    
+void InitSuites(Suites* suites, ProtocolVersion pv, byte haveDH, byte havePSK,
+                byte haveNTRU, byte haveStaticECC, byte haveECDSA, int side)
+{
+    word16 idx = 0;
+    int    tls    = pv.major == SSLv3_MAJOR && pv.minor >= TLSv1_MINOR;
+    int    tls1_2 = pv.major == SSLv3_MAJOR && pv.minor >= TLSv1_2_MINOR;
+    int    haveRSA = 1;
+
+    (void)tls;  /* shut up compiler */
+    (void)haveDH;
+    (void)havePSK;
+    (void)haveNTRU;
+    (void)haveStaticECC;
+
+    if (suites->setSuites)
+        return;      /* trust user settings, don't override */
+
+    if (side == SERVER_END && haveECDSA)
+        haveRSA = 0;   /* can't do RSA with ECDSA cert */
+
+#ifdef CYASSL_DTLS
+    if (pv.major == DTLS_MAJOR && pv.minor == DTLS_MINOR)
+        tls = 1;
+#endif
+
+#ifdef BUILD_TLS_NTRU_RSA_WITH_AES_256_CBC_SHA
+    if (tls && haveNTRU && haveRSA) {
+        suites->suites[idx++] = 0; 
+        suites->suites[idx++] = TLS_NTRU_RSA_WITH_AES_256_CBC_SHA;
+    }
+#endif
+
+#ifdef BUILD_TLS_NTRU_RSA_WITH_AES_128_CBC_SHA
+    if (tls && haveNTRU && haveRSA) {
+        suites->suites[idx++] = 0; 
+        suites->suites[idx++] = TLS_NTRU_RSA_WITH_AES_128_CBC_SHA;
+    }
+#endif
+
+#ifdef BUILD_TLS_NTRU_RSA_WITH_RC4_128_SHA
+    if (tls && haveNTRU && haveRSA) {
+        suites->suites[idx++] = 0; 
+        suites->suites[idx++] = TLS_NTRU_RSA_WITH_RC4_128_SHA;
+    }
+#endif
+
+#ifdef BUILD_TLS_NTRU_RSA_WITH_3DES_EDE_CBC_SHA
+    if (tls && haveNTRU && haveRSA) {
+        suites->suites[idx++] = 0; 
+        suites->suites[idx++] = TLS_NTRU_RSA_WITH_3DES_EDE_CBC_SHA;
+    }
+#endif
+
+#ifdef BUILD_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
+    if (tls && haveECDSA) {
+        suites->suites[idx++] = ECC_BYTE; 
+        suites->suites[idx++] = TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA;
+    }
+#endif
+
+#ifdef BUILD_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
+    if (tls && haveECDSA && haveStaticECC) {
+        suites->suites[idx++] = ECC_BYTE; 
+        suites->suites[idx++] = TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA;
+    }
+#endif
+
+#ifdef BUILD_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
+    if (tls && haveECDSA) {
+        suites->suites[idx++] = ECC_BYTE; 
+        suites->suites[idx++] = TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA;
+    }
+#endif
+
+#ifdef BUILD_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA
+    if (tls && haveECDSA && haveStaticECC) {
+        suites->suites[idx++] = ECC_BYTE; 
+        suites->suites[idx++] = TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA;
+    }
+#endif
+
+#ifdef BUILD_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA
+    if (tls && haveECDSA) {
+        suites->suites[idx++] = ECC_BYTE; 
+        suites->suites[idx++] = TLS_ECDHE_ECDSA_WITH_RC4_128_SHA;
+    }
+#endif
+
+#ifdef BUILD_TLS_ECDH_ECDSA_WITH_RC4_128_SHA
+    if (tls && haveECDSA && haveStaticECC) {
+        suites->suites[idx++] = ECC_BYTE; 
+        suites->suites[idx++] = TLS_ECDH_ECDSA_WITH_RC4_128_SHA;
+    }
+#endif
+
+#ifdef BUILD_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA
+    if (tls && haveECDSA) {
+        suites->suites[idx++] = ECC_BYTE; 
+        suites->suites[idx++] = TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA;
+    }
+#endif
+
+#ifdef BUILD_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA
+    if (tls && haveECDSA && haveStaticECC) {
+        suites->suites[idx++] = ECC_BYTE; 
+        suites->suites[idx++] = TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA;
+    }
+#endif
+
+#ifdef BUILD_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
+    if (tls && haveRSA) {
+        suites->suites[idx++] = ECC_BYTE; 
+        suites->suites[idx++] = TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA;
+    }
+#endif
+
+#ifdef BUILD_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
+    if (tls && haveRSA && haveStaticECC) {
+        suites->suites[idx++] = ECC_BYTE; 
+        suites->suites[idx++] = TLS_ECDH_RSA_WITH_AES_256_CBC_SHA;
+    }
+#endif
+
+#ifdef BUILD_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
+    if (tls && haveRSA) {
+        suites->suites[idx++] = ECC_BYTE; 
+        suites->suites[idx++] = TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA;
+    }
+#endif
+
+#ifdef BUILD_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA
+    if (tls && haveRSA && haveStaticECC) {
+        suites->suites[idx++] = ECC_BYTE; 
+        suites->suites[idx++] = TLS_ECDH_RSA_WITH_AES_128_CBC_SHA;
+    }
+#endif
+
+#ifdef BUILD_TLS_ECDHE_RSA_WITH_RC4_128_SHA
+    if (tls && haveRSA) {
+        suites->suites[idx++] = ECC_BYTE; 
+        suites->suites[idx++] = TLS_ECDHE_RSA_WITH_RC4_128_SHA;
+    }
+#endif
+
+#ifdef BUILD_TLS_ECDH_RSA_WITH_RC4_128_SHA
+    if (tls && haveRSA && haveStaticECC) {
+        suites->suites[idx++] = ECC_BYTE; 
+        suites->suites[idx++] = TLS_ECDH_RSA_WITH_RC4_128_SHA;
+    }
+#endif
+
+#ifdef BUILD_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
+    if (tls && haveRSA) {
+        suites->suites[idx++] = ECC_BYTE; 
+        suites->suites[idx++] = TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA;
+    }
+#endif
+
+#ifdef BUILD_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA
+    if (tls && haveRSA && haveStaticECC) {
+        suites->suites[idx++] = ECC_BYTE; 
+        suites->suites[idx++] = TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA;
+    }
+#endif
+
+#ifdef BUILD_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
+    if (tls1_2 && haveDH && haveRSA) {
+        suites->suites[idx++] = 0; 
+        suites->suites[idx++] = TLS_DHE_RSA_WITH_AES_256_CBC_SHA256;
+    }
+#endif
+
+#ifdef BUILD_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
+    if (tls1_2 && haveDH && haveRSA) {
+        suites->suites[idx++] = 0; 
+        suites->suites[idx++] = TLS_DHE_RSA_WITH_AES_128_CBC_SHA256;
+    }
+#endif
+
+#ifdef BUILD_TLS_DHE_RSA_WITH_AES_256_CBC_SHA
+    if (tls && haveDH && haveRSA) {
+        suites->suites[idx++] = 0; 
+        suites->suites[idx++] = TLS_DHE_RSA_WITH_AES_256_CBC_SHA;
+    }
+#endif
+
+#ifdef BUILD_TLS_DHE_RSA_WITH_AES_128_CBC_SHA
+    if (tls && haveDH && haveRSA) {
+        suites->suites[idx++] = 0; 
+        suites->suites[idx++] = TLS_DHE_RSA_WITH_AES_128_CBC_SHA;
+    }
+#endif
+
+#ifdef BUILD_TLS_RSA_WITH_AES_256_CBC_SHA256
+    if (tls1_2 && haveRSA) {
+        suites->suites[idx++] = 0; 
+        suites->suites[idx++] = TLS_RSA_WITH_AES_256_CBC_SHA256;
+    }
+#endif
+
+#ifdef BUILD_TLS_RSA_WITH_AES_128_CBC_SHA256
+    if (tls1_2 && haveRSA) {
+        suites->suites[idx++] = 0; 
+        suites->suites[idx++] = TLS_RSA_WITH_AES_128_CBC_SHA256;
+    }
+#endif
+
+#ifdef BUILD_TLS_RSA_WITH_AES_256_CBC_SHA
+    if (tls && haveRSA) {
+        suites->suites[idx++] = 0; 
+        suites->suites[idx++] = TLS_RSA_WITH_AES_256_CBC_SHA;
+    }
+#endif
+
+#ifdef BUILD_TLS_RSA_WITH_AES_128_CBC_SHA
+    if (tls && haveRSA) {
+        suites->suites[idx++] = 0; 
+        suites->suites[idx++] = TLS_RSA_WITH_AES_128_CBC_SHA;
+    }
+#endif
+
+#ifdef BUILD_TLS_PSK_WITH_AES_256_CBC_SHA
+    if (tls && havePSK) {
+        suites->suites[idx++] = 0; 
+        suites->suites[idx++] = TLS_PSK_WITH_AES_256_CBC_SHA;
+    }
+#endif
+
+#ifdef BUILD_TLS_PSK_WITH_AES_128_CBC_SHA
+    if (tls && havePSK) {
+        suites->suites[idx++] = 0; 
+        suites->suites[idx++] = TLS_PSK_WITH_AES_128_CBC_SHA;
+    }
+#endif
+
+#ifdef BUILD_SSL_RSA_WITH_RC4_128_SHA
+    if (haveRSA ) {
+        suites->suites[idx++] = 0; 
+        suites->suites[idx++] = SSL_RSA_WITH_RC4_128_SHA;
+    }
+#endif
+
+#ifdef BUILD_SSL_RSA_WITH_RC4_128_MD5
+    if (haveRSA ) {
+        suites->suites[idx++] = 0; 
+        suites->suites[idx++] = SSL_RSA_WITH_RC4_128_MD5;
+    }
+#endif
+
+#ifdef BUILD_SSL_RSA_WITH_3DES_EDE_CBC_SHA
+    if (haveRSA ) {
+        suites->suites[idx++] = 0; 
+        suites->suites[idx++] = SSL_RSA_WITH_3DES_EDE_CBC_SHA;
+    }
+#endif
+
+#ifdef BUILD_TLS_RSA_WITH_HC_128_CBC_MD5
+    if (tls && haveRSA) {
+        suites->suites[idx++] = 0; 
+        suites->suites[idx++] = TLS_RSA_WITH_HC_128_CBC_MD5;
+    }
+#endif
+    
+#ifdef BUILD_TLS_RSA_WITH_HC_128_CBC_SHA
+    if (tls && haveRSA) {
+        suites->suites[idx++] = 0; 
+        suites->suites[idx++] = TLS_RSA_WITH_HC_128_CBC_SHA;
+    }
+#endif
+
+#ifdef BUILD_TLS_RSA_WITH_RABBIT_CBC_SHA
+    if (tls && haveRSA) {
+        suites->suites[idx++] = 0; 
+        suites->suites[idx++] = TLS_RSA_WITH_RABBIT_CBC_SHA;
+    }
+#endif
+
+    suites->suiteSz = idx;
+}
+
+
+int InitSSL(CYASSL* ssl, CYASSL_CTX* ctx)
+{
+    int  ret;
+    byte havePSK = 0;
+
+    ssl->ctx     = ctx; /* only for passing to calls, options could change */
+    ssl->version = ctx->method->version;
+    ssl->suites  = ctx->suites;
+
+#ifdef HAVE_LIBZ
+    ssl->didStreamInit = 0;
+#endif
+   
+    ssl->buffers.certificate.buffer   = 0;
+    ssl->buffers.key.buffer           = 0;
+    ssl->buffers.certChain.buffer     = 0;
+    ssl->buffers.inputBuffer.length   = 0;
+    ssl->buffers.inputBuffer.idx      = 0;
+    ssl->buffers.inputBuffer.buffer = ssl->buffers.inputBuffer.staticBuffer;
+    ssl->buffers.inputBuffer.bufferSize  = STATIC_BUFFER_LEN;
+    ssl->buffers.inputBuffer.dynamicFlag = 0;
+    ssl->buffers.outputBuffer.length  = 0;
+    ssl->buffers.outputBuffer.idx     = 0;
+    ssl->buffers.outputBuffer.buffer = ssl->buffers.outputBuffer.staticBuffer;
+    ssl->buffers.outputBuffer.bufferSize  = STATIC_BUFFER_LEN;
+    ssl->buffers.outputBuffer.dynamicFlag = 0;
+    ssl->buffers.domainName.buffer    = 0;
+    ssl->buffers.serverDH_P.buffer    = 0;
+    ssl->buffers.serverDH_G.buffer    = 0;
+    ssl->buffers.serverDH_Pub.buffer  = 0;
+    ssl->buffers.serverDH_Priv.buffer = 0;
+    ssl->buffers.clearOutputBuffer.buffer  = 0;
+    ssl->buffers.clearOutputBuffer.length  = 0;
+    ssl->buffers.prevSent                  = 0;
+    ssl->buffers.plainSz                   = 0;
+
+#ifdef OPENSSL_EXTRA
+    ssl->peerCert.derCert.buffer = 0;
+#endif
+
+#ifdef HAVE_ECC
+    ssl->eccTempKeySz = ctx->eccTempKeySz;
+    ssl->peerEccKeyPresent = 0;
+    ssl->peerEccDsaKeyPresent = 0;
+    ssl->eccDsaKeyPresent = 0;
+    ssl->eccTempKeyPresent = 0;
+    ecc_init(&ssl->peerEccKey);
+    ecc_init(&ssl->peerEccDsaKey);
+    ecc_init(&ssl->eccDsaKey);
+    ecc_init(&ssl->eccTempKey);
+#endif
+
+    ssl->timeout = ctx->timeout;
+    ssl->rfd = -1;   /* set to invalid descriptor */
+    ssl->wfd = -1;
+    ssl->biord = 0;
+    ssl->biowr = 0;
+
+    ssl->IOCB_ReadCtx  = &ssl->rfd;   /* prevent invalid pointer acess if not */
+    ssl->IOCB_WriteCtx = &ssl->wfd;   /* correctly set */
+
+    /* increment CTX reference count */
+    if (LockMutex(&ctx->countMutex) != 0) {
+        CYASSL_MSG("Couldn't lock CTX count mutex");
+        return BAD_MUTEX_ERROR;
+    }
+    ctx->refCount++;
+    UnLockMutex(&ctx->countMutex);
+
+    if ( (ret = InitRng(&ssl->rng)) != 0)
+        return ret;
+
+    InitMd5(&ssl->hashMd5);
+    InitSha(&ssl->hashSha);
+#ifndef NO_SHA256
+    InitSha256(&ssl->hashSha256);
+#endif
+    InitRsaKey(&ssl->peerRsaKey, ctx->heap);
+
+    ssl->verifyCallback    = ctx->verifyCallback;
+    ssl->peerRsaKeyPresent = 0;
+    ssl->options.side      = ctx->method->side;
+    ssl->options.downgrade = ctx->method->downgrade;
+    ssl->error = 0;
+    ssl->options.connReset = 0;
+    ssl->options.isClosed  = 0;
+    ssl->options.closeNotify  = 0;
+    ssl->options.sentNotify   = 0;
+    ssl->options.usingCompression = 0;
+    if (ssl->options.side == SERVER_END)
+        ssl->options.haveDH = ctx->haveDH;
+    else
+        ssl->options.haveDH = 0;
+    ssl->options.haveNTRU  = ctx->haveNTRU;
+    ssl->options.haveECDSA = ctx->haveECDSA;
+    ssl->options.haveStaticECC = ctx->haveStaticECC;
+    ssl->options.havePeerCert  = 0; 
+    ssl->options.usingPSK_cipher = 0;
+    ssl->options.sendAlertState = 0;
+#ifndef NO_PSK
+    havePSK = ctx->havePSK;
+    ssl->options.havePSK   = ctx->havePSK;
+    ssl->options.client_psk_cb = ctx->client_psk_cb;
+    ssl->options.server_psk_cb = ctx->server_psk_cb;
+#endif /* NO_PSK */
+
+    ssl->options.serverState = NULL_STATE;
+    ssl->options.clientState = NULL_STATE;
+    ssl->options.connectState = CONNECT_BEGIN;
+    ssl->options.acceptState  = ACCEPT_BEGIN; 
+    ssl->options.handShakeState  = NULL_STATE; 
+    ssl->options.processReply = doProcessInit;
+
+#ifdef CYASSL_DTLS
+    ssl->keys.dtls_sequence_number       = 0;
+    ssl->keys.dtls_peer_sequence_number  = 0;
+    ssl->keys.dtls_handshake_number      = 0;
+    ssl->keys.dtls_epoch      = 0;
+    ssl->keys.dtls_peer_epoch = 0;
+#endif
+    ssl->keys.encryptionOn = 0;     /* initially off */
+    ssl->options.sessionCacheOff      = ctx->sessionCacheOff;
+    ssl->options.sessionCacheFlushOff = ctx->sessionCacheFlushOff;
+
+    ssl->options.verifyPeer = ctx->verifyPeer;
+    ssl->options.verifyNone = ctx->verifyNone;
+    ssl->options.failNoCert = ctx->failNoCert;
+    ssl->options.sendVerify = ctx->sendVerify;
+    
+    ssl->options.resuming = 0;
+    ssl->options.haveSessionId = 0;
+    ssl->hmac = Hmac;         /* default to SSLv3 */
+    ssl->heap = ctx->heap;    /* defaults to self */
+    ssl->options.tls    = 0;
+    ssl->options.tls1_1 = 0;
+    ssl->options.dtls   = 0;
+    ssl->options.partialWrite  = ctx->partialWrite;
+    ssl->options.quietShutdown = ctx->quietShutdown;
+    ssl->options.certOnly = 0;
+    ssl->options.groupMessages = ctx->groupMessages;
+
+    /* ctx still owns certificate, certChain, key, dh, and cm */
+    ssl->buffers.certificate = ctx->certificate;
+    ssl->buffers.certChain = ctx->certChain;
+    ssl->buffers.key = ctx->privateKey;
+    if (ssl->options.side == SERVER_END) {
+        ssl->buffers.serverDH_P = ctx->serverDH_P;
+        ssl->buffers.serverDH_G = ctx->serverDH_G;
+    }
+    ssl->buffers.weOwnCert = 0;
+    ssl->buffers.weOwnKey  = 0;
+    ssl->buffers.weOwnDH   = 0;
+
+#ifdef OPENSSL_EXTRA
+    ssl->peerCert.issuer.sz    = 0;
+    ssl->peerCert.subject.sz   = 0;
+#endif
+   
+    /* make sure server has cert and key unless using PSK */
+    if (ssl->options.side == SERVER_END && !havePSK)
+        if (!ssl->buffers.certificate.buffer || !ssl->buffers.key.buffer) {
+            CYASSL_MSG("Server missing certificate and/or private key"); 
+            return NO_PRIVATE_KEY;
+        }
+
+#ifndef NO_PSK
+    ssl->arrays.client_identity[0] = 0;
+    if (ctx->server_hint[0]) {   /* set in CTX */
+        XSTRNCPY(ssl->arrays.server_hint, ctx->server_hint, MAX_PSK_ID_LEN);
+        ssl->arrays.server_hint[MAX_PSK_ID_LEN - 1] = '\0';
+    }
+    else
+        ssl->arrays.server_hint[0] = 0;
+#endif /* NO_PSK */
+
+#ifdef CYASSL_CALLBACKS
+    ssl->hsInfoOn = 0;
+    ssl->toInfoOn = 0;
+#endif
+
+    /* make sure server has DH parms, and add PSK if there, add NTRU too */
+    if (ssl->options.side == SERVER_END) 
+        InitSuites(&ssl->suites, ssl->version,ssl->options.haveDH, havePSK,
+                   ssl->options.haveNTRU, ssl->options.haveECDSA,
+                   ssl->options.haveStaticECC, ssl->ctx->method->side);
+    else 
+        InitSuites(&ssl->suites, ssl->version, TRUE, havePSK,
+                   ssl->options.haveNTRU, ssl->options.haveECDSA,
+                   ssl->options.haveStaticECC, ssl->ctx->method->side);
+
+
+#ifdef SESSION_CERTS
+    ssl->session.chain.count = 0;
+#endif
+
+    ssl->cipher.ssl = ssl;
+
+#ifdef FORTRESS
+    ssl->ex_data[0] = 0;
+    ssl->ex_data[1] = 0;
+    ssl->ex_data[2] = 0;
+#endif
+
+    return 0;
+}
+
+
+/* In case holding SSL object in array and don't want to free actual ssl */
+void SSL_ResourceFree(CYASSL* ssl)
+{
+    XFREE(ssl->buffers.serverDH_Priv.buffer, ssl->heap, DYNAMIC_TYPE_DH);
+    XFREE(ssl->buffers.serverDH_Pub.buffer, ssl->heap, DYNAMIC_TYPE_DH);
+    /* parameters (p,g) may be owned by ctx */
+    if (ssl->buffers.weOwnDH) {
+        XFREE(ssl->buffers.serverDH_G.buffer, ssl->heap, DYNAMIC_TYPE_DH);
+        XFREE(ssl->buffers.serverDH_P.buffer, ssl->heap, DYNAMIC_TYPE_DH);
+    }
+    XFREE(ssl->buffers.domainName.buffer, ssl->heap, DYNAMIC_TYPE_DOMAIN);
+
+    /* CYASSL_CTX always owns certChain */
+    if (ssl->buffers.weOwnCert)
+        XFREE(ssl->buffers.certificate.buffer, ssl->heap, DYNAMIC_TYPE_CERT);
+    if (ssl->buffers.weOwnKey)
+        XFREE(ssl->buffers.key.buffer, ssl->heap, DYNAMIC_TYPE_KEY);
+
+    FreeRsaKey(&ssl->peerRsaKey);
+    if (ssl->buffers.inputBuffer.dynamicFlag)
+        ShrinkInputBuffer(ssl, FORCED_FREE);
+    if (ssl->buffers.outputBuffer.dynamicFlag)
+        ShrinkOutputBuffer(ssl);
+#if defined(OPENSSL_EXTRA) || defined(GOAHEAD_WS)
+    XFREE(ssl->peerCert.derCert.buffer, ssl->heap, DYNAMIC_TYPE_CERT);
+    CyaSSL_BIO_free(ssl->biord);
+    if (ssl->biord != ssl->biowr)        /* in case same as write */
+        CyaSSL_BIO_free(ssl->biowr);
+#endif
+#ifdef HAVE_LIBZ
+    FreeStreams(ssl);
+#endif
+#ifdef HAVE_ECC
+    ecc_free(&ssl->peerEccKey);
+    ecc_free(&ssl->peerEccDsaKey);
+    ecc_free(&ssl->eccTempKey);
+    ecc_free(&ssl->eccDsaKey);
+#endif
+}
+
+
+void FreeSSL(CYASSL* ssl)
+{
+    FreeSSL_Ctx(ssl->ctx);  /* will decrement and free underyling CTX if 0 */
+    SSL_ResourceFree(ssl);
+    XFREE(ssl, ssl->heap, DYNAMIC_TYPE_SSL);
+}
+
+
+ProtocolVersion MakeSSLv3(void)
+{
+    ProtocolVersion pv;
+    pv.major = SSLv3_MAJOR;
+    pv.minor = SSLv3_MINOR;
+
+    return pv;
+}
+
+
+#ifdef CYASSL_DTLS
+
+ProtocolVersion MakeDTLSv1(void)
+{
+    ProtocolVersion pv;
+    pv.major = DTLS_MAJOR;
+    pv.minor = DTLS_MINOR;
+
+    return pv;
+}
+
+#endif /* CYASSL_DTLS */
+
+
+
+
+#ifdef USE_WINDOWS_API 
+
+    timer_d Timer(void)
+    {
+        static int           init = 0;
+        static LARGE_INTEGER freq;
+        LARGE_INTEGER        count;
+    
+        if (!init) {
+            QueryPerformanceFrequency(&freq);
+            init = 1;
+        }
+
+        QueryPerformanceCounter(&count);
+
+        return (double)count.QuadPart / freq.QuadPart;
+    }
+
+
+    word32 LowResTimer(void)
+    {
+        return (word32)Timer();
+    }
+
+
+#elif defined(THREADX)
+
+    #include "rtptime.h"
+
+    word32 LowResTimer(void)
+    {
+        return (word32)rtp_get_system_sec();
+    }
+
+
+#elif defined(MICRIUM)
+
+    word32 LowResTimer(void)
+    {
+        NET_SECURE_OS_TICK  clk;
+
+        #if (NET_SECURE_MGR_CFG_EN == DEF_ENABLED)
+            clk = NetSecure_OS_TimeGet();
+        #endif
+        return (word32)clk;
+    }
+
+#elif defined(USER_TICKS)
+
+    word32 LowResTimer(void)
+    {
+        /*
+        write your own clock tick function if don't want time(0)
+        needs second accuracy but doesn't have to correlated to EPOCH
+        */
+    }
+
+#else /* !USE_WINDOWS_API && !THREADX && !MICRIUM && !USER_TICKS */
+
+    #include 
+
+    word32 LowResTimer(void)
+    {
+        return time(0); 
+    }
+
+
+#endif /* USE_WINDOWS_API */
+
+
+/* add output to md5 and sha handshake hashes, exclude record header */
+static void HashOutput(CYASSL* ssl, const byte* output, int sz, int ivSz)
+{
+    const byte* adj = output + RECORD_HEADER_SZ + ivSz;
+    sz -= RECORD_HEADER_SZ;
+    
+#ifdef CYASSL_DTLS
+    if (ssl->options.dtls) {
+        adj += DTLS_RECORD_EXTRA;
+        sz  -= DTLS_RECORD_EXTRA;
+    }
+#endif
+
+    Md5Update(&ssl->hashMd5, adj, sz);
+    ShaUpdate(&ssl->hashSha, adj, sz);
+#ifndef NO_SHA256
+    if (IsAtLeastTLSv1_2(ssl))
+        Sha256Update(&ssl->hashSha256, adj, sz);
+#endif
+}
+
+
+/* add input to md5 and sha handshake hashes, include handshake header */
+static void HashInput(CYASSL* ssl, const byte* input, int sz)
+{
+    const byte* adj = input - HANDSHAKE_HEADER_SZ;
+    sz += HANDSHAKE_HEADER_SZ;
+    
+#ifdef CYASSL_DTLS
+    if (ssl->options.dtls) {
+        adj -= DTLS_HANDSHAKE_EXTRA;
+        sz  += DTLS_HANDSHAKE_EXTRA;
+    }
+#endif
+
+    Md5Update(&ssl->hashMd5, adj, sz);
+    ShaUpdate(&ssl->hashSha, adj, sz);
+#ifndef NO_SHA256
+    if (IsAtLeastTLSv1_2(ssl))
+        Sha256Update(&ssl->hashSha256, adj, sz);
+#endif
+}
+
+
+/* add record layer header for message */
+static void AddRecordHeader(byte* output, word32 length, byte type, CYASSL* ssl)
+{
+    RecordLayerHeader* rl;
+  
+    /* record layer header */
+    rl = (RecordLayerHeader*)output;
+    rl->type    = type;
+    rl->version = ssl->version;           /* type and version same in each */
+
+    if (!ssl->options.dtls)
+        c16toa((word16)length, rl->length);
+    else {
+#ifdef CYASSL_DTLS
+        DtlsRecordLayerHeader* dtls;
+    
+        /* dtls record layer header extensions */
+        dtls = (DtlsRecordLayerHeader*)output;
+        c16toa(ssl->keys.dtls_epoch, dtls->epoch);
+        c32to48(ssl->keys.dtls_sequence_number++, dtls->sequence_number);
+        c16toa((word16)length, dtls->length);
+#endif
+    }
+}
+
+
+/* add handshake header for message */
+static void AddHandShakeHeader(byte* output, word32 length, byte type,
+                               CYASSL* ssl)
+{
+    HandShakeHeader* hs;
+    (void)ssl;
+ 
+    /* handshake header */
+    hs = (HandShakeHeader*)output;
+    hs->type = type;
+    c32to24(length, hs->length);         /* type and length same for each */
+#ifdef CYASSL_DTLS
+    if (ssl->options.dtls) {
+        DtlsHandShakeHeader* dtls;
+    
+        /* dtls handshake header extensions */
+        dtls = (DtlsHandShakeHeader*)output;
+        c16toa(ssl->keys.dtls_handshake_number++, dtls->message_seq);
+        c32to24(0, dtls->fragment_offset);
+        c32to24(length, dtls->fragment_length);
+    }
+#endif
+}
+
+
+/* add both headers for handshake message */
+static void AddHeaders(byte* output, word32 length, byte type, CYASSL* ssl)
+{
+    if (!ssl->options.dtls) {
+        AddRecordHeader(output, length + HANDSHAKE_HEADER_SZ, handshake, ssl);
+        AddHandShakeHeader(output + RECORD_HEADER_SZ, length, type, ssl);
+    }
+#ifdef CYASSL_DTLS
+    else  {
+        AddRecordHeader(output, length+DTLS_HANDSHAKE_HEADER_SZ, handshake,ssl);
+        AddHandShakeHeader(output + DTLS_RECORD_HEADER_SZ, length, type, ssl);
+    }
+#endif
+}
+
+
+/* return bytes received, -1 on error */
+static int Receive(CYASSL* ssl, byte* buf, word32 sz)
+{
+    int recvd;
+
+retry:
+    recvd = ssl->ctx->CBIORecv((char *)buf, (int)sz, ssl->IOCB_ReadCtx);
+    if (recvd < 0)
+        switch (recvd) {
+            case IO_ERR_GENERAL:        /* general/unknown error */
+                return -1;
+
+            case IO_ERR_WANT_READ:      /* want read, would block */
+                return WANT_READ;
+
+            case IO_ERR_CONN_RST:       /* connection reset */
+                ssl->options.connReset = 1;
+                return -1;
+
+            case IO_ERR_ISR:            /* interrupt */
+                /* see if we got our timeout */
+                #ifdef CYASSL_CALLBACKS
+                    if (ssl->toInfoOn) {
+                        struct itimerval timeout;
+                        getitimer(ITIMER_REAL, &timeout);
+                        if (timeout.it_value.tv_sec == 0 && 
+                                                timeout.it_value.tv_usec == 0) {
+                            XSTRNCPY(ssl->timeoutInfo.timeoutName,
+                                    "recv() timeout", MAX_TIMEOUT_NAME_SZ);
+                            CYASSL_MSG("Got our timeout"); 
+                            return WANT_READ;
+                        }
+                    }
+                #endif
+                goto retry;
+
+            case IO_ERR_CONN_CLOSE:     /* peer closed connection */
+                ssl->options.isClosed = 1;
+                return -1;
+
+            default:
+                return recvd;
+        }
+
+    return recvd;
+}
+
+
+/* Switch dynamic output buffer back to static, buffer is assumed clear */
+void ShrinkOutputBuffer(CYASSL* ssl)
+{
+    CYASSL_MSG("Shrinking output buffer\n");
+    XFREE(ssl->buffers.outputBuffer.buffer, ssl->heap, DYNAMIC_TYPE_OUT_BUFFER);
+    ssl->buffers.outputBuffer.buffer = ssl->buffers.outputBuffer.staticBuffer;
+    ssl->buffers.outputBuffer.bufferSize  = STATIC_BUFFER_LEN;
+    ssl->buffers.outputBuffer.dynamicFlag = 0;
+}
+
+
+/* Switch dynamic input buffer back to static, keep any remaining input */
+/* forced free means cleaning up */
+void ShrinkInputBuffer(CYASSL* ssl, int forcedFree)
+{
+    int usedLength = ssl->buffers.inputBuffer.length -
+                     ssl->buffers.inputBuffer.idx;
+    if (!forcedFree && usedLength > STATIC_BUFFER_LEN)
+        return;
+
+    CYASSL_MSG("Shrinking input buffer\n");
+
+    if (!forcedFree && usedLength)
+        XMEMCPY(ssl->buffers.inputBuffer.staticBuffer,
+               ssl->buffers.inputBuffer.buffer + ssl->buffers.inputBuffer.idx,
+               usedLength);
+
+    XFREE(ssl->buffers.inputBuffer.buffer, ssl->heap, DYNAMIC_TYPE_IN_BUFFER);
+    ssl->buffers.inputBuffer.buffer = ssl->buffers.inputBuffer.staticBuffer;
+    ssl->buffers.inputBuffer.bufferSize  = STATIC_BUFFER_LEN;
+    ssl->buffers.inputBuffer.dynamicFlag = 0;
+    ssl->buffers.inputBuffer.idx = 0;
+    ssl->buffers.inputBuffer.length = usedLength;
+}
+
+
+int SendBuffered(CYASSL* ssl)
+{
+    while (ssl->buffers.outputBuffer.length > 0) {
+        int sent = ssl->ctx->CBIOSend((char*)ssl->buffers.outputBuffer.buffer +
+                                      ssl->buffers.outputBuffer.idx,
+                                      (int)ssl->buffers.outputBuffer.length,
+                                      ssl->IOCB_WriteCtx);
+        if (sent < 0) {
+            switch (sent) {
+
+                case IO_ERR_WANT_WRITE:        /* would block */
+                    return WANT_WRITE;
+
+                case IO_ERR_CONN_RST:          /* connection reset */
+                    ssl->options.connReset = 1;
+                    break;
+
+                case IO_ERR_ISR:               /* interrupt */
+                    /* see if we got our timeout */
+                    #ifdef CYASSL_CALLBACKS
+                        if (ssl->toInfoOn) {
+                            struct itimerval timeout;
+                            getitimer(ITIMER_REAL, &timeout);
+                            if (timeout.it_value.tv_sec == 0 && 
+                                                timeout.it_value.tv_usec == 0) {
+                                XSTRNCPY(ssl->timeoutInfo.timeoutName,
+                                        "send() timeout", MAX_TIMEOUT_NAME_SZ);
+                                CYASSL_MSG("Got our timeout"); 
+                                return WANT_WRITE;
+                            }
+                        }
+                    #endif
+                    continue;
+
+                case IO_ERR_CONN_CLOSE: /* epipe / conn closed, same as reset */
+                    ssl->options.connReset = 1;
+                    break;
+
+                default:
+                    return SOCKET_ERROR_E;
+            }
+
+            return SOCKET_ERROR_E;
+        }
+
+        ssl->buffers.outputBuffer.idx += sent;
+        ssl->buffers.outputBuffer.length -= sent;
+    }
+      
+    ssl->buffers.outputBuffer.idx = 0;
+
+    if (ssl->buffers.outputBuffer.dynamicFlag)
+        ShrinkOutputBuffer(ssl);
+
+    return 0;
+}
+
+
+/* Grow the output buffer */
+static INLINE int GrowOutputBuffer(CYASSL* ssl, int size)
+{
+    byte* tmp = (byte*) XMALLOC(size + ssl->buffers.outputBuffer.length,
+                                ssl->heap, DYNAMIC_TYPE_OUT_BUFFER);
+    CYASSL_MSG("growing output buffer\n");
+   
+    if (!tmp) return MEMORY_E;
+
+    if (ssl->buffers.outputBuffer.length)
+        XMEMCPY(tmp, ssl->buffers.outputBuffer.buffer,
+               ssl->buffers.outputBuffer.length);
+
+    if (ssl->buffers.outputBuffer.dynamicFlag)
+        XFREE(ssl->buffers.outputBuffer.buffer, ssl->heap,
+              DYNAMIC_TYPE_OUT_BUFFER);
+    ssl->buffers.outputBuffer.dynamicFlag = 1;
+    ssl->buffers.outputBuffer.buffer = tmp;
+    ssl->buffers.outputBuffer.bufferSize = size +
+                                           ssl->buffers.outputBuffer.length; 
+    return 0;
+}
+
+
+/* Grow the input buffer, should only be to read cert or big app data */
+static INLINE int GrowInputBuffer(CYASSL* ssl, int size, int usedLength)
+{
+    byte* tmp = (byte*) XMALLOC(size + usedLength, ssl->heap,
+                                DYNAMIC_TYPE_IN_BUFFER);
+    CYASSL_MSG("growing input buffer\n");
+   
+    if (!tmp) return MEMORY_E;
+
+    if (usedLength)
+        XMEMCPY(tmp, ssl->buffers.inputBuffer.buffer +
+                    ssl->buffers.inputBuffer.idx, usedLength);
+
+    if (ssl->buffers.inputBuffer.dynamicFlag)
+        XFREE(ssl->buffers.inputBuffer.buffer,ssl->heap,DYNAMIC_TYPE_IN_BUFFER);
+
+    ssl->buffers.inputBuffer.dynamicFlag = 1;
+    ssl->buffers.inputBuffer.buffer = tmp;
+    ssl->buffers.inputBuffer.bufferSize = size + usedLength;
+    ssl->buffers.inputBuffer.idx    = 0;
+    ssl->buffers.inputBuffer.length = usedLength;
+
+    return 0;
+}
+
+
+/* check avalaible size into output buffer, make room if needed */
+static INLINE int CheckAvalaibleSize(CYASSL *ssl, int size)
+{
+    if (ssl->buffers.outputBuffer.bufferSize - ssl->buffers.outputBuffer.length
+                                             < (word32)size) {
+        if (GrowOutputBuffer(ssl, size) < 0)
+            return MEMORY_E;
+    }
+
+    return 0;
+}
+
+/* do all verify and sanity checks on record header */
+static int GetRecordHeader(CYASSL* ssl, const byte* input, word32* inOutIdx,
+                           RecordLayerHeader* rh, word16 *size)
+{
+    if (!ssl->options.dtls) {
+        XMEMCPY(rh, input + *inOutIdx, RECORD_HEADER_SZ);
+        *inOutIdx += RECORD_HEADER_SZ;
+        ato16(rh->length, size);
+    }
+    else {
+#ifdef CYASSL_DTLS
+        /* type and version in same sport */
+        XMEMCPY(rh, input + *inOutIdx, ENUM_LEN + VERSION_SZ);
+        *inOutIdx += ENUM_LEN + VERSION_SZ;
+        *inOutIdx += 4;  /* skip epoch and first 2 seq bytes for now */
+        ato32(input + *inOutIdx, &ssl->keys.dtls_peer_sequence_number);
+        *inOutIdx += 4;  /* advance past rest of seq */
+        ato16(input + *inOutIdx, size);
+        *inOutIdx += LENGTH_SZ;
+#endif
+    }
+
+    /* catch version mismatch */
+    if (rh->version.major != ssl->version.major || 
+        rh->version.minor != ssl->version.minor) {
+        
+        if (ssl->options.side == SERVER_END &&
+            ssl->options.acceptState == ACCEPT_BEGIN)
+            CYASSL_MSG("Client attempting to connect with different version"); 
+        else if (ssl->options.side == CLIENT_END && ssl->options.downgrade &&
+                 ssl->options.connectState < FIRST_REPLY_DONE)
+            CYASSL_MSG("Server attempting to accept with different version"); 
+        else {
+            CYASSL_MSG("SSL version error"); 
+            return VERSION_ERROR;              /* only use requested version */
+        }
+    }
+
+    /* record layer length check */
+    if (*size > (MAX_RECORD_SIZE + MAX_COMP_EXTRA + MAX_MSG_EXTRA))
+        return LENGTH_ERROR;
+
+    /* verify record type here as well */
+    switch ((enum ContentType)rh->type) {
+        case handshake:
+        case change_cipher_spec:
+        case application_data:
+        case alert:
+            break;
+        case no_type:
+        default:
+            CYASSL_MSG("Unknown Record Type"); 
+            return UNKNOWN_RECORD_TYPE;
+    }
+
+    return 0;
+}
+
+
+static int GetHandShakeHeader(CYASSL* ssl, const byte* input, word32* inOutIdx,
+                              byte *type, word32 *size)
+{
+    const byte *ptr = input + *inOutIdx;
+    (void)ssl;
+    *inOutIdx += HANDSHAKE_HEADER_SZ;
+    
+#ifdef CYASSL_DTLS
+    if (ssl->options.dtls)
+        *inOutIdx += DTLS_HANDSHAKE_EXTRA;
+#endif
+
+    *type = ptr[0];
+    c24to32(&ptr[1], size);
+
+    return 0;
+}
+
+
+/* fill with MD5 pad size since biggest required */
+static const byte PAD1[PAD_MD5] = 
+                              { 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+                                0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+                                0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+                                0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+                                0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
+                                0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36
+                              };
+static const byte PAD2[PAD_MD5] =
+                              { 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c,
+                                0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c,
+                                0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c,
+                                0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c,
+                                0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c,
+                                0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c
+                              };
+
+/* calculate MD5 hash for finished */
+static void BuildMD5(CYASSL* ssl, Hashes* hashes, const byte* sender)
+{
+    byte md5_result[MD5_DIGEST_SIZE];
+
+    /* make md5 inner */    
+    Md5Update(&ssl->hashMd5, sender, SIZEOF_SENDER);
+    Md5Update(&ssl->hashMd5, ssl->arrays.masterSecret, SECRET_LEN);
+    Md5Update(&ssl->hashMd5, PAD1, PAD_MD5);
+    Md5Final(&ssl->hashMd5, md5_result);
+
+    /* make md5 outer */
+    Md5Update(&ssl->hashMd5, ssl->arrays.masterSecret, SECRET_LEN);
+    Md5Update(&ssl->hashMd5, PAD2, PAD_MD5);
+    Md5Update(&ssl->hashMd5, md5_result, MD5_DIGEST_SIZE);
+
+    Md5Final(&ssl->hashMd5, hashes->md5);
+}
+
+
+/* calculate SHA hash for finished */
+static void BuildSHA(CYASSL* ssl, Hashes* hashes, const byte* sender)
+{
+    byte sha_result[SHA_DIGEST_SIZE];
+
+    /* make sha inner */
+    ShaUpdate(&ssl->hashSha, sender, SIZEOF_SENDER);
+    ShaUpdate(&ssl->hashSha, ssl->arrays.masterSecret, SECRET_LEN);
+    ShaUpdate(&ssl->hashSha, PAD1, PAD_SHA);
+    ShaFinal(&ssl->hashSha, sha_result);
+
+    /* make sha outer */
+    ShaUpdate(&ssl->hashSha, ssl->arrays.masterSecret, SECRET_LEN);
+    ShaUpdate(&ssl->hashSha, PAD2, PAD_SHA);
+    ShaUpdate(&ssl->hashSha, sha_result, SHA_DIGEST_SIZE);
+
+    ShaFinal(&ssl->hashSha, hashes->sha);
+}
+
+
+static void BuildFinished(CYASSL* ssl, Hashes* hashes, const byte* sender)
+{
+    /* store current states, building requires get_digest which resets state */
+    Md5 md5 = ssl->hashMd5;
+    Sha sha = ssl->hashSha;
+#ifndef NO_SHA256
+    Sha256 sha256;
+    InitSha256(&sha256);
+    if (IsAtLeastTLSv1_2(ssl))
+        sha256 = ssl->hashSha256;
+#endif
+
+    if (ssl->options.tls)
+        BuildTlsFinished(ssl, hashes, sender);
+    else {
+        BuildMD5(ssl, hashes, sender);
+        BuildSHA(ssl, hashes, sender);
+    }
+    
+    /* restore */
+    ssl->hashMd5 = md5;
+    ssl->hashSha = sha;
+#ifndef NO_SHA256
+    if (IsAtLeastTLSv1_2(ssl))
+        ssl->hashSha256 = sha256;
+#endif
+}
+
+
+static int DoCertificate(CYASSL* ssl, byte* input, word32* inOutIdx)
+{
+    word32 listSz, i = *inOutIdx;
+    int    ret = 0;
+    int    anyError = 0;
+    int    totalCerts = 0;    /* number of certs in certs buffer */
+    int    count;
+    char   domain[ASN_NAME_MAX];
+    buffer certs[MAX_CHAIN_DEPTH];
+
+    #ifdef CYASSL_CALLBACKS
+        if (ssl->hsInfoOn) AddPacketName("Certificate", &ssl->handShakeInfo);
+        if (ssl->toInfoOn) AddLateName("Certificate", &ssl->timeoutInfo);
+    #endif
+    c24to32(&input[i], &listSz);
+    i += CERT_HEADER_SZ;
+
+    CYASSL_MSG("Loading peer's cert chain");
+    /* first put cert chain into buffer so can verify top down
+       we're sent bottom up */
+    while (listSz) {
+        /* cert size */
+        word32 certSz;
+
+        if (totalCerts >= MAX_CHAIN_DEPTH)
+            return BUFFER_E;
+
+        c24to32(&input[i], &certSz);
+        i += CERT_HEADER_SZ;
+       
+        if (listSz > MAX_RECORD_SIZE || certSz > MAX_RECORD_SIZE)
+            return BUFFER_E;
+
+        certs[totalCerts].length = certSz;
+        certs[totalCerts].buffer = input + i;
+
+#ifdef SESSION_CERTS
+        if (ssl->session.chain.count < MAX_CHAIN_DEPTH &&
+                                       certSz < MAX_X509_SIZE) {
+            ssl->session.chain.certs[ssl->session.chain.count].length = certSz;
+            XMEMCPY(ssl->session.chain.certs[ssl->session.chain.count].buffer,
+                    input + i, certSz);
+            ssl->session.chain.count++;
+        } else {
+            CYASSL_MSG("Couldn't store chain cert for session");
+        }
+#endif
+
+        i += certSz;
+        listSz -= certSz + CERT_HEADER_SZ;
+
+        totalCerts++;
+        CYASSL_MSG("    Put another cert into chain");
+    }
+
+    count = totalCerts;
+
+    /* verify up to peer's first */
+    while (count > 1) {
+        buffer myCert = certs[count - 1];
+        DecodedCert dCert;
+
+        InitDecodedCert(&dCert, myCert.buffer, myCert.length, ssl->heap);
+        ret = ParseCertRelative(&dCert, CERT_TYPE, !ssl->options.verifyNone,
+                                ssl->ctx->cm);
+        if (ret == 0 && dCert.isCA == 0) {
+            CYASSL_MSG("Chain cert is not a CA, not adding as one");
+            (void)ret;
+        }
+        else if (ret == 0 && ssl->options.verifyNone) {
+            CYASSL_MSG("Chain cert not verified by option, not adding as CA");
+            (void)ret;
+        }
+        else if (ret == 0 && !AlreadySigner(ssl->ctx->cm, dCert.subjectHash)) {
+            buffer add;
+            add.length = myCert.length;
+            add.buffer = (byte*)XMALLOC(myCert.length, ssl->heap,
+                                        DYNAMIC_TYPE_CA);
+            CYASSL_MSG("Adding CA from chain");
+
+            if (add.buffer == NULL)
+                return MEMORY_E;
+            XMEMCPY(add.buffer, myCert.buffer, myCert.length);
+
+            ret = AddCA(ssl->ctx->cm, add, CYASSL_CHAIN_CA,
+                        ssl->ctx->verifyPeer);
+            if (ret == 1) ret = 0;   /* SSL_SUCCESS for external */
+        }
+        else if (ret != 0) {
+            CYASSL_MSG("Failed to verify CA from chain");
+            (void)ret;
+        }
+        else {
+            CYASSL_MSG("Verified CA from chain and already had it");
+            (void)ret;
+        }
+
+        if (ret != 0 && anyError == 0)
+            anyError = ret;   /* save error from last time */
+
+        FreeDecodedCert(&dCert);
+        count--;
+    }
+
+    /* peer's, may not have one if blank client cert sent by TLSv1.2 */
+    if (count) {
+        buffer myCert = certs[0];
+        DecodedCert dCert;
+        int         fatal = 0;
+
+        CYASSL_MSG("Veriying Peer's cert");
+
+        InitDecodedCert(&dCert, myCert.buffer, myCert.length, ssl->heap);
+        ret = ParseCertRelative(&dCert, CERT_TYPE, !ssl->options.verifyNone,
+                                ssl->ctx->cm);
+        if (ret == 0) {
+            CYASSL_MSG("Verified Peer's cert");
+            fatal = 0;
+        }
+        else if (ret == ASN_PARSE_E) {
+            CYASSL_MSG("Got Peer cert ASN PARSE ERROR, fatal");
+            fatal = 1;
+        }
+        else {
+            CYASSL_MSG("Failed to verify Peer's cert");
+            if (ssl->verifyCallback) {
+                CYASSL_MSG("\tCallback override availalbe, will continue");
+                fatal = 0;
+            }
+            else {
+                CYASSL_MSG("\tNo callback override availalbe, fatal");
+                fatal = 1;
+            }
+        }
+
+#ifdef HAVE_OCSP
+        if (CyaSSL_OCSP_Lookup_Cert(&ssl->ctx->ocsp, &dCert) == CERT_REVOKED) {
+            CYASSL_MSG("\tOCSP Lookup returned revoked");
+            ret = OCSP_CERT_REVOKED;
+            fatal = 0;
+        }
+#endif
+
+#ifdef HAVE_CRL
+        if (ssl->ctx->cm->crlEnabled) {
+            ret = CheckCertCRL(ssl->ctx->cm->crl, &dCert);
+
+            if (ret != 0) {
+                CYASSL_MSG("\tCRL check not ok");
+                fatal = 0;
+            }
+        }
+#endif /* HAVE_CRL */
+
+#ifdef OPENSSL_EXTRA
+        /* set X509 format for peer cert even if fatal */
+        XSTRNCPY(ssl->peerCert.issuer.name, dCert.issuer, ASN_NAME_MAX);
+        ssl->peerCert.issuer.name[ASN_NAME_MAX - 1] = '\0';
+        ssl->peerCert.issuer.sz = (int)XSTRLEN(ssl->peerCert.issuer.name) + 1;
+
+        XSTRNCPY(ssl->peerCert.subject.name, dCert.subject, ASN_NAME_MAX);
+        ssl->peerCert.subject.name[ASN_NAME_MAX - 1] = '\0';
+        ssl->peerCert.subject.sz = (int)XSTRLEN(ssl->peerCert.subject.name) + 1;
+
+        XMEMCPY(ssl->peerCert.serial, dCert.serial, EXTERNAL_SERIAL_SIZE);
+        ssl->peerCert.serialSz = dCert.serialSz;
+        if (dCert.subjectCNLen < ASN_NAME_MAX) {
+            XMEMCPY(ssl->peerCert.subjectCN,dCert.subjectCN,dCert.subjectCNLen);
+            ssl->peerCert.subjectCN[dCert.subjectCNLen] = '\0';
+        }
+        else
+            ssl->peerCert.subjectCN[0] = '\0';
+
+        /* store cert for potential retrieval */
+        ssl->peerCert.derCert.buffer = (byte*)XMALLOC(myCert.length, ssl->heap,
+                                                      DYNAMIC_TYPE_CERT);
+        if (ssl->peerCert.derCert.buffer == NULL)
+            return MEMORY_E;
+        XMEMCPY(ssl->peerCert.derCert.buffer, myCert.buffer, myCert.length);
+        ssl->peerCert.derCert.length = myCert.length;
+#endif    
+
+        if (fatal) {
+            FreeDecodedCert(&dCert);
+            ssl->error = ret;
+            return ret;
+        }
+        ssl->options.havePeerCert = 1;
+
+        /* store for callback use */
+        if (dCert.subjectCNLen < ASN_NAME_MAX) {
+            XMEMCPY(domain, dCert.subjectCN, dCert.subjectCNLen);
+            domain[dCert.subjectCNLen] = '\0';
+        }
+        else
+            domain[0] = '\0';
+
+        if (!ssl->options.verifyNone && ssl->buffers.domainName.buffer)
+            if (XSTRNCMP((char*)ssl->buffers.domainName.buffer,
+                        dCert.subjectCN,
+                        ssl->buffers.domainName.length - 1)) {
+                ret = DOMAIN_NAME_MISMATCH;   /* try to get peer key still */
+            }
+
+        /* decode peer key */
+        if (dCert.keyOID == RSAk) {
+            word32 idx = 0;
+            if (RsaPublicKeyDecode(dCert.publicKey, &idx,
+                               &ssl->peerRsaKey, dCert.pubKeySize) != 0) {
+                ret = PEER_KEY_ERROR;
+            }
+            else
+                ssl->peerRsaKeyPresent = 1;
+        }
+#ifdef HAVE_NTRU
+        else if (dCert.keyOID == NTRUk) {
+            if (dCert.pubKeySize > sizeof(ssl->peerNtruKey)) {
+                ret = PEER_KEY_ERROR;
+            }
+            else {
+                XMEMCPY(ssl->peerNtruKey, dCert.publicKey, dCert.pubKeySize);
+                ssl->peerNtruKeyLen = (word16)dCert.pubKeySize;
+                ssl->peerNtruKeyPresent = 1;
+            }
+        }
+#endif /* HAVE_NTRU */
+#ifdef HAVE_ECC
+        else if (dCert.keyOID == ECDSAk) {
+            if (ecc_import_x963(dCert.publicKey, dCert.pubKeySize,
+                                &ssl->peerEccDsaKey) != 0) {
+                ret = PEER_KEY_ERROR;
+            }
+            else
+                ssl->peerEccDsaKeyPresent = 1;
+        }
+#endif /* HAVE_ECC */
+
+        FreeDecodedCert(&dCert);
+    }
+    
+    if (anyError != 0 && ret == 0)
+        ret = anyError;
+
+    if (ret == 0 && ssl->options.side == CLIENT_END)
+        ssl->options.serverState = SERVER_CERT_COMPLETE;
+
+    if (ret != 0) {
+        if (!ssl->options.verifyNone) {
+            int why = bad_certificate;
+            if (ret == ASN_AFTER_DATE_E || ret == ASN_BEFORE_DATE_E)
+                why = certificate_expired;
+            if (ssl->verifyCallback) {
+                int            ok;
+                CYASSL_X509_STORE_CTX store;
+
+                store.error = ret;
+                store.error_depth = totalCerts;
+                store.domain = domain;
+#ifdef OPENSSL_EXTRA
+                store.current_cert = &ssl->peerCert;
+#else
+                store.current_cert = NULL;
+#endif
+#ifdef FORTRESS
+                store.ex_data = ssl;
+#endif
+                ok = ssl->verifyCallback(0, &store);
+                if (ok) {
+                    CYASSL_MSG("Verify callback overriding error!"); 
+                    ret = 0;
+                }
+            }
+            if (ret != 0) {
+                SendAlert(ssl, alert_fatal, why);   /* try to send */
+                ssl->options.isClosed = 1;
+            }
+        }
+        ssl->error = ret;
+    }
+#ifdef FORTRESS
+    else {
+        if (ssl->verifyCallback) {
+            int ok;
+            CYASSL_X509_STORE_CTX store;
+
+            store.error = ret;
+            store.error_depth = totalCerts;
+            store.domain = domain;
+            store.current_cert = &ssl->peerCert;
+            store.ex_data = ssl;
+
+            ok = ssl->verifyCallback(1, &store);
+            if (!ok) {
+                CYASSL_MSG("Verify callback overriding valid certificate!");
+                ret = -1;
+                SendAlert(ssl, alert_fatal, bad_certificate);
+                ssl->options.isClosed = 1;
+            }
+        }
+    }
+#endif
+
+    *inOutIdx = i;
+    return ret;
+}
+
+
+static int DoHelloRequest(CYASSL* ssl, const byte* input, word32* inOutIdx)
+{
+    if (ssl->keys.encryptionOn) {
+        const byte* mac;
+        int         padSz = ssl->keys.encryptSz - HANDSHAKE_HEADER_SZ - 
+                            ssl->specs.hash_size;
+        byte        verify[SHA256_DIGEST_SIZE];
+       
+        ssl->hmac(ssl, verify, input + *inOutIdx - HANDSHAKE_HEADER_SZ,
+                  HANDSHAKE_HEADER_SZ, handshake, 1);
+        /* read mac and fill */
+        mac = input + *inOutIdx;
+        *inOutIdx += ssl->specs.hash_size;
+
+        if (ssl->options.tls1_1 && ssl->specs.cipher_type == block)
+            padSz -= ssl->specs.block_size;
+
+        *inOutIdx += padSz;
+
+        /* verify */
+        if (XMEMCMP(mac, verify, ssl->specs.hash_size)) {
+            CYASSL_MSG("    hello_request verify mac error");
+            return VERIFY_MAC_ERROR;
+        }
+    }
+
+    return SendAlert(ssl, alert_warning, no_renegotiation);
+}
+
+
+int DoFinished(CYASSL* ssl, const byte* input, word32* inOutIdx, int sniff)
+{
+    byte   verifyMAC[SHA256_DIGEST_SIZE];
+    int    finishedSz = ssl->options.tls ? TLS_FINISHED_SZ : FINISHED_SZ;
+    int    headerSz = HANDSHAKE_HEADER_SZ;
+    word32 macSz = finishedSz + HANDSHAKE_HEADER_SZ,
+           idx = *inOutIdx,
+           padSz = ssl->keys.encryptSz - HANDSHAKE_HEADER_SZ - finishedSz -
+                   ssl->specs.hash_size;
+    const byte* mac;
+
+    #ifdef CYASSL_DTLS
+        if (ssl->options.dtls) {
+            headerSz += DTLS_HANDSHAKE_EXTRA;
+            macSz    += DTLS_HANDSHAKE_EXTRA;
+            padSz    -= DTLS_HANDSHAKE_EXTRA;
+        }
+    #endif
+
+    #ifdef CYASSL_CALLBACKS
+        if (ssl->hsInfoOn) AddPacketName("Finished", &ssl->handShakeInfo);
+        if (ssl->toInfoOn) AddLateName("Finished", &ssl->timeoutInfo);
+    #endif
+    if (sniff == NO_SNIFF) {
+        if (XMEMCMP(input + idx, &ssl->verifyHashes, finishedSz)) {
+            CYASSL_MSG("Verify finished error on hashes");
+            return VERIFY_FINISHED_ERROR;
+        }
+    }
+
+    ssl->hmac(ssl, verifyMAC, input + idx - headerSz, macSz,
+         handshake, 1);
+    idx += finishedSz;
+
+    /* read mac and fill */
+    mac = input + idx;
+    idx += ssl->specs.hash_size;
+
+    if (ssl->options.tls1_1 && ssl->specs.cipher_type == block)
+        padSz -= ssl->specs.block_size;
+
+    idx += padSz;
+
+    /* verify mac */
+    if (XMEMCMP(mac, verifyMAC, ssl->specs.hash_size)) {
+        CYASSL_MSG("Verify finished error on mac");
+        return VERIFY_MAC_ERROR;
+    }
+
+    if (ssl->options.side == CLIENT_END) {
+        ssl->options.serverState = SERVER_FINISHED_COMPLETE;
+        if (!ssl->options.resuming)
+            ssl->options.handShakeState = HANDSHAKE_DONE;
+    }
+    else {
+        ssl->options.clientState = CLIENT_FINISHED_COMPLETE;
+        if (ssl->options.resuming)
+            ssl->options.handShakeState = HANDSHAKE_DONE;
+    }
+
+    *inOutIdx = idx;
+    return 0;
+}
+
+
+static int DoHandShakeMsg(CYASSL* ssl, byte* input, word32* inOutIdx,
+                          word32 totalSz)
+{
+    byte type;
+    word32 size;
+    int ret = 0;
+
+    CYASSL_ENTER("DoHandShakeMsg()");
+
+    if (GetHandShakeHeader(ssl, input, inOutIdx, &type, &size) != 0)
+        return PARSE_ERROR;
+
+    if (*inOutIdx + size > totalSz)
+        return INCOMPLETE_DATA;
+    
+    HashInput(ssl, input + *inOutIdx, size);
+#ifdef CYASSL_CALLBACKS
+    /* add name later, add on record and handshake header part back on */
+    if (ssl->toInfoOn) {
+        int add = RECORD_HEADER_SZ + HANDSHAKE_HEADER_SZ;
+        AddPacketInfo(0, &ssl->timeoutInfo, input + *inOutIdx - add,
+                      size + add, ssl->heap);
+        AddLateRecordHeader(&ssl->curRL, &ssl->timeoutInfo);
+    }
+#endif
+
+    switch (type) {
+
+    case hello_request:
+        CYASSL_MSG("processing hello request");
+        ret = DoHelloRequest(ssl, input, inOutIdx);
+        break;
+
+#ifndef NO_CYASSL_CLIENT
+    case hello_verify_request:
+        CYASSL_MSG("processing hello verify request");
+        ret = DoHelloVerifyRequest(ssl, input,inOutIdx);
+        break;
+            
+    case server_hello:
+        CYASSL_MSG("processing server hello");
+        ret = DoServerHello(ssl, input, inOutIdx);
+        break;
+
+    case certificate_request:
+        CYASSL_MSG("processing certificate request");
+        ret = DoCertificateRequest(ssl, input, inOutIdx);
+        break;
+
+    case server_key_exchange:
+        CYASSL_MSG("processing server key exchange");
+        ret = DoServerKeyExchange(ssl, input, inOutIdx);
+        break;
+#endif
+
+    case certificate:
+        CYASSL_MSG("processing certificate");
+        ret =  DoCertificate(ssl, input, inOutIdx);
+        break;
+
+    case server_hello_done:
+        CYASSL_MSG("processing server hello done");
+        #ifdef CYASSL_CALLBACKS
+            if (ssl->hsInfoOn) 
+                AddPacketName("ServerHelloDone", &ssl->handShakeInfo);
+            if (ssl->toInfoOn)
+                AddLateName("ServerHelloDone", &ssl->timeoutInfo);
+        #endif
+        ssl->options.serverState = SERVER_HELLODONE_COMPLETE;
+        break;
+
+    case finished:
+        CYASSL_MSG("processing finished");
+        ret = DoFinished(ssl, input, inOutIdx, NO_SNIFF);
+        break;
+
+#ifndef NO_CYASSL_SERVER
+    case client_hello:
+        CYASSL_MSG("processing client hello");
+        ret = DoClientHello(ssl, input, inOutIdx, totalSz, size);
+        break;
+
+    case client_key_exchange:
+        CYASSL_MSG("processing client key exchange");
+        ret = DoClientKeyExchange(ssl, input, inOutIdx);
+        break;
+
+    case certificate_verify:
+        CYASSL_MSG("processing certificate verify");
+        ret = DoCertificateVerify(ssl, input, inOutIdx, totalSz);
+        break;
+
+#endif
+
+    default:
+        CYASSL_MSG("Unknown handshake message type");
+        ret = UNKNOWN_HANDSHAKE_TYPE;
+    }
+
+    CYASSL_LEAVE("DoHandShakeMsg()", ret);
+    return ret;
+}
+
+
+static INLINE void Encrypt(CYASSL* ssl, byte* out, const byte* input, word32 sz)
+{
+    switch (ssl->specs.bulk_cipher_algorithm) {
+        #ifdef BUILD_ARC4
+            case rc4:
+                Arc4Process(&ssl->encrypt.arc4, out, input, sz);
+                break;
+        #endif
+
+        #ifdef BUILD_DES3
+            case triple_des:
+                Des3_CbcEncrypt(&ssl->encrypt.des3, out, input, sz);
+                break;
+        #endif
+
+        #ifdef BUILD_AES
+            case aes:
+            #ifdef CYASSL_AESNI
+                if ((word)input % 16) {
+                    byte buffer[MAX_RECORD_SIZE + MAX_COMP_EXTRA+MAX_MSG_EXTRA];
+                    XMEMCPY(buffer, input, sz);
+                    AesCbcEncrypt(&ssl->encrypt.aes, buffer, buffer, sz);
+                    XMEMCPY(out, buffer, sz);
+                    break;
+                }
+            #endif
+                AesCbcEncrypt(&ssl->encrypt.aes, out, input, sz);
+                break;
+        #endif
+
+        #ifdef HAVE_HC128
+            case hc128:
+                Hc128_Process(&ssl->encrypt.hc128, out, input, sz);
+                break;
+        #endif
+
+        #ifdef BUILD_RABBIT
+            case rabbit:
+                RabbitProcess(&ssl->encrypt.rabbit, out, input, sz);
+                break;
+        #endif
+
+            default:
+                CYASSL_MSG("CyaSSL Encrypt programming error");
+    }
+}
+
+
+static INLINE void Decrypt(CYASSL* ssl, byte* plain, const byte* input,
+                           word32 sz)
+{
+    switch (ssl->specs.bulk_cipher_algorithm) {
+        #ifdef BUILD_ARC4
+            case rc4:
+                Arc4Process(&ssl->decrypt.arc4, plain, input, sz);
+                break;
+        #endif
+
+        #ifdef BUILD_DES3
+            case triple_des:
+                Des3_CbcDecrypt(&ssl->decrypt.des3, plain, input, sz);
+                break;
+        #endif
+
+        #ifdef BUILD_AES
+            case aes:
+                AesCbcDecrypt(&ssl->decrypt.aes, plain, input, sz);
+                break;
+        #endif
+
+        #ifdef HAVE_HC128
+            case hc128:
+                Hc128_Process(&ssl->decrypt.hc128, plain, input, sz);
+                break;
+        #endif
+
+        #ifdef BUILD_RABBIT
+            case rabbit:
+                RabbitProcess(&ssl->decrypt.rabbit, plain, input, sz);
+                break;
+        #endif
+
+            default:
+                CYASSL_MSG("CyaSSL Decrypt programming error");
+    }
+}
+
+
+/* decrypt input message in place */
+static int DecryptMessage(CYASSL* ssl, byte* input, word32 sz, word32* idx)
+{
+    Decrypt(ssl, input, input, sz);
+    ssl->keys.encryptSz = sz;
+    if (ssl->options.tls1_1 && ssl->specs.cipher_type == block)
+        *idx += ssl->specs.block_size;  /* go past TLSv1.1 IV */
+
+    return 0;
+}
+
+
+static INLINE word32 GetSEQIncrement(CYASSL* ssl, int verify)
+{
+    if (verify)
+        return ssl->keys.peer_sequence_number++; 
+    else
+        return ssl->keys.sequence_number++; 
+}
+
+
+int DoApplicationData(CYASSL* ssl, byte* input, word32* inOutIdx)
+{
+    word32 msgSz   = ssl->keys.encryptSz;
+    word32 pad     = 0, 
+           padByte = 0,
+           idx     = *inOutIdx,
+           digestSz = ssl->specs.hash_size;
+    int    dataSz;
+    int    ivExtra = 0;
+    byte*  rawData = input + idx;  /* keep current  for hmac */
+#ifdef HAVE_LIBZ
+    byte   decomp[MAX_RECORD_SIZE + MAX_COMP_EXTRA];
+#endif
+
+    byte        verify[SHA256_DIGEST_SIZE];
+    const byte* mac;
+
+    if (ssl->specs.cipher_type == block) {
+        if (ssl->options.tls1_1)
+            ivExtra = ssl->specs.block_size;
+        pad = *(input + idx + msgSz - ivExtra - 1);
+        padByte = 1;
+    }
+
+    dataSz = msgSz - ivExtra - digestSz - pad - padByte;
+    if (dataSz < 0) {
+        CYASSL_MSG("App data buffer error, malicious input?"); 
+        return BUFFER_ERROR;
+    }
+
+    /* read data */
+    if (dataSz) {
+        int    rawSz   = dataSz;       /* keep raw size for hmac */
+
+        ssl->hmac(ssl, verify, rawData, rawSz, application_data, 1);
+
+#ifdef HAVE_LIBZ
+        if (ssl->options.usingCompression) {
+            dataSz = DeCompress(ssl, rawData, dataSz, decomp, sizeof(decomp));
+            if (dataSz < 0) return dataSz;
+        }
+#endif
+
+        if (ssl->options.usingCompression)
+            idx += rawSz;
+        else
+            idx += dataSz;
+
+        ssl->buffers.clearOutputBuffer.buffer = rawData;
+        ssl->buffers.clearOutputBuffer.length = dataSz;
+    }
+
+    /* read mac and fill */
+    mac = input + idx;
+    idx += digestSz;
+   
+    idx += pad;
+    if (padByte)
+        idx++;
+
+#ifdef HAVE_LIBZ
+    if (ssl->options.usingCompression)
+        XMEMMOVE(rawData, decomp, dataSz);
+#endif
+
+    /* verify */
+    if (dataSz) {
+        if (XMEMCMP(mac, verify, digestSz)) {
+            CYASSL_MSG("App data verify mac error"); 
+            return VERIFY_MAC_ERROR;
+        }
+    }
+    else 
+        GetSEQIncrement(ssl, 1);  /* even though no data, increment verify */
+
+    *inOutIdx = idx;
+    return 0;
+}
+
+
+/* process alert, return level */
+static int DoAlert(CYASSL* ssl, byte* input, word32* inOutIdx, int* type)
+{
+    byte level;
+
+    #ifdef CYASSL_CALLBACKS
+        if (ssl->hsInfoOn)
+            AddPacketName("Alert", &ssl->handShakeInfo);
+        if (ssl->toInfoOn)
+            /* add record header back on to info + 2 byte level, data */
+            AddPacketInfo("Alert", &ssl->timeoutInfo, input + *inOutIdx -
+                          RECORD_HEADER_SZ, 2 + RECORD_HEADER_SZ, ssl->heap);
+    #endif
+    level = input[(*inOutIdx)++];
+    *type  = (int)input[(*inOutIdx)++];
+
+    CYASSL_MSG("Got alert");
+    if (*type == close_notify) {
+        CYASSL_MSG("    close notify");
+        ssl->options.closeNotify = 1;
+    }
+    CYASSL_ERROR(*type);
+
+    if (ssl->keys.encryptionOn) {
+        int         aSz = ALERT_SIZE;
+        const byte* mac;
+        byte        verify[SHA256_DIGEST_SIZE];
+        int         padSz = ssl->keys.encryptSz - aSz - ssl->specs.hash_size;
+        
+        ssl->hmac(ssl, verify, input + *inOutIdx - aSz, aSz, alert, 1);
+
+        /* read mac and fill */
+        mac = input + *inOutIdx;
+        *inOutIdx += (ssl->specs.hash_size + padSz);
+
+        /* verify */
+        if (XMEMCMP(mac, verify, ssl->specs.hash_size)) {
+            CYASSL_MSG("    alert verify mac error");
+            return VERIFY_MAC_ERROR;
+        }
+    }
+
+    return level;
+}
+
+static int GetInputData(CYASSL *ssl, word32 size)
+{
+    int in;
+    int inSz;
+    int maxLength;
+    int usedLength;
+
+    
+    /* check max input length */
+    usedLength = ssl->buffers.inputBuffer.length - ssl->buffers.inputBuffer.idx;
+    maxLength  = ssl->buffers.inputBuffer.bufferSize - usedLength;
+    inSz       = (int)(size - usedLength);      /* from last partial read */
+
+#ifdef CYASSL_DTLS
+    if (ssl->options.dtls)
+        inSz = MAX_MTU;       /* read ahead up to MTU */
+#endif
+    
+    if (inSz > maxLength) {
+        if (GrowInputBuffer(ssl, size, usedLength) < 0)
+            return MEMORY_E;
+    }
+           
+    if (inSz <= 0)
+        return BUFFER_ERROR;
+    
+    /* Put buffer data at start if not there */
+    if (usedLength > 0 && ssl->buffers.inputBuffer.idx != 0)
+        XMEMMOVE(ssl->buffers.inputBuffer.buffer,
+                ssl->buffers.inputBuffer.buffer + ssl->buffers.inputBuffer.idx,
+                usedLength);
+    
+    /* remove processed data */
+    ssl->buffers.inputBuffer.idx    = 0;
+    ssl->buffers.inputBuffer.length = usedLength;
+  
+    /* read data from network */
+    do {
+        in = Receive(ssl, 
+                     ssl->buffers.inputBuffer.buffer +
+                     ssl->buffers.inputBuffer.length, 
+                     inSz);
+        if (in == -1)
+            return SOCKET_ERROR_E;
+   
+        if (in == WANT_READ)
+            return WANT_READ;
+        
+        ssl->buffers.inputBuffer.length += in;
+        inSz -= in;
+
+    } while (ssl->buffers.inputBuffer.length < size);
+
+    return 0;
+}
+
+/* process input requests, return 0 is done, 1 is call again to complete, and
+   negative number is error */
+int ProcessReply(CYASSL* ssl)
+{
+    int    ret, type, readSz;
+    word32 startIdx = 0;
+#ifndef NO_CYASSL_SERVER
+    byte   b0, b1;
+#endif
+#ifdef CYASSL_DTLS
+    int    used;
+#endif
+
+    for (;;) {
+        switch ((processReply)ssl->options.processReply) {
+
+        /* in the CYASSL_SERVER case, get the first byte for detecting 
+         * old client hello */
+        case doProcessInit:
+            
+            readSz = RECORD_HEADER_SZ;
+            
+            #ifdef CYASSL_DTLS
+                if (ssl->options.dtls)
+                    readSz = DTLS_RECORD_HEADER_SZ;
+            #endif
+
+            /* get header or return error */
+            if (!ssl->options.dtls) {
+                if ((ret = GetInputData(ssl, readSz)) < 0)
+                    return ret;
+            } else {
+            #ifdef CYASSL_DTLS
+                /* read ahead may already have header */
+                used = ssl->buffers.inputBuffer.length -
+                       ssl->buffers.inputBuffer.idx;
+                if (used < readSz)
+                    if ((ret = GetInputData(ssl, readSz)) < 0)
+                        return ret;
+            #endif
+            }
+
+#ifndef NO_CYASSL_SERVER
+
+            /* see if sending SSLv2 client hello */
+            if ( ssl->options.side == SERVER_END &&
+                 ssl->options.clientState == NULL_STATE &&
+                 ssl->buffers.inputBuffer.buffer[ssl->buffers.inputBuffer.idx]
+                         != handshake) {
+                ssl->options.processReply = runProcessOldClientHello;
+
+                /* how many bytes need ProcessOldClientHello */
+                b0 =
+                ssl->buffers.inputBuffer.buffer[ssl->buffers.inputBuffer.idx++];
+                b1 =
+                ssl->buffers.inputBuffer.buffer[ssl->buffers.inputBuffer.idx++];
+                ssl->curSize = ((b0 & 0x7f) << 8) | b1;
+            }
+            else {
+                ssl->options.processReply = getRecordLayerHeader;
+                continue;
+            }
+
+        /* in the CYASSL_SERVER case, run the old client hello */
+        case runProcessOldClientHello:     
+
+            /* get sz bytes or return error */
+            if (!ssl->options.dtls) {
+                if ((ret = GetInputData(ssl, ssl->curSize)) < 0)
+                    return ret;
+            } else {
+            #ifdef CYASSL_DTLS
+                /* read ahead may already have */
+                used = ssl->buffers.inputBuffer.length -
+                       ssl->buffers.inputBuffer.idx;
+                if (used < ssl->curSize)
+                    if ((ret = GetInputData(ssl, ssl->curSize)) < 0)
+                        return ret;
+            #endif  /* CYASSL_DTLS */
+            }
+
+            ret = ProcessOldClientHello(ssl, ssl->buffers.inputBuffer.buffer,
+                                        &ssl->buffers.inputBuffer.idx,
+                                        ssl->buffers.inputBuffer.length -
+                                        ssl->buffers.inputBuffer.idx,
+                                        ssl->curSize);
+            if (ret < 0)
+                return ret;
+
+            else if (ssl->buffers.inputBuffer.idx ==
+                     ssl->buffers.inputBuffer.length) {
+                ssl->options.processReply = doProcessInit;
+                return 0;
+            }
+
+#endif  /* NO_CYASSL_SERVER */
+
+        /* get the record layer header */
+        case getRecordLayerHeader:
+
+            ret = GetRecordHeader(ssl, ssl->buffers.inputBuffer.buffer,
+                                       &ssl->buffers.inputBuffer.idx,
+                                       &ssl->curRL, &ssl->curSize);
+            if (ret != 0)
+                return ret;
+
+            ssl->options.processReply = getData;
+
+        /* retrieve record layer data */
+        case getData:
+
+            /* get sz bytes or return error */
+            if (!ssl->options.dtls) {
+                if ((ret = GetInputData(ssl, ssl->curSize)) < 0)
+                    return ret;
+            } else {
+#ifdef CYASSL_DTLS
+                /* read ahead may already have */
+                used = ssl->buffers.inputBuffer.length -
+                       ssl->buffers.inputBuffer.idx;
+                if (used < ssl->curSize)
+                    if ((ret = GetInputData(ssl, ssl->curSize)) < 0)
+                        return ret;
+#endif
+            }
+            
+            ssl->options.processReply = runProcessingOneMessage;
+            startIdx = ssl->buffers.inputBuffer.idx;  /* in case > 1 msg per */
+
+        /* the record layer is here */
+        case runProcessingOneMessage:
+
+            if (ssl->keys.encryptionOn)
+                if (DecryptMessage(ssl, ssl->buffers.inputBuffer.buffer + 
+                                        ssl->buffers.inputBuffer.idx,
+                                        ssl->curSize,
+                                        &ssl->buffers.inputBuffer.idx) < 0)
+                    return DECRYPT_ERROR;
+
+            CYASSL_MSG("received record layer msg");
+
+            switch (ssl->curRL.type) {
+                case handshake :
+                    /* debugging in DoHandShakeMsg */
+                    if ((ret = DoHandShakeMsg(ssl, 
+                                              ssl->buffers.inputBuffer.buffer,
+                                              &ssl->buffers.inputBuffer.idx,
+                                              ssl->buffers.inputBuffer.length))
+                                                                           != 0)
+                        return ret;
+                    break;
+
+                case change_cipher_spec:
+                    CYASSL_MSG("got CHANGE CIPHER SPEC");
+                    #ifdef CYASSL_CALLBACKS
+                        if (ssl->hsInfoOn)
+                            AddPacketName("ChangeCipher", &ssl->handShakeInfo);
+                        /* add record header back on info */
+                        if (ssl->toInfoOn) {
+                            AddPacketInfo("ChangeCipher", &ssl->timeoutInfo,
+                                ssl->buffers.inputBuffer.buffer +
+                                ssl->buffers.inputBuffer.idx - RECORD_HEADER_SZ,
+                                1 + RECORD_HEADER_SZ, ssl->heap);
+                            AddLateRecordHeader(&ssl->curRL, &ssl->timeoutInfo);
+                        }
+                    #endif
+                    ssl->buffers.inputBuffer.idx++;
+                    ssl->keys.encryptionOn = 1;
+
+                    #ifdef CYASSL_DTLS
+                        if (ssl->options.dtls)
+                            ssl->keys.dtls_peer_epoch++;
+                    #endif
+
+                    #ifdef HAVE_LIBZ
+                        if (ssl->options.usingCompression)
+                            if ( (ret = InitStreams(ssl)) != 0)
+                                return ret;
+                    #endif
+                    if (ssl->options.resuming && ssl->options.side ==
+                                                                    CLIENT_END)
+                        BuildFinished(ssl, &ssl->verifyHashes, server);
+                    else if (!ssl->options.resuming && ssl->options.side ==
+                                                                    SERVER_END)
+                        BuildFinished(ssl, &ssl->verifyHashes, client);
+                    break;
+
+                case application_data:
+                    CYASSL_MSG("got app DATA");
+                    if ((ret = DoApplicationData(ssl,
+                                                ssl->buffers.inputBuffer.buffer,
+                                               &ssl->buffers.inputBuffer.idx))
+                                                                         != 0) {
+                        CYASSL_ERROR(ret);
+                        return ret;
+                    }
+                    break;
+
+                case alert:
+                    CYASSL_MSG("got ALERT!");
+                    if (DoAlert(ssl, ssl->buffers.inputBuffer.buffer,
+                           &ssl->buffers.inputBuffer.idx, &type) == alert_fatal)
+                        return FATAL_ERROR;
+
+                    /* catch warnings that are handled as errors */
+                    if (type == close_notify)
+                        return ssl->error = ZERO_RETURN;
+                           
+                    if (type == decrypt_error)
+                        return FATAL_ERROR;
+                    break;
+            
+                default:
+                    CYASSL_ERROR(UNKNOWN_RECORD_TYPE);
+                    return UNKNOWN_RECORD_TYPE;
+            }
+
+            ssl->options.processReply = doProcessInit;
+
+            /* input exhausted? */
+            if (ssl->buffers.inputBuffer.idx == ssl->buffers.inputBuffer.length)
+                return 0;
+            /* more messages per record */
+            else if ((ssl->buffers.inputBuffer.idx - startIdx) < ssl->curSize) {
+                CYASSL_MSG("More messages in record");
+                #ifdef CYASSL_DTLS
+                    /* read-ahead but dtls doesn't bundle messages per record */
+                    if (ssl->options.dtls) {
+                        ssl->options.processReply = doProcessInit;
+                        continue;
+                    }
+                #endif
+                ssl->options.processReply = runProcessingOneMessage;
+                continue;
+            }
+            /* more records */
+            else {
+                CYASSL_MSG("More records in input");
+                ssl->options.processReply = doProcessInit;
+                continue;
+            }
+        default:
+            CYASSL_MSG("Bad process input state, programming error");
+            return INPUT_CASE_ERROR;
+        }
+    }
+}
+
+
+int SendChangeCipher(CYASSL* ssl)
+{
+    byte              *output;
+    int                sendSz = RECORD_HEADER_SZ + ENUM_LEN;
+    int                idx    = RECORD_HEADER_SZ;
+    int                ret;
+
+    #ifdef CYASSL_DTLS
+        if (ssl->options.dtls) {
+            sendSz += DTLS_RECORD_EXTRA;
+            idx    += DTLS_RECORD_EXTRA;
+        }
+    #endif
+
+    /* check for avalaible size */
+    if ((ret = CheckAvalaibleSize(ssl, sendSz)) != 0)
+        return ret;
+
+    /* get ouput buffer */
+    output = ssl->buffers.outputBuffer.buffer + 
+             ssl->buffers.outputBuffer.length;
+
+    AddRecordHeader(output, 1, change_cipher_spec, ssl);
+
+    output[idx] = 1;             /* turn it on */
+
+    #ifdef CYASSL_CALLBACKS
+        if (ssl->hsInfoOn) AddPacketName("ChangeCipher", &ssl->handShakeInfo);
+        if (ssl->toInfoOn)
+            AddPacketInfo("ChangeCipher", &ssl->timeoutInfo, output, sendSz,
+                           ssl->heap);
+    #endif
+    ssl->buffers.outputBuffer.length += sendSz;
+
+    if (ssl->options.groupMessages)
+        return 0;
+    else
+        return SendBuffered(ssl);
+}
+
+
+static INLINE const byte* GetMacSecret(CYASSL* ssl, int verify)
+{
+    if ( (ssl->options.side == CLIENT_END && !verify) ||
+         (ssl->options.side == SERVER_END &&  verify) )
+        return ssl->keys.client_write_MAC_secret;
+    else
+        return ssl->keys.server_write_MAC_secret;
+}
+
+
+static void Hmac(CYASSL* ssl, byte* digest, const byte* in, word32 sz,
+                 int content, int verify)
+{
+    byte   result[SHA256_DIGEST_SIZE];                 /* max possible sizes */
+    word32 digestSz = ssl->specs.hash_size;            /* actual sizes */
+    word32 padSz    = ssl->specs.pad_size;
+
+    Md5 md5;
+    Sha sha;
+
+    /* data */
+    byte seq[SEQ_SZ] = { 0x00, 0x00, 0x00, 0x00 };
+    byte conLen[ENUM_LEN + LENGTH_SZ];     /* content & length */
+    const byte* macSecret = GetMacSecret(ssl, verify);
+    
+    conLen[0] = (byte)content;
+    c16toa((word16)sz, &conLen[ENUM_LEN]);
+    c32toa(GetSEQIncrement(ssl, verify), &seq[sizeof(word32)]);
+
+    if (ssl->specs.mac_algorithm == md5_mac) {
+        InitMd5(&md5);
+        /* inner */
+        Md5Update(&md5, macSecret, digestSz);
+        Md5Update(&md5, PAD1, padSz);
+        Md5Update(&md5, seq, SEQ_SZ);
+        Md5Update(&md5, conLen, sizeof(conLen));
+        /* in buffer */
+        Md5Update(&md5, in, sz);
+        Md5Final(&md5, result);
+        /* outer */
+        Md5Update(&md5, macSecret, digestSz);
+        Md5Update(&md5, PAD2, padSz);
+        Md5Update(&md5, result, digestSz);
+        Md5Final(&md5, digest);        
+    }
+    else {
+        InitSha(&sha);
+        /* inner */
+        ShaUpdate(&sha, macSecret, digestSz);
+        ShaUpdate(&sha, PAD1, padSz);
+        ShaUpdate(&sha, seq, SEQ_SZ);
+        ShaUpdate(&sha, conLen, sizeof(conLen));
+        /* in buffer */
+        ShaUpdate(&sha, in, sz);
+        ShaFinal(&sha, result);
+        /* outer */
+        ShaUpdate(&sha, macSecret, digestSz);
+        ShaUpdate(&sha, PAD2, padSz);
+        ShaUpdate(&sha, result, digestSz);
+        ShaFinal(&sha, digest);        
+    }
+}
+
+
+static void BuildMD5_CertVerify(CYASSL* ssl, byte* digest)
+{
+    byte md5_result[MD5_DIGEST_SIZE];
+
+    /* make md5 inner */
+    Md5Update(&ssl->hashMd5, ssl->arrays.masterSecret, SECRET_LEN);
+    Md5Update(&ssl->hashMd5, PAD1, PAD_MD5);
+    Md5Final(&ssl->hashMd5, md5_result);
+
+    /* make md5 outer */
+    Md5Update(&ssl->hashMd5, ssl->arrays.masterSecret, SECRET_LEN);
+    Md5Update(&ssl->hashMd5, PAD2, PAD_MD5);
+    Md5Update(&ssl->hashMd5, md5_result, MD5_DIGEST_SIZE);
+
+    Md5Final(&ssl->hashMd5, digest);
+}
+
+
+static void BuildSHA_CertVerify(CYASSL* ssl, byte* digest)
+{
+    byte sha_result[SHA_DIGEST_SIZE];
+    
+    /* make sha inner */
+    ShaUpdate(&ssl->hashSha, ssl->arrays.masterSecret, SECRET_LEN);
+    ShaUpdate(&ssl->hashSha, PAD1, PAD_SHA);
+    ShaFinal(&ssl->hashSha, sha_result);
+
+    /* make sha outer */
+    ShaUpdate(&ssl->hashSha, ssl->arrays.masterSecret, SECRET_LEN);
+    ShaUpdate(&ssl->hashSha, PAD2, PAD_SHA);
+    ShaUpdate(&ssl->hashSha, sha_result, SHA_DIGEST_SIZE);
+
+    ShaFinal(&ssl->hashSha, digest);
+}
+
+
+static void BuildCertHashes(CYASSL* ssl, Hashes* hashes)
+{
+    /* store current states, building requires get_digest which resets state */
+    Md5 md5 = ssl->hashMd5;
+    Sha sha = ssl->hashSha;
+#ifndef NO_SHA256     /* for possible future changes */
+    Sha256 sha256;
+    InitSha256(&sha256);
+    if (IsAtLeastTLSv1_2(ssl))
+        sha256 = ssl->hashSha256;
+#endif
+
+    if (ssl->options.tls) {
+        Md5Final(&ssl->hashMd5, hashes->md5);
+        ShaFinal(&ssl->hashSha, hashes->sha);
+    }
+    else {
+        BuildMD5_CertVerify(ssl, hashes->md5);
+        BuildSHA_CertVerify(ssl, hashes->sha);
+    }
+    
+    /* restore */
+    ssl->hashMd5 = md5;
+    ssl->hashSha = sha;
+#ifndef NO_SHA256
+    if (IsAtLeastTLSv1_2(ssl))
+        ssl->hashSha256 = sha256;
+#endif
+}
+
+
+/* Build SSL Message, encrypted */
+static int BuildMessage(CYASSL* ssl, byte* output, const byte* input, int inSz,
+                        int type)
+{
+    word32 digestSz = ssl->specs.hash_size;
+    word32 sz = RECORD_HEADER_SZ + inSz + digestSz;                
+    word32 pad  = 0, i;
+    word32 idx  = RECORD_HEADER_SZ;
+    word32 ivSz = 0;      /* TLSv1.1  IV */
+    word32 headerSz = RECORD_HEADER_SZ;
+    word16 size;
+    byte               iv[AES_BLOCK_SIZE];                  /* max size */
+
+#ifdef CYASSL_DTLS
+    if (ssl->options.dtls) {
+        sz       += DTLS_RECORD_EXTRA;
+        idx      += DTLS_RECORD_EXTRA; 
+        headerSz += DTLS_RECORD_EXTRA;
+    }
+#endif
+
+    if (ssl->specs.cipher_type == block) {
+        word32 blockSz = ssl->specs.block_size;
+        if (ssl->options.tls1_1) {
+            ivSz = blockSz;
+            sz  += ivSz;
+            RNG_GenerateBlock(&ssl->rng, iv, ivSz);
+        }
+        sz += 1;       /* pad byte */
+        pad = (sz - headerSz) % blockSz;
+        pad = blockSz - pad;
+        sz += pad;
+    }
+
+    size = (word16)(sz - headerSz);    /* include mac and digest */
+    AddRecordHeader(output, size, (byte)type, ssl);    
+
+    /* write to output */
+    if (ivSz) {
+        XMEMCPY(output + idx, iv, ivSz);
+        idx += ivSz;
+    }
+    XMEMCPY(output + idx, input, inSz);
+    idx += inSz;
+
+    if (type == handshake)
+        HashOutput(ssl, output, headerSz + inSz, ivSz);
+    ssl->hmac(ssl, output+idx, output + headerSz + ivSz, inSz, type, 0);
+    idx += digestSz;
+
+    if (ssl->specs.cipher_type == block)
+        for (i = 0; i <= pad; i++)
+            output[idx++] = (byte)pad; /* pad byte gets pad value too */
+
+    Encrypt(ssl, output + headerSz, output + headerSz, size);
+
+    return sz;
+}
+
+
+int SendFinished(CYASSL* ssl)
+{
+    int              sendSz,
+                     finishedSz = ssl->options.tls ? TLS_FINISHED_SZ :
+                                                     FINISHED_SZ;
+    byte             input[FINISHED_SZ + DTLS_HANDSHAKE_HEADER_SZ];  /* max */
+    byte            *output;
+    Hashes*          hashes;
+    int              ret;
+    int              headerSz = HANDSHAKE_HEADER_SZ;
+
+
+    #ifdef CYASSL_DTLS
+        if (ssl->options.dtls) {
+            headerSz += DTLS_HANDSHAKE_EXTRA;
+            ssl->keys.dtls_epoch++;
+            ssl->keys.dtls_sequence_number = 0;  /* reset after epoch change */
+        }
+    #endif
+    
+    /* check for avalaible size */
+    if ((ret = CheckAvalaibleSize(ssl, sizeof(input) + MAX_MSG_EXTRA)) != 0)
+        return ret;
+
+    /* get ouput buffer */
+    output = ssl->buffers.outputBuffer.buffer + 
+             ssl->buffers.outputBuffer.length;
+
+    AddHandShakeHeader(input, finishedSz, finished, ssl);
+
+    /* make finished hashes */
+    hashes = (Hashes*)&input[headerSz];
+    BuildFinished(ssl, hashes, ssl->options.side == CLIENT_END ? client :
+                  server);
+
+    if ( (sendSz = BuildMessage(ssl, output, input, headerSz +
+                                finishedSz, handshake)) < 0)
+        return BUILD_MSG_ERROR;
+
+    if (!ssl->options.resuming) {
+#ifndef NO_SESSION_CACHE
+        AddSession(ssl);    /* just try */
+#endif
+        if (ssl->options.side == CLIENT_END)
+            BuildFinished(ssl, &ssl->verifyHashes, server);
+        else
+            ssl->options.handShakeState = HANDSHAKE_DONE;
+    }
+    else {
+        if (ssl->options.side == CLIENT_END)
+            ssl->options.handShakeState = HANDSHAKE_DONE;
+        else
+            BuildFinished(ssl, &ssl->verifyHashes, client);
+    }
+
+    #ifdef CYASSL_CALLBACKS
+        if (ssl->hsInfoOn) AddPacketName("Finished", &ssl->handShakeInfo);
+        if (ssl->toInfoOn)
+            AddPacketInfo("Finished", &ssl->timeoutInfo, output, sendSz,
+                          ssl->heap);
+    #endif
+
+    ssl->buffers.outputBuffer.length += sendSz;
+
+    return SendBuffered(ssl);
+}
+
+
+int SendCertificate(CYASSL* ssl)
+{
+    int    sendSz, length, ret = 0;
+    word32 i = RECORD_HEADER_SZ + HANDSHAKE_HEADER_SZ;
+    word32 certSz, listSz;
+    byte*  output = 0;
+
+    if (ssl->options.usingPSK_cipher) return 0;  /* not needed */
+
+    if (ssl->options.sendVerify == SEND_BLANK_CERT) {
+        certSz = 0;
+        length = CERT_HEADER_SZ;
+        listSz = 0;
+    }
+    else {
+        certSz = ssl->buffers.certificate.length;
+        /* list + cert size */
+        length = certSz + 2 * CERT_HEADER_SZ;
+        listSz = certSz + CERT_HEADER_SZ;
+
+        /* may need to send rest of chain, already has leading size(s) */
+        if (ssl->buffers.certChain.buffer) {
+            length += ssl->buffers.certChain.length;
+            listSz += ssl->buffers.certChain.length;
+        }
+    }
+    sendSz = length + RECORD_HEADER_SZ + HANDSHAKE_HEADER_SZ;
+
+    #ifdef CYASSL_DTLS
+        if (ssl->options.dtls) {
+            sendSz += DTLS_RECORD_EXTRA + DTLS_HANDSHAKE_EXTRA;
+            i      += DTLS_RECORD_EXTRA + DTLS_HANDSHAKE_EXTRA;
+        }
+    #endif
+
+    /* check for avalaible size */
+    if ((ret = CheckAvalaibleSize(ssl, sendSz)) != 0)
+        return ret;
+
+    /* get ouput buffer */
+    output = ssl->buffers.outputBuffer.buffer +
+             ssl->buffers.outputBuffer.length;
+
+    AddHeaders(output, length, certificate, ssl);
+
+    /* list total */
+    c32to24(listSz, output + i);
+    i += CERT_HEADER_SZ;
+
+    /* member */
+    if (certSz) {
+        c32to24(certSz, output + i);
+        i += CERT_HEADER_SZ;
+        XMEMCPY(output + i, ssl->buffers.certificate.buffer, certSz);
+        i += certSz;
+
+        /* send rest of chain? */
+        if (ssl->buffers.certChain.buffer) {
+            XMEMCPY(output + i, ssl->buffers.certChain.buffer,
+                                ssl->buffers.certChain.length);
+            i += ssl->buffers.certChain.length;
+        }
+    }
+    HashOutput(ssl, output, sendSz, 0);
+    #ifdef CYASSL_CALLBACKS
+        if (ssl->hsInfoOn) AddPacketName("Certificate", &ssl->handShakeInfo);
+        if (ssl->toInfoOn)
+            AddPacketInfo("Certificate", &ssl->timeoutInfo, output, sendSz,
+                           ssl->heap);
+    #endif
+
+    if (ssl->options.side == SERVER_END)
+        ssl->options.serverState = SERVER_CERT_COMPLETE;
+
+    ssl->buffers.outputBuffer.length += sendSz;
+    if (ssl->options.groupMessages)
+        return 0;
+    else
+        return SendBuffered(ssl);
+}
+
+
+int SendCertificateRequest(CYASSL* ssl)
+{
+    byte   *output;
+    int    ret;
+    int    sendSz;
+    word32 i = RECORD_HEADER_SZ + HANDSHAKE_HEADER_SZ;
+    
+    int  typeTotal = 1;  /* only rsa for now */
+    int  reqSz = ENUM_LEN + typeTotal + REQ_HEADER_SZ;  /* add auth later */
+
+    if (IsAtLeastTLSv1_2(ssl))
+        reqSz += LENGTH_SZ + HASH_SIG_SIZE;
+
+    if (ssl->options.usingPSK_cipher) return 0;  /* not needed */
+
+    sendSz = RECORD_HEADER_SZ + HANDSHAKE_HEADER_SZ + reqSz;
+
+    #ifdef CYASSL_DTLS
+        if (ssl->options.dtls) {
+            sendSz += DTLS_RECORD_EXTRA + DTLS_HANDSHAKE_EXTRA;
+            i      += DTLS_RECORD_EXTRA + DTLS_HANDSHAKE_EXTRA;
+        }
+    #endif
+    /* check for avalaible size */
+    if ((ret = CheckAvalaibleSize(ssl, sendSz)) != 0)
+        return ret;
+
+    /* get ouput buffer */
+    output = ssl->buffers.outputBuffer.buffer +
+             ssl->buffers.outputBuffer.length;
+
+    AddHeaders(output, reqSz, certificate_request, ssl);
+
+    /* write to output */
+    output[i++] = (byte)typeTotal;  /* # of types */
+    output[i++] = rsa_sign;
+
+    /* supported hash/sig */
+    if (IsAtLeastTLSv1_2(ssl)) {
+        c16toa(HASH_SIG_SIZE, &output[i]);
+        i += LENGTH_SZ;
+
+        output[i++] = sha_mac;      /* hash */
+        output[i++] = rsa_sa_algo;  /* sig  */
+    }
+
+    c16toa(0, &output[i]);  /* auth's */
+    i += REQ_HEADER_SZ;
+
+    HashOutput(ssl, output, sendSz, 0);
+
+    #ifdef CYASSL_CALLBACKS
+        if (ssl->hsInfoOn)
+            AddPacketName("CertificateRequest", &ssl->handShakeInfo);
+        if (ssl->toInfoOn)
+            AddPacketInfo("CertificateRequest", &ssl->timeoutInfo, output,
+                          sendSz, ssl->heap);
+    #endif
+    ssl->buffers.outputBuffer.length += sendSz;
+    if (ssl->options.groupMessages)
+        return 0;
+    else
+        return SendBuffered(ssl);
+}
+
+
+int SendData(CYASSL* ssl, const void* data, int sz)
+{
+    int sent = 0,  /* plainText size */
+        sendSz,
+        ret;
+
+    if (ssl->error == WANT_WRITE)
+        ssl->error = 0;
+
+    if (ssl->options.handShakeState != HANDSHAKE_DONE) {
+        int err;
+        CYASSL_MSG("handshake not complete, trying to finish");
+        if ( (err = CyaSSL_negotiate(ssl)) != 0) 
+            return  err;
+    }
+
+    /* last time system socket output buffer was full, try again to send */
+    if (ssl->buffers.outputBuffer.length > 0) {
+        CYASSL_MSG("output buffer was full, trying to send again");
+        if ( (ssl->error = SendBuffered(ssl)) < 0) {
+            CYASSL_ERROR(ssl->error);
+            if (ssl->error == SOCKET_ERROR_E && ssl->options.connReset)
+                return 0;     /* peer reset */
+            return ssl->error;
+        }
+        else {
+            /* advance sent to previous sent + plain size just sent */
+            sent = ssl->buffers.prevSent + ssl->buffers.plainSz;
+            CYASSL_MSG("sent write buffered data");
+        }
+    }
+
+    for (;;) {
+        int   len = min(sz - sent, OUTPUT_RECORD_SIZE);
+        byte* out;
+        byte* sendBuffer = (byte*)data + sent;  /* may switch on comp */
+        int   buffSz = len;                       /* may switch on comp */
+#ifdef HAVE_LIBZ
+        byte  comp[MAX_RECORD_SIZE + MAX_COMP_EXTRA];
+#endif
+
+        if (sent == sz) break;
+
+#ifdef CYASSL_DTLS
+        if (ssl->options.dtls) {
+            len    = min(len, MAX_UDP_SIZE);
+            buffSz = len;
+        }
+#endif
+
+        /* check for avalaible size */
+        if ((ret = CheckAvalaibleSize(ssl, len + COMP_EXTRA +
+                                      MAX_MSG_EXTRA)) != 0)
+            return ret;
+
+        /* get ouput buffer */
+        out = ssl->buffers.outputBuffer.buffer +
+              ssl->buffers.outputBuffer.length;
+
+#ifdef HAVE_LIBZ
+        if (ssl->options.usingCompression) {
+            buffSz = Compress(ssl, sendBuffer, buffSz, comp, sizeof(comp));
+            if (buffSz < 0) {
+                return buffSz;
+            }
+            sendBuffer = comp;
+        }
+#endif
+        sendSz = BuildMessage(ssl, out, sendBuffer, buffSz,
+                              application_data);
+
+        ssl->buffers.outputBuffer.length += sendSz;
+
+        if ( (ret = SendBuffered(ssl)) < 0) {
+            CYASSL_ERROR(ret);
+            /* store for next call if WANT_WRITE or user embedSend() that
+               doesn't present like WANT_WRITE */
+            ssl->buffers.plainSz  = len;
+            ssl->buffers.prevSent = sent;
+            if (ret == SOCKET_ERROR_E && ssl->options.connReset)
+                return 0;  /* peer reset */
+            return ssl->error = ret;
+        }
+
+        sent += len;
+
+        /* only one message per attempt */
+        if (ssl->options.partialWrite == 1) {
+            CYASSL_MSG("Paritial Write on, only sending one record");
+            break;
+        }
+    }
+ 
+    return sent;
+}
+
+/* process input data */
+int ReceiveData(CYASSL* ssl, byte* output, int sz)
+{
+    int size;
+
+    CYASSL_ENTER("ReceiveData()");
+
+    if (ssl->error == WANT_READ)
+        ssl->error = 0;
+
+    if (ssl->options.handShakeState != HANDSHAKE_DONE) {
+        int err;
+        CYASSL_MSG("Handshake not complete, trying to finish");
+        if ( (err = CyaSSL_negotiate(ssl)) != 0)
+            return  err;
+    }
+
+    while (ssl->buffers.clearOutputBuffer.length == 0)
+        if ( (ssl->error = ProcessReply(ssl)) < 0) {
+            CYASSL_ERROR(ssl->error);
+            if (ssl->error == ZERO_RETURN) {
+                CYASSL_MSG("Zero return, no more data coming");
+                ssl->options.isClosed = 1;
+                return 0;         /* no more data coming */
+            }
+            if (ssl->error == SOCKET_ERROR_E) {
+                if (ssl->options.connReset || ssl->options.isClosed) {
+                    CYASSL_MSG("Peer reset or closed, connection done");
+                    return 0;     /* peer reset or closed */
+                }
+            }
+            return ssl->error;
+        }
+
+    if (sz < (int)ssl->buffers.clearOutputBuffer.length)
+        size = sz;
+    else
+        size = ssl->buffers.clearOutputBuffer.length;
+
+    XMEMCPY(output, ssl->buffers.clearOutputBuffer.buffer, size);
+    ssl->buffers.clearOutputBuffer.length -= size;
+    ssl->buffers.clearOutputBuffer.buffer += size;
+   
+    if (ssl->buffers.clearOutputBuffer.length == 0 && 
+                                           ssl->buffers.inputBuffer.dynamicFlag)
+       ShrinkInputBuffer(ssl, NO_FORCED_FREE);
+
+    CYASSL_LEAVE("ReceiveData()", size);
+    return size;
+}
+
+
+/* send alert message */
+int SendAlert(CYASSL* ssl, int severity, int type)
+{
+    byte input[ALERT_SIZE];
+    byte *output;
+    int  sendSz;
+    int  ret;
+
+    /* if sendalert is called again for nonbloking */
+    if (ssl->options.sendAlertState != 0) {
+        ret = SendBuffered(ssl);
+        if (ret == 0)
+            ssl->options.sendAlertState = 0;
+        return ret;
+    }
+
+    /* check for avalaible size */
+    if ((ret = CheckAvalaibleSize(ssl, ALERT_SIZE + MAX_MSG_EXTRA)) != 0)
+        return ret;
+
+    /* get ouput buffer */
+    output = ssl->buffers.outputBuffer.buffer +
+             ssl->buffers.outputBuffer.length;
+
+    input[0] = (byte)severity;
+    input[1] = (byte)type;
+
+    if (ssl->keys.encryptionOn)
+        sendSz = BuildMessage(ssl, output, input, ALERT_SIZE, alert);
+    else {
+        RecordLayerHeader *const rl = (RecordLayerHeader*)output;
+        rl->type    = alert;
+        rl->version = ssl->version;
+        c16toa(ALERT_SIZE, rl->length);      
+
+        XMEMCPY(output + RECORD_HEADER_SZ, input, ALERT_SIZE);
+        sendSz = RECORD_HEADER_SZ + ALERT_SIZE;
+    }
+
+    #ifdef CYASSL_CALLBACKS
+        if (ssl->hsInfoOn)
+            AddPacketName("Alert", &ssl->handShakeInfo);
+        if (ssl->toInfoOn)
+            AddPacketInfo("Alert", &ssl->timeoutInfo, output, sendSz,ssl->heap);
+    #endif
+
+    ssl->buffers.outputBuffer.length += sendSz;
+    ssl->options.sendAlertState = 1;
+
+    return SendBuffered(ssl);
+}
+
+
+
+void SetErrorString(int error, char* str)
+{
+    const int max = MAX_ERROR_SZ;  /* shorthand */
+
+#ifdef NO_ERROR_STRINGS
+
+    XSTRNCPY(str, "no support for error strings built in", max);
+
+#else
+
+    /* pass to CTaoCrypt */
+    if (error < MAX_CODE_E && error > MIN_CODE_E) {
+        CTaoCryptErrorString(error, str);
+        return;
+    }
+
+    switch (error) {
+
+    case UNSUPPORTED_SUITE :
+        XSTRNCPY(str, "unsupported cipher suite", max);
+        break;
+
+    case INPUT_CASE_ERROR :
+        XSTRNCPY(str, "input state error", max);
+        break;
+
+    case PREFIX_ERROR :
+        XSTRNCPY(str, "bad index to key rounds", max);
+        break;
+
+    case MEMORY_ERROR :
+        XSTRNCPY(str, "out of memory", max);
+        break;
+
+    case VERIFY_FINISHED_ERROR :
+        XSTRNCPY(str, "verify problem on finished", max);
+        break;
+
+    case VERIFY_MAC_ERROR :
+        XSTRNCPY(str, "verify mac problem", max);
+        break;
+
+    case PARSE_ERROR :
+        XSTRNCPY(str, "parse error on header", max);
+        break;
+
+    case SIDE_ERROR :
+        XSTRNCPY(str, "wrong client/server type", max);
+        break;
+
+    case NO_PEER_CERT :
+        XSTRNCPY(str, "peer didn't send cert", max);
+        break;
+
+    case UNKNOWN_HANDSHAKE_TYPE :
+        XSTRNCPY(str, "weird handshake type", max);
+        break;
+
+    case SOCKET_ERROR_E :
+        XSTRNCPY(str, "error state on socket", max);
+        break;
+
+    case SOCKET_NODATA :
+        XSTRNCPY(str, "expected data, not there", max);
+        break;
+
+    case INCOMPLETE_DATA :
+        XSTRNCPY(str, "don't have enough data to complete task", max);
+        break;
+
+    case UNKNOWN_RECORD_TYPE :
+        XSTRNCPY(str, "unknown type in record hdr", max);
+        break;
+
+    case DECRYPT_ERROR :
+        XSTRNCPY(str, "error during decryption", max);
+        break;
+
+    case FATAL_ERROR :
+        XSTRNCPY(str, "revcd alert fatal error", max);
+        break;
+
+    case ENCRYPT_ERROR :
+        XSTRNCPY(str, "error during encryption", max);
+        break;
+
+    case FREAD_ERROR :
+        XSTRNCPY(str, "fread problem", max);
+        break;
+
+    case NO_PEER_KEY :
+        XSTRNCPY(str, "need peer's key", max);
+        break;
+
+    case NO_PRIVATE_KEY :
+        XSTRNCPY(str, "need the private key", max);
+        break;
+
+    case NO_DH_PARAMS :
+        XSTRNCPY(str, "server missing DH params", max);
+        break;
+
+    case RSA_PRIVATE_ERROR :
+        XSTRNCPY(str, "error during rsa priv op", max);
+        break;
+
+    case MATCH_SUITE_ERROR :
+        XSTRNCPY(str, "can't match cipher suite", max);
+        break;
+
+    case BUILD_MSG_ERROR :
+        XSTRNCPY(str, "build message failure", max);
+        break;
+
+    case BAD_HELLO :
+        XSTRNCPY(str, "client hello malformed", max);
+        break;
+
+    case DOMAIN_NAME_MISMATCH :
+        XSTRNCPY(str, "peer subject name mismatch", max);
+        break;
+
+    case WANT_READ :
+        XSTRNCPY(str, "non-blocking socket wants data to be read", max);
+        break;
+
+    case NOT_READY_ERROR :
+        XSTRNCPY(str, "handshake layer not ready yet, complete first", max);
+        break;
+
+    case PMS_VERSION_ERROR :
+        XSTRNCPY(str, "premaster secret version mismatch error", max);
+        break;
+
+    case VERSION_ERROR :
+        XSTRNCPY(str, "record layer version error", max);
+        break;
+
+    case WANT_WRITE :
+        XSTRNCPY(str, "non-blocking socket write buffer full", max);
+        break;
+
+    case BUFFER_ERROR :
+        XSTRNCPY(str, "malformed buffer input error", max);
+        break;
+
+    case VERIFY_CERT_ERROR :
+        XSTRNCPY(str, "verify problem on certificate", max);
+        break;
+
+    case VERIFY_SIGN_ERROR :
+        XSTRNCPY(str, "verify problem based on signature", max);
+        break;
+
+    case CLIENT_ID_ERROR :
+        XSTRNCPY(str, "psk client identity error", max);
+        break;
+
+    case SERVER_HINT_ERROR:
+        XSTRNCPY(str, "psk server hint error", max);
+        break;
+
+    case PSK_KEY_ERROR:
+        XSTRNCPY(str, "psk key callback error", max);
+        break;
+
+    case NTRU_KEY_ERROR:
+        XSTRNCPY(str, "NTRU key error", max);
+        break;
+
+    case NTRU_DRBG_ERROR:
+        XSTRNCPY(str, "NTRU drbg error", max);
+        break;
+
+    case NTRU_ENCRYPT_ERROR:
+        XSTRNCPY(str, "NTRU encrypt error", max);
+        break;
+
+    case NTRU_DECRYPT_ERROR:
+        XSTRNCPY(str, "NTRU decrypt error", max);
+        break;
+
+    case ZLIB_INIT_ERROR:
+        XSTRNCPY(str, "zlib init error", max);
+        break;
+
+    case ZLIB_COMPRESS_ERROR:
+        XSTRNCPY(str, "zlib compress error", max);
+        break;
+
+    case ZLIB_DECOMPRESS_ERROR:
+        XSTRNCPY(str, "zlib decompress error", max);
+        break;
+
+    case GETTIME_ERROR:
+        XSTRNCPY(str, "gettimeofday() error", max);
+        break;
+
+    case GETITIMER_ERROR:
+        XSTRNCPY(str, "getitimer() error", max);
+        break;
+
+    case SIGACT_ERROR:
+        XSTRNCPY(str, "sigaction() error", max);
+        break;
+
+    case SETITIMER_ERROR:
+        XSTRNCPY(str, "setitimer() error", max);
+        break;
+
+    case LENGTH_ERROR:
+        XSTRNCPY(str, "record layer length error", max);
+        break;
+
+    case PEER_KEY_ERROR:
+        XSTRNCPY(str, "cant decode peer key", max);
+        break;
+
+    case ZERO_RETURN:
+        XSTRNCPY(str, "peer sent close notify alert", max);
+        break;
+
+    case ECC_CURVETYPE_ERROR:
+        XSTRNCPY(str, "Bad ECC Curve Type or unsupported", max);
+        break;
+
+    case ECC_CURVE_ERROR:
+        XSTRNCPY(str, "Bad ECC Curve or unsupported", max);
+        break;
+
+    case ECC_PEERKEY_ERROR:
+        XSTRNCPY(str, "Bad ECC Peer Key", max);
+        break;
+
+    case ECC_MAKEKEY_ERROR:
+        XSTRNCPY(str, "ECC Make Key failure", max);
+        break;
+
+    case ECC_EXPORT_ERROR:
+        XSTRNCPY(str, "ECC Export Key failure", max);
+        break;
+
+    case ECC_SHARED_ERROR:
+        XSTRNCPY(str, "ECC DHE shared failure", max);
+        break;
+
+    case BAD_MUTEX_ERROR:
+        XSTRNCPY(str, "Bad mutex, operation failed", max);
+        break;
+
+    case NOT_CA_ERROR:
+        XSTRNCPY(str, "Not a CA by basic constraint error", max);
+        break;
+
+    case BAD_PATH_ERROR:
+        XSTRNCPY(str, "Bad path for opendir error", max);
+        break;
+
+    case BAD_CERT_MANAGER_ERROR:
+        XSTRNCPY(str, "Bad Cert Manager error", max);
+        break;
+
+    case OCSP_CERT_REVOKED:
+        XSTRNCPY(str, "OCSP Cert revoked", max);
+        break;
+
+    case CRL_CERT_REVOKED:
+        XSTRNCPY(str, "CRL Cert revoked", max);
+        break;
+
+    case CRL_MISSING:
+        XSTRNCPY(str, "CRL missing, not loaded", max);
+        break;
+
+    default :
+        XSTRNCPY(str, "unknown error number", max);
+    }
+
+#endif /* NO_ERROR_STRINGS */
+}
+
+
+
+/* be sure to add to cipher_name_idx too !!!! */
+const char* const cipher_names[] = 
+{
+#ifdef BUILD_SSL_RSA_WITH_RC4_128_SHA
+    "RC4-SHA",
+#endif
+
+#ifdef BUILD_SSL_RSA_WITH_RC4_128_MD5
+    "RC4-MD5",
+#endif
+
+#ifdef BUILD_SSL_RSA_WITH_3DES_EDE_CBC_SHA
+    "DES-CBC3-SHA",
+#endif
+
+#ifdef BUILD_TLS_RSA_WITH_AES_128_CBC_SHA
+    "AES128-SHA",
+#endif
+
+#ifdef BUILD_TLS_RSA_WITH_AES_256_CBC_SHA
+    "AES256-SHA",
+#endif
+
+#ifdef BUILD_TLS_DHE_RSA_WITH_AES_128_CBC_SHA
+    "DHE-RSA-AES128-SHA",
+#endif
+
+#ifdef BUILD_TLS_DHE_RSA_WITH_AES_256_CBC_SHA
+    "DHE-RSA-AES256-SHA",
+#endif
+
+#ifdef BUILD_TLS_PSK_WITH_AES_128_CBC_SHA
+    "PSK-AES128-CBC-SHA",
+#endif
+
+#ifdef BUILD_TLS_PSK_WITH_AES_256_CBC_SHA
+    "PSK-AES256-CBC-SHA",
+#endif
+
+#ifdef BUILD_TLS_RSA_WITH_HC_128_CBC_MD5
+    "HC128-MD5",
+#endif
+    
+#ifdef BUILD_TLS_RSA_WITH_HC_128_CBC_SHA
+    "HC128-SHA",
+#endif
+
+#ifdef BUILD_TLS_RSA_WITH_RABBIT_CBC_SHA
+    "RABBIT-SHA",
+#endif
+
+#ifdef BUILD_TLS_NTRU_RSA_WITH_RC4_128_SHA
+    "NTRU-RC4-SHA",
+#endif
+
+#ifdef BUILD_TLS_NTRU_RSA_WITH_3DES_EDE_CBC_SHA
+    "NTRU-DES-CBC3-SHA",
+#endif
+
+#ifdef BUILD_TLS_NTRU_RSA_WITH_AES_128_CBC_SHA
+    "NTRU-AES128-SHA",
+#endif
+
+#ifdef BUILD_TLS_NTRU_RSA_WITH_AES_256_CBC_SHA
+    "NTRU-AES256-SHA",
+#endif
+
+#ifdef BUILD_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
+    "ECDHE-RSA-AES128-SHA",
+#endif
+
+#ifdef BUILD_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
+    "ECDHE-RSA-AES256-SHA",
+#endif
+
+#ifdef BUILD_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
+    "ECDHE-ECDSA-AES128-SHA",
+#endif
+
+#ifdef BUILD_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
+    "ECDHE-ECDSA-AES256-SHA",
+#endif
+
+#ifdef BUILD_TLS_ECDHE_RSA_WITH_RC4_128_SHA
+    "ECDHE-RSA-RC4-SHA",
+#endif
+
+#ifdef BUILD_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
+    "ECDHE-RSA-DES-CBC3-SHA",
+#endif
+
+#ifdef BUILD_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA
+    "ECDHE-ECDSA-RC4-SHA",
+#endif
+
+#ifdef BUILD_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA
+    "ECDHE-ECDSA-DES-CBC3-SHA",
+#endif
+
+#ifdef BUILD_TLS_RSA_WITH_AES_128_CBC_SHA256
+    "AES128-SHA256",
+#endif
+
+#ifdef BUILD_TLS_RSA_WITH_AES_256_CBC_SHA256
+    "AES256-SHA256",
+#endif
+
+#ifdef BUILD_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
+    "DHE-RSA-AES128-SHA256",
+#endif
+
+#ifdef BUILD_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
+    "DHE-RSA-AES256-SHA256",
+#endif
+
+#ifdef BUILD_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA
+    "ECDH-RSA-AES128-SHA",
+#endif
+
+#ifdef BUILD_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
+    "ECDH-RSA-AES256-SHA",
+#endif
+
+#ifdef BUILD_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA
+    "ECDH-ECDSA-AES128-SHA",
+#endif
+
+#ifdef BUILD_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
+    "ECDH-ECDSA-AES256-SHA",
+#endif
+
+#ifdef BUILD_TLS_ECDH_RSA_WITH_RC4_128_SHA
+    "ECDH-RSA-RC4-SHA",
+#endif
+
+#ifdef BUILD_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA
+    "ECDH-RSA-DES-CBC3-SHA",
+#endif
+
+#ifdef BUILD_TLS_ECDH_ECDSA_WITH_RC4_128_SHA
+    "ECDH-ECDSA-RC4-SHA",
+#endif
+
+#ifdef BUILD_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA
+    "ECDH-ECDSA-DES-CBC3-SHA"
+#endif
+
+};
+
+
+
+/* cipher suite number that matches above name table */
+int cipher_name_idx[] =
+{
+
+#ifdef BUILD_SSL_RSA_WITH_RC4_128_SHA
+    SSL_RSA_WITH_RC4_128_SHA,
+#endif
+
+#ifdef BUILD_SSL_RSA_WITH_RC4_128_MD5
+    SSL_RSA_WITH_RC4_128_MD5,
+#endif
+
+#ifdef BUILD_SSL_RSA_WITH_3DES_EDE_CBC_SHA
+    SSL_RSA_WITH_3DES_EDE_CBC_SHA,
+#endif
+
+#ifdef BUILD_TLS_RSA_WITH_AES_128_CBC_SHA
+    TLS_RSA_WITH_AES_128_CBC_SHA,    
+#endif
+
+#ifdef BUILD_TLS_RSA_WITH_AES_256_CBC_SHA
+    TLS_RSA_WITH_AES_256_CBC_SHA,
+#endif
+
+#ifdef BUILD_TLS_DHE_RSA_WITH_AES_128_CBC_SHA
+    TLS_DHE_RSA_WITH_AES_128_CBC_SHA,    
+#endif
+
+#ifdef BUILD_TLS_DHE_RSA_WITH_AES_256_CBC_SHA
+    TLS_DHE_RSA_WITH_AES_256_CBC_SHA,
+#endif
+
+#ifdef BUILD_TLS_PSK_WITH_AES_128_CBC_SHA
+    TLS_PSK_WITH_AES_128_CBC_SHA,    
+#endif
+
+#ifdef BUILD_TLS_PSK_WITH_AES_256_CBC_SHA
+    TLS_PSK_WITH_AES_256_CBC_SHA,
+#endif
+
+#ifdef BUILD_TLS_RSA_WITH_HC_128_CBC_MD5
+    TLS_RSA_WITH_HC_128_CBC_MD5,    
+#endif
+
+#ifdef BUILD_TLS_RSA_WITH_HC_128_CBC_SHA
+    TLS_RSA_WITH_HC_128_CBC_SHA,    
+#endif
+
+#ifdef BUILD_TLS_RSA_WITH_RABBIT_CBC_SHA
+    TLS_RSA_WITH_RABBIT_CBC_SHA,    
+#endif
+
+#ifdef BUILD_TLS_NTRU_RSA_WITH_RC4_128_SHA
+    TLS_NTRU_RSA_WITH_RC4_128_SHA,
+#endif
+
+#ifdef BUILD_TLS_NTRU_RSA_WITH_3DES_EDE_CBC_SHA
+    TLS_NTRU_RSA_WITH_3DES_EDE_CBC_SHA,
+#endif
+
+#ifdef BUILD_TLS_NTRU_RSA_WITH_AES_128_CBC_SHA
+    TLS_NTRU_RSA_WITH_AES_128_CBC_SHA,    
+#endif
+
+#ifdef BUILD_TLS_NTRU_RSA_WITH_AES_256_CBC_SHA
+    TLS_NTRU_RSA_WITH_AES_256_CBC_SHA,    
+#endif
+
+#ifdef BUILD_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
+    TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,    
+#endif
+
+#ifdef BUILD_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
+    TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
+#endif
+
+#ifdef BUILD_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
+    TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,    
+#endif
+
+#ifdef BUILD_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
+    TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
+#endif
+
+#ifdef BUILD_TLS_ECDHE_RSA_WITH_RC4_128_SHA
+    TLS_ECDHE_RSA_WITH_RC4_128_SHA,    
+#endif
+
+#ifdef BUILD_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
+    TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,    
+#endif
+
+#ifdef BUILD_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA
+    TLS_ECDHE_ECDSA_WITH_RC4_128_SHA,    
+#endif
+
+#ifdef BUILD_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA
+    TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA,    
+#endif
+
+#ifdef BUILD_TLS_RSA_WITH_AES_128_CBC_SHA256
+    TLS_RSA_WITH_AES_128_CBC_SHA256,    
+#endif
+
+#ifdef BUILD_TLS_RSA_WITH_AES_256_CBC_SHA256
+    TLS_RSA_WITH_AES_256_CBC_SHA256,
+#endif
+
+#ifdef BUILD_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
+    TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,    
+#endif
+
+#ifdef BUILD_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
+    TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,
+#endif
+
+#ifdef BUILD_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA
+    TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,
+#endif
+
+#ifdef BUILD_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
+    TLS_ECDH_RSA_WITH_AES_256_CBC_SHA,
+#endif
+
+#ifdef BUILD_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA
+    TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,
+#endif
+
+#ifdef BUILD_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
+    TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA,
+#endif
+
+#ifdef BUILD_TLS_ECDH_RSA_WITH_RC4_128_SHA
+    TLS_ECDH_RSA_WITH_RC4_128_SHA,
+#endif
+
+#ifdef BUILD_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA
+    TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA,
+#endif
+
+#ifdef BUILD_TLS_ECDH_ECDSA_WITH_RC4_128_SHA
+    TLS_ECDH_ECDSA_WITH_RC4_128_SHA,
+#endif
+
+#ifdef BUILD_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA
+    TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA
+#endif
+
+};
+
+
+/* return true if set, else false */
+/* only supports full name from cipher_name[] delimited by : */
+int SetCipherList(Suites* s, const char* list)
+{
+    int  ret = 0, i;
+    char name[MAX_SUITE_NAME];
+
+    char  needle[] = ":";
+    char* haystack = (char*)list;
+    char* prev;
+
+    const int suiteSz = sizeof(cipher_names) / sizeof(cipher_names[0]);
+    int idx = 0;
+
+    if (!list)
+        return 0;
+    
+    if (*list == 0) return 1;   /* CyaSSL default */
+
+    if (XSTRNCMP(haystack, "ALL", 3) == 0) return 1;  /* CyaSSL defualt */
+
+    for(;;) {
+        word32 len;
+        prev = haystack;
+        haystack = XSTRSTR(haystack, needle);
+
+        if (!haystack)    /* last cipher */
+            len = min(sizeof(name), XSTRLEN(prev));
+        else
+            len = min(sizeof(name), (word32)(haystack - prev));
+
+        XSTRNCPY(name, prev, len);
+        name[(len == sizeof(name)) ? len - 1 : len] = 0;
+
+        for (i = 0; i < suiteSz; i++)
+            if (XSTRNCMP(name, cipher_names[i], sizeof(name)) == 0) {
+                if (XSTRSTR(name, "EC"))
+                    s->suites[idx++] = ECC_BYTE;  /* ECC suite */
+                else
+                    s->suites[idx++] = 0x00;      /* normal */
+                s->suites[idx++] = (byte)cipher_name_idx[i];
+
+                if (!ret) ret = 1;   /* found at least one */
+                break;
+            }
+        if (!haystack) break;
+        haystack++;
+    }
+
+    if (ret) {
+        s->setSuites = 1;
+        s->suiteSz   = (word16)idx;
+    }
+
+    return ret;
+}
+
+
+#ifdef CYASSL_CALLBACKS
+
+    /* Initialisze HandShakeInfo */
+    void InitHandShakeInfo(HandShakeInfo* info)
+    {
+        int i;
+
+        info->cipherName[0] = 0;
+        for (i = 0; i < MAX_PACKETS_HANDSHAKE; i++)
+            info->packetNames[i][0] = 0;
+        info->numberPackets = 0;
+        info->negotiationError = 0;
+    }
+
+    /* Set Final HandShakeInfo parameters */
+    void FinishHandShakeInfo(HandShakeInfo* info, const CYASSL* ssl)
+    {
+        int i;
+        int sz = sizeof(cipher_name_idx)/sizeof(int); 
+
+        for (i = 0; i < sz; i++)
+            if (ssl->options.cipherSuite == (byte)cipher_name_idx[i]) {
+                if (ssl->options.cipherSuite0 == ECC_BYTE)
+                    continue;   /* ECC suites at end */
+                XSTRNCPY(info->cipherName, cipher_names[i], MAX_CIPHERNAME_SZ);
+                break;
+            }
+
+        /* error max and min are negative numbers */
+        if (ssl->error <= MIN_PARAM_ERR && ssl->error >= MAX_PARAM_ERR)
+            info->negotiationError = ssl->error;
+    }
+
+   
+    /* Add name to info packet names, increase packet name count */
+    void AddPacketName(const char* name, HandShakeInfo* info)
+    {
+        if (info->numberPackets < MAX_PACKETS_HANDSHAKE) {
+            XSTRNCPY(info->packetNames[info->numberPackets++], name,
+                    MAX_PACKETNAME_SZ);
+        }
+    } 
+
+
+    /* Initialisze TimeoutInfo */
+    void InitTimeoutInfo(TimeoutInfo* info)
+    {
+        int i;
+
+        info->timeoutName[0] = 0;
+        info->flags          = 0;
+
+        for (i = 0; i < MAX_PACKETS_HANDSHAKE; i++) {
+            info->packets[i].packetName[0]     = 0;
+            info->packets[i].timestamp.tv_sec  = 0;
+            info->packets[i].timestamp.tv_usec = 0;
+            info->packets[i].bufferValue       = 0;
+            info->packets[i].valueSz           = 0;
+        }
+        info->numberPackets        = 0;
+        info->timeoutValue.tv_sec  = 0;
+        info->timeoutValue.tv_usec = 0;
+    }
+
+
+    /* Free TimeoutInfo */
+    void FreeTimeoutInfo(TimeoutInfo* info, void* heap)
+    {
+        int i;
+        for (i = 0; i < MAX_PACKETS_HANDSHAKE; i++)
+            if (info->packets[i].bufferValue) {
+                XFREE(info->packets[i].bufferValue, heap, DYNAMIC_TYPE_INFO);
+                info->packets[i].bufferValue = 0;
+            }
+
+    }
+
+
+    /* Add PacketInfo to TimeoutInfo */
+    void AddPacketInfo(const char* name, TimeoutInfo* info, const byte* data,
+                       int sz, void* heap)
+    {
+        if (info->numberPackets < (MAX_PACKETS_HANDSHAKE - 1)) {
+            Timeval currTime;
+
+            /* may add name after */
+            if (name)
+                XSTRNCPY(info->packets[info->numberPackets].packetName, name,
+                        MAX_PACKETNAME_SZ);
+
+            /* add data, put in buffer if bigger than static buffer */
+            info->packets[info->numberPackets].valueSz = sz;
+            if (sz < MAX_VALUE_SZ)
+                XMEMCPY(info->packets[info->numberPackets].value, data, sz);
+            else {
+                info->packets[info->numberPackets].bufferValue =
+                           XMALLOC(sz, heap, DYNAMIC_TYPE_INFO);
+                if (!info->packets[info->numberPackets].bufferValue)
+                    /* let next alloc catch, just don't fill, not fatal here  */
+                    info->packets[info->numberPackets].valueSz = 0;
+                else
+                    XMEMCPY(info->packets[info->numberPackets].bufferValue,
+                           data, sz);
+            }
+            gettimeofday(&currTime, 0);
+            info->packets[info->numberPackets].timestamp.tv_sec  =
+                                                             currTime.tv_sec;
+            info->packets[info->numberPackets].timestamp.tv_usec =
+                                                             currTime.tv_usec;
+            info->numberPackets++;
+        }
+    }
+
+
+    /* Add packet name to previsouly added packet info */
+    void AddLateName(const char* name, TimeoutInfo* info)
+    {
+        /* make sure we have a valid previous one */
+        if (info->numberPackets > 0 && info->numberPackets <
+                                                        MAX_PACKETS_HANDSHAKE) {
+            XSTRNCPY(info->packets[info->numberPackets - 1].packetName, name,
+                    MAX_PACKETNAME_SZ);
+        }
+    }
+
+    /* Add record header to previsouly added packet info */
+    void AddLateRecordHeader(const RecordLayerHeader* rl, TimeoutInfo* info)
+    {
+        /* make sure we have a valid previous one */
+        if (info->numberPackets > 0 && info->numberPackets <
+                                                        MAX_PACKETS_HANDSHAKE) {
+            if (info->packets[info->numberPackets - 1].bufferValue)
+                XMEMCPY(info->packets[info->numberPackets - 1].bufferValue, rl,
+                       RECORD_HEADER_SZ);
+            else
+                XMEMCPY(info->packets[info->numberPackets - 1].value, rl,
+                       RECORD_HEADER_SZ);
+        }
+    }
+
+#endif /* CYASSL_CALLBACKS */
+
+
+
+/* client only parts */
+#ifndef NO_CYASSL_CLIENT
+
+    int SendClientHello(CYASSL* ssl)
+    {
+        byte              *output;
+        word32             length, idx = RECORD_HEADER_SZ + HANDSHAKE_HEADER_SZ;
+        int                sendSz;
+        int                idSz = ssl->options.resuming ? ID_LEN : 0;
+        int                ret;
+
+        length = sizeof(ProtocolVersion) + RAN_LEN
+               + idSz + ENUM_LEN                      
+               + ssl->suites.suiteSz + SUITE_LEN
+               + COMP_LEN  + ENUM_LEN;
+
+        sendSz = length + HANDSHAKE_HEADER_SZ + RECORD_HEADER_SZ;
+
+#ifdef CYASSL_DTLS
+        if (ssl->options.dtls) {
+            length += ENUM_LEN;   /* cookie */
+            sendSz  = length + DTLS_HANDSHAKE_HEADER_SZ + DTLS_RECORD_HEADER_SZ;
+            idx    += DTLS_HANDSHAKE_EXTRA + DTLS_RECORD_EXTRA;
+        }
+#endif
+
+        /* check for avalaible size */
+        if ((ret = CheckAvalaibleSize(ssl, sendSz)) != 0)
+            return ret;
+
+        /* get ouput buffer */
+        output = ssl->buffers.outputBuffer.buffer +
+                 ssl->buffers.outputBuffer.length;
+
+        AddHeaders(output, length, client_hello, ssl);
+
+            /* client hello, first version */
+        XMEMCPY(output + idx, &ssl->version, sizeof(ProtocolVersion));
+        idx += sizeof(ProtocolVersion);
+        ssl->chVersion = ssl->version;  /* store in case changed */
+
+            /* then random */
+        if (ssl->options.connectState == CONNECT_BEGIN) {
+            RNG_GenerateBlock(&ssl->rng, output + idx, RAN_LEN);
+            
+                /* store random */
+            XMEMCPY(ssl->arrays.clientRandom, output + idx, RAN_LEN);
+        } else {
+#ifdef CYASSL_DTLS
+                /* send same random on hello again */
+            XMEMCPY(output + idx, ssl->arrays.clientRandom, RAN_LEN);
+#endif
+        }
+        idx += RAN_LEN;
+
+            /* then session id */
+        output[idx++] = (byte)idSz;
+        if (idSz) {
+            XMEMCPY(output + idx, ssl->session.sessionID, ID_LEN);
+            idx += ID_LEN;
+        }
+        
+            /* then DTLS cookie */
+#ifdef CYASSL_DTLS
+        if (ssl->options.dtls) {
+            output[idx++] = 0;
+        }
+#endif
+            /* then cipher suites */
+        c16toa(ssl->suites.suiteSz, output + idx);
+        idx += 2;
+        XMEMCPY(output + idx, &ssl->suites.suites, ssl->suites.suiteSz);
+        idx += ssl->suites.suiteSz;
+
+            /* last, compression */
+        output[idx++] = COMP_LEN;
+        if (ssl->options.usingCompression)
+            output[idx++] = ZLIB_COMPRESSION;
+        else
+            output[idx++] = NO_COMPRESSION;
+            
+        HashOutput(ssl, output, sendSz, 0);
+
+        ssl->options.clientState = CLIENT_HELLO_COMPLETE;
+
+#ifdef CYASSL_CALLBACKS
+        if (ssl->hsInfoOn) AddPacketName("ClientHello", &ssl->handShakeInfo);
+        if (ssl->toInfoOn)
+            AddPacketInfo("ClientHello", &ssl->timeoutInfo, output, sendSz,
+                          ssl->heap);
+#endif
+
+        ssl->buffers.outputBuffer.length += sendSz;
+
+        return SendBuffered(ssl);
+    }
+
+
+    static int DoHelloVerifyRequest(CYASSL* ssl, const byte* input,
+                                    word32* inOutIdx)
+    {
+        ProtocolVersion pv;
+        byte            cookieSz;
+        
+#ifdef CYASSL_CALLBACKS
+        if (ssl->hsInfoOn) AddPacketName("HelloVerifyRequest",
+                                         &ssl->handShakeInfo);
+        if (ssl->toInfoOn) AddLateName("HelloVerifyRequest", &ssl->timeoutInfo);
+#endif
+        XMEMCPY(&pv, input + *inOutIdx, sizeof(pv));
+        *inOutIdx += sizeof(pv);
+        
+        cookieSz = input[(*inOutIdx)++];
+        
+        if (cookieSz)
+            *inOutIdx += cookieSz;   /* skip for now */
+        
+        ssl->options.serverState = SERVER_HELLOVERIFYREQUEST_COMPLETE;
+        return 0;
+    }
+
+
+    static int DoServerHello(CYASSL* ssl, const byte* input, word32* inOutIdx)
+    {
+        byte b;
+        byte compression;
+        ProtocolVersion pv;
+        word32 i = *inOutIdx;
+
+#ifdef CYASSL_CALLBACKS
+        if (ssl->hsInfoOn) AddPacketName("ServerHello", &ssl->handShakeInfo);
+        if (ssl->toInfoOn) AddLateName("ServerHello", &ssl->timeoutInfo);
+#endif
+        XMEMCPY(&pv, input + i, sizeof(pv));
+        i += sizeof(pv);
+        if (pv.minor > ssl->version.minor) {
+            CYASSL_MSG("Server using higher version, fatal error");
+            return VERSION_ERROR;
+        }
+        else if (pv.minor < ssl->version.minor) {
+            CYASSL_MSG("server using lower version");
+            if (!ssl->options.downgrade) {
+                CYASSL_MSG("    no downgrade allowed, fatal error");
+                return VERSION_ERROR;
+            }
+            else if (pv.minor == SSLv3_MINOR) {
+                /* turn off tls */
+                CYASSL_MSG("    downgrading to SSLv3");
+                ssl->options.tls    = 0;
+                ssl->options.tls1_1 = 0;
+                ssl->version.minor  = SSLv3_MINOR;
+            }
+            else if (pv.minor == TLSv1_MINOR) {
+                /* turn off tls 1.1+ */
+                CYASSL_MSG("    downgrading to TLSv1");
+                ssl->options.tls1_1 = 0;
+                ssl->version.minor  = TLSv1_MINOR;
+            }
+            else if (pv.minor == TLSv1_1_MINOR) {
+                CYASSL_MSG("    downgrading to TLSv1.1");
+                ssl->version.minor  = TLSv1_1_MINOR;
+            }
+        }
+        XMEMCPY(ssl->arrays.serverRandom, input + i, RAN_LEN);
+        i += RAN_LEN;
+        b = input[i++];
+        if (b) {
+            XMEMCPY(ssl->arrays.sessionID, input + i, b);
+            i += b;
+            ssl->options.haveSessionId = 1;
+        }
+        ssl->options.cipherSuite0 = input[i++];
+        ssl->options.cipherSuite  = input[i++];  
+        compression = input[i++];
+
+        if (compression != ZLIB_COMPRESSION && ssl->options.usingCompression) {
+            CYASSL_MSG("Server refused compression, turning off"); 
+            ssl->options.usingCompression = 0;  /* turn off if server refused */
+        }
+        
+        ssl->options.serverState = SERVER_HELLO_COMPLETE;
+
+        *inOutIdx = i;
+
+        if (ssl->options.resuming) {
+            if (ssl->options.haveSessionId && XMEMCMP(ssl->arrays.sessionID,
+                                         ssl->session.sessionID, ID_LEN) == 0) {
+                if (SetCipherSpecs(ssl) == 0) {
+                    int ret; 
+                    XMEMCPY(ssl->arrays.masterSecret, ssl->session.masterSecret,
+                           SECRET_LEN);
+                    if (ssl->options.tls)
+                        ret = DeriveTlsKeys(ssl);
+                    else
+                        ret = DeriveKeys(ssl);
+                    ssl->options.serverState = SERVER_HELLODONE_COMPLETE;
+                    return ret;
+                }
+                else {
+                    CYASSL_MSG("Unsupported cipher suite, DoServerHello");
+                    return UNSUPPORTED_SUITE;
+                }
+            }
+            else {
+                CYASSL_MSG("Server denied resumption attempt"); 
+                ssl->options.resuming = 0; /* server denied resumption try */
+            }
+        }
+
+        return SetCipherSpecs(ssl);
+    }
+
+
+    /* just read in and ignore for now TODO: */
+    static int DoCertificateRequest(CYASSL* ssl, const byte* input, word32*
+                                    inOutIdx)
+    {
+        word16 len;
+       
+        #ifdef CYASSL_CALLBACKS
+            if (ssl->hsInfoOn)
+                AddPacketName("CertificateRequest", &ssl->handShakeInfo);
+            if (ssl->toInfoOn)
+                AddLateName("CertificateRequest", &ssl->timeoutInfo);
+        #endif
+        len = input[(*inOutIdx)++];
+
+        /* types, read in here */
+        *inOutIdx += len;
+        ato16(&input[*inOutIdx], &len);
+        *inOutIdx += LENGTH_SZ;
+
+        if (IsAtLeastTLSv1_2(ssl)) {
+            /* hash sig format */
+            *inOutIdx += len;
+            ato16(&input[*inOutIdx], &len);
+            *inOutIdx += LENGTH_SZ;
+        }
+
+        /* authorities */
+        while (len) {
+            word16 dnSz;
+       
+            ato16(&input[*inOutIdx], &dnSz);
+            *inOutIdx += (REQUEST_HEADER + dnSz);
+            len -= dnSz + REQUEST_HEADER;
+        }
+
+        /* don't send client cert or cert verify if user hasn't provided
+           cert and private key */
+        if (ssl->buffers.certificate.buffer && ssl->buffers.key.buffer)
+            ssl->options.sendVerify = SEND_CERT;
+        else if (IsAtLeastTLSv1_2(ssl))
+            ssl->options.sendVerify = SEND_BLANK_CERT;
+
+        return 0;
+    }
+
+
+    static int DoServerKeyExchange(CYASSL* ssl, const byte* input,
+                                   word32* inOutIdx)
+    {
+    #if defined(OPENSSL_EXTRA) || defined(HAVE_ECC)
+        word16 length    = 0;
+        word16 sigLen    = 0;
+        word16 verifySz  = (word16)*inOutIdx;  /* keep start idx */
+        byte*  signature = 0;
+    #endif 
+
+        (void)ssl;
+        (void)input;
+        (void)inOutIdx;
+
+    #ifdef CYASSL_CALLBACKS
+        if (ssl->hsInfoOn)
+            AddPacketName("ServerKeyExchange", &ssl->handShakeInfo);
+        if (ssl->toInfoOn)
+            AddLateName("ServerKeyExchange", &ssl->timeoutInfo);
+    #endif
+
+    #ifndef NO_PSK
+        if (ssl->specs.kea == psk_kea) {
+            word16 pskLen = 0;
+            ato16(&input[*inOutIdx], &pskLen);
+            *inOutIdx += LENGTH_SZ;
+            XMEMCPY(ssl->arrays.server_hint, &input[*inOutIdx],
+                   min(pskLen, MAX_PSK_ID_LEN));
+            if (pskLen < MAX_PSK_ID_LEN)
+                ssl->arrays.server_hint[pskLen] = 0;
+            else
+                ssl->arrays.server_hint[MAX_PSK_ID_LEN - 1] = 0;
+            *inOutIdx += pskLen;
+
+            return 0;
+        }
+    #endif
+    #ifdef OPENSSL_EXTRA
+        if (ssl->specs.kea == diffie_hellman_kea)
+        {
+        /* p */
+        ato16(&input[*inOutIdx], &length);
+        *inOutIdx += LENGTH_SZ;
+
+        ssl->buffers.serverDH_P.buffer = (byte*) XMALLOC(length, ssl->heap,
+                                                         DYNAMIC_TYPE_DH);
+        if (ssl->buffers.serverDH_P.buffer)
+            ssl->buffers.serverDH_P.length = length;
+        else
+            return MEMORY_ERROR;
+        XMEMCPY(ssl->buffers.serverDH_P.buffer, &input[*inOutIdx], length);
+        *inOutIdx += length;
+
+        /* g */
+        ato16(&input[*inOutIdx], &length);
+        *inOutIdx += LENGTH_SZ;
+
+        ssl->buffers.serverDH_G.buffer = (byte*) XMALLOC(length, ssl->heap,
+                                                         DYNAMIC_TYPE_DH);
+        if (ssl->buffers.serverDH_G.buffer)
+            ssl->buffers.serverDH_G.length = length;
+        else
+            return MEMORY_ERROR;
+        XMEMCPY(ssl->buffers.serverDH_G.buffer, &input[*inOutIdx], length);
+        *inOutIdx += length;
+
+        /* pub */
+        ato16(&input[*inOutIdx], &length);
+        *inOutIdx += LENGTH_SZ;
+
+        ssl->buffers.serverDH_Pub.buffer = (byte*) XMALLOC(length, ssl->heap,
+                                                           DYNAMIC_TYPE_DH);
+        if (ssl->buffers.serverDH_Pub.buffer)
+            ssl->buffers.serverDH_Pub.length = length;
+        else
+            return MEMORY_ERROR;
+        XMEMCPY(ssl->buffers.serverDH_Pub.buffer, &input[*inOutIdx], length);
+        *inOutIdx += length;
+        }  /* dh_kea */
+    #endif /* OPENSSL_EXTRA */
+
+    #ifdef HAVE_ECC
+        if (ssl->specs.kea == ecc_diffie_hellman_kea)
+        {
+        byte b = input[*inOutIdx];
+        *inOutIdx += 1;
+
+        if (b != named_curve)
+            return ECC_CURVETYPE_ERROR;
+
+        *inOutIdx += 1;   /* curve type, eat leading 0 */
+        b = input[*inOutIdx];
+        *inOutIdx += 1;
+
+        if (b != secp256r1 && b != secp384r1 && b != secp521r1 && b !=
+                 secp160r1 && b != secp192r1 && b != secp224r1)
+            return ECC_CURVE_ERROR;
+
+        length = input[*inOutIdx];
+        *inOutIdx += 1;
+
+        if (ecc_import_x963(&input[*inOutIdx], length, &ssl->peerEccKey) != 0)
+            return ECC_PEERKEY_ERROR;
+
+        *inOutIdx += length;
+        ssl->peerEccKeyPresent = 1;
+        }
+    #endif /* HAVE_ECC */
+
+    #if defined(OPENSSL_EXTRA) || defined(HAVE_ECC)
+    {
+        Md5    md5;
+        Sha    sha;
+        byte   hash[FINISHED_SZ];
+        byte   messageVerify[MAX_DH_SZ];
+
+        /* adjust from start idx */
+        verifySz = (word16)(*inOutIdx - verifySz);
+
+        /* save message for hash verify */
+        if (verifySz > sizeof(messageVerify))
+            return BUFFER_ERROR;
+        XMEMCPY(messageVerify, &input[*inOutIdx - verifySz], verifySz);
+
+        if (IsAtLeastTLSv1_2(ssl)) {
+            /* just advance for now TODO: validate hash algo params */
+            *inOutIdx += LENGTH_SZ;
+        }
+
+        /* signature */
+        ato16(&input[*inOutIdx], &length);
+        *inOutIdx += LENGTH_SZ;
+
+        signature = (byte*)&input[*inOutIdx];
+        *inOutIdx += length;
+        sigLen = length;
+
+        /* verify signature */
+
+        /* md5 */
+        InitMd5(&md5);
+        Md5Update(&md5, ssl->arrays.clientRandom, RAN_LEN);
+        Md5Update(&md5, ssl->arrays.serverRandom, RAN_LEN);
+        Md5Update(&md5, messageVerify, verifySz);
+        Md5Final(&md5, hash);
+
+        /* sha */
+        InitSha(&sha);
+        ShaUpdate(&sha, ssl->arrays.clientRandom, RAN_LEN);
+        ShaUpdate(&sha, ssl->arrays.serverRandom, RAN_LEN);
+        ShaUpdate(&sha, messageVerify, verifySz);
+        ShaFinal(&sha, &hash[MD5_DIGEST_SIZE]);
+
+        /* rsa */
+        if (ssl->specs.sig_algo == rsa_sa_algo)
+        {
+            int   ret;
+            byte* out;
+
+            if (!ssl->peerRsaKeyPresent)
+                return NO_PEER_KEY;
+
+            ret = RsaSSL_VerifyInline(signature, sigLen,&out, &ssl->peerRsaKey);
+
+            if (IsAtLeastTLSv1_2(ssl)) {
+                byte   encodedSig[MAX_ENCODED_SIG_SZ];
+                word32 encSigSz;
+                byte*  digest;
+                int    typeH;
+                int    digestSz;
+
+                /* sha1 for now */
+                digest   = &hash[MD5_DIGEST_SIZE];
+                typeH    = SHAh;
+                digestSz = SHA_DIGEST_SIZE;
+
+                encSigSz = EncodeSignature(encodedSig, digest, digestSz, typeH);
+
+                if (encSigSz != (word32)ret || XMEMCMP(out, encodedSig,
+                                                       encSigSz) != 0)
+                    return VERIFY_SIGN_ERROR;
+            }
+            else { 
+                if (ret != sizeof(hash) || XMEMCMP(out, hash, sizeof(hash)))
+                    return VERIFY_SIGN_ERROR;
+            }
+        }
+#ifdef HAVE_ECC
+        /* ecdsa */
+        else if (ssl->specs.sig_algo == ecc_dsa_sa_algo) {
+            int verify = 0, ret;
+            if (!ssl->peerEccDsaKeyPresent)
+                return NO_PEER_KEY;
+
+            ret = ecc_verify_hash(signature, sigLen, &hash[MD5_DIGEST_SIZE],
+                                 SHA_DIGEST_SIZE, &verify, &ssl->peerEccDsaKey);
+            if (ret != 0 || verify == 0)
+                return VERIFY_SIGN_ERROR;
+        }
+#endif /* HAVE_ECC */
+        else
+            return ALGO_ID_E;
+
+        ssl->options.serverState = SERVER_KEYEXCHANGE_COMPLETE;
+
+        return 0;
+
+    }
+#else  /* HAVE_OPENSSL or HAVE_ECC */
+        return NOT_COMPILED_IN;  /* not supported by build */
+#endif /* HAVE_OPENSSL or HAVE_ECC */
+    }
+
+
+    int SendClientKeyExchange(CYASSL* ssl)
+    {
+        byte   encSecret[MAX_NTRU_ENCRYPT_SZ];
+        word32 encSz = 0;
+        word32 idx = 0;
+        int    ret = 0;
+
+        if (ssl->specs.kea == rsa_kea) {
+            RNG_GenerateBlock(&ssl->rng, ssl->arrays.preMasterSecret,
+                              SECRET_LEN);
+            ssl->arrays.preMasterSecret[0] = ssl->chVersion.major;
+            ssl->arrays.preMasterSecret[1] = ssl->chVersion.minor;
+            ssl->arrays.preMasterSz = SECRET_LEN;
+
+            if (ssl->peerRsaKeyPresent == 0)
+                return NO_PEER_KEY;
+
+            ret = RsaPublicEncrypt(ssl->arrays.preMasterSecret, SECRET_LEN,
+                             encSecret, sizeof(encSecret), &ssl->peerRsaKey,
+                             &ssl->rng);
+            if (ret > 0) {
+                encSz = ret;
+                ret = 0;   /* set success to 0 */
+            }
+        #ifdef OPENSSL_EXTRA
+        } else if (ssl->specs.kea == diffie_hellman_kea) {
+            buffer  serverP   = ssl->buffers.serverDH_P;
+            buffer  serverG   = ssl->buffers.serverDH_G;
+            buffer  serverPub = ssl->buffers.serverDH_Pub;
+            byte    priv[ENCRYPT_LEN];
+            word32  privSz = 0;
+            DhKey   key;
+
+            if (serverP.buffer == 0 || serverG.buffer == 0 ||
+                                       serverPub.buffer == 0)
+                return NO_PEER_KEY;
+
+            InitDhKey(&key);
+            ret = DhSetKey(&key, serverP.buffer, serverP.length,
+                           serverG.buffer, serverG.length);
+            if (ret == 0)
+                /* for DH, encSecret is Yc, agree is pre-master */
+                ret = DhGenerateKeyPair(&key, &ssl->rng, priv, &privSz,
+                                        encSecret, &encSz);
+            if (ret == 0)
+                ret = DhAgree(&key, ssl->arrays.preMasterSecret,
+                              &ssl->arrays.preMasterSz, priv, privSz,
+                              serverPub.buffer, serverPub.length);
+            FreeDhKey(&key);
+        #endif /* OPENSSL_EXTRA */
+        #ifndef NO_PSK
+        } else if (ssl->specs.kea == psk_kea) {
+            byte* pms = ssl->arrays.preMasterSecret;
+
+            ssl->arrays.psk_keySz = ssl->options.client_psk_cb(ssl,
+                ssl->arrays.server_hint, ssl->arrays.client_identity,
+                MAX_PSK_ID_LEN, ssl->arrays.psk_key, MAX_PSK_KEY_LEN);
+            if (ssl->arrays.psk_keySz == 0 || 
+                ssl->arrays.psk_keySz > MAX_PSK_KEY_LEN)
+                return PSK_KEY_ERROR;
+            encSz = (word32)XSTRLEN(ssl->arrays.client_identity);
+            if (encSz > MAX_PSK_ID_LEN) return CLIENT_ID_ERROR;
+            XMEMCPY(encSecret, ssl->arrays.client_identity, encSz);
+
+            /* make psk pre master secret */
+            /* length of key + length 0s + length of key + key */
+            c16toa((word16)ssl->arrays.psk_keySz, pms);
+            pms += 2;
+            XMEMSET(pms, 0, ssl->arrays.psk_keySz);
+            pms += ssl->arrays.psk_keySz;
+            c16toa((word16)ssl->arrays.psk_keySz, pms);
+            pms += 2;
+            XMEMCPY(pms, ssl->arrays.psk_key, ssl->arrays.psk_keySz);
+            ssl->arrays.preMasterSz = ssl->arrays.psk_keySz * 2 + 4;
+        #endif /* NO_PSK */
+        #ifdef HAVE_NTRU
+        } else if (ssl->specs.kea == ntru_kea) {
+            word32 rc;
+            word16 cipherLen = sizeof(encSecret);
+            DRBG_HANDLE drbg;
+            static uint8_t const cyasslStr[] = {
+                'C', 'y', 'a', 'S', 'S', 'L', ' ', 'N', 'T', 'R', 'U'
+            };
+
+            RNG_GenerateBlock(&ssl->rng, ssl->arrays.preMasterSecret,
+                              SECRET_LEN);
+            ssl->arrays.preMasterSz = SECRET_LEN;
+
+            if (ssl->peerNtruKeyPresent == 0)
+                return NO_PEER_KEY;
+
+            rc = crypto_drbg_instantiate(MAX_NTRU_BITS, cyasslStr,
+                                          sizeof(cyasslStr), GetEntropy, &drbg);
+            if (rc != DRBG_OK)
+                return NTRU_DRBG_ERROR; 
+
+            rc = crypto_ntru_encrypt(drbg, ssl->peerNtruKeyLen,ssl->peerNtruKey,
+                                     ssl->arrays.preMasterSz,
+                                     ssl->arrays.preMasterSecret,
+                                     &cipherLen, encSecret);
+            crypto_drbg_uninstantiate(drbg);
+            if (rc != NTRU_OK)
+                return NTRU_ENCRYPT_ERROR;
+
+            encSz = cipherLen;
+            ret = 0;
+        #endif /* HAVE_NTRU */
+        #ifdef HAVE_ECC
+        } else if (ssl->specs.kea == ecc_diffie_hellman_kea) {
+            ecc_key  myKey;
+            ecc_key* peerKey = &myKey;
+            word32   size = sizeof(encSecret);
+
+            if (ssl->specs.static_ecdh) {
+                /* TODO: EccDsa is really fixed Ecc change naming */
+                if (!ssl->peerEccDsaKeyPresent || !ssl->peerEccDsaKey.dp)
+                    return NO_PEER_KEY;
+                peerKey = &ssl->peerEccDsaKey;
+            }
+            else {
+                if (!ssl->peerEccKeyPresent || !ssl->peerEccKey.dp)
+                    return NO_PEER_KEY;
+                peerKey = &ssl->peerEccKey;
+            }
+
+            ecc_init(&myKey);
+            ret = ecc_make_key(&ssl->rng, peerKey->dp->size, &myKey);
+            if (ret != 0)
+                return ECC_MAKEKEY_ERROR;
+
+            /* precede export with 1 byte length */
+            ret = ecc_export_x963(&myKey, encSecret + 1, &size);
+            encSecret[0] = size;
+            encSz = size + 1;
+
+            if (ret != 0)
+                ret = ECC_EXPORT_ERROR;
+            else {
+                size = sizeof(ssl->arrays.preMasterSecret);
+                ret  = ecc_shared_secret(&myKey, peerKey,
+                                         ssl->arrays.preMasterSecret, &size);
+                if (ret != 0)
+                    ret = ECC_SHARED_ERROR;
+            }
+
+            ssl->arrays.preMasterSz = size;
+            ecc_free(&myKey);
+        #endif /* HAVE_ECC */
+        } else
+            return ALGO_ID_E; /* unsupported kea */
+
+        if (ret == 0) {
+            byte              *output;
+            int                sendSz;
+            word32             tlsSz = 0;
+            
+            if (ssl->options.tls || ssl->specs.kea == diffie_hellman_kea)
+                tlsSz = 2;
+
+            if (ssl->specs.kea == ecc_diffie_hellman_kea)  /* always off */
+                tlsSz = 0;
+
+            sendSz = encSz + tlsSz + HANDSHAKE_HEADER_SZ + RECORD_HEADER_SZ;
+            idx    = HANDSHAKE_HEADER_SZ + RECORD_HEADER_SZ;
+
+            #ifdef CYASSL_DTLS
+                if (ssl->options.dtls) {
+                    sendSz += DTLS_HANDSHAKE_EXTRA + DTLS_RECORD_EXTRA;
+                    idx    += DTLS_HANDSHAKE_EXTRA + DTLS_RECORD_EXTRA;
+                }
+            #endif
+
+            /* check for avalaible size */
+            if ((ret = CheckAvalaibleSize(ssl, sendSz)) != 0)
+                return ret;
+
+            /* get ouput buffer */
+            output = ssl->buffers.outputBuffer.buffer + 
+                     ssl->buffers.outputBuffer.length;
+
+            AddHeaders(output, encSz + tlsSz, client_key_exchange, ssl);
+
+            if (tlsSz) {
+                c16toa((word16)encSz, &output[idx]);
+                idx += 2;
+            }
+            XMEMCPY(output + idx, encSecret, encSz);
+            idx += encSz;
+
+            HashOutput(ssl, output, sendSz, 0);
+
+            #ifdef CYASSL_CALLBACKS
+                if (ssl->hsInfoOn)
+                    AddPacketName("ClientKeyExchange", &ssl->handShakeInfo);
+                if (ssl->toInfoOn)
+                    AddPacketInfo("ClientKeyExchange", &ssl->timeoutInfo,
+                                  output, sendSz, ssl->heap);
+            #endif
+
+            ssl->buffers.outputBuffer.length += sendSz;
+
+            if (ssl->options.groupMessages)
+                ret = 0;
+            else
+                ret = SendBuffered(ssl);
+        }
+    
+        if (ret == 0 || ret == WANT_WRITE) {
+            int tmpRet = MakeMasterSecret(ssl);
+            if (tmpRet != 0)
+                ret = tmpRet;   /* save WANT_WRITE unless more serious */
+            ssl->options.clientState = CLIENT_KEYEXCHANGE_COMPLETE;
+        }
+
+        return ret;
+    }
+
+    int SendCertificateVerify(CYASSL* ssl)
+    {
+        byte              *output;
+        int                sendSz = 0, length, ret;
+        word32             idx = 0;
+        word32             sigOutSz = 0;
+        RsaKey             key;
+        int                usingEcc = 0;
+#ifdef HAVE_ECC
+        ecc_key            eccKey;
+#endif
+
+        if (ssl->options.sendVerify == SEND_BLANK_CERT)
+            return 0;  /* sent blank cert, can't verify */
+
+        /* check for avalaible size */
+        if ((ret = CheckAvalaibleSize(ssl, MAX_CERT_VERIFY_SZ)) != 0)
+            return ret;
+
+        /* get ouput buffer */
+        output = ssl->buffers.outputBuffer.buffer +
+                 ssl->buffers.outputBuffer.length;
+
+        BuildCertHashes(ssl, &ssl->certHashes);
+
+#ifdef HAVE_ECC
+        ecc_init(&eccKey);
+#endif
+        InitRsaKey(&key, ssl->heap);
+        ret = RsaPrivateKeyDecode(ssl->buffers.key.buffer, &idx, &key,
+                                  ssl->buffers.key.length);
+        if (ret == 0)
+            sigOutSz = RsaEncryptSize(&key);
+        else {
+    #ifdef HAVE_ECC
+            CYASSL_MSG("Trying ECC client cert, RSA didn't work");
+           
+            idx = 0; 
+            ret = EccPrivateKeyDecode(ssl->buffers.key.buffer, &idx, &eccKey,
+                                      ssl->buffers.key.length);
+            if (ret == 0) {
+                CYASSL_MSG("Using ECC client cert");
+                usingEcc = 1;
+                sigOutSz = ecc_sig_size(&eccKey);
+            }
+            else {
+                CYASSL_MSG("Bad client cert type");
+            }
+    #endif
+        }
+        if (ret == 0) {
+            byte*  verify = (byte*)&output[RECORD_HEADER_SZ +
+                                           HANDSHAKE_HEADER_SZ];
+            byte*  signBuffer = ssl->certHashes.md5;
+            word32 signSz = sizeof(Hashes);
+            byte   encodedSig[MAX_ENCODED_SIG_SZ];
+            word32 extraSz = 0;  /* tls 1.2 hash/sig */
+
+            #ifdef CYASSL_DTLS
+                if (ssl->options.dtls)
+                    verify += DTLS_RECORD_EXTRA + DTLS_HANDSHAKE_EXTRA;
+            #endif
+            length = sigOutSz;
+            if (IsAtLeastTLSv1_2(ssl)) {
+                verify[0] = sha_mac;
+                verify[1] = usingEcc ? ecc_dsa_sa_algo : rsa_sa_algo;
+                extraSz = HASH_SIG_SIZE;
+            }
+            c16toa((word16)length, verify + extraSz); /* prepend verify header*/
+
+            if (usingEcc) {
+#ifdef HAVE_ECC
+                word32 localSz = sigOutSz;
+                ret = ecc_sign_hash(signBuffer + MD5_DIGEST_SIZE,
+                              SHA_DIGEST_SIZE, verify + extraSz + VERIFY_HEADER,
+                              &localSz, &ssl->rng, &eccKey);
+#endif
+            }
+            else {
+                if (IsAtLeastTLSv1_2(ssl)) {
+                    byte* digest;
+                    int   typeH;
+                    int   digestSz;
+
+                    /* sha1 for now */
+                    digest   = ssl->certHashes.sha;
+                    typeH    = SHAh;
+                    digestSz = SHA_DIGEST_SIZE;
+
+                    signSz = EncodeSignature(encodedSig, digest,digestSz,typeH);
+                    signBuffer = encodedSig;
+                }
+
+                ret = RsaSSL_Sign(signBuffer, signSz, verify + extraSz +
+                                  VERIFY_HEADER, ENCRYPT_LEN, &key, &ssl->rng);
+
+                if (ret > 0)
+                    ret = 0;  /* RSA reset */
+            }
+            
+            if (ret == 0) {
+                AddHeaders(output, length + extraSz + VERIFY_HEADER,
+                           certificate_verify, ssl);
+
+                sendSz = RECORD_HEADER_SZ + HANDSHAKE_HEADER_SZ + length +
+                         extraSz + VERIFY_HEADER;
+                #ifdef CYASSL_DTLS
+                    if (ssl->options.dtls)
+                        sendSz += DTLS_RECORD_EXTRA + DTLS_HANDSHAKE_EXTRA;
+                #endif
+                HashOutput(ssl, output, sendSz, 0);
+            }
+        }
+
+        FreeRsaKey(&key);
+#ifdef HAVE_ECC
+        ecc_free(&eccKey);
+#endif
+
+        if (ret == 0) {
+            #ifdef CYASSL_CALLBACKS
+                if (ssl->hsInfoOn)
+                    AddPacketName("CertificateVerify", &ssl->handShakeInfo);
+                if (ssl->toInfoOn)
+                    AddPacketInfo("CertificateVerify", &ssl->timeoutInfo,
+                                  output, sendSz, ssl->heap);
+            #endif
+            ssl->buffers.outputBuffer.length += sendSz;
+            if (ssl->options.groupMessages)
+                return 0;
+            else
+                return SendBuffered(ssl);
+        }
+        else
+            return ret;
+    }
+
+
+
+#endif /* NO_CYASSL_CLIENT */
+
+
+#ifndef NO_CYASSL_SERVER
+
+    int SendServerHello(CYASSL* ssl)
+    {
+        byte              *output;
+        word32             length, idx = RECORD_HEADER_SZ + HANDSHAKE_HEADER_SZ;
+        int                sendSz;
+        int                ret;
+
+        length = sizeof(ProtocolVersion) + RAN_LEN
+               + ID_LEN + ENUM_LEN                 
+               + SUITE_LEN 
+               + ENUM_LEN;
+
+        /* check for avalaible size */
+        if ((ret = CheckAvalaibleSize(ssl, MAX_HELLO_SZ)) != 0)
+            return ret;
+
+        /* get ouput buffer */
+        output = ssl->buffers.outputBuffer.buffer + 
+                 ssl->buffers.outputBuffer.length;
+
+        sendSz = length + HANDSHAKE_HEADER_SZ + RECORD_HEADER_SZ;
+        AddHeaders(output, length, server_hello, ssl);
+
+        #ifdef CYASSL_DTLS
+            if (ssl->options.dtls) {
+                idx    += DTLS_RECORD_EXTRA + DTLS_HANDSHAKE_EXTRA;
+                sendSz += DTLS_RECORD_EXTRA + DTLS_HANDSHAKE_EXTRA;
+            }
+        #endif
+        /* now write to output */
+            /* first version */
+        XMEMCPY(output + idx, &ssl->version, sizeof(ProtocolVersion));
+        idx += sizeof(ProtocolVersion);
+
+            /* then random */
+        if (!ssl->options.resuming)         
+            RNG_GenerateBlock(&ssl->rng, ssl->arrays.serverRandom, RAN_LEN);
+        XMEMCPY(output + idx, ssl->arrays.serverRandom, RAN_LEN);
+        idx += RAN_LEN;
+
+#ifdef SHOW_SECRETS
+        {
+            int j;
+            printf("server random: ");
+            for (j = 0; j < RAN_LEN; j++)
+                printf("%02x", ssl->arrays.serverRandom[j]);
+            printf("\n");
+        }
+#endif
+            /* then session id */
+        output[idx++] = ID_LEN;
+        if (!ssl->options.resuming)
+            RNG_GenerateBlock(&ssl->rng, ssl->arrays.sessionID, ID_LEN);
+        XMEMCPY(output + idx, ssl->arrays.sessionID, ID_LEN);
+        idx += ID_LEN;
+
+            /* then cipher suite */
+        output[idx++] = ssl->options.cipherSuite0; 
+        output[idx++] = ssl->options.cipherSuite;
+
+            /* last, compression */
+        if (ssl->options.usingCompression)
+            output[idx++] = ZLIB_COMPRESSION;
+        else
+            output[idx++] = NO_COMPRESSION;
+            
+        ssl->buffers.outputBuffer.length += sendSz;
+        HashOutput(ssl, output, sendSz, 0);
+
+        #ifdef CYASSL_CALLBACKS
+            if (ssl->hsInfoOn)
+                AddPacketName("ServerHello", &ssl->handShakeInfo);
+            if (ssl->toInfoOn)
+                AddPacketInfo("ServerHello", &ssl->timeoutInfo, output, sendSz,
+                              ssl->heap);
+        #endif
+
+        ssl->options.serverState = SERVER_HELLO_COMPLETE;
+
+        if (ssl->options.groupMessages)
+            return 0;
+        else
+            return SendBuffered(ssl);
+    }
+
+
+#ifdef HAVE_ECC
+
+    static byte SetCurveId(int size)
+    {
+        switch(size) {
+            case 20:
+                return secp160r1;
+                break;
+            case 24:
+                return secp192r1;
+                break;
+            case 28:
+                return secp224r1;
+                break;
+            case 32:
+                return secp256r1;
+                break;
+            case 48:
+                return secp384r1;
+                break;
+            case 66:
+                return secp521r1;
+                break;
+            default:
+                return 0;
+        }        
+    }
+
+#endif /* HAVE_ECC */
+
+
+    int SendServerKeyExchange(CYASSL* ssl)
+    {
+        int ret = 0;
+        (void)ssl;
+
+        #ifndef NO_PSK
+        if (ssl->specs.kea == psk_kea)
+        {
+            byte    *output;
+            word32   length, idx = RECORD_HEADER_SZ + HANDSHAKE_HEADER_SZ;
+            int      sendSz;
+            if (ssl->arrays.server_hint[0] == 0) return 0; /* don't send */
+
+            /* include size part */
+            length = (word32)XSTRLEN(ssl->arrays.server_hint);
+            if (length > MAX_PSK_ID_LEN) return SERVER_HINT_ERROR;
+            length += HINT_LEN_SZ;
+            sendSz = length + HANDSHAKE_HEADER_SZ + RECORD_HEADER_SZ;
+
+            #ifdef CYASSL_DTLS 
+                if (ssl->options.dtls) {
+                    sendSz += DTLS_RECORD_EXTRA + DTLS_HANDSHAKE_EXTRA;
+                    idx    += DTLS_RECORD_EXTRA + DTLS_HANDSHAKE_EXTRA;
+                }
+            #endif
+            /* check for avalaible size */
+            if ((ret = CheckAvalaibleSize(ssl, sendSz)) != 0)
+               return ret;
+
+            /* get ouput buffer */
+            output = ssl->buffers.outputBuffer.buffer + 
+                     ssl->buffers.outputBuffer.length;
+
+            AddHeaders(output, length, server_key_exchange, ssl);
+
+            /* key data */
+            c16toa((word16)(length - HINT_LEN_SZ), output + idx);
+            idx += HINT_LEN_SZ;
+            XMEMCPY(output + idx, ssl->arrays.server_hint, length -HINT_LEN_SZ);
+
+            HashOutput(ssl, output, sendSz, 0);
+
+            #ifdef CYASSL_CALLBACKS
+                if (ssl->hsInfoOn)
+                    AddPacketName("ServerKeyExchange", &ssl->handShakeInfo);
+                if (ssl->toInfoOn)
+                    AddPacketInfo("ServerKeyExchange", &ssl->timeoutInfo,
+                                  output, sendSz, ssl->heap);
+            #endif
+
+            ssl->buffers.outputBuffer.length += sendSz;
+            if (ssl->options.groupMessages)
+                ret = 0;
+            else
+                ret = SendBuffered(ssl);
+            ssl->options.serverState = SERVER_KEYEXCHANGE_COMPLETE;
+        }
+        #endif /*NO_PSK */
+
+        #ifdef HAVE_ECC
+        if (ssl->specs.kea == ecc_diffie_hellman_kea)
+        {
+            byte    *output;
+            word32   length, idx = RECORD_HEADER_SZ + HANDSHAKE_HEADER_SZ;
+            int      sendSz;
+            byte     exportBuf[MAX_EXPORT_ECC_SZ];
+            word32   expSz = sizeof(exportBuf);
+            word32   sigSz;
+            word32   preSigSz, preSigIdx;
+            RsaKey   rsaKey;
+            ecc_key  dsaKey;
+
+            if (ssl->specs.static_ecdh) {
+                CYASSL_MSG("Using Static ECDH, not sending ServerKeyExchagne");
+                return 0;
+            }
+
+            /* curve type, named curve, length(1) */
+            length = ENUM_LEN + CURVE_LEN + ENUM_LEN;
+            /* pub key size */
+            CYASSL_MSG("Using ephemeral ECDH");
+            if (ecc_export_x963(&ssl->eccTempKey, exportBuf, &expSz) != 0)
+                return ECC_EXPORT_ERROR;
+            length += expSz;
+
+            preSigSz  = length;
+            preSigIdx = idx;
+
+            InitRsaKey(&rsaKey, ssl->heap);
+            ecc_init(&dsaKey);
+
+            /* sig length */
+            length += LENGTH_SZ;
+
+            if (!ssl->buffers.key.buffer) {
+                FreeRsaKey(&rsaKey);
+                ecc_free(&dsaKey);
+                return NO_PRIVATE_KEY;
+            }
+
+            if (ssl->specs.sig_algo == rsa_sa_algo) {
+                /* rsa sig size */
+                word32 i = 0;
+                ret = RsaPrivateKeyDecode(ssl->buffers.key.buffer, &i,
+                                          &rsaKey, ssl->buffers.key.length);
+                if (ret != 0) return ret;
+                sigSz = RsaEncryptSize(&rsaKey); 
+            }
+            else if (ssl->specs.sig_algo == ecc_dsa_sa_algo) {
+                /* ecdsa sig size */
+                word32 i = 0;
+                ret = EccPrivateKeyDecode(ssl->buffers.key.buffer, &i,
+                                          &dsaKey, ssl->buffers.key.length);
+                if (ret != 0) return ret;
+                sigSz = ecc_sig_size(&dsaKey);
+            }
+            else {
+                FreeRsaKey(&rsaKey);
+                ecc_free(&dsaKey);
+                return ALGO_ID_E;  /* unsupported type */
+            }
+            length += sigSz;
+
+            if (IsAtLeastTLSv1_2(ssl))
+                length += HASH_SIG_SIZE;
+
+            sendSz = length + HANDSHAKE_HEADER_SZ + RECORD_HEADER_SZ;
+
+            #ifdef CYASSL_DTLS 
+                if (ssl->options.dtls) {
+                    sendSz += DTLS_RECORD_EXTRA + DTLS_HANDSHAKE_EXTRA;
+                    idx    += DTLS_RECORD_EXTRA + DTLS_HANDSHAKE_EXTRA;
+                    preSigIdx = idx;
+                }
+            #endif
+            /* check for avalaible size */
+            if ((ret = CheckAvalaibleSize(ssl, sendSz)) != 0) {
+                FreeRsaKey(&rsaKey);
+                ecc_free(&dsaKey); 
+                return ret;
+            } 
+
+            /* get ouput buffer */
+            output = ssl->buffers.outputBuffer.buffer + 
+                     ssl->buffers.outputBuffer.length;
+
+            AddHeaders(output, length, server_key_exchange, ssl);
+
+            /* key exchange data */
+            output[idx++] = named_curve;
+            output[idx++] = 0x00;          /* leading zero */
+            output[idx++] = SetCurveId(ecc_size(&ssl->eccTempKey)); 
+            output[idx++] = (byte)expSz;
+            XMEMCPY(output + idx, exportBuf, expSz);
+            idx += expSz;
+            if (IsAtLeastTLSv1_2(ssl)) {
+                output[idx++] = sha_mac;
+                output[idx++] = ssl->specs.sig_algo;
+            }
+            c16toa((word16)sigSz, output + idx);
+            idx += LENGTH_SZ;
+
+            /* do signature */
+            {
+                Md5    md5;
+                Sha    sha;
+                byte   hash[FINISHED_SZ];
+                byte*  signBuffer = hash;
+                word32 signSz    = sizeof(hash);
+
+                /* md5 */
+                InitMd5(&md5);
+                Md5Update(&md5, ssl->arrays.clientRandom, RAN_LEN);
+                Md5Update(&md5, ssl->arrays.serverRandom, RAN_LEN);
+                Md5Update(&md5, output + preSigIdx, preSigSz);
+                Md5Final(&md5, hash);
+
+                /* sha */
+                InitSha(&sha);
+                ShaUpdate(&sha, ssl->arrays.clientRandom, RAN_LEN);
+                ShaUpdate(&sha, ssl->arrays.serverRandom, RAN_LEN);
+                ShaUpdate(&sha, output + preSigIdx, preSigSz);
+                ShaFinal(&sha, &hash[MD5_DIGEST_SIZE]);
+
+                if (ssl->specs.sig_algo == rsa_sa_algo) {
+                    byte encodedSig[MAX_ENCODED_SIG_SZ];
+                    if (IsAtLeastTLSv1_2(ssl)) {
+                        byte* digest;
+                        int   hType;
+                        int   digestSz;
+
+                        /* sha1 for now */
+                        digest   = &hash[MD5_DIGEST_SIZE];
+                        hType    = SHAh;
+                        digestSz = SHA_DIGEST_SIZE;
+
+                        signSz = EncodeSignature(encodedSig, digest, digestSz,
+                                                 hType);
+                        signBuffer = encodedSig;
+                    }
+                    ret = RsaSSL_Sign(signBuffer, signSz, output + idx, sigSz,
+                                      &rsaKey, &ssl->rng);
+                    FreeRsaKey(&rsaKey);
+                    ecc_free(&dsaKey);
+                    if (ret > 0)
+                        ret = 0;  /* reset on success */
+                    else
+                        return ret;
+                }
+                else if (ssl->specs.sig_algo == ecc_dsa_sa_algo) {
+                    word32 sz = sigSz;
+
+                    ret = ecc_sign_hash(&hash[MD5_DIGEST_SIZE], SHA_DIGEST_SIZE,
+                            output + idx, &sz, &ssl->rng, &dsaKey);
+                    FreeRsaKey(&rsaKey);
+                    ecc_free(&dsaKey);
+                    if (ret < 0) return ret;
+                }
+            }
+
+            HashOutput(ssl, output, sendSz, 0);
+
+            #ifdef CYASSL_CALLBACKS
+                if (ssl->hsInfoOn)
+                    AddPacketName("ServerKeyExchange", &ssl->handShakeInfo);
+                if (ssl->toInfoOn)
+                    AddPacketInfo("ServerKeyExchange", &ssl->timeoutInfo,
+                                  output, sendSz, ssl->heap);
+            #endif
+
+            ssl->buffers.outputBuffer.length += sendSz;
+            if (ssl->options.groupMessages)
+                ret = 0;
+            else
+                ret = SendBuffered(ssl);
+            ssl->options.serverState = SERVER_KEYEXCHANGE_COMPLETE;
+        }
+        #endif /* HAVE_ECC */
+
+        #ifdef OPENSSL_EXTRA 
+        if (ssl->specs.kea == diffie_hellman_kea) {
+            byte    *output;
+            word32   length = 0, idx = RECORD_HEADER_SZ + HANDSHAKE_HEADER_SZ;
+            int      sendSz;
+            word32   sigSz = 0, i = 0;
+            word32   preSigSz = 0, preSigIdx = 0;
+            RsaKey   rsaKey;
+            DhKey    dhKey;
+            
+            if (ssl->buffers.serverDH_P.buffer == NULL ||
+                ssl->buffers.serverDH_G.buffer == NULL)
+                return NO_DH_PARAMS;
+
+            if (ssl->buffers.serverDH_Pub.buffer == NULL) {
+                ssl->buffers.serverDH_Pub.buffer = (byte*)XMALLOC(
+                        ssl->buffers.serverDH_P.length + 2, ssl->ctx->heap,
+                        DYNAMIC_TYPE_DH);
+                if (ssl->buffers.serverDH_Pub.buffer == NULL)
+                    return MEMORY_E;
+            } 
+
+            if (ssl->buffers.serverDH_Priv.buffer == NULL) {
+                ssl->buffers.serverDH_Priv.buffer = (byte*)XMALLOC(
+                        ssl->buffers.serverDH_P.length + 2, ssl->ctx->heap,
+                        DYNAMIC_TYPE_DH);
+                if (ssl->buffers.serverDH_Priv.buffer == NULL)
+                    return MEMORY_E;
+            } 
+
+            InitDhKey(&dhKey);
+            ret = DhSetKey(&dhKey, ssl->buffers.serverDH_P.buffer,
+                                   ssl->buffers.serverDH_P.length,
+                                   ssl->buffers.serverDH_G.buffer,
+                                   ssl->buffers.serverDH_G.length);
+            if (ret == 0)
+                ret = DhGenerateKeyPair(&dhKey, &ssl->rng,
+                                         ssl->buffers.serverDH_Priv.buffer,
+                                        &ssl->buffers.serverDH_Priv.length,
+                                         ssl->buffers.serverDH_Pub.buffer,
+                                        &ssl->buffers.serverDH_Pub.length);
+            FreeDhKey(&dhKey);
+
+            if (ret == 0) {
+                length = LENGTH_SZ * 3;  /* p, g, pub */
+                length += ssl->buffers.serverDH_P.length +
+                          ssl->buffers.serverDH_G.length + 
+                          ssl->buffers.serverDH_Pub.length;
+
+                preSigIdx = idx;
+                preSigSz  = length;
+
+                /* sig length */
+                length += LENGTH_SZ;
+
+                if (!ssl->buffers.key.buffer)
+                    return NO_PRIVATE_KEY;
+
+                InitRsaKey(&rsaKey, ssl->heap);
+                ret = RsaPrivateKeyDecode(ssl->buffers.key.buffer, &i, &rsaKey,
+                                          ssl->buffers.key.length);
+                if (ret == 0) {
+                    sigSz = RsaEncryptSize(&rsaKey);
+                    length += sigSz;
+                }
+            }
+            if (ret != 0) {
+                FreeRsaKey(&rsaKey);
+                return ret;
+            }
+                                         
+            if (IsAtLeastTLSv1_2(ssl))
+                length += HASH_SIG_SIZE;
+
+            sendSz = length + HANDSHAKE_HEADER_SZ + RECORD_HEADER_SZ;
+
+            #ifdef CYASSL_DTLS 
+                if (ssl->options.dtls) {
+                    sendSz += DTLS_RECORD_EXTRA + DTLS_HANDSHAKE_EXTRA;
+                    idx    += DTLS_RECORD_EXTRA + DTLS_HANDSHAKE_EXTRA;
+                    preSigIdx = idx;
+                }
+            #endif
+            /* check for avalaible size */
+            if ((ret = CheckAvalaibleSize(ssl, sendSz)) != 0) {
+                FreeRsaKey(&rsaKey);
+                return ret;
+            } 
+
+            /* get ouput buffer */
+            output = ssl->buffers.outputBuffer.buffer + 
+                     ssl->buffers.outputBuffer.length;
+
+            AddHeaders(output, length, server_key_exchange, ssl);
+
+            /* add p, g, pub */
+            c16toa((word16)ssl->buffers.serverDH_P.length, output + idx);
+            idx += LENGTH_SZ;
+            XMEMCPY(output + idx, ssl->buffers.serverDH_P.buffer,
+                                  ssl->buffers.serverDH_P.length);
+            idx += ssl->buffers.serverDH_P.length;
+
+            /*  g */
+            c16toa((word16)ssl->buffers.serverDH_G.length, output + idx);
+            idx += LENGTH_SZ;
+            XMEMCPY(output + idx, ssl->buffers.serverDH_G.buffer,
+                                  ssl->buffers.serverDH_G.length);
+            idx += ssl->buffers.serverDH_G.length;
+
+            /*  pub */
+            c16toa((word16)ssl->buffers.serverDH_Pub.length, output + idx);
+            idx += LENGTH_SZ;
+            XMEMCPY(output + idx, ssl->buffers.serverDH_Pub.buffer,
+                                  ssl->buffers.serverDH_Pub.length);
+            idx += ssl->buffers.serverDH_Pub.length;
+
+            /* Add signature */
+            if (IsAtLeastTLSv1_2(ssl)) {
+                output[idx++] = sha_mac;
+                output[idx++] = ssl->specs.sig_algo; 
+            }
+            /*    size */
+            c16toa((word16)sigSz, output + idx);
+            idx += LENGTH_SZ;
+
+            /* do signature */
+            {
+                Md5    md5;
+                Sha    sha;
+                byte   hash[FINISHED_SZ];
+                byte*  signBuffer = hash;
+                word32 signSz    = sizeof(hash);
+
+                /* md5 */
+                InitMd5(&md5);
+                Md5Update(&md5, ssl->arrays.clientRandom, RAN_LEN);
+                Md5Update(&md5, ssl->arrays.serverRandom, RAN_LEN);
+                Md5Update(&md5, output + preSigIdx, preSigSz);
+                Md5Final(&md5, hash);
+
+                /* sha */
+                InitSha(&sha);
+                ShaUpdate(&sha, ssl->arrays.clientRandom, RAN_LEN);
+                ShaUpdate(&sha, ssl->arrays.serverRandom, RAN_LEN);
+                ShaUpdate(&sha, output + preSigIdx, preSigSz);
+                ShaFinal(&sha, &hash[MD5_DIGEST_SIZE]);
+
+                if (ssl->specs.sig_algo == rsa_sa_algo) {
+                    byte encodedSig[MAX_ENCODED_SIG_SZ];
+                    if (IsAtLeastTLSv1_2(ssl)) {
+                        byte* digest;
+                        int   typeH;
+                        int   digestSz;
+
+                        /* sha1 for now */
+                        digest   = &hash[MD5_DIGEST_SIZE];
+                        typeH    = SHAh;
+                        digestSz = SHA_DIGEST_SIZE;
+
+                        signSz = EncodeSignature(encodedSig, digest, digestSz,
+                                                 typeH);
+                        signBuffer = encodedSig;
+                    }
+                    ret = RsaSSL_Sign(signBuffer, signSz, output + idx, sigSz,
+                                      &rsaKey, &ssl->rng);
+                    FreeRsaKey(&rsaKey);
+                    if (ret > 0)
+                        ret = 0;  /* reset on success */
+                    else
+                        return ret;
+                }
+            }
+
+            HashOutput(ssl, output, sendSz, 0);
+
+            #ifdef CYASSL_CALLBACKS
+                if (ssl->hsInfoOn)
+                    AddPacketName("ServerKeyExchange", &ssl->handShakeInfo);
+                if (ssl->toInfoOn)
+                    AddPacketInfo("ServerKeyExchange", &ssl->timeoutInfo,
+                                  output, sendSz, ssl->heap);
+            #endif
+
+            ssl->buffers.outputBuffer.length += sendSz;
+            if (ssl->options.groupMessages)
+                ret = 0;
+            else
+                ret = SendBuffered(ssl);
+            ssl->options.serverState = SERVER_KEYEXCHANGE_COMPLETE;
+        }
+        #endif /* OPENSSL_EXTRA */
+
+        return ret;
+    }
+
+
+    static int MatchSuite(CYASSL* ssl, Suites* peerSuites)
+    {
+        word16 i, j;
+
+        /* & 0x1 equivalent % 2 */
+        if (peerSuites->suiteSz == 0 || peerSuites->suiteSz & 0x1)
+            return MATCH_SUITE_ERROR;
+
+        /* start with best, if a match we are good */
+        for (i = 0; i < ssl->suites.suiteSz; i += 2)
+            for (j = 0; j < peerSuites->suiteSz; j += 2)
+                if (ssl->suites.suites[i]   == peerSuites->suites[j] &&
+                    ssl->suites.suites[i+1] == peerSuites->suites[j+1] ) {
+
+                    ssl->options.cipherSuite0 = ssl->suites.suites[i];
+                    ssl->options.cipherSuite  = ssl->suites.suites[i+1];
+                    return SetCipherSpecs(ssl);
+                }
+
+        return MATCH_SUITE_ERROR;
+    }
+
+
+    /* process old style client hello, deprecate? */
+    int ProcessOldClientHello(CYASSL* ssl, const byte* input, word32* inOutIdx,
+                              word32 inSz, word16 sz)
+    {
+        word32          idx = *inOutIdx;
+        word16          sessionSz;
+        word16          randomSz;
+        word16          i, j;
+        ProtocolVersion pv;
+        Suites          clSuites;
+
+        (void)inSz;
+        CYASSL_MSG("Got old format client hello");
+#ifdef CYASSL_CALLBACKS
+        if (ssl->hsInfoOn)
+            AddPacketName("ClientHello", &ssl->handShakeInfo);
+        if (ssl->toInfoOn)
+            AddLateName("ClientHello", &ssl->timeoutInfo);
+#endif
+
+        /* manually hash input since different format */
+        Md5Update(&ssl->hashMd5, input + idx, sz);
+        ShaUpdate(&ssl->hashSha, input + idx, sz);
+#ifndef NO_SHA256
+    if (IsAtLeastTLSv1_2(ssl))
+        Sha256Update(&ssl->hashSha256, input + idx, sz);
+#endif
+
+        /* does this value mean client_hello? */
+        idx++;
+
+        /* version */
+        pv.major = input[idx++];
+        pv.minor = input[idx++];
+        ssl->chVersion = pv;  /* store */
+
+        if (ssl->version.minor > pv.minor) {
+            byte havePSK = 0;
+            if (!ssl->options.downgrade) {
+                CYASSL_MSG("Client trying to connect with lesser version"); 
+                return VERSION_ERROR;
+            }
+            if (pv.minor == SSLv3_MINOR) {
+                /* turn off tls */
+                CYASSL_MSG("    downgrading to SSLv3");
+                ssl->options.tls    = 0;
+                ssl->options.tls1_1 = 0;
+                ssl->version.minor  = SSLv3_MINOR;
+            }
+            else if (pv.minor == TLSv1_MINOR) {
+                CYASSL_MSG("    downgrading to TLSv1");
+                /* turn off tls 1.1+ */
+                ssl->options.tls1_1 = 0;
+                ssl->version.minor  = TLSv1_MINOR;
+            }
+            else if (pv.minor == TLSv1_1_MINOR) {
+                CYASSL_MSG("    downgrading to TLSv1.1");
+                ssl->version.minor  = TLSv1_1_MINOR;
+            }
+#ifndef NO_PSK
+            havePSK = ssl->options.havePSK;
+#endif
+
+            InitSuites(&ssl->suites, ssl->version, ssl->options.haveDH, havePSK,
+                       ssl->options.haveNTRU, ssl->options.haveECDSA,
+                       ssl->options.haveStaticECC, ssl->ctx->method->side);
+        }
+
+        /* suite size */
+        ato16(&input[idx], &clSuites.suiteSz);
+        idx += 2;
+
+        if (clSuites.suiteSz > MAX_SUITE_SZ)
+            return BUFFER_ERROR;
+
+        /* session size */
+        ato16(&input[idx], &sessionSz);
+        idx += 2;
+
+        if (sessionSz > ID_LEN)
+            return BUFFER_ERROR;
+    
+        /* random size */
+        ato16(&input[idx], &randomSz);
+        idx += 2;
+
+        if (randomSz > RAN_LEN)
+            return BUFFER_ERROR;
+
+        /* suites */
+        for (i = 0, j = 0; i < clSuites.suiteSz; i += 3) {    
+            byte first = input[idx++];
+            if (!first) { /* implicit: skip sslv2 type */
+                XMEMCPY(&clSuites.suites[j], &input[idx], 2);
+                j += 2;
+            }
+            idx += 2;
+        }
+        clSuites.suiteSz = j;
+
+        /* session id */
+        if (sessionSz) {
+            XMEMCPY(ssl->arrays.sessionID, input + idx, sessionSz);
+            idx += sessionSz;
+            ssl->options.resuming = 1;
+        }
+
+        /* random */
+        if (randomSz < RAN_LEN)
+            XMEMSET(ssl->arrays.clientRandom, 0, RAN_LEN - randomSz);
+        XMEMCPY(&ssl->arrays.clientRandom[RAN_LEN - randomSz], input + idx,
+               randomSz);
+        idx += randomSz;
+
+        if (ssl->options.usingCompression)
+            ssl->options.usingCompression = 0;  /* turn off */
+
+        ssl->options.clientState = CLIENT_HELLO_COMPLETE;
+        *inOutIdx = idx;
+
+        ssl->options.haveSessionId = 1;
+        /* DoClientHello uses same resume code */
+        while (ssl->options.resuming) {  /* let's try */
+            int ret; 
+            CYASSL_SESSION* session = GetSession(ssl, ssl->arrays.masterSecret);
+            if (!session) {
+                ssl->options.resuming = 0;
+                break;   /* session lookup failed */
+            }
+            if (MatchSuite(ssl, &clSuites) < 0) {
+                CYASSL_MSG("Unsupported cipher suite, OldClientHello");
+                return UNSUPPORTED_SUITE;
+            }
+
+            RNG_GenerateBlock(&ssl->rng, ssl->arrays.serverRandom, RAN_LEN);
+            if (ssl->options.tls)
+                ret = DeriveTlsKeys(ssl);
+            else
+                ret = DeriveKeys(ssl);
+            ssl->options.clientState = CLIENT_KEYEXCHANGE_COMPLETE;
+
+            return ret;
+        }
+
+        return MatchSuite(ssl, &clSuites);
+    }
+
+
+    static int DoClientHello(CYASSL* ssl, const byte* input, word32* inOutIdx,
+                             word32 totalSz, word32 helloSz)
+    {
+        byte b;
+        ProtocolVersion pv;
+        Suites          clSuites;
+        word32 i = *inOutIdx;
+        word32 begin = i;
+
+#ifdef CYASSL_CALLBACKS
+        if (ssl->hsInfoOn) AddPacketName("ClientHello", &ssl->handShakeInfo);
+        if (ssl->toInfoOn) AddLateName("ClientHello", &ssl->timeoutInfo);
+#endif
+        /* make sure can read up to session */
+        if (i + sizeof(pv) + RAN_LEN + ENUM_LEN > totalSz)
+            return INCOMPLETE_DATA;
+
+        XMEMCPY(&pv, input + i, sizeof(pv));
+        ssl->chVersion = pv;   /* store */
+        i += sizeof(pv);
+        if (ssl->version.minor > pv.minor) {
+            byte havePSK = 0;
+            if (!ssl->options.downgrade) {
+                CYASSL_MSG("Client trying to connect with lesser version"); 
+                return VERSION_ERROR;
+            }
+            if (pv.minor == SSLv3_MINOR) {
+                /* turn off tls */
+                CYASSL_MSG("    downgrading to SSLv3");
+                ssl->options.tls    = 0;
+                ssl->options.tls1_1 = 0;
+                ssl->version.minor  = SSLv3_MINOR;
+            }
+            else if (pv.minor == TLSv1_MINOR) {
+                /* turn off tls 1.1+ */
+                CYASSL_MSG("    downgrading to TLSv1");
+                ssl->options.tls1_1 = 0;
+                ssl->version.minor  = TLSv1_MINOR;
+            }
+            else if (pv.minor == TLSv1_1_MINOR) {
+                CYASSL_MSG("    downgrading to TLSv1.1");
+                ssl->version.minor  = TLSv1_1_MINOR;
+            }
+#ifndef NO_PSK
+            havePSK = ssl->options.havePSK;
+#endif
+            InitSuites(&ssl->suites, ssl->version, ssl->options.haveDH, havePSK,
+                       ssl->options.haveNTRU, ssl->options.haveECDSA,
+                       ssl->options.haveStaticECC, ssl->ctx->method->side);
+        }
+        /* random */
+        XMEMCPY(ssl->arrays.clientRandom, input + i, RAN_LEN);
+        i += RAN_LEN;
+
+#ifdef SHOW_SECRETS
+        {
+            int j;
+            printf("client random: ");
+            for (j = 0; j < RAN_LEN; j++)
+                printf("%02x", ssl->arrays.clientRandom[j]);
+            printf("\n");
+        }
+#endif
+        /* session id */
+        b = input[i++];
+        if (b) {
+            if (i + ID_LEN > totalSz)
+                return INCOMPLETE_DATA;
+            XMEMCPY(ssl->arrays.sessionID, input + i, ID_LEN);
+            i += b;
+            ssl->options.resuming= 1; /* client wants to resume */
+            CYASSL_MSG("Client wants to resume session");
+        }
+        
+        #ifdef CYASSL_DTLS
+            /* cookie */
+            if (ssl->options.dtls) {
+                b = input[i++];
+                if (b) {
+                    if (b > MAX_COOKIE_LEN)
+                        return BUFFER_ERROR;
+                    if (i + b > totalSz)
+                        return INCOMPLETE_DATA;
+                    XMEMCPY(ssl->arrays.cookie, input + i, b);
+                    i += b;
+                }
+            }
+        #endif
+
+        if (i + LENGTH_SZ > totalSz)
+            return INCOMPLETE_DATA;
+        /* suites */
+        ato16(&input[i], &clSuites.suiteSz);
+        i += 2;
+
+        /* suites and comp len */
+        if (i + clSuites.suiteSz + ENUM_LEN > totalSz)
+            return INCOMPLETE_DATA;
+        if (clSuites.suiteSz > MAX_SUITE_SZ)
+            return BUFFER_ERROR;
+        XMEMCPY(clSuites.suites, input + i, clSuites.suiteSz);
+        i += clSuites.suiteSz;
+
+        b = input[i++];  /* comp len */
+        if (i + b > totalSz)
+            return INCOMPLETE_DATA;
+
+        if (ssl->options.usingCompression) {
+            int match = 0;
+            while (b--) {
+                byte comp = input[i++];
+                if (comp == ZLIB_COMPRESSION)
+                    match = 1;
+            }
+            if (!match) {
+                CYASSL_MSG("Not matching compression, turning off"); 
+                ssl->options.usingCompression = 0;  /* turn off */
+            }
+        }
+        else
+            i += b;  /* ignore, since we're not on */
+
+        ssl->options.clientState = CLIENT_HELLO_COMPLETE;
+
+        *inOutIdx = i;
+        if ( (i - begin) < helloSz)
+            *inOutIdx = begin + helloSz;  /* skip extensions */
+        
+        ssl->options.haveSessionId = 1;
+        /* ProcessOld uses same resume code */
+        while (ssl->options.resuming) {  /* let's try */
+            int ret;            
+            CYASSL_SESSION* session = GetSession(ssl, ssl->arrays.masterSecret);
+            if (!session) {
+                ssl->options.resuming = 0;
+                CYASSL_MSG("Session lookup for resume failed");
+                break;   /* session lookup failed */
+            }
+            if (MatchSuite(ssl, &clSuites) < 0) {
+                CYASSL_MSG("Unsupported cipher suite, ClientHello");
+                return UNSUPPORTED_SUITE;
+            }
+
+            RNG_GenerateBlock(&ssl->rng, ssl->arrays.serverRandom, RAN_LEN);
+            if (ssl->options.tls)
+                ret = DeriveTlsKeys(ssl);
+            else
+                ret = DeriveKeys(ssl);
+            ssl->options.clientState = CLIENT_KEYEXCHANGE_COMPLETE;
+
+            return ret;
+        }
+        return MatchSuite(ssl, &clSuites);
+    }
+
+
+    static int DoCertificateVerify(CYASSL* ssl, byte* input, word32* inOutsz,
+                                   word32 totalSz)
+    {
+        word16      sz = 0;
+        word32      i = *inOutsz;
+        int         ret = VERIFY_CERT_ERROR;   /* start in error state */
+        byte*       sig;
+        byte*       out;
+        int         outLen;
+
+        #ifdef CYASSL_CALLBACKS
+            if (ssl->hsInfoOn)
+                AddPacketName("CertificateVerify", &ssl->handShakeInfo);
+            if (ssl->toInfoOn)
+                AddLateName("CertificateVerify", &ssl->timeoutInfo);
+        #endif
+        if ( (i + VERIFY_HEADER) > totalSz)
+            return INCOMPLETE_DATA;
+
+        if (IsAtLeastTLSv1_2(ssl))
+           i += HASH_SIG_SIZE; 
+        ato16(&input[i], &sz);
+        i += VERIFY_HEADER;
+
+        if ( (i + sz) > totalSz)
+            return INCOMPLETE_DATA;
+
+        if (sz > ENCRYPT_LEN)
+            return BUFFER_ERROR;
+
+        sig = &input[i];
+        *inOutsz = i + sz;
+
+        /* RSA */
+        if (ssl->peerRsaKeyPresent != 0) {
+            CYASSL_MSG("Doing RSA peer cert verify");
+
+            outLen = RsaSSL_VerifyInline(sig, sz, &out, &ssl->peerRsaKey);
+
+            if (IsAtLeastTLSv1_2(ssl)) {
+                byte   encodedSig[MAX_ENCODED_SIG_SZ];
+                word32 sigSz;
+                byte*  digest;
+                int    typeH;
+                int    digestSz;
+
+                /* sha1 for now */
+                digest   = ssl->certHashes.sha;
+                typeH    = SHAh;
+                digestSz = SHA_DIGEST_SIZE;
+
+                sigSz = EncodeSignature(encodedSig, digest, digestSz, typeH);
+
+                if (outLen == (int)sigSz && XMEMCMP(out, encodedSig,sigSz) == 0)
+                    ret = 0;  /* verified */
+            }
+            else {
+                if (outLen == sizeof(ssl->certHashes) && XMEMCMP(out,
+                             ssl->certHashes.md5, sizeof(ssl->certHashes)) == 0)
+                    ret = 0;  /* verified */
+            }
+        }
+#ifdef HAVE_ECC
+        else if (ssl->peerEccDsaKeyPresent) {
+            int verify =  0;
+            int err    = -1;
+
+            CYASSL_MSG("Doing ECC peer cert verify");
+
+            err = ecc_verify_hash(sig, sz, ssl->certHashes.sha, SHA_DIGEST_SIZE,
+                                  &verify, &ssl->peerEccDsaKey);
+
+            if (err == 0 && verify == 1)
+               ret = 0;   /* verified */ 
+        }
+#endif
+        return ret;
+    }
+
+
+    int SendServerHelloDone(CYASSL* ssl)
+    {
+        byte              *output;
+        int                sendSz = RECORD_HEADER_SZ + HANDSHAKE_HEADER_SZ;
+        int                ret;
+
+        #ifdef CYASSL_DTLS
+            if (ssl->options.dtls)
+                sendSz += DTLS_RECORD_EXTRA + DTLS_HANDSHAKE_EXTRA;
+        #endif
+        /* check for avalaible size */
+        if ((ret = CheckAvalaibleSize(ssl, sendSz)) != 0)
+            return ret;
+
+        /* get ouput buffer */
+        output = ssl->buffers.outputBuffer.buffer +
+                 ssl->buffers.outputBuffer.length;
+
+        AddHeaders(output, 0, server_hello_done, ssl);
+
+        HashOutput(ssl, output, sendSz, 0);
+#ifdef CYASSL_CALLBACKS
+        if (ssl->hsInfoOn)
+            AddPacketName("ServerHelloDone", &ssl->handShakeInfo);
+        if (ssl->toInfoOn)
+            AddPacketInfo("ServerHelloDone", &ssl->timeoutInfo, output, sendSz,
+                          ssl->heap);
+#endif
+        ssl->options.serverState = SERVER_HELLODONE_COMPLETE;
+
+        ssl->buffers.outputBuffer.length += sendSz;
+
+        return SendBuffered(ssl);
+    }
+
+
+    int SendHelloVerifyRequest(CYASSL* ssl)
+    {
+        byte* output;
+        int   length = VERSION_SZ + ENUM_LEN;
+        int   idx    = DTLS_RECORD_HEADER_SZ + DTLS_HANDSHAKE_HEADER_SZ;
+        int   sendSz = length + idx;
+        int   ret;
+
+        /* check for avalaible size */
+        if ((ret = CheckAvalaibleSize(ssl, sendSz)) != 0)
+            return ret;
+
+        /* get ouput buffer */
+        output = ssl->buffers.outputBuffer.buffer +
+                 ssl->buffers.outputBuffer.length;
+
+        AddHeaders(output, length, hello_verify_request, ssl);
+
+        XMEMCPY(output + idx, &ssl->chVersion, VERSION_SZ);
+        idx += VERSION_SZ;
+        output[idx++] = 0;     /* no cookie for now */
+
+        HashOutput(ssl, output, sendSz, 0);
+#ifdef CYASSL_CALLBACKS
+        if (ssl->hsInfoOn)
+            AddPacketName("HelloVerifyRequest", &ssl->handShakeInfo);
+        if (ssl->toInfoOn)
+            AddPacketInfo("HelloVerifyRequest", &ssl->timeoutInfo, output,
+                          sendSz, ssl->heap);
+#endif
+        ssl->options.serverState = SERVER_HELLOVERIFYREQUEST_COMPLETE;
+
+        ssl->buffers.outputBuffer.length += sendSz;
+
+        return SendBuffered(ssl);
+    }
+
+
+    static int DoClientKeyExchange(CYASSL* ssl, byte* input,
+                                   word32* inOutIdx)
+    {
+        int    ret = 0;
+        word32 length = 0;
+        byte*  out;
+
+        if (ssl->options.verifyPeer && ssl->options.failNoCert)
+            if (!ssl->options.havePeerCert) {
+                CYASSL_MSG("client didn't present peer cert");
+                return NO_PEER_CERT;
+            }
+
+        #ifdef CYASSL_CALLBACKS
+            if (ssl->hsInfoOn)
+                AddPacketName("ClientKeyExchange", &ssl->handShakeInfo);
+            if (ssl->toInfoOn)
+                AddLateName("ClientKeyExchange", &ssl->timeoutInfo);
+        #endif
+        if (ssl->specs.kea == rsa_kea) {
+            word32 idx = 0;
+            RsaKey key;
+            byte*  tmp = 0;
+
+            InitRsaKey(&key, ssl->heap);
+
+            if (ssl->buffers.key.buffer)
+                ret = RsaPrivateKeyDecode(ssl->buffers.key.buffer, &idx, &key,
+                                          ssl->buffers.key.length);
+            else
+                return NO_PRIVATE_KEY;
+
+            if (ret == 0) {
+                length = RsaEncryptSize(&key);
+                ssl->arrays.preMasterSz = SECRET_LEN;
+
+                if (ssl->options.tls)
+                    (*inOutIdx) += 2;
+                tmp = input + *inOutIdx;
+                *inOutIdx += length;
+
+                if (RsaPrivateDecryptInline(tmp, length, &out, &key) ==
+                                                             SECRET_LEN) {
+                    XMEMCPY(ssl->arrays.preMasterSecret, out, SECRET_LEN);
+                    if (ssl->arrays.preMasterSecret[0] != ssl->chVersion.major
+                     ||
+                        ssl->arrays.preMasterSecret[1] != ssl->chVersion.minor)
+
+                        ret = PMS_VERSION_ERROR;
+                    else
+                        ret = MakeMasterSecret(ssl);
+                }
+                else
+                    ret = RSA_PRIVATE_ERROR;
+            }
+
+            FreeRsaKey(&key);
+#ifndef NO_PSK
+        } else if (ssl->specs.kea == psk_kea) {
+            byte* pms = ssl->arrays.preMasterSecret;
+            word16 ci_sz;
+
+            ato16(&input[*inOutIdx], &ci_sz);
+            *inOutIdx += LENGTH_SZ;
+            if (ci_sz > MAX_PSK_ID_LEN) return CLIENT_ID_ERROR;
+
+            XMEMCPY(ssl->arrays.client_identity, &input[*inOutIdx], ci_sz);
+            *inOutIdx += ci_sz;
+            ssl->arrays.client_identity[ci_sz] = 0;
+
+            ssl->arrays.psk_keySz = ssl->options.server_psk_cb(ssl,
+                ssl->arrays.client_identity, ssl->arrays.psk_key,
+                MAX_PSK_KEY_LEN);
+            if (ssl->arrays.psk_keySz == 0 || 
+                ssl->arrays.psk_keySz > MAX_PSK_KEY_LEN) return PSK_KEY_ERROR;
+            
+            /* make psk pre master secret */
+            /* length of key + length 0s + length of key + key */
+            c16toa((word16)ssl->arrays.psk_keySz, pms);
+            pms += 2;
+            XMEMSET(pms, 0, ssl->arrays.psk_keySz);
+            pms += ssl->arrays.psk_keySz;
+            c16toa((word16)ssl->arrays.psk_keySz, pms);
+            pms += 2;
+            XMEMCPY(pms, ssl->arrays.psk_key, ssl->arrays.psk_keySz);
+            ssl->arrays.preMasterSz = ssl->arrays.psk_keySz * 2 + 4;
+
+            ret = MakeMasterSecret(ssl);
+#endif /* NO_PSK */
+#ifdef HAVE_NTRU
+        } else if (ssl->specs.kea == ntru_kea) {
+            word32 rc;
+            word16 cipherLen;
+            word16 plainLen = sizeof(ssl->arrays.preMasterSecret);
+            byte*  tmp;
+
+            if (!ssl->buffers.key.buffer)
+                return NO_PRIVATE_KEY;
+
+            ato16(&input[*inOutIdx], &cipherLen);
+            *inOutIdx += LENGTH_SZ;
+            if (cipherLen > MAX_NTRU_ENCRYPT_SZ)
+                return NTRU_KEY_ERROR;
+
+            tmp = input + *inOutIdx;
+            rc = crypto_ntru_decrypt((word16)ssl->buffers.key.length,
+                        ssl->buffers.key.buffer, cipherLen, tmp, &plainLen,
+                        ssl->arrays.preMasterSecret);
+
+            if (rc != NTRU_OK || plainLen != SECRET_LEN)
+                return NTRU_DECRYPT_ERROR;
+            *inOutIdx += cipherLen;
+
+            ssl->arrays.preMasterSz = plainLen;
+            ret = MakeMasterSecret(ssl);
+#endif /* HAVE_NTRU */
+#ifdef HAVE_ECC
+        } else if (ssl->specs.kea == ecc_diffie_hellman_kea) {
+            word32 size;
+            word32 bLength = input[*inOutIdx];  /* one byte length */
+            *inOutIdx += 1;
+
+            ret = ecc_import_x963(&input[*inOutIdx], bLength, &ssl->peerEccKey);
+            if (ret != 0)
+                return ECC_PEERKEY_ERROR;
+            *inOutIdx += bLength;
+            ssl->peerEccKeyPresent = 1;
+
+            size = sizeof(ssl->arrays.preMasterSecret);
+            if (ssl->specs.static_ecdh) {
+                ecc_key staticKey;
+                word32 i = 0;
+
+                ecc_init(&staticKey);
+                ret = EccPrivateKeyDecode(ssl->buffers.key.buffer, &i,
+                                          &staticKey, ssl->buffers.key.length);
+                if (ret == 0)
+                    ret = ecc_shared_secret(&staticKey, &ssl->peerEccKey,
+                                            ssl->arrays.preMasterSecret, &size);
+                ecc_free(&staticKey);
+            }
+            else 
+                ret = ecc_shared_secret(&ssl->eccTempKey, &ssl->peerEccKey,
+                                    ssl->arrays.preMasterSecret, &size);
+            if (ret != 0)
+                return ECC_SHARED_ERROR;
+            ssl->arrays.preMasterSz = size;
+            ret = MakeMasterSecret(ssl);
+#endif /* HAVE_ECC */
+#ifdef OPENSSL_EXTRA 
+        } else if (ssl->specs.kea == diffie_hellman_kea) {
+            byte*  clientPub;
+            word16 clientPubSz;
+            DhKey  dhKey;
+
+            ato16(&input[*inOutIdx], &clientPubSz);
+            *inOutIdx += LENGTH_SZ;
+
+            clientPub = &input[*inOutIdx];
+            *inOutIdx += clientPubSz;
+
+            InitDhKey(&dhKey);
+            ret = DhSetKey(&dhKey, ssl->buffers.serverDH_P.buffer,
+                                   ssl->buffers.serverDH_P.length,
+                                   ssl->buffers.serverDH_G.buffer,
+                                   ssl->buffers.serverDH_G.length);
+            if (ret == 0)
+                ret = DhAgree(&dhKey, ssl->arrays.preMasterSecret,
+                                     &ssl->arrays.preMasterSz,
+                                      ssl->buffers.serverDH_Priv.buffer,
+                                      ssl->buffers.serverDH_Priv.length,
+                                      clientPub, clientPubSz);
+            FreeDhKey(&dhKey);
+            if (ret == 0)
+                ret = MakeMasterSecret(ssl);
+#endif /* OPENSSL_EXTRA */
+        }
+
+        if (ret == 0) {
+            ssl->options.clientState = CLIENT_KEYEXCHANGE_COMPLETE;
+            if (ssl->options.verifyPeer)
+                BuildCertHashes(ssl, &ssl->certHashes);
+        }
+
+        return ret;
+    }
+
+#endif /* NO_CYASSL_SERVER */
+
+
+#ifdef SINGLE_THREADED
+
+int InitMutex(CyaSSL_Mutex* m)
+{
+    return 0;
+}
+
+
+int FreeMutex(CyaSSL_Mutex* m)
+{
+    return 0;
+}
+
+
+int LockMutex(CyaSSL_Mutex* m)
+{
+    return 0;
+}
+
+
+int UnLockMutex(CyaSSL_Mutex* m)
+{
+    return 0;
+}
+
+#else /* MULTI_THREAD */
+    
+    #if defined(FREERTOS)
+
+        int InitMutex(CyaSSL_Mutex* m)
+        {
+            int iReturn;
+            
+            *m = ( CyaSSL_Mutex ) xSemaphoreCreateMutex();
+            if( *m != NULL )
+                iReturn = 0;
+            else
+                iReturn = BAD_MUTEX_ERROR;
+            
+            return iReturn;
+        }
+
+        int FreeMutex(CyaSSL_Mutex* m)
+        {
+            vSemaphoreDelete( *m );
+            return 0;
+        }
+
+        
+        int LockMutex(CyaSSL_Mutex* m)
+        {
+            /* Assume an infinite block, or should there be zero block? */
+            xSemaphoreTake( *m, portMAX_DELAY );
+            return 0;
+        }
+
+
+        int UnLockMutex(CyaSSL_Mutex* m)
+        {
+            xSemaphoreGive( *m );
+            return 0;
+        }
+
+    #elif defined(USE_WINDOWS_API)
+
+        int InitMutex(CyaSSL_Mutex* m)
+        {
+            InitializeCriticalSection(m);
+            return 0;
+        }
+
+
+        int FreeMutex(CyaSSL_Mutex* m)
+        {
+            DeleteCriticalSection(m);
+            return 0;
+        }
+
+
+        int LockMutex(CyaSSL_Mutex* m)
+        {
+            EnterCriticalSection(m);
+            return 0;
+        }
+
+
+        int UnLockMutex(CyaSSL_Mutex* m)
+        {
+            LeaveCriticalSection(m);
+            return 0;
+        }
+
+    #elif defined(CYASSL_PTHREADS)
+
+        int InitMutex(CyaSSL_Mutex* m)
+        {
+            if (pthread_mutex_init(m, 0) == 0)
+                return 0;
+            else
+                return BAD_MUTEX_ERROR;
+        }
+
+
+        int FreeMutex(CyaSSL_Mutex* m)
+        {
+            if (pthread_mutex_destroy(m) == 0)
+                return 0;
+            else
+                return BAD_MUTEX_ERROR;
+        }
+
+
+        int LockMutex(CyaSSL_Mutex* m)
+        {
+            if (pthread_mutex_lock(m) == 0)
+                return 0;
+            else
+                return BAD_MUTEX_ERROR;
+        }
+
+
+        int UnLockMutex(CyaSSL_Mutex* m)
+        {
+            if (pthread_mutex_unlock(m) == 0)
+                return 0;
+            else
+                return BAD_MUTEX_ERROR;
+        }
+
+    #elif defined(THREADX)
+
+        int InitMutex(CyaSSL_Mutex* m)
+        {
+            if (tx_mutex_create(m, "CyaSSL Mutex", TX_NO_INHERIT) == 0)
+                return 0;
+            else
+                return BAD_MUTEX_ERROR;
+        }
+
+
+        int FreeMutex(CyaSSL_Mutex* m)
+        {
+            if (tx_mutex_delete(m) == 0)
+                return 0;
+            else
+                return BAD_MUTEX_ERROR;
+        }
+
+
+        int LockMutex(CyaSSL_Mutex* m)
+        {
+            if (tx_mutex_get(m, TX_WAIT_FOREVER) == 0)
+                return 0;
+            else
+                return BAD_MUTEX_ERROR;
+        }
+
+
+        int UnLockMutex(CyaSSL_Mutex* m)
+        {
+            if (tx_mutex_put(m) == 0)
+                return 0;
+            else
+                return BAD_MUTEX_ERROR;
+        }
+
+    #elif defined(MICRIUM)
+
+        int InitMutex(CyaSSL_Mutex* m)
+        {
+            #if (NET_SECURE_MGR_CFG_EN == DEF_ENABLED)
+                if (NetSecure_OS_MutexCreate(m) == 0)
+                    return 0;
+                else
+                    return BAD_MUTEX_ERROR;
+            #else
+                return 0;
+            #endif
+        }
+
+
+        int FreeMutex(CyaSSL_Mutex* m)
+        {
+            #if (NET_SECURE_MGR_CFG_EN == DEF_ENABLED)
+                if (NetSecure_OS_FreeMutex(m) == 0)
+                    return 0;
+                else
+                    return BAD_MUTEX_ERROR;
+            #else
+                return 0;
+            #endif
+        }
+
+
+        int LockMutex(CyaSSL_Mutex* m)
+        {
+            #if (NET_SECURE_MGR_CFG_EN == DEF_ENABLED)
+                if (NetSecure_OS_LockMutex(m) == 0)
+                    return 0;
+                else
+                    return BAD_MUTEX_ERROR;
+            #else
+                return 0;
+            #endif
+        }
+
+
+        int UnLockMutex(CyaSSL_Mutex* m)
+        {
+            #if (NET_SECURE_MGR_CFG_EN == DEF_ENABLED)
+                if (NetSecure_OS_UnLockMutex(m) == 0)
+                    return 0;
+                else
+                    return BAD_MUTEX_ERROR;
+            #else
+                return 0;
+            #endif
+
+        }
+
+    #endif /* USE_WINDOWS_API */
+#endif /* SINGLE_THREADED */
diff --git a/FreeRTOS-Plus/CyaSSL/src/io.c b/FreeRTOS-Plus/CyaSSL/src/io.c
new file mode 100644
index 000000000..865a2486b
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/src/io.c
@@ -0,0 +1,227 @@
+/* io.c
+ *
+ * Copyright (C) 2006-2012 Sawtooth Consulting Ltd.
+ *
+ * This file is part of CyaSSL.
+ *
+ * CyaSSL is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * CyaSSL is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifdef HAVE_CONFIG_H
+    #include 
+#endif
+
+#ifdef _WIN32_WCE
+    /* On WinCE winsock2.h must be included before windows.h for socket stuff */
+    #include 
+#endif
+
+#include 
+
+/* if user writes own I/O callbacks they can define CYASSL_USER_IO to remove
+   automatic setting of default I/O functions EmbedSend() and EmbedReceive()
+   but they'll still need SetCallback xxx() at end of file 
+*/
+#ifndef CYASSL_USER_IO
+
+#ifdef HAVE_LIBZ
+    #include "zlib.h"
+#endif
+
+#ifndef USE_WINDOWS_API
+    #ifdef CYASSL_LWIP
+        /* lwIP needs to be configured to use sockets API in this mode */
+        /* LWIP_SOCKET 1 && LWIP_COMPAT_SOCKETS 1 in lwip/opt.h or in build */
+        #define LWIP_PROVIDE_ERRNO 1
+        #include "sockets.h"
+    #else
+        #include 
+        #include 
+        #include 
+        #include 
+        #if !(defined(DEVKITPRO) || defined(THREADX))
+            #include 
+            #include 
+            #include 
+            #include 
+            #ifdef __PPU
+                #include 
+            #else
+                #include 
+            #endif
+        #endif
+        #ifdef THREADX
+            #include 
+        #endif
+    #endif
+#endif /* USE_WINDOWS_API */
+
+#ifdef __sun
+    #include 
+#endif
+
+#ifdef USE_WINDOWS_API 
+    /* no epipe yet */
+    #ifndef WSAEPIPE
+        #define WSAEPIPE       -12345
+    #endif
+    #define SOCKET_EWOULDBLOCK WSAEWOULDBLOCK
+    #define SOCKET_EAGAIN      WSAEWOULDBLOCK
+    #define SOCKET_ECONNRESET  WSAECONNRESET
+    #define SOCKET_EINTR       WSAEINTR
+    #define SOCKET_EPIPE       WSAEPIPE
+#elif defined(__PPU)
+    #define SOCKET_EWOULDBLOCK SYS_NET_EWOULDBLOCK
+    #define SOCKET_EAGAIN      SYS_NET_EAGAIN
+    #define SOCKET_ECONNRESET  SYS_NET_ECONNRESET
+    #define SOCKET_EINTR       SYS_NET_EINTR
+    #define SOCKET_EPIPE       SYS_NET_EPIPE
+#else
+    #define SOCKET_EWOULDBLOCK EWOULDBLOCK
+    #define SOCKET_EAGAIN      EAGAIN
+    #define SOCKET_ECONNRESET  ECONNRESET
+    #define SOCKET_EINTR       EINTR
+    #define SOCKET_EPIPE       EPIPE
+#endif /* USE_WINDOWS_API */
+
+
+#ifdef DEVKITPRO
+    /* from network.h */
+    int net_send(int, const void*, int, unsigned int);
+    int net_recv(int, void*, int, unsigned int);
+    #define SEND_FUNCTION net_send
+    #define RECV_FUNCTION net_recv
+#else
+    #define SEND_FUNCTION send
+    #define RECV_FUNCTION recv
+#endif
+
+
+static INLINE int LastError(void)
+{
+#ifdef USE_WINDOWS_API 
+    return WSAGetLastError();
+#else
+    return errno;
+#endif
+}
+
+/* The receive embedded callback
+ *  return : nb bytes read, or error
+ */
+int EmbedReceive(char *buf, int sz, void *ctx)
+{
+    int recvd;
+    int err;
+    int sd = *(int*)ctx;
+
+    recvd = RECV_FUNCTION(sd, (char *)buf, sz, 0);
+
+    if (recvd < 0) {
+        err = LastError();
+        CYASSL_MSG("Embed Receive error");
+
+        if (err == SOCKET_EWOULDBLOCK || err == SOCKET_EAGAIN) {
+            CYASSL_MSG("    Would block");
+            return IO_ERR_WANT_READ;
+        }
+        else if (err == SOCKET_ECONNRESET) {
+            CYASSL_MSG("    Connection reset");
+            return IO_ERR_CONN_RST;
+        }
+        else if (err == SOCKET_EINTR) {
+            CYASSL_MSG("    Socket interrupted");
+            return IO_ERR_ISR;
+        }
+        else {
+            CYASSL_MSG("    General error");
+            return IO_ERR_GENERAL;
+        }
+    }
+    else if (recvd == 0) {
+        CYASSL_MSG("Embed receive connection closed");
+        return IO_ERR_CONN_CLOSE;
+    }
+
+    return recvd;
+}
+
+/* The send embedded callback
+ *  return : nb bytes sent, or error
+ */
+int EmbedSend(char *buf, int sz, void *ctx)
+{
+    int sd = *(int*)ctx;
+    int sent;
+    int len = sz;
+    int err;
+
+    sent = SEND_FUNCTION(sd, &buf[sz - len], len, 0);
+
+    if (sent < 0) {
+        err = LastError();
+        CYASSL_MSG("Embed Send error");
+
+        if (err == SOCKET_EWOULDBLOCK || err == SOCKET_EAGAIN) {
+            CYASSL_MSG("    Would Block");
+            return IO_ERR_WANT_WRITE;
+        }
+        else if (err == SOCKET_ECONNRESET) {
+            CYASSL_MSG("    Connection reset");
+            return IO_ERR_CONN_RST;
+        }
+        else if (err == SOCKET_EINTR) {
+            CYASSL_MSG("    Socket interrupted");
+            return IO_ERR_ISR;
+        }
+        else if (err == SOCKET_EPIPE) {
+            CYASSL_MSG("    Socket EPIPE");
+            return IO_ERR_CONN_CLOSE;
+        }
+        else {
+            CYASSL_MSG("    General error");
+            return IO_ERR_GENERAL;
+        }
+    }
+ 
+    return sent;
+}
+
+
+#endif /* CYASSL_USER_IO */
+
+CYASSL_API void CyaSSL_SetIORecv(CYASSL_CTX *ctx, CallbackIORecv CBIORecv)
+{
+    ctx->CBIORecv = CBIORecv;
+}
+
+
+CYASSL_API void CyaSSL_SetIOSend(CYASSL_CTX *ctx, CallbackIOSend CBIOSend)
+{
+    ctx->CBIOSend = CBIOSend;
+}
+
+
+CYASSL_API void CyaSSL_SetIOReadCtx(CYASSL* ssl, void *rctx)
+{
+	ssl->IOCB_ReadCtx = rctx;
+}
+
+
+CYASSL_API void CyaSSL_SetIOWriteCtx(CYASSL* ssl, void *wctx)
+{
+	ssl->IOCB_WriteCtx = wctx;
+}
+
diff --git a/FreeRTOS-Plus/CyaSSL/src/keys.c b/FreeRTOS-Plus/CyaSSL/src/keys.c
new file mode 100644
index 000000000..3fb4c8a60
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/src/keys.c
@@ -0,0 +1,975 @@
+/* keys.c
+ *
+ * Copyright (C) 2006-2012 Sawtooth Consulting Ltd.
+ *
+ * This file is part of CyaSSL.
+ *
+ * CyaSSL is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * CyaSSL is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+
+#ifdef HAVE_CONFIG_H
+    #include 
+#endif
+
+#include 
+#include 
+#ifdef SHOW_SECRETS
+    #include 
+#endif
+
+
+int SetCipherSpecs(CYASSL* ssl)
+{
+#ifdef HAVE_ECC
+    /* ECC extensions */
+    if (ssl->options.cipherSuite0 == ECC_BYTE) {
+    
+    switch (ssl->options.cipherSuite) {
+
+#ifdef BUILD_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
+    case TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA :
+        ssl->specs.bulk_cipher_algorithm = aes;
+        ssl->specs.cipher_type           = block;
+        ssl->specs.mac_algorithm         = sha_mac;
+        ssl->specs.kea                   = ecc_diffie_hellman_kea;
+        ssl->specs.sig_algo              = rsa_sa_algo;
+        ssl->specs.hash_size             = SHA_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 0;
+        ssl->specs.key_size              = AES_128_KEY_SIZE;
+        ssl->specs.block_size            = AES_BLOCK_SIZE;
+        ssl->specs.iv_size               = AES_IV_SIZE;
+
+        break;
+#endif
+
+#ifdef BUILD_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA
+    case TLS_ECDH_RSA_WITH_AES_128_CBC_SHA :
+        ssl->specs.bulk_cipher_algorithm = aes;
+        ssl->specs.cipher_type           = block;
+        ssl->specs.mac_algorithm         = sha_mac;
+        ssl->specs.kea                   = ecc_diffie_hellman_kea;
+        ssl->specs.sig_algo              = rsa_sa_algo;
+        ssl->specs.hash_size             = SHA_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 1;
+        ssl->specs.key_size              = AES_128_KEY_SIZE;
+        ssl->specs.block_size            = AES_BLOCK_SIZE;
+        ssl->specs.iv_size               = AES_IV_SIZE;
+
+        break;
+#endif
+
+#ifdef BUILD_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
+    case TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA :
+        ssl->specs.bulk_cipher_algorithm = triple_des;
+        ssl->specs.cipher_type           = block;
+        ssl->specs.mac_algorithm         = sha_mac;
+        ssl->specs.kea                   = ecc_diffie_hellman_kea;
+        ssl->specs.sig_algo              = rsa_sa_algo;
+        ssl->specs.hash_size             = SHA_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 0;
+        ssl->specs.key_size              = DES3_KEY_SIZE;
+        ssl->specs.block_size            = DES_BLOCK_SIZE;
+        ssl->specs.iv_size               = DES_IV_SIZE;
+
+        break;
+#endif
+
+#ifdef BUILD_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA
+    case TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA :
+        ssl->specs.bulk_cipher_algorithm = triple_des;
+        ssl->specs.cipher_type           = block;
+        ssl->specs.mac_algorithm         = sha_mac;
+        ssl->specs.kea                   = ecc_diffie_hellman_kea;
+        ssl->specs.sig_algo              = rsa_sa_algo;
+        ssl->specs.hash_size             = SHA_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 1;
+        ssl->specs.key_size              = DES3_KEY_SIZE;
+        ssl->specs.block_size            = DES_BLOCK_SIZE;
+        ssl->specs.iv_size               = DES_IV_SIZE;
+
+        break;
+#endif
+
+#ifdef BUILD_TLS_ECDHE_RSA_WITH_RC4_128_SHA
+    case TLS_ECDHE_RSA_WITH_RC4_128_SHA :
+        ssl->specs.bulk_cipher_algorithm = rc4;
+        ssl->specs.cipher_type           = stream;
+        ssl->specs.mac_algorithm         = sha_mac;
+        ssl->specs.kea                   = ecc_diffie_hellman_kea;
+        ssl->specs.sig_algo              = rsa_sa_algo;
+        ssl->specs.hash_size             = SHA_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 0;
+        ssl->specs.key_size              = RC4_KEY_SIZE;
+        ssl->specs.iv_size               = 0;
+        ssl->specs.block_size            = 0;
+
+        break;
+#endif
+
+#ifdef BUILD_TLS_ECDH_RSA_WITH_RC4_128_SHA
+    case TLS_ECDH_RSA_WITH_RC4_128_SHA :
+        ssl->specs.bulk_cipher_algorithm = rc4;
+        ssl->specs.cipher_type           = stream;
+        ssl->specs.mac_algorithm         = sha_mac;
+        ssl->specs.kea                   = ecc_diffie_hellman_kea;
+        ssl->specs.sig_algo              = rsa_sa_algo;
+        ssl->specs.hash_size             = SHA_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 1;
+        ssl->specs.key_size              = RC4_KEY_SIZE;
+        ssl->specs.iv_size               = 0;
+        ssl->specs.block_size            = 0;
+
+        break;
+#endif
+
+#ifdef BUILD_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA
+    case TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA :
+        ssl->specs.bulk_cipher_algorithm = triple_des;
+        ssl->specs.cipher_type           = block;
+        ssl->specs.mac_algorithm         = sha_mac;
+        ssl->specs.kea                   = ecc_diffie_hellman_kea;
+        ssl->specs.sig_algo              = ecc_dsa_sa_algo;
+        ssl->specs.hash_size             = SHA_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 0;
+        ssl->specs.key_size              = DES3_KEY_SIZE;
+        ssl->specs.block_size            = DES_BLOCK_SIZE;
+        ssl->specs.iv_size               = DES_IV_SIZE;
+
+        break;
+#endif
+
+#ifdef BUILD_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA
+    case TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA :
+        ssl->specs.bulk_cipher_algorithm = triple_des;
+        ssl->specs.cipher_type           = block;
+        ssl->specs.mac_algorithm         = sha_mac;
+        ssl->specs.kea                   = ecc_diffie_hellman_kea;
+        ssl->specs.sig_algo              = ecc_dsa_sa_algo;
+        ssl->specs.hash_size             = SHA_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 1;
+        ssl->specs.key_size              = DES3_KEY_SIZE;
+        ssl->specs.block_size            = DES_BLOCK_SIZE;
+        ssl->specs.iv_size               = DES_IV_SIZE;
+
+        break;
+#endif
+
+#ifdef BUILD_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA
+    case TLS_ECDHE_ECDSA_WITH_RC4_128_SHA :
+        ssl->specs.bulk_cipher_algorithm = rc4;
+        ssl->specs.cipher_type           = stream;
+        ssl->specs.mac_algorithm         = sha_mac;
+        ssl->specs.kea                   = ecc_diffie_hellman_kea;
+        ssl->specs.sig_algo              = ecc_dsa_sa_algo;
+        ssl->specs.hash_size             = SHA_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 0;
+        ssl->specs.key_size              = RC4_KEY_SIZE;
+        ssl->specs.iv_size               = 0;
+        ssl->specs.block_size            = 0;
+
+        break;
+#endif
+
+#ifdef BUILD_TLS_ECDH_ECDSA_WITH_RC4_128_SHA
+    case TLS_ECDH_ECDSA_WITH_RC4_128_SHA :
+        ssl->specs.bulk_cipher_algorithm = rc4;
+        ssl->specs.cipher_type           = stream;
+        ssl->specs.mac_algorithm         = sha_mac;
+        ssl->specs.kea                   = ecc_diffie_hellman_kea;
+        ssl->specs.sig_algo              = ecc_dsa_sa_algo;
+        ssl->specs.hash_size             = SHA_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 1;
+        ssl->specs.key_size              = RC4_KEY_SIZE;
+        ssl->specs.iv_size               = 0;
+        ssl->specs.block_size            = 0;
+
+        break;
+#endif
+
+#ifdef BUILD_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
+    case TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA :
+        ssl->specs.bulk_cipher_algorithm = aes;
+        ssl->specs.cipher_type           = block;
+        ssl->specs.mac_algorithm         = sha_mac;
+        ssl->specs.kea                   = ecc_diffie_hellman_kea;
+        ssl->specs.sig_algo              = rsa_sa_algo;
+        ssl->specs.hash_size             = SHA_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 0;
+        ssl->specs.key_size              = AES_256_KEY_SIZE;
+        ssl->specs.block_size            = AES_BLOCK_SIZE;
+        ssl->specs.iv_size               = AES_IV_SIZE;
+
+        break;
+#endif
+
+#ifdef BUILD_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
+    case TLS_ECDH_RSA_WITH_AES_256_CBC_SHA :
+        ssl->specs.bulk_cipher_algorithm = aes;
+        ssl->specs.cipher_type           = block;
+        ssl->specs.mac_algorithm         = sha_mac;
+        ssl->specs.kea                   = ecc_diffie_hellman_kea;
+        ssl->specs.sig_algo              = rsa_sa_algo;
+        ssl->specs.hash_size             = SHA_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 1;
+        ssl->specs.key_size              = AES_256_KEY_SIZE;
+        ssl->specs.block_size            = AES_BLOCK_SIZE;
+        ssl->specs.iv_size               = AES_IV_SIZE;
+
+        break;
+#endif
+
+#ifdef BUILD_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
+    case TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA :
+        ssl->specs.bulk_cipher_algorithm = aes;
+        ssl->specs.cipher_type           = block;
+        ssl->specs.mac_algorithm         = sha_mac;
+        ssl->specs.kea                   = ecc_diffie_hellman_kea;
+        ssl->specs.sig_algo              = ecc_dsa_sa_algo;
+        ssl->specs.hash_size             = SHA_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 0;
+        ssl->specs.key_size              = AES_128_KEY_SIZE;
+        ssl->specs.block_size            = AES_BLOCK_SIZE;
+        ssl->specs.iv_size               = AES_IV_SIZE;
+
+        break;
+#endif
+
+#ifdef BUILD_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA
+    case TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA :
+        ssl->specs.bulk_cipher_algorithm = aes;
+        ssl->specs.cipher_type           = block;
+        ssl->specs.mac_algorithm         = sha_mac;
+        ssl->specs.kea                   = ecc_diffie_hellman_kea;
+        ssl->specs.sig_algo              = ecc_dsa_sa_algo;
+        ssl->specs.hash_size             = SHA_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 1;
+        ssl->specs.key_size              = AES_128_KEY_SIZE;
+        ssl->specs.block_size            = AES_BLOCK_SIZE;
+        ssl->specs.iv_size               = AES_IV_SIZE;
+
+        break;
+#endif
+
+#ifdef BUILD_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
+    case TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA :
+        ssl->specs.bulk_cipher_algorithm = aes;
+        ssl->specs.cipher_type           = block;
+        ssl->specs.mac_algorithm         = sha_mac;
+        ssl->specs.kea                   = ecc_diffie_hellman_kea;
+        ssl->specs.sig_algo              = ecc_dsa_sa_algo;
+        ssl->specs.hash_size             = SHA_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 0;
+        ssl->specs.key_size              = AES_256_KEY_SIZE;
+        ssl->specs.block_size            = AES_BLOCK_SIZE;
+        ssl->specs.iv_size               = AES_IV_SIZE;
+
+        break;
+#endif
+
+#ifdef BUILD_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
+    case TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA :
+        ssl->specs.bulk_cipher_algorithm = aes;
+        ssl->specs.cipher_type           = block;
+        ssl->specs.mac_algorithm         = sha_mac;
+        ssl->specs.kea                   = ecc_diffie_hellman_kea;
+        ssl->specs.sig_algo              = ecc_dsa_sa_algo;
+        ssl->specs.hash_size             = SHA_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 1;
+        ssl->specs.key_size              = AES_256_KEY_SIZE;
+        ssl->specs.block_size            = AES_BLOCK_SIZE;
+        ssl->specs.iv_size               = AES_IV_SIZE;
+
+        break;
+#endif
+
+    default:
+        CYASSL_MSG("Unsupported cipher suite, SetCipherSpecs ECC");
+        return UNSUPPORTED_SUITE;
+    }   /* switch */
+    }   /* if     */
+#endif /* HAVE_ECC */
+    if (ssl->options.cipherSuite0 != ECC_BYTE) {   /* normal suites */
+    switch (ssl->options.cipherSuite) {
+
+#ifdef BUILD_SSL_RSA_WITH_RC4_128_SHA
+    case SSL_RSA_WITH_RC4_128_SHA :
+        ssl->specs.bulk_cipher_algorithm = rc4;
+        ssl->specs.cipher_type           = stream;
+        ssl->specs.mac_algorithm         = sha_mac;
+        ssl->specs.kea                   = rsa_kea;
+        ssl->specs.hash_size             = SHA_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 0;
+        ssl->specs.key_size              = RC4_KEY_SIZE;
+        ssl->specs.iv_size               = 0;
+        ssl->specs.block_size            = 0;
+
+        break;
+#endif
+
+#ifdef BUILD_TLS_NTRU_RSA_WITH_RC4_128_SHA
+    case TLS_NTRU_RSA_WITH_RC4_128_SHA :
+        ssl->specs.bulk_cipher_algorithm = rc4;
+        ssl->specs.cipher_type           = stream;
+        ssl->specs.mac_algorithm         = sha_mac;
+        ssl->specs.kea                   = ntru_kea;
+        ssl->specs.hash_size             = SHA_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 0;
+        ssl->specs.key_size              = RC4_KEY_SIZE;
+        ssl->specs.iv_size               = 0;
+        ssl->specs.block_size            = 0;
+
+        break;
+#endif
+
+#ifdef BUILD_SSL_RSA_WITH_RC4_128_MD5
+    case SSL_RSA_WITH_RC4_128_MD5 :
+        ssl->specs.bulk_cipher_algorithm = rc4;
+        ssl->specs.cipher_type           = stream;
+        ssl->specs.mac_algorithm         = md5_mac;
+        ssl->specs.kea                   = rsa_kea;
+        ssl->specs.hash_size             = MD5_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_MD5;
+        ssl->specs.static_ecdh           = 0;
+        ssl->specs.key_size              = RC4_KEY_SIZE;
+        ssl->specs.iv_size               = 0;
+        ssl->specs.block_size            = 0;
+
+        break;
+#endif
+
+#ifdef BUILD_SSL_RSA_WITH_3DES_EDE_CBC_SHA
+    case SSL_RSA_WITH_3DES_EDE_CBC_SHA :
+        ssl->specs.bulk_cipher_algorithm = triple_des;
+        ssl->specs.cipher_type           = block;
+        ssl->specs.mac_algorithm         = sha_mac;
+        ssl->specs.kea                   = rsa_kea;
+        ssl->specs.hash_size             = SHA_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 0;
+        ssl->specs.key_size              = DES3_KEY_SIZE;
+        ssl->specs.block_size            = DES_BLOCK_SIZE;
+        ssl->specs.iv_size               = DES_IV_SIZE;
+
+        break;
+#endif
+
+#ifdef BUILD_TLS_NTRU_RSA_WITH_3DES_EDE_CBC_SHA
+    case TLS_NTRU_RSA_WITH_3DES_EDE_CBC_SHA :
+        ssl->specs.bulk_cipher_algorithm = triple_des;
+        ssl->specs.cipher_type           = block;
+        ssl->specs.mac_algorithm         = sha_mac;
+        ssl->specs.kea                   = ntru_kea;
+        ssl->specs.hash_size             = SHA_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 0;
+        ssl->specs.key_size              = DES3_KEY_SIZE;
+        ssl->specs.block_size            = DES_BLOCK_SIZE;
+        ssl->specs.iv_size               = DES_IV_SIZE;
+
+        break;
+#endif
+
+#ifdef BUILD_TLS_RSA_WITH_AES_128_CBC_SHA
+    case TLS_RSA_WITH_AES_128_CBC_SHA :
+        ssl->specs.bulk_cipher_algorithm = aes;
+        ssl->specs.cipher_type           = block;
+        ssl->specs.mac_algorithm         = sha_mac;
+        ssl->specs.kea                   = rsa_kea;
+        ssl->specs.hash_size             = SHA_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 0;
+        ssl->specs.key_size              = AES_128_KEY_SIZE;
+        ssl->specs.block_size            = AES_BLOCK_SIZE;
+        ssl->specs.iv_size               = AES_IV_SIZE;
+
+        break;
+#endif
+
+#ifdef BUILD_TLS_RSA_WITH_AES_128_CBC_SHA256
+    case TLS_RSA_WITH_AES_128_CBC_SHA256 :
+        ssl->specs.bulk_cipher_algorithm = aes;
+        ssl->specs.cipher_type           = block;
+        ssl->specs.mac_algorithm         = sha256_mac;
+        ssl->specs.kea                   = rsa_kea;
+        ssl->specs.hash_size             = SHA256_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 0;
+        ssl->specs.key_size              = AES_128_KEY_SIZE;
+        ssl->specs.block_size            = AES_BLOCK_SIZE;
+        ssl->specs.iv_size               = AES_IV_SIZE;
+
+        break;
+#endif
+
+#ifdef BUILD_TLS_NTRU_RSA_WITH_AES_128_CBC_SHA
+    case TLS_NTRU_RSA_WITH_AES_128_CBC_SHA :
+        ssl->specs.bulk_cipher_algorithm = aes;
+        ssl->specs.cipher_type           = block;
+        ssl->specs.mac_algorithm         = sha_mac;
+        ssl->specs.kea                   = ntru_kea;
+        ssl->specs.hash_size             = SHA_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 0;
+        ssl->specs.key_size              = AES_128_KEY_SIZE;
+        ssl->specs.block_size            = AES_BLOCK_SIZE;
+        ssl->specs.iv_size               = AES_IV_SIZE;
+
+        break;
+#endif
+
+#ifdef BUILD_TLS_RSA_WITH_AES_256_CBC_SHA
+    case TLS_RSA_WITH_AES_256_CBC_SHA :
+        ssl->specs.bulk_cipher_algorithm = aes;
+        ssl->specs.cipher_type           = block;
+        ssl->specs.mac_algorithm         = sha_mac;
+        ssl->specs.kea                   = rsa_kea;
+        ssl->specs.hash_size             = SHA_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 0;
+        ssl->specs.key_size              = AES_256_KEY_SIZE;
+        ssl->specs.block_size            = AES_BLOCK_SIZE;
+        ssl->specs.iv_size               = AES_IV_SIZE;
+
+        break;
+#endif
+
+#ifdef BUILD_TLS_RSA_WITH_AES_256_CBC_SHA256
+    case TLS_RSA_WITH_AES_256_CBC_SHA256 :
+        ssl->specs.bulk_cipher_algorithm = aes;
+        ssl->specs.cipher_type           = block;
+        ssl->specs.mac_algorithm         = sha256_mac;
+        ssl->specs.kea                   = rsa_kea;
+        ssl->specs.hash_size             = SHA256_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 0;
+        ssl->specs.key_size              = AES_256_KEY_SIZE;
+        ssl->specs.block_size            = AES_BLOCK_SIZE;
+        ssl->specs.iv_size               = AES_IV_SIZE;
+
+        break;
+#endif
+
+#ifdef BUILD_TLS_NTRU_RSA_WITH_AES_256_CBC_SHA
+    case TLS_NTRU_RSA_WITH_AES_256_CBC_SHA :
+        ssl->specs.bulk_cipher_algorithm = aes;
+        ssl->specs.cipher_type           = block;
+        ssl->specs.mac_algorithm         = sha_mac;
+        ssl->specs.kea                   = ntru_kea;
+        ssl->specs.hash_size             = SHA_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 0;
+        ssl->specs.key_size              = AES_256_KEY_SIZE;
+        ssl->specs.block_size            = AES_BLOCK_SIZE;
+        ssl->specs.iv_size               = AES_IV_SIZE;
+
+        break;
+#endif
+
+#ifdef BUILD_TLS_PSK_WITH_AES_128_CBC_SHA
+    case TLS_PSK_WITH_AES_128_CBC_SHA :
+        ssl->specs.bulk_cipher_algorithm = aes;
+        ssl->specs.cipher_type           = block;
+        ssl->specs.mac_algorithm         = sha_mac;
+        ssl->specs.kea                   = psk_kea;
+        ssl->specs.hash_size             = SHA_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 0;
+        ssl->specs.key_size              = AES_128_KEY_SIZE;
+        ssl->specs.block_size            = AES_BLOCK_SIZE;
+        ssl->specs.iv_size               = AES_IV_SIZE;
+
+        ssl->options.usingPSK_cipher     = 1;
+        break;
+#endif
+
+#ifdef BUILD_TLS_PSK_WITH_AES_256_CBC_SHA
+    case TLS_PSK_WITH_AES_256_CBC_SHA :
+        ssl->specs.bulk_cipher_algorithm = aes;
+        ssl->specs.cipher_type           = block;
+        ssl->specs.mac_algorithm         = sha_mac;
+        ssl->specs.kea                   = psk_kea;
+        ssl->specs.hash_size             = SHA_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 0;
+        ssl->specs.key_size              = AES_256_KEY_SIZE;
+        ssl->specs.block_size            = AES_BLOCK_SIZE;
+        ssl->specs.iv_size               = AES_IV_SIZE;
+
+        ssl->options.usingPSK_cipher     = 1;
+        break;
+#endif
+
+#ifdef BUILD_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
+    case TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 :
+        ssl->specs.bulk_cipher_algorithm = aes;
+        ssl->specs.cipher_type           = block;
+        ssl->specs.mac_algorithm         = sha256_mac;
+        ssl->specs.kea                   = diffie_hellman_kea;
+        ssl->specs.sig_algo              = rsa_sa_algo;
+        ssl->specs.hash_size             = SHA256_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 0;
+        ssl->specs.key_size              = AES_128_KEY_SIZE;
+        ssl->specs.block_size            = AES_BLOCK_SIZE;
+        ssl->specs.iv_size               = AES_IV_SIZE;
+
+        break;
+#endif
+
+#ifdef BUILD_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
+    case TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 :
+        ssl->specs.bulk_cipher_algorithm = aes;
+        ssl->specs.cipher_type           = block;
+        ssl->specs.mac_algorithm         = sha256_mac;
+        ssl->specs.kea                   = diffie_hellman_kea;
+        ssl->specs.sig_algo              = rsa_sa_algo;
+        ssl->specs.hash_size             = SHA256_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 0;
+        ssl->specs.key_size              = AES_256_KEY_SIZE;
+        ssl->specs.block_size            = AES_BLOCK_SIZE;
+        ssl->specs.iv_size               = AES_IV_SIZE;
+
+        break;
+#endif
+
+#ifdef BUILD_TLS_DHE_RSA_WITH_AES_128_CBC_SHA
+    case TLS_DHE_RSA_WITH_AES_128_CBC_SHA :
+        ssl->specs.bulk_cipher_algorithm = aes;
+        ssl->specs.cipher_type           = block;
+        ssl->specs.mac_algorithm         = sha_mac;
+        ssl->specs.kea                   = diffie_hellman_kea;
+        ssl->specs.sig_algo              = rsa_sa_algo;
+        ssl->specs.hash_size             = SHA_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 0;
+        ssl->specs.key_size              = AES_128_KEY_SIZE;
+        ssl->specs.block_size            = AES_BLOCK_SIZE;
+        ssl->specs.iv_size               = AES_IV_SIZE;
+
+        break;
+#endif
+
+#ifdef BUILD_TLS_DHE_RSA_WITH_AES_256_CBC_SHA
+    case TLS_DHE_RSA_WITH_AES_256_CBC_SHA :
+        ssl->specs.bulk_cipher_algorithm = aes;
+        ssl->specs.cipher_type           = block;
+        ssl->specs.mac_algorithm         = sha_mac;
+        ssl->specs.kea                   = diffie_hellman_kea;
+        ssl->specs.sig_algo              = rsa_sa_algo;
+        ssl->specs.hash_size             = SHA_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 0;
+        ssl->specs.key_size              = AES_256_KEY_SIZE;
+        ssl->specs.block_size            = AES_BLOCK_SIZE;
+        ssl->specs.iv_size               = AES_IV_SIZE;
+
+        break;
+#endif
+
+#ifdef BUILD_TLS_RSA_WITH_HC_128_CBC_MD5
+    case TLS_RSA_WITH_HC_128_CBC_MD5 :
+        ssl->specs.bulk_cipher_algorithm = hc128;
+        ssl->specs.cipher_type           = stream;
+        ssl->specs.mac_algorithm         = md5_mac;
+        ssl->specs.kea                   = rsa_kea;
+        ssl->specs.hash_size             = MD5_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_MD5;
+        ssl->specs.static_ecdh           = 0;
+        ssl->specs.key_size              = HC_128_KEY_SIZE;
+        ssl->specs.block_size            = 0;
+        ssl->specs.iv_size               = HC_128_IV_SIZE;
+
+        break;
+#endif
+            
+#ifdef BUILD_TLS_RSA_WITH_HC_128_CBC_SHA
+        case TLS_RSA_WITH_HC_128_CBC_SHA :
+            ssl->specs.bulk_cipher_algorithm = hc128;
+            ssl->specs.cipher_type           = stream;
+            ssl->specs.mac_algorithm         = sha_mac;
+            ssl->specs.kea                   = rsa_kea;
+            ssl->specs.hash_size             = SHA_DIGEST_SIZE;
+            ssl->specs.pad_size              = PAD_SHA;
+            ssl->specs.static_ecdh           = 0;
+            ssl->specs.key_size              = HC_128_KEY_SIZE;
+            ssl->specs.block_size            = 0;
+            ssl->specs.iv_size               = HC_128_IV_SIZE;
+            
+            break;
+#endif
+
+#ifdef BUILD_TLS_RSA_WITH_RABBIT_CBC_SHA
+    case TLS_RSA_WITH_RABBIT_CBC_SHA :
+        ssl->specs.bulk_cipher_algorithm = rabbit;
+        ssl->specs.cipher_type           = stream;
+        ssl->specs.mac_algorithm         = sha_mac;
+        ssl->specs.kea                   = rsa_kea;
+        ssl->specs.hash_size             = SHA_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 0;
+        ssl->specs.key_size              = RABBIT_KEY_SIZE;
+        ssl->specs.block_size            = 0;
+        ssl->specs.iv_size               = RABBIT_IV_SIZE;
+
+        break;
+#endif
+
+    default:
+        CYASSL_MSG("Unsupported cipher suite, SetCipherSpecs");
+        return UNSUPPORTED_SUITE;
+    }  /* switch */
+    }  /* if ECC / Normal suites else */
+
+    /* set TLS if it hasn't been turned off */
+    if (ssl->version.major == 3 && ssl->version.minor >= 1) {
+#ifndef NO_TLS
+        ssl->options.tls = 1;
+        ssl->hmac = TLS_hmac;
+        if (ssl->version.minor >= 2)
+            ssl->options.tls1_1 = 1;
+#endif
+    }
+
+#ifdef CYASSL_DTLS
+    if (ssl->options.dtls)
+        ssl->hmac = TLS_hmac;
+#endif
+
+    return 0;
+}
+
+
+enum KeyStuff {
+    MASTER_ROUNDS = 3,
+    PREFIX        = 3,     /* up to three letters for master prefix */
+    KEY_PREFIX    = 7      /* up to 7 prefix letters for key rounds */
+
+
+};
+
+
+/* true or false, zero for error */
+static int SetPrefix(byte* sha_input, int idx)
+{
+    switch (idx) {
+    case 0:
+        XMEMCPY(sha_input, "A", 1);
+        break;
+    case 1:
+        XMEMCPY(sha_input, "BB", 2);
+        break;
+    case 2:
+        XMEMCPY(sha_input, "CCC", 3);
+        break;
+    case 3:
+        XMEMCPY(sha_input, "DDDD", 4);
+        break;
+    case 4:
+        XMEMCPY(sha_input, "EEEEE", 5);
+        break;
+    case 5:
+        XMEMCPY(sha_input, "FFFFFF", 6);
+        break;
+    case 6:
+        XMEMCPY(sha_input, "GGGGGGG", 7);
+        break;
+    default:
+        CYASSL_MSG("Set Prefix error, bad input");
+        return 0; 
+    }
+    return 1;
+}
+
+
+static int SetKeys(Ciphers* enc, Ciphers* dec, Keys* keys, CipherSpecs* specs,
+                   byte side)
+{
+#ifdef BUILD_ARC4
+    word32 sz = specs->key_size;
+    if (specs->bulk_cipher_algorithm == rc4) {
+        if (side == CLIENT_END) {
+            Arc4SetKey(&enc->arc4, keys->client_write_key, sz);
+            Arc4SetKey(&dec->arc4, keys->server_write_key, sz);
+        }
+        else {
+            Arc4SetKey(&enc->arc4, keys->server_write_key, sz);
+            Arc4SetKey(&dec->arc4, keys->client_write_key, sz);
+        }
+    }
+#endif
+    
+#ifdef HAVE_HC128
+    if (specs->bulk_cipher_algorithm == hc128) {
+        if (side == CLIENT_END) {
+            Hc128_SetKey(&enc->hc128, keys->client_write_key,
+                                          keys->client_write_IV);
+            Hc128_SetKey(&dec->hc128, keys->server_write_key,
+                                          keys->server_write_IV);
+        }
+        else {
+            Hc128_SetKey(&enc->hc128, keys->server_write_key,
+                                         keys->server_write_IV);
+            Hc128_SetKey(&dec->hc128, keys->client_write_key,
+                                         keys->client_write_IV);
+        }
+    }
+#endif
+    
+#ifdef BUILD_RABBIT
+    if (specs->bulk_cipher_algorithm == rabbit) {
+        if (side == CLIENT_END) {
+            RabbitSetKey(&enc->rabbit, keys->client_write_key,
+                                           keys->client_write_IV);
+            RabbitSetKey(&dec->rabbit, keys->server_write_key,
+                                           keys->server_write_IV);
+        }
+        else {
+            RabbitSetKey(&enc->rabbit, keys->server_write_key,
+                                           keys->server_write_IV);
+            RabbitSetKey(&dec->rabbit, keys->client_write_key,
+                                           keys->client_write_IV);
+        }
+    }
+#endif
+    
+#ifdef BUILD_DES3
+    if (specs->bulk_cipher_algorithm == triple_des) {
+        if (side == CLIENT_END) {
+            Des3_SetKey(&enc->des3, keys->client_write_key,
+                        keys->client_write_IV, DES_ENCRYPTION);
+            Des3_SetKey(&dec->des3, keys->server_write_key,
+                        keys->server_write_IV, DES_DECRYPTION);
+        }
+        else {
+            Des3_SetKey(&enc->des3, keys->server_write_key,
+                        keys->server_write_IV, DES_ENCRYPTION);
+            Des3_SetKey(&dec->des3, keys->client_write_key,
+                keys->client_write_IV, DES_DECRYPTION);
+        }
+    }
+#endif
+
+#ifdef BUILD_AES
+    if (specs->bulk_cipher_algorithm == aes) {
+        if (side == CLIENT_END) {
+            AesSetKey(&enc->aes, keys->client_write_key,
+                      specs->key_size, keys->client_write_IV,
+                      AES_ENCRYPTION);
+            AesSetKey(&dec->aes, keys->server_write_key,
+                      specs->key_size, keys->server_write_IV,
+                      AES_DECRYPTION);
+        }
+        else {
+            AesSetKey(&enc->aes, keys->server_write_key,
+                      specs->key_size, keys->server_write_IV,
+                      AES_ENCRYPTION);
+            AesSetKey(&dec->aes, keys->client_write_key,
+                      specs->key_size, keys->client_write_IV,
+                      AES_DECRYPTION);
+        }
+    }
+#endif
+
+    keys->sequence_number      = 0;
+    keys->peer_sequence_number = 0;
+    keys->encryptionOn         = 0;
+
+    return 0;
+}
+
+
+/* TLS can call too */
+int StoreKeys(CYASSL* ssl, const byte* keyData)
+{
+    int sz = ssl->specs.hash_size, i;
+
+    XMEMCPY(ssl->keys.client_write_MAC_secret, keyData, sz);
+    i = sz;
+    XMEMCPY(ssl->keys.server_write_MAC_secret,&keyData[i], sz);
+    i += sz;
+
+    sz = ssl->specs.key_size;
+    XMEMCPY(ssl->keys.client_write_key, &keyData[i], sz);
+    i += sz;
+    XMEMCPY(ssl->keys.server_write_key, &keyData[i], sz);
+    i += sz;
+
+    sz = ssl->specs.iv_size;
+    XMEMCPY(ssl->keys.client_write_IV, &keyData[i], sz);
+    i += sz;
+    XMEMCPY(ssl->keys.server_write_IV, &keyData[i], sz);
+
+    return SetKeys(&ssl->encrypt, &ssl->decrypt, &ssl->keys, &ssl->specs,
+                   ssl->options.side);
+}
+
+
+int DeriveKeys(CYASSL* ssl)
+{
+    int length = 2 * ssl->specs.hash_size + 
+                 2 * ssl->specs.key_size  +
+                 2 * ssl->specs.iv_size;
+    int rounds = (length + MD5_DIGEST_SIZE - 1 ) / MD5_DIGEST_SIZE, i;
+
+    byte shaOutput[SHA_DIGEST_SIZE];
+    byte md5Input[SECRET_LEN + SHA_DIGEST_SIZE];
+    byte shaInput[KEY_PREFIX + SECRET_LEN + 2 * RAN_LEN];
+  
+    Md5 md5;
+    Sha sha;
+
+    byte keyData[KEY_PREFIX * MD5_DIGEST_SIZE];  /* max size */
+
+    InitMd5(&md5);
+    InitSha(&sha);
+
+    XMEMCPY(md5Input, ssl->arrays.masterSecret, SECRET_LEN);
+
+    for (i = 0; i < rounds; ++i) {
+        int j   = i + 1;
+        int idx = j;
+
+        if (!SetPrefix(shaInput, i)) {
+            return PREFIX_ERROR;
+        }
+
+        XMEMCPY(shaInput + idx, ssl->arrays.masterSecret, SECRET_LEN);
+        idx += SECRET_LEN;
+        XMEMCPY(shaInput + idx, ssl->arrays.serverRandom, RAN_LEN);
+        idx += RAN_LEN;
+        XMEMCPY(shaInput + idx, ssl->arrays.clientRandom, RAN_LEN);
+        idx += RAN_LEN;
+
+        ShaUpdate(&sha, shaInput, sizeof(shaInput) - KEY_PREFIX + j);
+        ShaFinal(&sha, shaOutput);
+
+        XMEMCPY(&md5Input[SECRET_LEN], shaOutput, SHA_DIGEST_SIZE);
+        Md5Update(&md5, md5Input, sizeof(md5Input));
+        Md5Final(&md5, keyData + i * MD5_DIGEST_SIZE);
+    }
+
+    return StoreKeys(ssl, keyData);
+}
+
+
+static void CleanPreMaster(CYASSL* ssl)
+{
+    int i, sz = ssl->arrays.preMasterSz;
+
+    for (i = 0; i < sz; i++)
+        ssl->arrays.preMasterSecret[i] = 0;
+
+    RNG_GenerateBlock(&ssl->rng, ssl->arrays.preMasterSecret, sz);
+
+    for (i = 0; i < sz; i++)
+        ssl->arrays.preMasterSecret[i] = 0;
+
+}
+
+
+/* Create and store the master secret see page 32, 6.1 */
+int MakeMasterSecret(CYASSL* ssl)
+{
+    byte   shaOutput[SHA_DIGEST_SIZE];
+    byte   md5Input[ENCRYPT_LEN + SHA_DIGEST_SIZE];
+    byte   shaInput[PREFIX + ENCRYPT_LEN + 2 * RAN_LEN];
+    int    i, ret;
+    word32 idx;
+    word32 pmsSz = ssl->arrays.preMasterSz;
+
+    Md5 md5;
+    Sha sha;
+
+#ifdef SHOW_SECRETS
+    {
+        int j;
+        printf("pre master secret: ");
+        for (j = 0; j < pmsSz; j++)
+            printf("%02x", ssl->arrays.preMasterSecret[j]);
+        printf("\n");
+    }
+#endif
+
+#ifndef NO_TLS
+    if (ssl->options.tls) return MakeTlsMasterSecret(ssl);
+#endif
+
+    InitMd5(&md5);
+    InitSha(&sha);
+
+    XMEMCPY(md5Input, ssl->arrays.preMasterSecret, pmsSz);
+
+    for (i = 0; i < MASTER_ROUNDS; ++i) {
+        byte prefix[PREFIX];
+        if (!SetPrefix(prefix, i)) {
+            return PREFIX_ERROR;
+        }
+
+        idx = 0;
+        XMEMCPY(shaInput, prefix, i + 1);
+        idx += i + 1;
+
+        XMEMCPY(shaInput + idx, ssl->arrays.preMasterSecret, pmsSz);
+        idx += pmsSz;
+        XMEMCPY(shaInput + idx, ssl->arrays.clientRandom, RAN_LEN);
+        idx += RAN_LEN;
+        XMEMCPY(shaInput + idx, ssl->arrays.serverRandom, RAN_LEN);
+        idx += RAN_LEN;
+        ShaUpdate(&sha, shaInput, idx);
+        ShaFinal(&sha, shaOutput);
+
+        idx = pmsSz;  /* preSz */
+        XMEMCPY(md5Input + idx, shaOutput, SHA_DIGEST_SIZE);
+        idx += SHA_DIGEST_SIZE;
+        Md5Update(&md5, md5Input, idx);
+        Md5Final(&md5, &ssl->arrays.masterSecret[i * MD5_DIGEST_SIZE]);
+    }
+
+#ifdef SHOW_SECRETS
+    {
+        int i;
+        printf("master secret: ");
+        for (i = 0; i < SECRET_LEN; i++)
+            printf("%02x", ssl->arrays.masterSecret[i]);
+        printf("\n");
+    }
+#endif
+
+    ret = DeriveKeys(ssl);
+    CleanPreMaster(ssl);
+
+    return ret;
+}
+
diff --git a/FreeRTOS-Plus/CyaSSL/src/ocsp.c b/FreeRTOS-Plus/CyaSSL/src/ocsp.c
new file mode 100644
index 000000000..3422c5aa6
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/src/ocsp.c
@@ -0,0 +1,356 @@
+/* ocsp.c
+ *
+ * Copyright (C) 2006-2012 Sawtooth Consulting Ltd.
+ *
+ * This file is part of CyaSSL.
+ *
+ * CyaSSL is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * CyaSSL is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifdef HAVE_CONFIG_H
+    #include 
+#endif
+
+#include 
+#include 
+#include 
+#include 
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+
+#ifdef HAVE_OCSP
+CYASSL_API int ocsp_test(unsigned char* buf, int sz);
+#define CYASSL_OCSP_ENABLE       0x0001 /* Enable OCSP lookups */
+#define CYASSL_OCSP_URL_OVERRIDE 0x0002 /* Use the override URL instead of URL
+                                         * in certificate */
+
+typedef struct sockaddr_in  SOCKADDR_IN_T;
+#define AF_INET_V    AF_INET
+#define SOCKET_T unsigned int
+   
+
+int ocsp_test(unsigned char* buf, int sz)
+{
+    CYASSL_OCSP ocsp;
+    OcspResponse resp;
+    int result;
+    
+    CyaSSL_OCSP_Init(&ocsp);
+    InitOcspResponse(&resp, buf, sz, NULL);
+
+    ocsp.enabled = 1;
+    ocsp.useOverrideUrl = 1;
+    CyaSSL_OCSP_set_override_url(&ocsp, "http://ocsp.example.com:8080/bob");
+    CyaSSL_OCSP_Lookup_Cert(&ocsp, NULL);
+
+    result = OcspResponseDecode(&resp);
+    
+    FreeOcspResponse(&resp);
+    CyaSSL_OCSP_Cleanup(&ocsp);
+
+    return result;
+}
+
+
+int CyaSSL_OCSP_Init(CYASSL_OCSP* ocsp)
+{
+    if (ocsp != NULL) {
+        XMEMSET(ocsp, 0, sizeof(*ocsp));
+        return 0;
+    }
+
+    return -1;
+}
+
+
+void CyaSSL_OCSP_Cleanup(CYASSL_OCSP* ocsp)
+{
+    ocsp->enabled = 0;
+}
+
+
+int CyaSSL_OCSP_set_override_url(CYASSL_OCSP* ocsp, const char* url)
+{
+    if (ocsp != NULL && url != NULL) {
+        int i, cur, hostname;
+
+        /* need to break the url down into scheme, address, and port */
+        /* "http://example.com:8080/" */
+        if (XSTRNCMP(url, "http://", 7) == 0) {
+            cur = 7;
+        } else cur = 0;
+
+        i = 0;
+        while (url[cur] != 0 && url[cur] != ':' && url[cur] != '/') {
+            ocsp->overrideName[i++] = url[cur++];
+        }
+        ocsp->overrideName[i] = 0;
+        /* Need to pick out the path after the domain name */
+
+        if (url[cur] == ':') {
+            char port[6];
+            int j;
+            i = 0;
+            cur++;
+            while (url[cur] != 0 && url[cur] != '/' && i < 6) {
+                port[i++] = url[cur++];
+            }
+
+            ocsp->overridePort = 0;
+            for (j = 0; j < i; j++) {
+                if (port[j] < '0' || port[j] > '9') return -1;
+                ocsp->overridePort = 
+                            (ocsp->overridePort * 10) + (port[j] - '0');
+            }
+        }
+        else
+            ocsp->overridePort = 80;
+
+        if (url[cur] == '/') {
+            i = 0;
+            while (url[cur] != 0 && i < 80) {
+                ocsp->overridePath[i++] = url[cur++];
+            }
+            ocsp->overridePath[i] = 0;
+        }
+        else {
+            ocsp->overridePath[0] = '/';
+            ocsp->overridePath[1] = 0;
+        }
+            
+
+        return 1;
+    }
+
+    return 0;
+}
+
+
+static INLINE void tcp_socket(SOCKET_T* sockfd, SOCKADDR_IN_T* addr,
+                              const char* peer, word16 port)
+{
+    const char* host = peer;
+
+    /* peer could be in human readable form */
+    if (peer != INADDR_ANY && isalpha(peer[0])) {
+        struct hostent* entry = gethostbyname(peer);
+
+        if (entry) {
+            struct sockaddr_in tmp;
+            memset(&tmp, 0, sizeof(struct sockaddr_in));
+            memcpy(&tmp.sin_addr.s_addr, entry->h_addr_list[0],
+                   entry->h_length);
+            host = inet_ntoa(tmp.sin_addr);
+        }
+        else
+            CYASSL_MSG("no entry for host");
+    }
+
+    *sockfd = socket(AF_INET_V, SOCK_STREAM, 0);
+    memset(addr, 0, sizeof(SOCKADDR_IN_T));
+
+    addr->sin_family = AF_INET_V;
+    addr->sin_port = htons(port);
+    if (host == INADDR_ANY)
+        addr->sin_addr.s_addr = INADDR_ANY;
+    else
+        addr->sin_addr.s_addr = inet_addr(host);
+}
+
+
+static INLINE void tcp_connect(SOCKET_T* sockfd, const char* ip, word16 port)
+{
+    SOCKADDR_IN_T addr;
+    tcp_socket(sockfd, &addr, ip, port);
+
+    if (connect(*sockfd, (const struct sockaddr*)&addr, sizeof(addr)) != 0)
+        CYASSL_MSG("tcp connect failed");
+}
+
+
+static int build_http_request(CYASSL_OCSP* ocsp, int ocspReqSz,
+                                                        byte* buf, int bufSize)
+{
+    return snprintf((char*)buf, bufSize,
+        "POST %s HTTP/1.1\r\n"
+        "Host: %s\r\n"
+        "Content-Length: %d\r\n"
+        "Content-Type: application/ocsp-request\r\n"
+        "\r\n", 
+        ocsp->overridePath, ocsp->overrideName, ocspReqSz);
+}
+
+#if 0
+static const char foo[] = \
+        "\x30\x81\xB7\x30\x81\xB4\x30\x81\x8C\x30\x44\x30\x42\x30\x09\x06\x05\x2B\x0E\x03" \
+        "\x02\x1A\x05\x00\x04\x14\x49\x2D\x52\x83\x4B\x40\x37\xF5\xA9\x9E\x26\xA2\x3E\x48" \
+        "\x2F\x2E\x37\x34\xC9\x54\x04\x14\x21\xA2\x25\xEE\x57\x38\x34\x5A\x24\x9D\xF3\x7C" \
+        "\x18\x60\x59\x7A\x04\x3D\xF5\x69\x02\x09\x00\x89\x5A\xA2\xBD\xFE\x26\x8B\xEE\x30" \
+        "\x44\x30\x42\x30\x09\x06\x05\x2B\x0E\x03\x02\x1A\x05\x00\x04\x14\x49\x2D\x52\x83" \
+        "\x4B\x40\x37\xF5\xA9\x9E\x26\xA2\x3E\x48\x2F\x2E\x37\x34\xC9\x54\x04\x14\x21\xA2" \
+        "\x25\xEE\x57\x38\x34\x5A\x24\x9D\xF3\x7C\x18\x60\x59\x7A\x04\x3D\xF5\x69\x02\x09" \
+        "\x00\x89\x5A\xA2\xBD\xFE\x26\x8B\xEF\xA2\x23\x30\x21\x30\x1F\x06\x09\x2B\x06\x01" \
+        "\x05\x05\x07\x30\x01\x02\x04\x12\x04\x10\x20\x56\x47\x19\x65\x33\xB6\xB5\xAD\x39" \
+        "\x1F\x21\x65\xE0\x44\x1E";
+
+
+static int build_ocsp_request(CYASSL_OCSP* ocsp, byte* buf, int bufSz)
+{
+    memcpy(buf, foo, sizeof(foo));
+    return sizeof(foo) - 1;
+}
+#endif
+
+static byte* decode_http_response(byte* httpBuf, int httpBufSz, int* ocspRespSz)
+{
+    int idx = 0;
+    int stop = 0;
+    byte* contentType = NULL;
+    byte* contentLength = NULL;
+    byte* content = NULL;
+    char* buf = (char*)httpBuf; /* kludge so I'm not constantly casting */
+
+    if (strncasecmp(buf, "HTTP/1", 6) != 0)
+        return NULL;
+    
+    idx = 9; /* sets to the first byte after "HTTP/1.X ", which should be the
+              * HTTP result code */
+
+     if (strncasecmp(&buf[idx], "200 OK", 6) != 0)
+        return NULL;
+    
+    idx += 8;
+
+    while (idx < httpBufSz && !stop) {
+        if (buf[idx] == '\r' && buf[idx+1] == '\n') {
+            stop = 1;
+            idx += 2;
+        }
+        else {
+            if (contentType == NULL &&
+                strncasecmp(&buf[idx], "Content-Type:", 13) == 0) {
+                idx += 13;
+                if (buf[idx] == ' ') idx++;
+                if (strncasecmp(&buf[idx], "application/ocsp-response", 25) != 0)
+                    return NULL;
+                idx += 27;
+            } else if (contentLength == NULL &&
+                strncasecmp(&buf[idx], "Content-Length:", 15) == 0) {
+                int len = 0;
+                idx += 15;
+                if (buf[idx] == ' ') idx++;
+                while (buf[idx] > '0' && buf[idx] < '9' && idx < httpBufSz) {
+                    len = (len * 10) + (buf[idx] - '0');
+                    idx++;
+                }
+                *ocspRespSz = len;
+                idx += 2; /* skip the crlf */
+            } else {
+                /* Advance idx past the next \r\n */
+                char* end = strstr(&buf[idx], "\r\n");
+                idx = end - buf + 2;
+                stop = 1;
+            }
+        }
+    }
+    return &httpBuf[idx];
+}
+
+
+#define SCRATCH_BUFFER_SIZE 2048
+
+int CyaSSL_OCSP_Lookup_Cert(CYASSL_OCSP* ocsp, DecodedCert* cert)
+{
+    SOCKET_T sfd = -1;
+    byte buf[SCRATCH_BUFFER_SIZE];
+    byte* httpBuf = &buf[0];
+    int httpBufSz = SCRATCH_BUFFER_SIZE/4;
+    byte* ocspReqBuf = &buf[httpBufSz];
+    int ocspReqSz = SCRATCH_BUFFER_SIZE - httpBufSz;
+    OcspResponse ocspResponse;
+    int result = CERT_UNKNOWN;
+
+    /* If OCSP lookups are disabled, return success. */
+    if (!ocsp->enabled) {
+        CYASSL_MSG("OCSP lookup disabled, assuming CERT_GOOD");
+        return CERT_GOOD;
+    }
+
+    /* If OCSP lookups are enabled, but URL Override is disabled, return 
+    ** a failure. Need to have an override URL for right now. */
+    if (!ocsp->useOverrideUrl || cert == NULL) {
+        CYASSL_MSG("OCSP lookup enabled, but URL Override disabled");
+        return CERT_UNKNOWN;
+    }
+
+    XMEMCPY(ocsp->status[0].issuerHash, cert->issuerHash, SHA_SIZE);
+    XMEMCPY(ocsp->status[0].issuerKeyHash, cert->issuerKeyHash, SHA_SIZE);
+    XMEMCPY(ocsp->status[0].serial, cert->serial, cert->serialSz);
+    ocsp->status[0].serialSz = cert->serialSz;
+    ocsp->statusLen = 1;
+
+    /*ocspReqSz = build_ocsp_request(ocsp, ocspReqBuf, ocspReqSz);*/
+    ocspReqSz = EncodeOcspRequest(cert, ocspReqBuf, ocspReqSz);
+    httpBufSz = build_http_request(ocsp, ocspReqSz, httpBuf, httpBufSz);
+
+    tcp_connect(&sfd, ocsp->overrideName, ocsp->overridePort);
+    if (sfd > 0) {
+        int written;
+        written = write(sfd, httpBuf, httpBufSz);
+        if (written == httpBufSz) {
+            written = write(sfd, ocspReqBuf, ocspReqSz);
+            if (written == ocspReqSz) {
+                httpBufSz = read(sfd, buf, SCRATCH_BUFFER_SIZE);
+                if (httpBufSz > 0) {
+                    ocspReqBuf = decode_http_response(buf, httpBufSz,
+                        &ocspReqSz);
+                }
+            }
+        }
+        close(sfd);
+        if (ocspReqBuf == NULL) {
+            CYASSL_MSG("HTTP response was not OK, no OCSP response");
+            return CERT_UNKNOWN;
+        }
+    } else {
+        CYASSL_MSG("OCSP Responder connection failed");
+        return CERT_UNKNOWN;
+    }
+
+    InitOcspResponse(&ocspResponse, ocspReqBuf, ocspReqSz, NULL);
+    OcspResponseDecode(&ocspResponse);
+    if (ocspResponse.responseStatus != OCSP_SUCCESSFUL) {
+        CYASSL_MSG("OCSP Responder failure");
+    } else {
+        result = ocspResponse.certStatus[0];
+    }
+    FreeOcspResponse(&ocspResponse);
+
+    return result;
+}
+
+
+#endif /* HAVE_OCSP */
+
diff --git a/FreeRTOS-Plus/CyaSSL/src/sniffer.c b/FreeRTOS-Plus/CyaSSL/src/sniffer.c
new file mode 100644
index 000000000..d94f9ab9e
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/src/sniffer.c
@@ -0,0 +1,2196 @@
+/* sniffer.c
+ *
+ * Copyright (C) 2006-2012 Sawtooth Consulting Ltd.
+ *
+ * This file is part of CyaSSL.
+ *
+ * CyaSSL is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * CyaSSL is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+
+#ifdef CYASSL_SNIFFER
+
+#ifdef HAVE_CONFIG_H
+    #include 
+#endif
+
+#include 
+#include 
+
+#ifndef _WIN32
+  #include 
+#endif
+
+#ifdef _WIN32
+    #define SNPRINTF _snprintf
+#else
+    #define SNPRINTF snprintf
+#endif
+
+#include 
+#include 
+#include 
+#include 
+#include 
+
+/* Misc constants */
+enum {
+    MAX_SERVER_ADDRESS = 128, /* maximum server address length */
+    MAX_ERROR_LEN      = 80,  /* maximum error length */
+    ETHER_IF_ADDR_LEN  = 6,   /* ethernet interface address length */
+    LOCAL_IF_ADDR_LEN  = 4,   /* localhost interface address length, !windows */
+    TCP_PROTO          = 6,   /* TCP_PROTOCOL */
+    IP_HDR_SZ          = 20,  /* IP header legnth, min */
+    TCP_HDR_SZ         = 20,  /* TCP header legnth, min */
+    IPV4               = 4,   /* IP version 4 */
+    TCP_PROTOCOL       = 6,   /* TCP Protocol id */
+    TRACE_MSG_SZ       = 80,  /* Trace Message buffer size */
+    HASH_SIZE          = 499, /* Session Hash Table Rows */
+    PSEUDO_HDR_SZ      = 12,  /* TCP Pseudo Header size in bytes */
+    FATAL_ERROR_STATE  =  1,  /* SnifferSession fatal error state */
+    SNIFFER_TIMEOUT    = 900, /* Cache unclosed Sessions for 15 minutes */
+};
+
+
+#ifdef _WIN32
+
+static HMODULE dllModule;  /* for error string resources */
+
+BOOL APIENTRY DllMain( HMODULE hModule,
+                       DWORD  ul_reason_for_call,
+                       LPVOID lpReserved
+                     )
+{
+	static int didInit = 0;
+
+    switch (ul_reason_for_call)
+    {
+    case DLL_PROCESS_ATTACH:
+		if (didInit == 0) {
+            dllModule = hModule;
+			ssl_InitSniffer();
+			didInit = 1;
+		}
+        break;
+    case DLL_THREAD_ATTACH:
+        break;
+    case DLL_THREAD_DETACH:
+        break;
+    case DLL_PROCESS_DETACH:
+		if (didInit) {
+			ssl_FreeSniffer();
+			didInit = 0;
+		}
+        break;
+    }
+    return TRUE;
+}
+
+#endif /* _WIN32 */
+
+
+static int TraceOn = 0;         /* Trace is off by default */
+static FILE* TraceFile = 0;
+
+
+/* windows uses .rc table for this */
+#ifndef _WIN32
+
+static const char* const msgTable[] =
+{
+    /* 1 */
+    "Out of Memory",
+    "New SSL Sniffer Server Registered",
+    "Checking IP Header",
+    "SSL Sniffer Server Not Registered",
+    "Checking TCP Header",
+
+    /* 6 */
+    "SSL Sniffer Server Port Not Registered",
+    "RSA Private Decrypt Error",
+    "RSA Private Decode Error",
+    "Set Cipher Spec Error",
+    "Server Hello Input Malformed",
+
+    /* 11 */
+    "Couldn't Resume Session Error",
+    "Server Did Resumption",
+    "Client Hello Input Malformed",
+    "Client Trying to Resume",
+    "Handshake Input Malformed",
+
+    /* 16 */
+    "Got Hello Verify msg",
+    "Got Server Hello msg",
+    "Got Cert Request msg",
+    "Got Server Key Exchange msg",
+    "Got Cert msg",
+
+    /* 21 */
+    "Got Server Hello Done msg",
+    "Got Finished msg",
+    "Got Client Hello msg",
+    "Got Client Key Exchange msg",
+    "Got Cert Verify msg",
+
+    /* 26 */
+    "Got Unknown Handshake msg",
+    "New SSL Sniffer Session created",
+    "Couldn't create new SSL",
+    "Got a Packet to decode",
+    "No data present",
+
+    /* 31 */
+    "Session Not Found",
+    "Got an Old Client Hello msg",
+    "Old Client Hello Input Malformed",
+    "Old Client Hello OK",
+    "Bad Old Client Hello",
+
+    /* 36 */
+    "Bad Record Header",
+    "Record Header Input Malformed",
+    "Got a HandShake msg",
+    "Bad HandShake msg",
+    "Got a Change Cipher Spec msg",
+
+    /* 41 */
+    "Got Application Data msg",
+    "Bad Application Data",
+    "Got an Alert msg",
+    "Another msg to Process",
+    "Removing Session From Table",
+    
+    /* 46 */
+    "Bad Key File",
+    "Wrong IP Version",
+    "Wrong Protocol type",
+    "Packet Short for header processing",
+    "Got Unknown Record Type",
+    
+    /* 51 */
+    "Can't Open Trace File",
+    "Session in Fatal Error State",
+    "Partial SSL record received",
+    "Buffer Error, malformed input",
+    "Added to Partial Input",
+    
+    /* 56 */
+    "Received a Duplicate Packet",
+    "Received an Out of Order Packet",
+    "Received an Overlap Duplicate Packet",
+    "Received an Overlap Reassembly Begin Duplicate Packet",
+    "Received an Overlap Reassembly End Duplicate Packet",
+
+    /* 61 */
+    "Missed the Client Hello Entirely",
+};
+
+
+/* *nix version uses table above */
+static void GetError(int idx, char* str)
+{
+    XSTRNCPY(str, msgTable[idx - 1], MAX_ERROR_LEN);
+}
+
+
+#else /* _WIN32 */
+
+
+/* Windows version uses .rc table */
+static void GetError(int idx, char* buffer)
+{
+    if (!LoadStringA(dllModule, idx, buffer, MAX_ERROR_LEN))
+        buffer[0] = 0;
+}
+
+
+#endif /* _WIN32 */
+
+
+/* Packet Buffer for reassembly list and ready list */
+typedef struct PacketBuffer {
+    word32  begin;      /* relative sequence begin */
+    word32  end;        /* relative sequence end   */
+    byte*   data;       /* actual data             */
+    struct PacketBuffer* next; /* next on reassembly list or ready list */
+} PacketBuffer;
+
+
+/* Sniffer Server holds info for each server/port monitored */
+typedef struct SnifferServer {
+    SSL_CTX*       ctx;                          /* SSL context */
+    char           address[MAX_SERVER_ADDRESS];  /* passed in server address */
+    word32         server;                       /* netowrk order address */
+    int            port;                         /* server port */
+    struct SnifferServer* next;                  /* for list */
+} SnifferServer;
+
+
+/* Session Flags */
+typedef struct Flags {
+    byte           side;            /* which end is current packet headed */
+    byte           serverCipherOn;  /* indicates whether cipher is active */
+    byte           clientCipherOn;  /* indicates whether cipher is active */
+    byte           resuming;        /* did this session come from resumption */
+    byte           cached;          /* have we cached this session yet */
+    byte           clientHello;     /* processed client hello yet, for SSLv2 */
+    byte           finCount;        /* get both FINs before removing */
+    byte           fatalError;      /* fatal error state */    
+} Flags;
+
+
+/* Out of Order FIN caputre */
+typedef struct FinCaputre {
+    word32 cliFinSeq;               /* client relative sequence FIN  0 is no */
+    word32 srvFinSeq;               /* server relative sequence FIN, 0 is no */
+    byte   cliCounted;              /* did we count yet, detects duplicates */
+    byte   srvCounted;              /* did we count yet, detects duplicates */
+} FinCaputre;
+
+
+/* Sniffer Session holds info for each client/server SSL/TLS session */
+typedef struct SnifferSession {
+    SnifferServer* context;         /* server context */
+    SSL*           sslServer;       /* SSL server side decode */
+    SSL*           sslClient;       /* SSL client side decode */
+    word32         server;          /* server address in network byte order */
+    word32         client;          /* client address in network byte order */
+    word16         srvPort;         /* server port */
+    word16         cliPort;         /* client port */
+    word32         cliSeqStart;     /* client start sequence */
+    word32         srvSeqStart;     /* server start sequence */
+    word32         cliExpected;     /* client expected sequence (relative) */
+    word32         srvExpected;     /* server expected sequence (relative) */
+    FinCaputre     finCaputre;      /* retain out of order FIN s */
+    Flags          flags;           /* session flags */
+    time_t         bornOn;          /* born on ticks */
+    PacketBuffer*  cliReassemblyList; /* client out of order packets */
+    PacketBuffer*  srvReassemblyList; /* server out of order packets */
+    struct SnifferSession* next;    /* for hash table list */
+} SnifferSession;
+
+
+/* Sniffer Server List and mutex */
+static SnifferServer* ServerList = 0;
+static CyaSSL_Mutex ServerListMutex;
+
+
+/* Session Hash Table, mutex, and count */
+static SnifferSession* SessionTable[HASH_SIZE];
+static CyaSSL_Mutex SessionMutex;
+static int SessionCount = 0;
+
+
+/* Initialize overall Sniffer */
+void ssl_InitSniffer(void)
+{
+    CyaSSL_Init();
+    InitMutex(&ServerListMutex);
+    InitMutex(&SessionMutex);
+}
+
+
+/* Free Sniffer Server's resources/self */
+static void FreeSnifferServer(SnifferServer* srv)
+{
+    if (srv)
+        SSL_CTX_free(srv->ctx);
+    free(srv);
+}
+
+
+/* free PacketBuffer's resources/self */
+static void FreePacketBuffer(PacketBuffer* del)
+{
+    if (del) {
+        free(del->data);
+        free(del);
+    }
+}
+
+
+/* remove PacketBuffer List */
+static void FreePacketList(PacketBuffer* in)
+{
+    if (in) {
+        PacketBuffer* del;
+        PacketBuffer* packet = in;
+        
+        while (packet) {
+            del = packet;
+            packet = packet->next;
+            FreePacketBuffer(del);
+        }
+    }
+}
+
+
+/* Free Sniffer Session's resources/self */
+static void FreeSnifferSession(SnifferSession* session)
+{
+    if (session) {
+        SSL_free(session->sslClient);
+        SSL_free(session->sslServer);
+        
+        FreePacketList(session->cliReassemblyList);
+        FreePacketList(session->srvReassemblyList);
+    }
+    free(session);
+}
+
+
+/* Free overall Sniffer */
+void ssl_FreeSniffer(void)
+{
+    SnifferServer*  srv;
+    SnifferServer*  removeServer;
+    SnifferSession* session;
+    SnifferSession* removeSession;
+    int i;
+
+    LockMutex(&ServerListMutex);
+    LockMutex(&SessionMutex);
+    
+    srv = ServerList;
+    while (srv) {
+        removeServer = srv;
+        srv = srv->next;
+        FreeSnifferServer(removeServer);
+    }
+
+    for (i = 0; i < HASH_SIZE; i++) {
+        session = SessionTable[i];
+        while (session) {
+            removeSession = session;
+            session = session->next;
+            FreeSnifferSession(removeSession);
+        }
+    }
+
+    UnLockMutex(&SessionMutex);
+    UnLockMutex(&ServerListMutex);
+
+    FreeMutex(&SessionMutex);
+    FreeMutex(&ServerListMutex);
+    CyaSSL_Cleanup();
+}
+
+
+/* Initialize a SnifferServer */
+static void InitSnifferServer(SnifferServer* sniffer)
+{
+    sniffer->ctx = 0;
+    XMEMSET(sniffer->address, 0, MAX_SERVER_ADDRESS);
+    sniffer->server   = 0;
+    sniffer->port     = 0;
+    sniffer->next     = 0;
+}
+
+
+/* Initialize session flags */
+static void InitFlags(Flags* flags)
+{
+    flags->side           = 0;
+    flags->serverCipherOn = 0;
+    flags->clientCipherOn = 0;
+    flags->resuming       = 0;
+    flags->cached         = 0;
+    flags->clientHello    = 0;
+    flags->finCount       = 0;
+    flags->fatalError     = 0;
+}
+
+
+/* Initialize FIN Capture */
+static void InitFinCapture(FinCaputre* cap)
+{
+    cap->cliFinSeq  = 0;
+    cap->srvFinSeq  = 0;
+    cap->cliCounted = 0;
+    cap->srvCounted = 0;
+}
+
+
+/* Initialize a Sniffer Session */
+static void InitSession(SnifferSession* session)
+{
+    session->context        = 0;
+    session->sslServer      = 0;
+    session->sslClient      = 0;
+    session->server         = 0;
+    session->client         = 0;
+    session->srvPort        = 0;
+    session->cliPort        = 0;
+    session->cliSeqStart    = 0;
+    session->srvSeqStart    = 0;
+    session->cliExpected    = 0;
+    session->srvExpected    = 0;
+    session->bornOn         = 0;
+    session->cliReassemblyList = 0;
+    session->srvReassemblyList = 0;
+    session->next           = 0;
+    
+    InitFlags(&session->flags);
+    InitFinCapture(&session->finCaputre);
+}
+
+
+/* IP Info from IP Header */
+typedef struct IpInfo {
+    int    length;        /* length of this header */
+    int    total;         /* total length of fragment */
+    word32 src;           /* network order source address */
+    word32 dst;           /* network order destination address */
+} IpInfo;
+
+
+/* TCP Info from TCP Header */
+typedef struct TcpInfo {
+    int    srcPort;       /* source port */
+    int    dstPort;       /* source port */
+    int    length;        /* length of this header */
+    word32 sequence;      /* sequence number */
+    byte   fin;           /* FIN set */
+    byte   rst;           /* RST set */
+    byte   syn;           /* SYN set */
+    byte   ack;           /* ACK set */
+} TcpInfo;
+
+
+/* Tcp Pseudo Header for Checksum calculation */
+typedef struct TcpPseudoHdr {
+    word32  src;        /* source address */
+    word32  dst;        /* destination address */
+    byte    rsv;        /* reserved, always 0 */
+    byte    protocol;   /* IP protocol */
+    word16  legnth;     /* tcp header length + data length (doesn't include */
+                        /* pseudo header length) network order */
+} TcpPseudoHdr;
+
+
+/* Password Setting Callback */
+static int SetPassword(char* passwd, int sz, int rw, void* userdata)
+{
+    (void)rw;
+    XSTRNCPY(passwd, userdata, sz);
+    return XSTRLEN(userdata);
+}
+
+
+/* Ethernet Header */
+typedef struct EthernetHdr {
+    byte   dst[ETHER_IF_ADDR_LEN];    /* destination host address */ 
+    byte   src[ETHER_IF_ADDR_LEN];    /* source  host address */ 
+    word16 type;                      /* IP, ARP, etc */ 
+} EthernetHdr;
+
+
+/* IP Header */
+typedef struct IpHdr {
+    byte    ver_hl;              /* version/header length */
+    byte    tos;                 /* type of service */
+    word16  length;              /* total length */
+    word16  id;                  /* identification */
+    word16  offset;              /* fragment offset field */
+    byte    ttl;                 /* time to live */
+    byte    protocol;            /* protocol */
+    word16  sum;                 /* checksum */
+    word32  src;                 /* source address */
+    word32  dst;                 /* destination address */
+} IpHdr;
+
+
+#define IP_HL(ip)      ( (((ip)->ver_hl) & 0x0f) * 4)
+#define IP_V(ip)       ( ((ip)->ver_hl) >> 4)
+
+/* TCP Header */
+typedef struct TcpHdr {
+    word16  srcPort;            /* source port */
+    word16  dstPort;            /* destination port */
+    word32  sequence;           /* sequence number */ 
+    word32  ack;                /* acknoledgment number */ 
+    byte    offset;             /* data offset, reserved */
+    byte    flags;              /* option flags */
+    word16  window;             /* window */
+    word16  sum;                /* checksum */
+    word16  urgent;             /* urgent pointer */
+} TcpHdr;
+
+#define TCP_LEN(tcp)  ( (((tcp)->offset & 0xf0) >> 4) * 4)
+#define TCP_FIN 0x01
+#define TCP_SYN 0x02
+#define TCP_RST 0x04
+#define TCP_ACK 0x10
+
+
+
+
+
+/* Use platform specific GetError to write to tracfile if tracing */ 
+static void Trace(int idx) 
+{
+    if (TraceOn) {
+        char myBuffer[MAX_ERROR_LEN];
+        GetError(idx, myBuffer);
+        fprintf(TraceFile, "\t%s\n", myBuffer);
+#ifdef DEBUG_SNIFFER
+        fprintf(stderr,    "\t%s\n", myBuffer);
+#endif
+    }
+}
+
+
+/* Show TimeStamp for beginning of packet Trace */
+static void TraceHeader(void)
+{
+    if (TraceOn) {
+        time_t ticks = time(NULL);
+        fprintf(TraceFile, "\n%s", ctime(&ticks));
+    }
+}
+
+
+/* Show Set Server info for Trace */
+static void TraceSetServer(const char* srv, int port, const char* keyFile)
+{
+    if (TraceOn) {
+        fprintf(TraceFile, "\tTrying to install a new Sniffer Server with\n");
+        fprintf(TraceFile, "\tserver: %s, port: %d, keyFile: %s\n", srv, port,
+                                                                    keyFile);
+    }
+}
+
+
+/* Trace got packet number */
+static void TracePacket(void)
+{
+    if (TraceOn) {
+        static word32 packetNumber = 0;
+        fprintf(TraceFile, "\tGot a Packet to decode, packet %u\n",
+                ++packetNumber);
+    }
+}
+
+
+/* Convert network byte order address into human readable */
+static char* IpToS(word32 addr, char* str)
+{
+    byte* p = (byte*)&addr;
+    
+    SNPRINTF(str, TRACE_MSG_SZ, "%d.%d.%d.%d", p[0], p[1], p[2], p[3]);
+    
+    return str;
+}
+
+
+/* Show destination and source address from Ip Hdr for packet Trace */
+static void TraceIP(IpHdr* iphdr)
+{
+    if (TraceOn) {
+        char src[TRACE_MSG_SZ];
+        char dst[TRACE_MSG_SZ];
+        fprintf(TraceFile, "\tdst:%s src:%s\n", IpToS(iphdr->dst, dst),
+                IpToS(iphdr->src, src));
+    }
+}
+
+
+/* Show destination and source port from Tcp Hdr for packet Trace */
+static void TraceTcp(TcpHdr* tcphdr)
+{
+    if (TraceOn) {
+        fprintf(TraceFile, "\tdstPort:%u srcPort:%u\n", ntohs(tcphdr->dstPort),
+                ntohs(tcphdr->srcPort));
+    }
+}
+
+
+/* Show sequence and payload length for Trace */
+static void TraceSequence(word32 seq, int len)
+{
+    if (TraceOn) {
+        fprintf(TraceFile, "\tSequence:%u, payload length:%d\n", seq, len);
+    }
+}
+
+
+/* Show relative expected and relative received sequences */
+static void TraceRelativeSequence(word32 expected, word32 got)
+{
+    if (TraceOn) {
+        fprintf(TraceFile, "\tExpected sequence:%u, received sequence:%u\n",
+                expected, got);
+    }
+}
+
+
+/* Show server sequence startup from SYN */
+static void TraceServerSyn(word32 seq)
+{
+    if (TraceOn) {
+        fprintf(TraceFile, "\tServer SYN, Sequence Start:%u\n", seq);
+    }
+}
+
+
+/* Show client sequence startup from SYN */
+static void TraceClientSyn(word32 seq)
+{
+    if (TraceOn) {
+        fprintf(TraceFile, "\tClient SYN, Sequence Start:%u\n", seq);
+    }
+}
+
+
+/* Show client FIN capture */
+static void TraceClientFin(word32 finSeq, word32 relSeq)
+{
+    if (TraceOn) {
+        fprintf(TraceFile, "\tClient FIN capture:%u, current SEQ:%u\n",
+                finSeq, relSeq);
+    }
+}
+
+
+/* Show server FIN capture */
+static void TraceServerFin(word32 finSeq, word32 relSeq)
+{
+    if (TraceOn) {
+        fprintf(TraceFile, "\tServer FIN capture:%u, current SEQ:%u\n",
+                finSeq, relSeq);
+    }
+}
+
+
+/* Show number of SSL data bytes decoded, could be 0 (ok) */
+static void TraceGotData(int bytes)
+{
+    if (TraceOn) {
+        fprintf(TraceFile, "\t%d bytes of SSL App data processed\n", bytes);
+    }
+}
+
+
+/* Show bytes added to old SSL App data */
+static void TraceAddedData(int newBytes, int existingBytes)
+{
+    if (TraceOn) {
+        fprintf(TraceFile,
+                "\t%d bytes added to %d exisiting bytes in User Buffer\n",
+                newBytes, existingBytes);
+    }
+}
+
+
+/* Show Stale Session */
+static void TraceStaleSession(void)
+{
+    if (TraceOn) {
+        fprintf(TraceFile, "\tFound a stale session\n");
+    }
+}
+
+
+/* Show Finding Stale Sessions */
+static void TraceFindingStale(void)
+{
+    if (TraceOn) {
+        fprintf(TraceFile, "\tTrying to find Stale Sessions\n");
+    }
+}
+
+
+/* Show Removed Session */
+static void TraceRemovedSession(void)
+{
+    if (TraceOn) {
+        fprintf(TraceFile, "\tRemoved it\n");
+    }
+}
+
+
+/* Set user error string */
+static void SetError(int idx, char* error, SnifferSession* session, int fatal)
+{
+    GetError(idx, error);
+    Trace(idx);
+    if (session && fatal == FATAL_ERROR_STATE)
+        session->flags.fatalError = 1;
+}
+
+
+/* See if this IPV4 network order address has been registered */
+/* return 1 is true, 0 is false */
+static int IsServerRegistered(word32 addr)
+{
+    int ret = 0;     /* false */
+    SnifferServer* sniffer;
+
+    LockMutex(&ServerListMutex);
+    
+    sniffer = ServerList;
+    while (sniffer) {
+        if (sniffer->server == addr) {
+            ret = 1;
+            break;
+        }
+        sniffer = sniffer->next;
+    }
+    
+    UnLockMutex(&ServerListMutex);
+
+    return ret;
+}
+
+
+/* See if this port has been registered to watch */
+/* return 1 is true, 0 is false */
+static int IsPortRegistered(word32 port)
+{
+    int ret = 0;    /* false */
+    SnifferServer* sniffer;
+    
+    LockMutex(&ServerListMutex);
+    
+    sniffer = ServerList;
+    while (sniffer) {
+        if (sniffer->port == (int)port) {
+            ret = 1; 
+            break;
+        }
+        sniffer = sniffer->next;
+    }
+    
+    UnLockMutex(&ServerListMutex);
+
+    return ret;
+}
+
+
+/* Get SnifferServer from IP and Port */
+static SnifferServer* GetSnifferServer(IpInfo* ipInfo, TcpInfo* tcpInfo)
+{
+    SnifferServer* sniffer;
+    
+    LockMutex(&ServerListMutex);
+    
+    sniffer = ServerList;
+    while (sniffer) {
+        if (sniffer->port == tcpInfo->srcPort && sniffer->server == ipInfo->src)
+            break;
+        if (sniffer->port == tcpInfo->dstPort && sniffer->server == ipInfo->dst)
+            break;
+        sniffer = sniffer->next;
+    }
+    
+    UnLockMutex(&ServerListMutex);
+    
+    return sniffer;
+}
+
+
+/* Hash the Session Info, return hash row */
+static word32 SessionHash(IpInfo* ipInfo, TcpInfo* tcpInfo)
+{
+    word32 hash = ipInfo->src * ipInfo->dst;
+    hash *= tcpInfo->srcPort * tcpInfo->dstPort;
+    
+    return hash % HASH_SIZE;
+}
+
+
+/* Get Exisiting SnifferSession from IP and Port */
+static SnifferSession* GetSnifferSession(IpInfo* ipInfo, TcpInfo* tcpInfo)
+{
+    SnifferSession* session;
+    
+    word32 row = SessionHash(ipInfo, tcpInfo);
+    assert(row >= 0 && row <= HASH_SIZE);
+    
+    LockMutex(&SessionMutex);
+    
+    session = SessionTable[row];
+    while (session) {
+        if (session->server == ipInfo->src && session->client == ipInfo->dst &&
+                    session->srvPort == tcpInfo->srcPort &&
+                    session->cliPort == tcpInfo->dstPort)
+            break;
+        if (session->client == ipInfo->src && session->server == ipInfo->dst &&
+                    session->cliPort == tcpInfo->srcPort &&
+                    session->srvPort == tcpInfo->dstPort)
+            break;
+        
+        session = session->next;
+    }
+    
+    UnLockMutex(&SessionMutex);
+    
+    /* determine side */
+    if (session) {
+        if (ipInfo->dst == session->context->server &&
+            tcpInfo->dstPort == session->context->port)
+            session->flags.side = SERVER_END;
+        else
+            session->flags.side = CLIENT_END;
+    }    
+    
+    return session;
+}
+
+
+/* Sets the private key for a specific server and port  */
+/* returns 0 on success, -1 on error */
+int ssl_SetPrivateKey(const char* serverAddress, int port, const char* keyFile,
+                      int typeKey, const char* password, char* error)
+{
+    int            ret;
+    int            type = (typeKey == FILETYPE_PEM) ? SSL_FILETYPE_PEM :
+                                                      SSL_FILETYPE_ASN1;
+    SnifferServer* sniffer;
+    
+    TraceHeader();
+    TraceSetServer(serverAddress, port, keyFile);
+
+    sniffer = (SnifferServer*)malloc(sizeof(SnifferServer));
+    if (sniffer == NULL) {
+        SetError(MEMORY_STR, error, NULL, 0);
+        return -1;
+    }
+    InitSnifferServer(sniffer);
+
+    XSTRNCPY(sniffer->address, serverAddress, MAX_SERVER_ADDRESS);
+    sniffer->server = inet_addr(sniffer->address);
+    sniffer->port = port;
+    
+    /* start in client mode since SSL_new needs a cert for server */
+    sniffer->ctx = SSL_CTX_new(SSLv3_client_method());
+    if (!sniffer->ctx) {
+        SetError(MEMORY_STR, error, NULL, 0);
+        FreeSnifferServer(sniffer);
+        return -1;
+    }
+
+    if (password){
+        SSL_CTX_set_default_passwd_cb(sniffer->ctx, SetPassword);
+        SSL_CTX_set_default_passwd_cb_userdata(sniffer->ctx, (void*)password);
+    }
+    ret = SSL_CTX_use_PrivateKey_file(sniffer->ctx, keyFile, type);
+    if (ret != SSL_SUCCESS) {
+        SetError(KEY_FILE_STR, error, NULL, 0);
+        FreeSnifferServer(sniffer);
+        return -1;
+    }
+    Trace(NEW_SERVER_STR);
+    
+    LockMutex(&ServerListMutex);
+    
+    sniffer->next = ServerList;
+    ServerList = sniffer;
+    
+    UnLockMutex(&ServerListMutex);
+    
+    return 0;
+}
+
+
+/* Check IP Header for IPV4, TCP, and a registered server address */
+/* returns 0 on success, -1 on error */
+static int CheckIpHdr(IpHdr* iphdr, IpInfo* info, char* error)
+{
+    int    version = IP_V(iphdr);
+
+    TraceIP(iphdr);
+    Trace(IP_CHECK_STR);
+    if (version != IPV4) {
+        SetError(BAD_IPVER_STR, error, NULL, 0); 
+        return -1;
+    }
+
+    if (iphdr->protocol != TCP_PROTOCOL) { 
+        SetError(BAD_PROTO_STR, error, NULL, 0);
+        return -1;
+    }
+
+    if (!IsServerRegistered(iphdr->src) && !IsServerRegistered(iphdr->dst)) {
+        SetError(SERVER_NOT_REG_STR, error, NULL, 0);
+        return -1;
+    }
+
+    info->length  = IP_HL(iphdr);
+    info->total   = ntohs(iphdr->length);
+    info->src     = iphdr->src;
+    info->dst     = iphdr->dst;
+
+    return 0;
+}
+
+
+/* Check TCP Header for a registered port */
+/* returns 0 on success, -1 on error */
+static int CheckTcpHdr(TcpHdr* tcphdr, TcpInfo* info, char* error)
+{
+    TraceTcp(tcphdr);
+    Trace(TCP_CHECK_STR);
+    info->srcPort   = ntohs(tcphdr->srcPort);
+    info->dstPort   = ntohs(tcphdr->dstPort);
+    info->length    = TCP_LEN(tcphdr);
+    info->sequence  = ntohl(tcphdr->sequence);
+    info->fin       = tcphdr->flags & TCP_FIN;
+    info->rst       = tcphdr->flags & TCP_RST;
+    info->syn       = tcphdr->flags & TCP_SYN;
+    info->ack       = tcphdr->flags & TCP_ACK;
+
+    if (!IsPortRegistered(info->srcPort) && !IsPortRegistered(info->dstPort)) {
+        SetError(SERVER_PORT_NOT_REG_STR, error, NULL, 0);
+        return -1;
+    }
+
+    return 0;
+}
+
+
+/* Decode Record Layer Header */
+static int GetRecordHeader(const byte* input, RecordLayerHeader* rh, int* size)
+{
+    XMEMCPY(rh, input, RECORD_HEADER_SZ);
+    *size = (rh->length[0] << 8) | rh->length[1];
+
+    if (*size > (RECORD_SIZE + MAX_COMP_EXTRA + MAX_MSG_EXTRA))
+        return LENGTH_ERROR;
+
+    return 0;
+}
+
+
+/* Process Client Key Exchange, RSA only */
+static int ProcessClientKeyExchange(const byte* input, int* sslBytes,
+                                    SnifferSession* session, char* error)
+{
+    word32 idx = 0;
+    RsaKey key;
+    int    ret;
+
+    InitRsaKey(&key, 0);
+   
+    ret = RsaPrivateKeyDecode(session->context->ctx->privateKey.buffer,
+                          &idx, &key, session->context->ctx->privateKey.length);
+    if (ret == 0) {
+        int length = RsaEncryptSize(&key);
+        
+        if (IsTLS(session->sslServer)) 
+            input += 2;     /* tls pre length */
+       
+        if (length > *sslBytes) { 
+            SetError(PARTIAL_INPUT_STR, error, session, FATAL_ERROR_STATE);
+            FreeRsaKey(&key);
+            return -1;
+        }
+        ret = RsaPrivateDecrypt(input, length, 
+                  session->sslServer->arrays.preMasterSecret, SECRET_LEN, &key);
+        
+        if (ret != SECRET_LEN) {
+            SetError(RSA_DECRYPT_STR, error, session, FATAL_ERROR_STATE);
+            FreeRsaKey(&key);
+            return -1;
+        }
+        ret = 0;  /* not in error state */
+        session->sslServer->arrays.preMasterSz = SECRET_LEN;
+        
+        /* store for client side as well */
+        XMEMCPY(session->sslClient->arrays.preMasterSecret,
+               session->sslServer->arrays.preMasterSecret, SECRET_LEN);
+        session->sslClient->arrays.preMasterSz = SECRET_LEN;
+        
+        #ifdef SHOW_SECRETS
+        {
+            int i;
+            printf("pre master secret: ");
+            for (i = 0; i < SECRET_LEN; i++)
+                printf("%02x", session->sslServer->arrays.preMasterSecret[i]);
+            printf("\n");
+        }
+        #endif
+    }
+    else {
+        SetError(RSA_DECODE_STR, error, session, FATAL_ERROR_STATE);
+        FreeRsaKey(&key);
+        return -1;
+    }
+    
+    if (SetCipherSpecs(session->sslServer) != 0) {
+        SetError(BAD_CIPHER_SPEC_STR, error, session, FATAL_ERROR_STATE);
+        FreeRsaKey(&key);
+        return -1;
+    }
+   
+    if (SetCipherSpecs(session->sslClient) != 0) {
+        SetError(BAD_CIPHER_SPEC_STR, error, session, FATAL_ERROR_STATE);
+        FreeRsaKey(&key);
+        return -1;
+    }
+    
+    MakeMasterSecret(session->sslServer);
+    MakeMasterSecret(session->sslClient);
+#ifdef SHOW_SECRETS
+    {
+        int i;
+        printf("server master secret: ");
+        for (i = 0; i < SECRET_LEN; i++)
+            printf("%02x", session->sslServer->arrays.masterSecret[i]);
+        printf("\n");
+        
+        printf("client master secret: ");
+        for (i = 0; i < SECRET_LEN; i++)
+            printf("%02x", session->sslClient->arrays.masterSecret[i]);
+        printf("\n");
+
+        printf("server suite = %d\n", session->sslServer->options.cipherSuite);
+        printf("client suite = %d\n", session->sslClient->options.cipherSuite);
+    }
+#endif   
+    
+    FreeRsaKey(&key);
+    return ret;
+}
+
+
+/* Process Server Hello */
+static int ProcessServerHello(const byte* input, int* sslBytes,
+                              SnifferSession* session, char* error)
+{
+    ProtocolVersion pv;
+    byte            b;
+    int             toRead = sizeof(ProtocolVersion) + RAN_LEN + ENUM_LEN;
+    
+    /* make sure we didn't miss ClientHello */
+    if (session->flags.clientHello == 0) {
+        SetError(MISSED_CLIENT_HELLO_STR, error, session, FATAL_ERROR_STATE);
+        return -1;
+    }
+
+    /* make sure can read through session len */
+    if (toRead > *sslBytes) {
+        SetError(SERVER_HELLO_INPUT_STR, error, session, FATAL_ERROR_STATE);
+        return -1;
+    }
+    
+    XMEMCPY(&pv, input, sizeof(ProtocolVersion));
+    input     += sizeof(ProtocolVersion);
+    *sslBytes -= sizeof(ProtocolVersion);
+           
+    session->sslServer->version = pv;
+    session->sslClient->version = pv;
+           
+    XMEMCPY(session->sslServer->arrays.serverRandom, input, RAN_LEN);
+    XMEMCPY(session->sslClient->arrays.serverRandom, input, RAN_LEN);
+    input    += RAN_LEN;
+    *sslBytes -= RAN_LEN;
+    
+    b = *input++;
+    *sslBytes -= 1;
+    
+    /* make sure can read through compression */
+    if ( (b + SUITE_LEN + ENUM_LEN) > *sslBytes) {
+        SetError(SERVER_HELLO_INPUT_STR, error, session, FATAL_ERROR_STATE);
+        return -1;
+    }
+    XMEMCPY(session->sslServer->arrays.sessionID, input, ID_LEN);
+    input     += b;
+    *sslBytes -= b;
+    
+    (void)*input++;  /* eat first byte, always 0 */
+    b = *input++;
+    session->sslServer->options.cipherSuite = b;
+    session->sslClient->options.cipherSuite = b;
+    *sslBytes -= SUITE_LEN;
+    
+    if (XMEMCMP(session->sslServer->arrays.sessionID,
+               session->sslClient->arrays.sessionID, ID_LEN) == 0) {
+        /* resuming */
+        SSL_SESSION* resume = GetSession(session->sslServer,
+                                       session->sslServer->arrays.masterSecret);
+        if (resume == NULL) {
+            SetError(BAD_SESSION_RESUME_STR, error, session, FATAL_ERROR_STATE);
+            return -1;
+        }
+        /* make sure client has master secret too */
+        XMEMCPY(session->sslClient->arrays.masterSecret,
+               session->sslServer->arrays.masterSecret, SECRET_LEN);
+        session->flags.resuming = 1;
+        
+        Trace(SERVER_DID_RESUMPTION_STR);
+        if (SetCipherSpecs(session->sslServer) != 0) {
+            SetError(BAD_CIPHER_SPEC_STR, error, session, FATAL_ERROR_STATE);
+            return -1;
+        }
+        
+        if (SetCipherSpecs(session->sslClient) != 0) {
+            SetError(BAD_CIPHER_SPEC_STR, error, session, FATAL_ERROR_STATE);
+            return -1;
+        }
+        
+        if (session->sslServer->options.tls) {
+            DeriveTlsKeys(session->sslServer);
+            DeriveTlsKeys(session->sslClient);
+        }
+        else {
+            DeriveKeys(session->sslServer);
+            DeriveKeys(session->sslClient);
+        }
+    }
+#ifdef SHOW_SECRETS
+    {
+        int i;
+        printf("cipher suite = 0x%02x\n",
+               session->sslServer->options.cipherSuite);
+        printf("server random: ");
+        for (i = 0; i < RAN_LEN; i++)
+            printf("%02x", session->sslServer->arrays.serverRandom[i]);
+        printf("\n");
+    }
+#endif   
+    return 0;
+}
+
+
+/* Process normal Client Hello */
+static int ProcessClientHello(const byte* input, int* sslBytes, 
+                              SnifferSession* session, char* error)
+{
+    byte sessionLen;
+    int  toRead = sizeof(ProtocolVersion) + RAN_LEN + ENUM_LEN;
+    
+    session->flags.clientHello = 1;  /* don't process again */
+    
+    /* make sure can read up to session len */
+    if (toRead > *sslBytes) {
+        SetError(CLIENT_HELLO_INPUT_STR, error, session, FATAL_ERROR_STATE);
+        return -1;
+    }
+    
+    /* skip, get negotiated one from server hello */
+    input     += sizeof(ProtocolVersion);
+    *sslBytes -= sizeof(ProtocolVersion);
+    
+    XMEMCPY(session->sslServer->arrays.clientRandom, input, RAN_LEN);
+    XMEMCPY(session->sslClient->arrays.clientRandom, input, RAN_LEN);
+    
+    input     += RAN_LEN;
+    *sslBytes -= RAN_LEN;
+    
+    /* store session in case trying to resume */
+    sessionLen = *input++;
+    if (sessionLen) {
+        if (ID_LEN > *sslBytes) {
+            SetError(CLIENT_HELLO_INPUT_STR, error, session, FATAL_ERROR_STATE);
+            return -1;
+        }
+        Trace(CLIENT_RESUME_TRY_STR);
+        XMEMCPY(session->sslClient->arrays.sessionID, input, ID_LEN);
+    }
+#ifdef SHOW_SECRETS
+    {
+        int i;
+        printf("client random: ");
+        for (i = 0; i < RAN_LEN; i++)
+            printf("%02x", session->sslServer->arrays.clientRandom[i]);
+        printf("\n");
+    }
+#endif
+    
+    return 0;
+}
+
+
+/* Process HandShake input */
+static int DoHandShake(const byte* input, int* sslBytes,
+                       SnifferSession* session, char* error)
+{
+    byte type;
+    int  size;
+    int  ret = 0;
+    
+    if (*sslBytes < HANDSHAKE_HEADER_SZ) {
+        SetError(HANDSHAKE_INPUT_STR, error, session, FATAL_ERROR_STATE);
+        return -1;
+    }
+    type = input[0];
+    size = (input[1] << 16) | (input[2] << 8) | input[3];
+    
+    input     += HANDSHAKE_HEADER_SZ;
+    *sslBytes -= HANDSHAKE_HEADER_SZ;
+    
+    if (*sslBytes < size) {
+        SetError(HANDSHAKE_INPUT_STR, error, session, FATAL_ERROR_STATE);
+        return -1;
+    }
+    
+    switch (type) {
+        case hello_verify_request:
+            Trace(GOT_HELLO_VERIFY_STR);
+            break;
+        case server_hello:
+            Trace(GOT_SERVER_HELLO_STR);
+            ret = ProcessServerHello(input, sslBytes, session, error);
+            break;
+        case certificate_request:
+            Trace(GOT_CERT_REQ_STR);
+            break;
+        case server_key_exchange:
+            Trace(GOT_SERVER_KEY_EX_STR);
+            break;
+        case certificate:
+            Trace(GOT_CERT_STR);
+            break;
+        case server_hello_done:
+            Trace(GOT_SERVER_HELLO_DONE_STR);
+            break;
+        case finished:
+            Trace(GOT_FINISHED_STR);
+            {
+                SSL*   ssl;
+                word32 inOutIdx = 0;
+                
+                if (session->flags.side == SERVER_END)
+                    ssl = session->sslServer;
+                else
+                    ssl = session->sslClient;
+                ret = DoFinished(ssl, input, &inOutIdx, SNIFF);
+                
+                if (ret == 0 && session->flags.cached == 0) {
+                    AddSession(session->sslServer);
+                    session->flags.cached = 1;
+                }
+            }
+            break;
+        case client_hello:
+            Trace(GOT_CLIENT_HELLO_STR);
+            ret = ProcessClientHello(input, sslBytes, session, error);
+            break;
+        case client_key_exchange:
+            Trace(GOT_CLIENT_KEY_EX_STR);
+            ret = ProcessClientKeyExchange(input, sslBytes, session, error);
+            break;
+        case certificate_verify:
+            Trace(GOT_CERT_VER_STR);
+            break;
+        default:
+            SetError(GOT_UNKNOWN_HANDSHAKE_STR, error, session, 0);
+            return -1;
+    }   
+
+    return ret;
+}
+
+
+/* Decrypt input into plain output */
+static void Decrypt(SSL* ssl, byte* output, const byte* input, word32 sz)
+{
+    switch (ssl->specs.bulk_cipher_algorithm) {
+        #ifdef BUILD_ARC4
+        case rc4:
+            Arc4Process(&ssl->decrypt.arc4, output, input, sz);
+            break;
+        #endif
+            
+        #ifdef BUILD_DES3
+        case triple_des:
+            Des3_CbcDecrypt(&ssl->decrypt.des3, output, input, sz);
+            break;
+        #endif
+            
+        #ifdef BUILD_AES
+        case aes:
+            AesCbcDecrypt(&ssl->decrypt.aes, output, input, sz);
+            break;
+        #endif
+            
+        #ifdef HAVE_HC128
+        case hc128:
+            Hc128_Process(&ssl->decrypt.hc128, output, input, sz);
+            break;
+        #endif
+            
+        #ifdef BUILD_RABBIT
+        case rabbit:
+            RabbitProcess(&ssl->decrypt.rabbit, output, input, sz);
+            break;
+        #endif
+    }
+}
+
+
+/* Decrypt input message into output, adjust output steam if needed */
+static const byte* DecryptMessage(SSL* ssl, const byte* input, word32 sz,
+                                  byte* output)
+{
+    Decrypt(ssl, output, input, sz);
+    ssl->keys.encryptSz = sz;
+    if (ssl->options.tls1_1 && ssl->specs.cipher_type == block)
+        return output + ssl->specs.block_size;     /* go past TLSv1.1 IV */
+    
+    return output;
+}
+
+
+/* remove session from table, use rowHint if no info (means we have a lock) */
+static void RemoveSession(SnifferSession* session, IpInfo* ipInfo,
+                        TcpInfo* tcpInfo, word32 rowHint)
+{
+    SnifferSession* previous = 0;
+    SnifferSession* current;
+    word32          row = rowHint;
+    int             haveLock = 0;
+   
+    if (ipInfo && tcpInfo)
+        row = SessionHash(ipInfo, tcpInfo);
+    else
+        haveLock = 1;
+    
+    assert(row >= 0 && row <= HASH_SIZE);
+    Trace(REMOVE_SESSION_STR);
+    
+    if (!haveLock)
+        LockMutex(&SessionMutex);
+    
+    current = SessionTable[row];
+    
+    while (current) {
+        if (current == session) {
+            if (previous)
+                previous->next = current->next;
+            else
+                SessionTable[row] = current->next;
+            FreeSnifferSession(session);
+            TraceRemovedSession();
+            break;
+        }
+        previous = current;
+        current  = current->next;
+    }
+    
+    if (!haveLock)
+        UnLockMutex(&SessionMutex);
+}
+
+
+/* Remove stale sessions from the Session Table, have a lock */
+static void RemoveStaleSessions(void)
+{
+    word32 i;
+    SnifferSession* session;
+    
+    for (i = 0; i < HASH_SIZE; i++) {
+        session = SessionTable[i];
+        while (session) {
+            SnifferSession* next = session->next; 
+            if (time(NULL) >= session->bornOn + SNIFFER_TIMEOUT) {
+                TraceStaleSession();
+                RemoveSession(session, NULL, NULL, i);
+            }
+            session = next;
+        }
+    }
+}
+
+
+/* Create a new Sniffer Session */
+static SnifferSession* CreateSession(IpInfo* ipInfo, TcpInfo* tcpInfo,
+                                     char* error)
+{
+    SnifferSession* session = 0;
+    int row;
+        
+    Trace(NEW_SESSION_STR);
+    /* create a new one */
+    session = (SnifferSession*)malloc(sizeof(SnifferSession));
+    if (session == NULL) {
+        SetError(MEMORY_STR, error, NULL, 0);
+        return 0;
+    }
+    InitSession(session);
+    session->server  = ipInfo->dst;
+    session->client  = ipInfo->src;
+    session->srvPort = tcpInfo->dstPort;
+    session->cliPort = tcpInfo->srcPort;
+    session->cliSeqStart = tcpInfo->sequence;
+    session->cliExpected = 1;  /* relative */
+    session->bornOn = time(NULL);
+                
+    session->context = GetSnifferServer(ipInfo, tcpInfo);
+    if (session->context == NULL) {
+        SetError(SERVER_NOT_REG_STR, error, NULL, 0);
+        free(session);
+        return 0;
+    }
+        
+    session->sslServer = SSL_new(session->context->ctx);
+    session->sslClient = SSL_new(session->context->ctx);
+    if (session->sslClient == NULL) {
+        if (session->sslServer) {
+            SSL_free(session->sslClient);
+            session->sslClient = 0;
+        }
+        SetError(BAD_NEW_SSL_STR, error, session, FATAL_ERROR_STATE);
+        free(session);
+        return 0;
+    }
+    /* put server back into server mode */
+    session->sslServer->options.side = SERVER_END;
+        
+    row = SessionHash(ipInfo, tcpInfo);
+    
+    /* add it to the session table */
+    LockMutex(&SessionMutex);
+        
+    session->next = SessionTable[row];
+    SessionTable[row] = session;
+    
+    SessionCount++;
+    
+    if ( (SessionCount % HASH_SIZE) == 0) {
+        TraceFindingStale();
+        RemoveStaleSessions();
+    }
+        
+    UnLockMutex(&SessionMutex);
+        
+    /* determine headed side */
+    if (ipInfo->dst == session->context->server &&
+        tcpInfo->dstPort == session->context->port)
+        session->flags.side = SERVER_END;
+    else
+        session->flags.side = CLIENT_END;        
+    
+    return session;
+}
+
+
+/* Process Old Client Hello Input */
+static int DoOldHello(SnifferSession* session, const byte* sslFrame,
+                      int* rhSize, int* sslBytes, char* error)
+{
+    const byte* input = sslFrame;
+    byte        b0, b1;
+    word32      idx = 0;
+    int         ret;
+
+    Trace(GOT_OLD_CLIENT_HELLO_STR);
+    session->flags.clientHello = 1;    /* don't process again */
+    b0 = *input++;
+    b1 = *input++;
+    *sslBytes -= 2;
+    *rhSize = ((b0 & 0x7f) << 8) | b1;
+
+    if (*rhSize > *sslBytes) {
+        SetError(OLD_CLIENT_INPUT_STR, error, session, FATAL_ERROR_STATE);
+        return -1;
+    }
+
+    ret = ProcessOldClientHello(session->sslServer, input, &idx, *sslBytes,
+                                *rhSize);    
+    if (ret < 0) {
+        SetError(BAD_OLD_CLIENT_STR, error, session, FATAL_ERROR_STATE);
+        return -1;
+    }
+    
+    Trace(OLD_CLIENT_OK_STR);
+    XMEMCPY(session->sslClient->arrays.clientRandom,
+           session->sslServer->arrays.clientRandom, RAN_LEN);
+    
+    *sslBytes -= *rhSize;
+    return 0;
+}
+
+
+#if 0
+/* Calculate the TCP checksum, see RFC 1071 */
+/* return 0 for success, -1 on error */
+/* can be called from decode() with
+   TcpChecksum(&ipInfo, &tcpInfo, sslBytes, packet + ipInfo.length);
+   could also add a 64bit version if type available and using this
+*/
+int TcpChecksum(IpInfo* ipInfo, TcpInfo* tcpInfo, int dataLen,
+                const byte* packet)
+{
+    TcpPseudoHdr  pseudo;
+    int           count = PSEUDO_HDR_SZ;
+    const word16* data = (word16*)&pseudo;
+    word32        sum = 0;
+    word16        checksum;
+    
+    pseudo.src = ipInfo->src;
+    pseudo.dst = ipInfo->dst;
+    pseudo.rsv = 0;
+    pseudo.protocol = TCP_PROTO;
+    pseudo.legnth = htons(tcpInfo->length + dataLen);
+    
+    /* pseudo header sum */
+    while (count >= 2) {
+        sum   += *data++;
+        count -= 2;
+    }
+    
+    count = tcpInfo->length + dataLen;
+    data = (word16*)packet;
+    
+    /* main sum */
+    while (count > 1) {
+        sum   += *data++;
+        count -=2;
+    }
+    
+    /* get left-over, if any */
+    packet = (byte*)data;
+    if (count > 0) {
+        sum += *packet;
+    }
+    
+    /* fold 32bit sum into 16 bits */
+    while (sum >> 16)
+        sum = (sum & 0xffff) + (sum >> 16);
+    
+    checksum = (word16)~sum;
+    /* checksum should now equal 0, since included already calcd checksum */
+    /* field, but tcp checksum offloading could negate calculation */
+    if (checksum == 0)
+        return 0;
+    return -1;
+}
+#endif
+
+
+/* Check IP and TCP headers, set payload */
+/* returns 0 on success, -1 on error */
+static int CheckHeaders(IpInfo* ipInfo, TcpInfo* tcpInfo, const byte* packet,
+                  int length, const byte** sslFrame, int* sslBytes, char* error)
+{
+    TraceHeader();
+    TracePacket();
+    if (length < IP_HDR_SZ) {
+        SetError(PACKET_HDR_SHORT_STR, error, NULL, 0);
+        return -1;
+    }
+    if (CheckIpHdr((IpHdr*)packet, ipInfo, error) != 0)
+        return -1;
+    
+    if (length < (ipInfo->length + TCP_HDR_SZ)) {
+        SetError(PACKET_HDR_SHORT_STR, error, NULL, 0);
+        return -1;
+    }
+    if (CheckTcpHdr((TcpHdr*)(packet + ipInfo->length), tcpInfo, error) != 0)
+        return -1;
+    
+    *sslFrame = packet + ipInfo->length + tcpInfo->length;
+    if (*sslFrame > packet + length) {
+        SetError(PACKET_HDR_SHORT_STR, error, NULL, 0);
+        return -1;
+    }
+    *sslBytes = packet + length - *sslFrame;
+    
+    return 0;
+}
+
+
+/* Create or Find existing session */
+/* returns 0 on success (continue), -1 on error, 1 on success (end) */
+static int CheckSession(IpInfo* ipInfo, TcpInfo* tcpInfo, int sslBytes,
+                        SnifferSession** session, char* error)
+{
+    /* create a new SnifferSession on client SYN */
+    if (tcpInfo->syn && !tcpInfo->ack) {
+        TraceClientSyn(tcpInfo->sequence);
+        *session = CreateSession(ipInfo, tcpInfo, error);
+        if (*session == NULL) {
+            *session = GetSnifferSession(ipInfo, tcpInfo);
+            /* already had exisiting, so OK */
+            if (*session)
+                return 1;
+            
+            SetError(MEMORY_STR, error, NULL, 0);
+            return -1;
+        }
+        return 1;
+    }
+    /* get existing sniffer session */
+    else {
+        *session = GetSnifferSession(ipInfo, tcpInfo);
+        if (*session == NULL) {
+            /* don't worry about extraneous RST or duplicate FINs */
+            if (tcpInfo->fin || tcpInfo->rst)
+                return 1;
+            /* don't worry about duplicate ACKs either */
+            if (sslBytes == 0 && tcpInfo->ack)
+                return 1;
+            
+            SetError(BAD_SESSION_STR, error, NULL, 0);
+            return -1;
+        }        
+    }
+    return 0;
+}
+
+
+#ifndef min
+
+static INLINE word32 min(word32 a, word32 b)
+{
+    return a > b ? b : a;
+}
+
+#endif
+
+
+/* Create a Packet Buffer from *begin - end, adjust new *begin and bytesLeft */
+static PacketBuffer* CreateBuffer(word32* begin, word32 end, const byte* data,
+                                  int* bytesLeft)
+{
+    PacketBuffer* pb;
+    
+    int added = end - *begin + 1;
+    assert(*begin <= end);
+    
+    pb = (PacketBuffer*)malloc(sizeof(PacketBuffer));
+    if (pb == NULL) return NULL;
+    
+    pb->next  = 0;
+    pb->begin = *begin;
+    pb->end   = end;
+    pb->data = (byte*)malloc(added);
+    
+    if (pb->data == NULL) {
+        free(pb);
+        return NULL;
+    }
+    XMEMCPY(pb->data, data, added);
+    
+    *bytesLeft -= added;
+    *begin      = pb->end + 1;
+    
+    return pb;
+}
+
+
+/* Add sslFrame to Reassembly List */
+/* returns 1 (end) on success, -1, on error */
+static int AddToReassembly(byte from, word32 seq, const byte* sslFrame,
+                           int sslBytes, SnifferSession* session, char* error)
+{
+    PacketBuffer*  add;
+    PacketBuffer** front = (from == SERVER_END) ? &session->cliReassemblyList:
+                                                  &session->srvReassemblyList;
+    PacketBuffer*  curr = *front;
+    PacketBuffer*  prev = curr;
+    
+    word32  startSeq = seq;
+    word32  added;
+    int     bytesLeft = sslBytes;  /* could be overlapping fragment */
+
+    /* if list is empty add full frame to front */
+    if (!curr) {
+        add = CreateBuffer(&seq, seq + sslBytes - 1, sslFrame, &bytesLeft);
+        if (add == NULL) {
+            SetError(MEMORY_STR, error, session, FATAL_ERROR_STATE);
+            return -1;
+        }
+        *front = add;
+        return 1;
+    }
+    
+    /* add to front if before current front, up to next->begin */
+    if (seq < curr->begin) {
+        word32 end = seq + sslBytes - 1;
+        
+        if (end >= curr->begin)
+            end = curr->begin - 1;
+        
+        add = CreateBuffer(&seq, end, sslFrame, &bytesLeft);
+        if (add == NULL) {
+            SetError(MEMORY_STR, error, session, FATAL_ERROR_STATE);
+            return -1;
+        }
+        add->next = curr;
+        *front = add;
+    }
+    
+    /* while we have bytes left, try to find a gap to fill */
+    while (bytesLeft > 0) {
+        /* get previous packet in list */
+        while (curr && (seq >= curr->begin)) {
+            prev = curr;
+            curr = curr->next;
+        }
+        
+        /* don't add  duplicate data */
+        if (prev->end >= seq) {
+            if ( (seq + bytesLeft - 1) <= prev->end)
+                return 1;
+            seq = prev->end + 1;
+            bytesLeft = startSeq + sslBytes - seq;
+        }
+        
+        if (!curr)
+            /* we're at the end */
+            added = bytesLeft;
+        else 
+            /* we're in between two frames */
+            added = min((word32)bytesLeft, curr->begin - seq);
+        
+        /* data already there */
+        if (added == 0)
+            continue;
+        
+        add = CreateBuffer(&seq, seq + added - 1, &sslFrame[seq - startSeq],
+                           &bytesLeft);
+        if (add == NULL) {
+            SetError(MEMORY_STR, error, session, FATAL_ERROR_STATE);
+            return -1;
+        }
+        add->next  = prev->next;
+        prev->next = add;
+    }
+    return 1;
+}
+
+
+/* Add out of order FIN capture */
+/* returns 1 for success (end) */
+static int AddFinCapture(SnifferSession* session, word32 sequence)
+{
+    if (session->flags.side == SERVER_END) {
+        if (session->finCaputre.cliCounted == 0)
+            session->finCaputre.cliFinSeq = sequence;
+    }
+    else {
+        if (session->finCaputre.srvCounted == 0)
+            session->finCaputre.srvFinSeq = sequence;
+    }
+    return 1;
+}
+
+
+/* Adjust incoming sequence based on side */
+/* returns 0 on success (continue), -1 on error, 1 on success (end) */
+static int AdjustSequence(TcpInfo* tcpInfo, SnifferSession* session,
+                          int* sslBytes, const byte** sslFrame, char* error)
+{
+    word32  seqStart = (session->flags.side == SERVER_END) ? 
+                                     session->cliSeqStart :session->srvSeqStart;
+    word32  real     = tcpInfo->sequence - seqStart;
+    word32* expected = (session->flags.side == SERVER_END) ?
+                                  &session->cliExpected : &session->srvExpected;
+    PacketBuffer* reassemblyList = (session->flags.side == SERVER_END) ?
+                        session->cliReassemblyList : session->srvReassemblyList;
+    
+    /* handle rollover of sequence */
+    if (tcpInfo->sequence < seqStart)
+        real = 0xffffffffU - seqStart + tcpInfo->sequence;
+        
+    TraceRelativeSequence(*expected, real);
+    
+    if (real < *expected) {
+        Trace(DUPLICATE_STR);
+        if (real + *sslBytes > *expected) {
+            int overlap = *expected - real;
+            Trace(OVERLAP_DUPLICATE_STR);
+                
+            /* adjust to expected, remove duplicate */
+            *sslFrame += overlap;
+            *sslBytes -= overlap;
+                
+            if (reassemblyList) {
+                word32 newEnd = *expected + *sslBytes;
+                    
+                if (newEnd > reassemblyList->begin) {
+                    Trace(OVERLAP_REASSEMBLY_BEGIN_STR);
+                    
+                    /* remove bytes already on reassembly list */
+                    *sslBytes -= newEnd - reassemblyList->begin;
+                }
+                if (newEnd > reassemblyList->end) {
+                    Trace(OVERLAP_REASSEMBLY_END_STR);
+                    
+                    /* may be past reassembly list end (could have more on list)
+                       so try to add what's past the front->end */
+                    AddToReassembly(session->flags.side, reassemblyList->end +1,
+                                *sslFrame + reassemblyList->end - *expected + 1,
+                                 newEnd - reassemblyList->end, session, error);
+                }
+            }
+        }
+        else
+            return 1;
+    }
+    else if (real > *expected) {
+        Trace(OUT_OF_ORDER_STR);
+        if (*sslBytes > 0)
+            return AddToReassembly(session->flags.side, real, *sslFrame,
+                                   *sslBytes, session, error);
+        else if (tcpInfo->fin)
+            return AddFinCapture(session, real);
+    }
+    /* got expected sequence */
+    *expected += *sslBytes;
+    if (tcpInfo->fin)
+        *expected += 1;
+    
+    return 0;
+}
+
+
+/* Check TCP Sequence status */
+/* returns 0 on success (continue), -1 on error, 1 on success (end) */
+static int CheckSequence(IpInfo* ipInfo, TcpInfo* tcpInfo,
+                         SnifferSession* session, int* sslBytes,
+                         const byte** sslFrame, char* error)
+{
+    int actualLen;
+    
+    /* init SEQ from server to client */
+    if (tcpInfo->syn && tcpInfo->ack) {
+        session->srvSeqStart = tcpInfo->sequence;
+        session->srvExpected = 1;
+        TraceServerSyn(tcpInfo->sequence);
+        return 1;
+    }
+    
+    /* adjust potential ethernet trailer */
+    actualLen = ipInfo->total - ipInfo->length - tcpInfo->length;
+    if (*sslBytes > actualLen) {
+        *sslBytes = actualLen;
+    }
+    
+    TraceSequence(tcpInfo->sequence, *sslBytes);
+    
+    return AdjustSequence(tcpInfo, session, sslBytes, sslFrame, error);    
+}
+
+
+/* Check Status before record processing */
+/* returns 0 on success (continue), -1 on error, 1 on success (end) */
+static int CheckPreRecord(IpInfo* ipInfo, TcpInfo* tcpInfo,
+                          const byte** sslFrame, SnifferSession* session,
+                          int* sslBytes, const byte** end, char* error)
+{
+    word32 length;
+    SSL*   ssl = (session->flags.side == SERVER_END) ? session->sslServer :
+                                                       session->sslClient;
+    /* remove SnifferSession on 2nd FIN or RST */
+    if (tcpInfo->fin || tcpInfo->rst) {
+        /* flag FIN and RST */
+        if (tcpInfo->fin)
+            session->flags.finCount += 1;
+        else if (tcpInfo->rst)
+            session->flags.finCount += 2;
+        
+        if (session->flags.finCount >= 2) {
+            RemoveSession(session, ipInfo, tcpInfo, 0);
+            return 1;
+        }
+    }
+    
+    if (session->flags.fatalError == FATAL_ERROR_STATE) {
+        SetError(FATAL_ERROR_STR, error, NULL, 0);
+        return -1;
+    }
+    
+    if (*sslBytes == 0) {
+        Trace(NO_DATA_STR);
+        return 1;
+    }
+    
+    /* if current partial data, add to end of partial */
+    if ( (length = ssl->buffers.inputBuffer.length) ) {
+        Trace(PARTIAL_ADD_STR);
+        
+        if ( (*sslBytes + length) > ssl->buffers.inputBuffer.bufferSize) {
+            SetError(BUFFER_ERROR_STR, error, session, FATAL_ERROR_STATE);
+            return -1;
+        }
+        XMEMCPY(&ssl->buffers.inputBuffer.buffer[length], *sslFrame, *sslBytes);
+        *sslBytes += length;
+        ssl->buffers.inputBuffer.length = *sslBytes;
+        *sslFrame = ssl->buffers.inputBuffer.buffer;
+        *end = *sslFrame + *sslBytes;
+    }
+    
+    if (session->flags.clientHello == 0 && **sslFrame != handshake) {
+        int rhSize;
+        int ret = DoOldHello(session, *sslFrame, &rhSize, sslBytes, error);
+        if (ret < 0)
+            return -1;  /* error already set */
+        if (*sslBytes <= 0)
+            return 1;
+    }
+    
+    return 0;
+}
+
+
+/* See if input on the reassembly list is ready for consuming */
+/* returns 1 for TRUE, 0 for FALSE */
+static int HaveMoreInput(SnifferSession* session, const byte** sslFrame,
+                         int* sslBytes, const byte** end)
+{
+    /* sequence and reassembly based on from, not to */
+    int            moreInput = 0;
+    PacketBuffer** front = (session->flags.side == SERVER_END) ?
+                      &session->cliReassemblyList : &session->srvReassemblyList;
+    word32*        expected = (session->flags.side == SERVER_END) ?
+                                  &session->cliExpected : &session->srvExpected;
+    /* buffer is on receiving end */
+    word32*        length = (session->flags.side == SERVER_END) ?
+                               &session->sslServer->buffers.inputBuffer.length :
+                               &session->sslClient->buffers.inputBuffer.length;
+    byte*          myBuffer = (session->flags.side == SERVER_END) ?
+                                session->sslServer->buffers.inputBuffer.buffer :
+                                session->sslClient->buffers.inputBuffer.buffer;
+    
+    while (*front && ((*front)->begin == *expected) ) {
+        word32 room = STATIC_BUFFER_LEN - *length;
+        word32 packetLen = (*front)->end - (*front)->begin + 1;
+        
+        if (packetLen <= room) {
+            PacketBuffer* del = *front;
+            
+            XMEMCPY(&myBuffer[*length], (*front)->data, packetLen);
+            *length   += packetLen;
+            *expected += packetLen;
+            
+            /* remove used packet */
+            *front = (*front)->next;
+            FreePacketBuffer(del);
+            
+            moreInput = 1;
+        }
+        else
+            break;
+    }
+    if (moreInput) {
+        *sslFrame = myBuffer;
+        *sslBytes = *length;
+        *end      = myBuffer + *length;
+    }
+    return moreInput;
+}
+                         
+
+
+/* Process Message(s) from sslFrame */
+/* return Number of bytes on success, 0 for no data yet, and -1 on error */
+static int ProcessMessage(const byte* sslFrame, SnifferSession* session,
+                          int sslBytes, byte* data, const byte* end,char* error)
+{
+    const byte*       sslBegin = sslFrame;
+    const byte*       tmp;
+    RecordLayerHeader rh;
+    int               rhSize;
+    int               ret;
+    int               decoded = 0;      /* bytes stored for user in data */
+    int               notEnough;        /* notEnough bytes yet flag */
+    SSL*              ssl = (session->flags.side == SERVER_END) ?
+                                        session->sslServer : session->sslClient;
+doMessage:
+    notEnough = 0;
+    if (sslBytes >= RECORD_HEADER_SZ) {
+        if (GetRecordHeader(sslFrame, &rh, &rhSize) != 0) {
+            SetError(BAD_RECORD_HDR_STR, error, session, FATAL_ERROR_STATE);
+            return -1;
+        }
+    }
+    else
+        notEnough = 1;
+
+    if (notEnough || rhSize > (sslBytes - RECORD_HEADER_SZ)) {
+        /* don't have enough input yet to process full SSL record */
+        Trace(PARTIAL_INPUT_STR);
+        
+        /* store partial if not there already or we advanced */
+        if (ssl->buffers.inputBuffer.length == 0 || sslBegin != sslFrame) {
+            if (sslBytes > (int)ssl->buffers.inputBuffer.bufferSize) {
+                SetError(BUFFER_ERROR_STR, error, session, FATAL_ERROR_STATE);
+                return -1;
+            }
+            XMEMCPY(ssl->buffers.inputBuffer.buffer, sslFrame, sslBytes);
+            ssl->buffers.inputBuffer.length = sslBytes;
+        }
+        if (HaveMoreInput(session, &sslFrame, &sslBytes, &end))
+            goto doMessage;
+        return decoded;
+    }
+    sslFrame += RECORD_HEADER_SZ;
+    sslBytes -= RECORD_HEADER_SZ;
+    tmp = sslFrame + rhSize;   /* may have more than one record to process */
+    
+    /* decrypt if needed */
+    if (session->flags.side == SERVER_END && session->flags.serverCipherOn)
+        sslFrame = DecryptMessage(ssl, sslFrame, rhSize,
+                                  ssl->buffers.outputBuffer.buffer);
+    else if (session->flags.side == CLIENT_END && session->flags.clientCipherOn)
+        sslFrame = DecryptMessage(ssl, sslFrame, rhSize,
+                                  ssl->buffers.outputBuffer.buffer);
+            
+    switch ((enum ContentType)rh.type) {
+        case handshake:
+            Trace(GOT_HANDSHAKE_STR);
+            ret = DoHandShake(sslFrame, &sslBytes, session, error);
+            if (ret != 0) {
+                if (session->flags.fatalError == 0)
+                    SetError(BAD_HANDSHAKE_STR,error,session,FATAL_ERROR_STATE);
+                return -1;
+            }
+            break;
+        case change_cipher_spec:
+            if (session->flags.side == SERVER_END)
+                session->flags.serverCipherOn = 1;
+            else
+                session->flags.clientCipherOn = 1;
+            Trace(GOT_CHANGE_CIPHER_STR);
+            break;
+        case application_data:
+            Trace(GOT_APP_DATA_STR);
+            {
+                word32 inOutIdx = 0;
+                    
+                ret = DoApplicationData(ssl, (byte*)sslFrame, &inOutIdx);
+                if (ret == 0) {
+                    ret = ssl->buffers.clearOutputBuffer.length;
+                    TraceGotData(ret);
+                    if (ret) {  /* may be blank message */
+                        XMEMCPY(&data[decoded],
+                               ssl->buffers.clearOutputBuffer.buffer, ret);
+                        TraceAddedData(ret, decoded);
+                        decoded += ret;
+                        ssl->buffers.clearOutputBuffer.length = 0;
+                    }
+                }
+                else {
+                    SetError(BAD_APP_DATA_STR, error,session,FATAL_ERROR_STATE);
+                    return -1;
+                }
+            }
+            break;
+        case alert:
+            Trace(GOT_ALERT_STR);
+            break;
+        case no_type:
+        default:
+            SetError(GOT_UNKNOWN_RECORD_STR, error, session, FATAL_ERROR_STATE);
+            return -1;
+    }
+    
+    if (tmp < end) {
+        Trace(ANOTHER_MSG_STR);
+        sslFrame = tmp;
+        sslBytes = end - tmp;
+        goto doMessage;
+    }
+    
+    /* clear used input */
+    ssl->buffers.inputBuffer.length = 0;
+    
+    /* could have more input ready now */
+    if (HaveMoreInput(session, &sslFrame, &sslBytes, &end))
+        goto doMessage;
+    
+    return decoded;
+}
+
+
+/* See if we need to process any pending FIN captures */
+static void CheckFinCapture(IpInfo* ipInfo, TcpInfo* tcpInfo, 
+                            SnifferSession* session)
+{
+    if (session->finCaputre.cliFinSeq && session->finCaputre.cliFinSeq <= 
+                                         session->cliExpected) {
+        if (session->finCaputre.cliCounted == 0) {
+            session->flags.finCount += 1;
+            session->finCaputre.cliCounted = 1;
+            TraceClientFin(session->finCaputre.cliFinSeq, session->cliExpected);
+        }
+    }
+        
+    if (session->finCaputre.srvFinSeq && session->finCaputre.srvFinSeq <= 
+                                         session->srvExpected) {
+        if (session->finCaputre.srvCounted == 0) {
+            session->flags.finCount += 1;
+            session->finCaputre.srvCounted = 1;
+            TraceServerFin(session->finCaputre.srvFinSeq, session->srvExpected);
+        }
+    }
+                
+    if (session->flags.finCount >= 2) 
+        RemoveSession(session, ipInfo, tcpInfo, 0);
+}
+
+
+/* Passes in an IP/TCP packet for decoding (ethernet/localhost frame) removed */
+/* returns Number of bytes on success, 0 for no data yet, and -1 on error */
+int ssl_DecodePacket(const byte* packet, int length, byte* data, char* error)
+{
+    TcpInfo           tcpInfo;
+    IpInfo            ipInfo;
+    const byte*       sslFrame;
+    const byte*       end = packet + length;
+    int               sslBytes;                /* ssl bytes unconsumed */
+    int               ret;
+    SnifferSession*   session = 0;
+
+    if (CheckHeaders(&ipInfo, &tcpInfo, packet, length, &sslFrame, &sslBytes,
+                     error) != 0)
+        return -1;
+    
+    ret = CheckSession(&ipInfo, &tcpInfo, sslBytes, &session, error);
+    if (ret == -1)     return -1;
+    else if (ret == 1) return  0;   /* done for now */
+    
+    ret = CheckSequence(&ipInfo, &tcpInfo, session, &sslBytes, &sslFrame,error);
+    if (ret == -1)     return -1;
+    else if (ret == 1) return  0;   /* done for now */
+    
+    ret = CheckPreRecord(&ipInfo, &tcpInfo, &sslFrame, session, &sslBytes,
+                         &end, error);
+    if (ret == -1)     return -1;
+    else if (ret == 1) return  0;   /* done for now */
+
+    ret = ProcessMessage(sslFrame, session, sslBytes, data, end, error);
+    CheckFinCapture(&ipInfo, &tcpInfo, session);
+    return ret;
+}
+
+
+/* Enables (if traceFile)/ Disables debug tracing */
+/* returns 0 on success, -1 on error */
+int ssl_Trace(const char* traceFile, char* error)
+{
+    if (traceFile) {
+        TraceFile = fopen(traceFile, "a");
+        if (!TraceFile) {
+            SetError(BAD_TRACE_FILE_STR, error, NULL, 0);
+            return -1;
+        }
+        TraceOn = 1;
+    }
+    else 
+        TraceOn = 0;
+
+    return 0;
+}
+
+
+
+
+#endif /* CYASSL_SNIFFER */
diff --git a/FreeRTOS-Plus/CyaSSL/src/ssl.c b/FreeRTOS-Plus/CyaSSL/src/ssl.c
new file mode 100644
index 000000000..143c413da
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/src/ssl.c
@@ -0,0 +1,7719 @@
+/* ssl.c
+ *
+ * Copyright (C) 2006-2012 Sawtooth Consulting Ltd.
+ *
+ * This file is part of CyaSSL.
+ *
+ * CyaSSL is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * CyaSSL is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifdef HAVE_CONFIG_H
+    #include 
+#endif
+
+#ifdef HAVE_ERRNO_H 
+    #include 
+#endif
+
+#define TRUE  1
+#define FALSE 0
+
+#include 
+#include 
+#include 
+#include 
+
+#if defined(OPENSSL_EXTRA) || defined(HAVE_WEBSERVER)
+    #include 
+#endif
+
+#ifdef OPENSSL_EXTRA
+    /* openssl headers begin */
+    #include 
+    #include 
+    #include 
+    #include 
+    #include 
+    #include 
+    #include 
+    /* openssl headers end, cyassl internal headers next */
+    #include 
+    #include 
+    #include 
+    #include 
+    #include 
+    #include 
+    #ifdef CYASSL_SHA512
+        #include 
+    #endif
+#endif
+
+#ifndef NO_FILESYSTEM
+    #if !defined(USE_WINDOWS_API) && !defined(NO_CYASSL_DIR)
+        #include 
+    #endif
+#endif /* NO_FILESYSTEM */
+
+
+#ifndef min
+
+    static INLINE word32 min(word32 a, word32 b)
+    {
+        return a > b ? b : a;
+    }
+
+#endif /* min */
+
+
+
+CYASSL_CTX* CyaSSL_CTX_new(CYASSL_METHOD* method)
+{
+    CYASSL_CTX* ctx = NULL;
+
+    CYASSL_ENTER("CYASSL_CTX_new");
+
+    if (method == NULL)
+        return ctx;
+
+    ctx = (CYASSL_CTX*) XMALLOC(sizeof(CYASSL_CTX), 0, DYNAMIC_TYPE_CTX);
+    if (ctx) {
+        if (InitSSL_Ctx(ctx, method) < 0) {
+            CYASSL_MSG("Init CTX failed");
+            CyaSSL_CTX_free(ctx);
+            ctx = NULL;
+        }
+    }
+
+    CYASSL_LEAVE("CYASSL_CTX_new", 0);
+    return ctx;
+}
+
+
+void CyaSSL_CTX_free(CYASSL_CTX* ctx)
+{
+    CYASSL_ENTER("SSL_CTX_free");
+    if (ctx)
+        FreeSSL_Ctx(ctx);
+    CYASSL_LEAVE("SSL_CTX_free", 0);
+}
+
+
+CYASSL* CyaSSL_new(CYASSL_CTX* ctx)
+{
+    CYASSL* ssl = NULL;
+
+    CYASSL_ENTER("SSL_new");
+
+    if (ctx == NULL)
+        return ssl;
+
+    ssl = (CYASSL*) XMALLOC(sizeof(CYASSL), ctx->heap,DYNAMIC_TYPE_SSL);
+    if (ssl)
+        if (InitSSL(ssl, ctx) < 0) {
+            FreeSSL(ssl);
+            ssl = 0;
+        }
+
+    CYASSL_LEAVE("SSL_new", 0);
+    return ssl;
+}
+
+
+void CyaSSL_free(CYASSL* ssl)
+{
+    CYASSL_ENTER("SSL_free");
+    if (ssl)
+        FreeSSL(ssl);
+    CYASSL_LEAVE("SSL_free", 0);
+}
+
+
+int CyaSSL_set_fd(CYASSL* ssl, int fd)
+{
+    CYASSL_ENTER("SSL_set_fd");
+    ssl->rfd = fd;      /* not used directly to allow IO callbacks */
+    ssl->wfd = fd;
+
+    ssl->IOCB_ReadCtx  = &ssl->rfd;
+    ssl->IOCB_WriteCtx = &ssl->wfd;
+
+    CYASSL_LEAVE("SSL_set_fd", SSL_SUCCESS);
+    return SSL_SUCCESS;
+}
+
+
+int CyaSSL_get_fd(const CYASSL* ssl)
+{
+    CYASSL_ENTER("SSL_get_fd");
+    CYASSL_LEAVE("SSL_get_fd", ssl->rfd);
+    return ssl->rfd;
+}
+
+
+int CyaSSL_negotiate(CYASSL* ssl)
+{
+    int err = SSL_FATAL_ERROR;
+
+    CYASSL_ENTER("CyaSSL_negotiate");
+#ifndef NO_CYASSL_SERVER
+    if (ssl->options.side == SERVER_END)
+        err = CyaSSL_accept(ssl);
+#endif
+
+#ifndef NO_CYASSL_CLIENT
+    if (ssl->options.side == CLIENT_END)
+        err = CyaSSL_connect(ssl);
+#endif
+
+    CYASSL_LEAVE("CyaSSL_negotiate", err);
+
+    if (err == SSL_SUCCESS)
+        return 0;
+    else
+        return err;
+}
+
+
+/* server Diffie-Hellman parameters */
+int CyaSSL_SetTmpDH(CYASSL* ssl, const unsigned char* p, int pSz,
+                    const unsigned char* g, int gSz)
+{
+    byte havePSK = 0;
+
+    CYASSL_ENTER("CyaSSL_SetTmpDH");
+    if (ssl == NULL || p == NULL || g == NULL) return BAD_FUNC_ARG;
+
+    if (ssl->options.side != SERVER_END)
+        return SIDE_ERROR;
+
+    if (ssl->buffers.serverDH_P.buffer && ssl->buffers.weOwnDH)
+        XFREE(ssl->buffers.serverDH_P.buffer, ssl->ctx->heap, DYNAMIC_TYPE_DH);
+    if (ssl->buffers.serverDH_G.buffer && ssl->buffers.weOwnDH)
+        XFREE(ssl->buffers.serverDH_G.buffer, ssl->ctx->heap, DYNAMIC_TYPE_DH);
+
+    ssl->buffers.weOwnDH = 1;  /* SSL owns now */
+    ssl->buffers.serverDH_P.buffer = (byte*)XMALLOC(pSz, ssl->ctx->heap,
+                                                    DYNAMIC_TYPE_DH);
+    if (ssl->buffers.serverDH_P.buffer == NULL)
+        return MEMORY_E;
+
+    ssl->buffers.serverDH_G.buffer = (byte*)XMALLOC(gSz, ssl->ctx->heap,
+                                                    DYNAMIC_TYPE_DH);
+    if (ssl->buffers.serverDH_G.buffer == NULL) {
+        XFREE(ssl->buffers.serverDH_P.buffer, ssl->ctx->heap, DYNAMIC_TYPE_DH);
+        return MEMORY_E;
+    }
+
+    ssl->buffers.serverDH_P.length = pSz;
+    ssl->buffers.serverDH_G.length = gSz;
+
+    XMEMCPY(ssl->buffers.serverDH_P.buffer, p, pSz);
+    XMEMCPY(ssl->buffers.serverDH_G.buffer, g, gSz);
+
+    ssl->options.haveDH = 1;
+    #ifndef NO_PSK
+        havePSK = ssl->options.havePSK;
+    #endif
+    InitSuites(&ssl->suites, ssl->version, ssl->options.haveDH,
+               havePSK, ssl->options.haveNTRU, ssl->options.haveECDSA,
+               ssl->options.haveStaticECC, ssl->ctx->method->side);
+
+    CYASSL_LEAVE("CyaSSL_SetTmpDH", 0);
+    return 0;
+}
+
+
+int CyaSSL_write(CYASSL* ssl, const void* data, int sz)
+{
+    int ret;
+
+    CYASSL_ENTER("SSL_write()");
+
+#ifdef HAVE_ERRNO_H 
+    errno = 0;
+#endif
+
+    ret = SendData(ssl, data, sz);
+
+    CYASSL_LEAVE("SSL_write()", ret);
+
+    if (ret < 0)
+        return SSL_FATAL_ERROR;
+    else
+        return ret;
+}
+
+
+int CyaSSL_read(CYASSL* ssl, void* data, int sz)
+{
+    int ret; 
+
+    CYASSL_ENTER("SSL_read()");
+
+#ifdef HAVE_ERRNO_H 
+        errno = 0;
+#endif
+
+    ret = ReceiveData(ssl, (byte*)data, min(sz, OUTPUT_RECORD_SIZE));
+
+    CYASSL_LEAVE("SSL_read()", ret);
+
+    if (ret < 0)
+        return SSL_FATAL_ERROR;
+    else
+        return ret;
+}
+
+
+int CyaSSL_shutdown(CYASSL* ssl)
+{
+    CYASSL_ENTER("SSL_shutdown()");
+
+    if (ssl->options.quietShutdown) {
+        CYASSL_MSG("quiet shutdown, no close notify sent"); 
+        return 0;
+    }
+
+    /* try to send close notify, not an error if can't */
+    if (!ssl->options.isClosed && !ssl->options.connReset &&
+                                  !ssl->options.sentNotify) {
+        ssl->error = SendAlert(ssl, alert_warning, close_notify);
+        if (ssl->error < 0) {
+            CYASSL_ERROR(ssl->error);
+            return SSL_FATAL_ERROR;
+        }
+        ssl->options.sentNotify = 1;  /* don't send close_notify twice */
+    }
+
+    CYASSL_LEAVE("SSL_shutdown()", ssl->error);
+
+    ssl->error = SSL_ERROR_SYSCALL;   /* simulate OpenSSL behavior */
+
+    return 0;
+}
+
+
+int CyaSSL_get_error(CYASSL* ssl, int ret)
+{
+    CYASSL_ENTER("SSL_get_error");
+    CYASSL_LEAVE("SSL_get_error", ssl->error);
+    if (ret > 0)
+        return SSL_ERROR_NONE;
+
+    if (ssl->error == WANT_READ)
+        return SSL_ERROR_WANT_READ;         /* convert to OpenSSL type */
+    else if (ssl->error == WANT_WRITE)
+        return SSL_ERROR_WANT_WRITE;        /* convert to OpenSSL type */
+    else if (ssl->error == ZERO_RETURN) 
+        return SSL_ERROR_ZERO_RETURN;       /* convert to OpenSSL type */
+    return ssl->error;
+}
+
+
+int CyaSSL_want_read(CYASSL* ssl)
+{
+    CYASSL_ENTER("SSL_want_read");
+    if (ssl->error == WANT_READ)
+        return 1;
+
+    return 0;
+}
+
+
+int CyaSSL_want_write(CYASSL* ssl)
+{
+    CYASSL_ENTER("SSL_want_write");
+    if (ssl->error == WANT_WRITE)
+        return 1;
+
+    return 0;
+}
+
+
+char* CyaSSL_ERR_error_string(unsigned long errNumber, char* data)
+{
+    static const char* msg = "Please supply a buffer for error string";
+
+    CYASSL_ENTER("ERR_error_string");
+    if (data) {
+        SetErrorString(errNumber, data);
+        return data;
+    }
+
+    return (char*)msg;
+}
+
+
+void CyaSSL_ERR_error_string_n(unsigned long e, char* buf, unsigned long len)
+{
+    CYASSL_ENTER("CyaSSL_ERR_error_string_n");
+    if (len) CyaSSL_ERR_error_string(e, buf);
+}
+
+
+CYASSL_CERT_MANAGER* CyaSSL_CertManagerNew(void)
+{
+    CYASSL_CERT_MANAGER* cm = NULL;
+
+    CYASSL_ENTER("CyaSSL_CertManagerNew");
+
+    cm = (CYASSL_CERT_MANAGER*) XMALLOC(sizeof(CYASSL_CERT_MANAGER), 0,
+                                        DYNAMIC_TYPE_CERT_MANAGER);
+    if (cm) {
+        cm->caList          = NULL;
+        cm->heap            = NULL;
+        cm->caCacheCallback = NULL;
+        cm->crl             = NULL;
+        cm->crlEnabled      = 0;
+        cm->crlCheckAll     = 0;
+        cm->cbMissingCRL    = NULL;
+
+        if (InitMutex(&cm->caLock) != 0) {
+            CYASSL_MSG("Bad mutex init");
+            CyaSSL_CertManagerFree(cm);
+            return NULL;
+        }
+    }
+
+    return cm;
+}
+
+
+void CyaSSL_CertManagerFree(CYASSL_CERT_MANAGER* cm)
+{
+    CYASSL_ENTER("CyaSSL_CertManagerFree");
+
+    if (cm) {
+        #ifdef HAVE_CRL
+            if (cm->crl) 
+                FreeCRL(cm->crl);
+        #endif
+        FreeSigners(cm->caList, NULL);
+        FreeMutex(&cm->caLock);
+        XFREE(cm, NULL, DYNAMIC_TYPE_CERT_MANAGER);
+    }
+
+}
+
+
+
+
+#ifndef NO_FILESYSTEM
+
+void CyaSSL_ERR_print_errors_fp(FILE* fp, int err)
+{
+    char data[MAX_ERROR_SZ + 1];
+
+    CYASSL_ENTER("CyaSSL_ERR_print_errors_fp");
+    SetErrorString(err, data);
+    fprintf(fp, "%s", data);
+}
+
+#endif
+
+
+int CyaSSL_pending(CYASSL* ssl)
+{
+    CYASSL_ENTER("SSL_pending");
+    return ssl->buffers.clearOutputBuffer.length;
+}
+
+
+/* trun on handshake group messages for context */
+int CyaSSL_CTX_set_group_messages(CYASSL_CTX* ctx)
+{
+    if (ctx == NULL)
+       return BAD_FUNC_ARG;
+
+    ctx->groupMessages = 1;
+
+    return SSL_SUCCESS;
+}
+
+
+#ifndef NO_CYASSL_CLIENT
+/* connect enough to get peer cert chain */
+int CyaSSL_connect_cert(CYASSL* ssl)
+{
+    int  ret;
+
+    if (ssl == NULL)
+        return SSL_FAILURE;
+
+    ssl->options.certOnly = 1;
+    ret = CyaSSL_connect(ssl);
+    ssl->options.certOnly   = 0;
+
+    return ret;
+}
+#endif
+
+
+/* trun on handshake group messages for ssl object */
+int CyaSSL_set_group_messages(CYASSL* ssl)
+{
+    if (ssl == NULL)
+       return BAD_FUNC_ARG;
+
+    ssl->options.groupMessages = 1;
+
+    return SSL_SUCCESS;
+}
+
+
+/* does CA already exist on signer list */
+int AlreadySigner(CYASSL_CERT_MANAGER* cm, byte* hash)
+{
+    Signer* signers;
+    int     ret = 0;
+
+    if (LockMutex(&cm->caLock) != 0)
+        return  ret;
+    signers = cm->caList;
+    while (signers) {
+        if (XMEMCMP(hash, signers->hash, SHA_DIGEST_SIZE) == 0) {
+            ret = 1;
+            break;
+        }
+        signers = signers->next;
+    }
+    UnLockMutex(&cm->caLock);
+
+    return ret;
+}
+
+
+/* return CA if found, otherwise NULL */
+Signer* GetCA(void* vp, byte* hash)
+{
+    CYASSL_CERT_MANAGER* cm = (CYASSL_CERT_MANAGER*)vp;
+    Signer* ret = NULL;
+    Signer* signers;
+
+    if (cm == NULL)
+        return NULL;
+
+    signers = cm->caList;
+
+    if (LockMutex(&cm->caLock) != 0)
+        return ret;
+    while (signers) {
+        if (XMEMCMP(hash, signers->hash, SHA_DIGEST_SIZE) == 0) {
+            ret = signers;
+            break;
+        }
+        signers = signers->next;
+    }
+    UnLockMutex(&cm->caLock);
+
+    return ret;
+}
+
+
+/* owns der, internal now uses too */
+/* type flag ids from user or from chain received during verify
+   don't allow chain ones to be added w/o isCA extension */
+int AddCA(CYASSL_CERT_MANAGER* cm, buffer der, int type, int verify)
+{
+    int         ret;
+    DecodedCert cert;
+    Signer*     signer = 0;
+
+    CYASSL_MSG("Adding a CA");
+    InitDecodedCert(&cert, der.buffer, der.length, cm->heap);
+    ret = ParseCert(&cert, CA_TYPE, verify, cm);
+    CYASSL_MSG("    Parsed new CA");
+
+    if (ret == 0 && cert.isCA == 0 && type != CYASSL_USER_CA) {
+        CYASSL_MSG("    Can't add as CA if not actually one");
+        ret = NOT_CA_ERROR;
+    }
+    else if (ret == 0 && AlreadySigner(cm, cert.subjectHash)) {
+        CYASSL_MSG("    Already have this CA, not adding again");
+        (void)ret;
+    } 
+    else if (ret == 0) {
+        /* take over signer parts */
+        signer = MakeSigner(cm->heap);
+        if (!signer)
+            ret = MEMORY_ERROR;
+        else {
+            signer->keyOID     = cert.keyOID;
+            signer->publicKey  = cert.publicKey;
+            signer->pubKeySize = cert.pubKeySize;
+            signer->name = cert.subjectCN;
+            XMEMCPY(signer->hash, cert.subjectHash, SHA_DIGEST_SIZE);
+            signer->next = NULL;   /* in case lock fails */
+
+            cert.publicKey = 0;  /* don't free here */
+            cert.subjectCN = 0;
+
+            if (LockMutex(&cm->caLock) == 0) {
+                signer->next = cm->caList;
+                cm->caList  = signer;   /* takes ownership */
+                UnLockMutex(&cm->caLock);
+                if (cm->caCacheCallback)
+                    cm->caCacheCallback(der.buffer, (int)der.length, type);
+            }
+            else {
+                CYASSL_MSG("    CA Mutex Lock failed");
+                ret = BAD_MUTEX_ERROR;
+                FreeSigners(signer, cm->heap);
+            }
+        }
+    }
+
+    CYASSL_MSG("    Freeing Parsed CA");
+    FreeDecodedCert(&cert);
+    CYASSL_MSG("    Freeing der CA");
+    XFREE(der.buffer, ctx->heap, DYNAMIC_TYPE_CA);
+    CYASSL_MSG("        OK Freeing der CA");
+
+    CYASSL_LEAVE("AddCA", ret);
+    if (ret == 0) return SSL_SUCCESS;
+    return ret;
+}
+
+
+#ifndef NO_SESSION_CACHE
+
+    /* basic config gives a cache with 33 sessions, adequate for clients and
+       embedded servers
+
+       MEDIUM_SESSION_CACHE allows 1055 sessions, adequate for servers that
+       aren't under heavy load, basically allows 200 new sessions per minute
+
+       BIG_SESSION_CACHE yields 20,0027 sessions
+
+       HUGE_SESSION_CACHE yields 65,791 sessions, for servers under heavy load,
+       allows over 13,000 new sessions per minute or over 200 new sessions per
+       second
+
+       SMALL_SESSION_CACHE only stores 6 sessions, good for embedded clients
+       or systems where the default of nearly 3kB is too much RAM, this define
+       uses less than 500 bytes RAM
+    */
+    #ifdef HUGE_SESSION_CACHE
+        #define SESSIONS_PER_ROW 11
+        #define SESSION_ROWS 5981
+    #elif defined(BIG_SESSION_CACHE)
+        #define SESSIONS_PER_ROW 7
+        #define SESSION_ROWS 2861
+    #elif defined(MEDIUM_SESSION_CACHE)
+        #define SESSIONS_PER_ROW 5
+        #define SESSION_ROWS 211
+    #elif defined(SMALL_SESSION_CACHE)
+        #define SESSIONS_PER_ROW 2
+        #define SESSION_ROWS 3 
+    #else
+        #define SESSIONS_PER_ROW 3
+        #define SESSION_ROWS 11
+    #endif
+
+    typedef struct SessionRow {
+        int nextIdx;                           /* where to place next one   */
+        int totalCount;                        /* sessions ever on this row */
+        CYASSL_SESSION Sessions[SESSIONS_PER_ROW];
+    } SessionRow;
+
+    static SessionRow SessionCache[SESSION_ROWS];
+
+    static CyaSSL_Mutex session_mutex;   /* SessionCache mutex */
+
+#endif /* NO_SESSION_CACHE */
+
+
+    /* Remove PEM header/footer, convert to ASN1, store any encrypted data 
+       info->consumed tracks of PEM bytes consumed in case multiple parts */
+    int PemToDer(const unsigned char* buff, long sz, int type,
+                      buffer* der, void* heap, EncryptedInfo* info, int* eccKey)
+    {
+        char  header[PEM_LINE_LEN];
+        char  footer[PEM_LINE_LEN];
+        char* headerEnd;
+        char* footerEnd;
+        char* consumedEnd;
+        long  neededSz;
+        int   pkcs8    = 0;
+        int   pkcs8Enc = 0;
+        int   dynamicType = 0;
+
+        (void)heap;
+        (void)dynamicType;
+        (void)pkcs8Enc;
+
+        if (type == CERT_TYPE || type == CA_TYPE)  {
+            XSTRNCPY(header, "-----BEGIN CERTIFICATE-----", sizeof(header));
+            XSTRNCPY(footer, "-----END CERTIFICATE-----", sizeof(footer));
+            dynamicType = (type == CA_TYPE) ? DYNAMIC_TYPE_CA :
+                                              DYNAMIC_TYPE_CERT;
+        } else if (type == DH_PARAM_TYPE) {
+            XSTRNCPY(header, "-----BEGIN DH PARAMETERS-----", sizeof(header));
+            XSTRNCPY(footer, "-----END DH PARAMETERS-----", sizeof(footer));
+            dynamicType = DYNAMIC_TYPE_KEY;
+        } else if (type == CRL_TYPE) {
+            XSTRNCPY(header, "-----BEGIN X509 CRL-----", sizeof(header));
+            XSTRNCPY(footer, "-----END X509 CRL-----", sizeof(footer));
+            dynamicType = DYNAMIC_TYPE_CRL;
+        } else {
+            XSTRNCPY(header, "-----BEGIN RSA PRIVATE KEY-----", sizeof(header));
+            XSTRNCPY(footer, "-----END RSA PRIVATE KEY-----", sizeof(footer));
+            dynamicType = DYNAMIC_TYPE_KEY;
+        }
+
+        /* find header */
+        headerEnd = XSTRSTR((char*)buff, header);
+        if (!headerEnd && type == PRIVATEKEY_TYPE) {  /* may be pkcs8 */
+            XSTRNCPY(header, "-----BEGIN PRIVATE KEY-----", sizeof(header));
+            XSTRNCPY(footer, "-----END PRIVATE KEY-----", sizeof(footer));
+        
+            headerEnd = XSTRSTR((char*)buff, header);
+            if (headerEnd)
+                pkcs8 = 1;
+            else {
+                XSTRNCPY(header, "-----BEGIN ENCRYPTED PRIVATE KEY-----",
+                        sizeof(header));
+                XSTRNCPY(footer, "-----END ENCRYPTED PRIVATE KEY-----",
+                        sizeof(footer));
+
+                headerEnd = XSTRSTR((char*)buff, header);
+                if (headerEnd)
+                    pkcs8Enc = 1;
+            }
+        }
+        if (!headerEnd && type == PRIVATEKEY_TYPE) {  /* may be ecc */
+            XSTRNCPY(header, "-----BEGIN EC PRIVATE KEY-----", sizeof(header));
+            XSTRNCPY(footer, "-----END EC PRIVATE KEY-----", sizeof(footer));
+        
+            headerEnd = XSTRSTR((char*)buff, header);
+            if (headerEnd)
+                *eccKey = 1;
+        }
+        if (!headerEnd && type == PRIVATEKEY_TYPE) {  /* may be dsa */
+            XSTRNCPY(header, "-----BEGIN DSA PRIVATE KEY-----", sizeof(header));
+            XSTRNCPY(footer, "-----END DSA PRIVATE KEY-----", sizeof(footer));
+        
+            headerEnd = XSTRSTR((char*)buff, header);
+        }
+        if (!headerEnd)
+            return SSL_BAD_FILE;
+        headerEnd += XSTRLEN(header);
+
+        /* get next line */
+        if (headerEnd[0] == '\n')
+            headerEnd++;
+        else if (headerEnd[1] == '\n')
+            headerEnd += 2;
+        else
+            return SSL_BAD_FILE;
+
+#if defined(OPENSSL_EXTRA) || defined(HAVE_WEBSERVER)
+    {
+        /* remove encrypted header if there */
+        char encHeader[] = "Proc-Type";
+        char* line = XSTRSTR((char*)buff, encHeader);
+        if (line) {
+            char* newline;
+            char* finish;
+            char* start  = XSTRSTR(line, "DES");
+    
+            if (!start)
+                start = XSTRSTR(line, "AES");
+            
+            if (!start) return SSL_BAD_FILE;
+            if (!info)  return SSL_BAD_FILE;
+            
+            finish = XSTRSTR(start, ",");
+
+            if (start && finish && (start < finish)) {
+                newline = XSTRSTR(finish, "\r");
+
+                XMEMCPY(info->name, start, finish - start);
+                info->name[finish - start] = 0;
+                XMEMCPY(info->iv, finish + 1, sizeof(info->iv));
+
+                if (!newline) newline = XSTRSTR(finish, "\n");
+                if (newline && (newline > finish)) {
+                    info->ivSz = (word32)(newline - (finish + 1));
+                    info->set = 1;
+                }
+                else
+                    return SSL_BAD_FILE;
+            }
+            else
+                return SSL_BAD_FILE;
+
+            /* eat blank line */
+            while (*newline == '\r' || *newline == '\n')
+                newline++;
+            headerEnd = newline;
+        }
+    }
+#endif /* OPENSSL_EXTRA || HAVE_WEBSERVER */
+
+        /* find footer */
+        footerEnd = XSTRSTR((char*)buff, footer);
+        if (!footerEnd) return SSL_BAD_FILE;
+
+        consumedEnd = footerEnd + XSTRLEN(footer);
+
+        /* get next line */
+        if (consumedEnd[0] == '\n')
+            consumedEnd++;
+        else if (consumedEnd[1] == '\n')
+            consumedEnd += 2;
+        else
+            return SSL_BAD_FILE;
+
+        if (info)
+            info->consumed = (long)(consumedEnd - (char*)buff);
+
+        /* set up der buffer */
+        neededSz = (long)(footerEnd - headerEnd);
+        if (neededSz > sz || neededSz < 0) return SSL_BAD_FILE;
+        der->buffer = (byte*) XMALLOC(neededSz, heap, dynamicType);
+        if (!der->buffer) return MEMORY_ERROR;
+        der->length = neededSz;
+
+        if (Base64_Decode((byte*)headerEnd, neededSz, der->buffer,
+                          &der->length) < 0)
+            return SSL_BAD_FILE;
+
+        if (pkcs8)
+            return ToTraditional(der->buffer, der->length);
+
+#ifdef OPENSSL_EXTRA
+         if (pkcs8Enc) {
+            int  passwordSz;
+            char password[80];
+
+            if (!info->ctx || !info->ctx->passwd_cb)
+                return SSL_BAD_FILE;  /* no callback error */
+            passwordSz = info->ctx->passwd_cb(password, sizeof(password), 0,
+                                              info->ctx->userdata);
+            return ToTraditionalEnc(der->buffer, der->length, password,
+                                    passwordSz);
+         }
+#endif
+
+        return 0;
+    }
+
+
+    /* process the buffer buff, legnth sz, into ctx of format and type
+       used tracks bytes consumed, userChain specifies a user cert chain
+       to pass during the handshake */
+    static int ProcessBuffer(CYASSL_CTX* ctx, const unsigned char* buff,
+                             long sz, int format, int type, CYASSL* ssl,
+                             long* used, int userChain)
+    {
+        EncryptedInfo info;
+        buffer        der;        /* holds DER or RAW (for NTRU) */
+        int           dynamicType = 0;
+        int           eccKey = 0;
+
+        info.set      = 0;
+        info.ctx      = ctx;
+        info.consumed = 0;
+        der.buffer    = 0;
+
+        (void)dynamicType;
+
+        if (used)
+            *used = sz;     /* used bytes default to sz, PEM chain may shorten*/
+
+        if (format != SSL_FILETYPE_ASN1 && format != SSL_FILETYPE_PEM 
+                                        && format != SSL_FILETYPE_RAW)
+            return SSL_BAD_FILETYPE;
+
+        if (type == CA_TYPE)
+            dynamicType = DYNAMIC_TYPE_CA;
+        else if (type == CERT_TYPE)
+            dynamicType = DYNAMIC_TYPE_CERT;
+        else
+            dynamicType = DYNAMIC_TYPE_KEY;
+
+        if (format == SSL_FILETYPE_PEM) {
+            int ret = PemToDer(buff, sz, type, &der, ctx->heap, &info, &eccKey);
+            if (ret < 0) {
+                XFREE(der.buffer, ctx->heap, dynamicType);
+                return ret;
+            }
+            if (used)
+                *used = info.consumed;
+            /* we may have a user cert chain, try to consume */
+            if (userChain && type == CERT_TYPE && info.consumed < sz) {
+                byte   staticBuffer[FILE_BUFFER_SIZE];  /* tmp chain buffer */
+                byte*  chainBuffer = staticBuffer;
+                int    dynamicBuffer = 0;
+                word32 bufferSz = sizeof(staticBuffer);
+                long   consumed = info.consumed;
+                word32 idx = 0;
+
+                if ( (sz - consumed) > (int)bufferSz) {
+                    CYASSL_MSG("Growing Tmp Chain Buffer");
+                    bufferSz = sz - consumed;  /* will shrink to actual size */
+                    chainBuffer = (byte*)XMALLOC(bufferSz, ctx->heap,
+                                                 DYNAMIC_FILE_TYPE);
+                    if (chainBuffer == NULL) {
+                        XFREE(der.buffer, ctx->heap, dynamicType);
+                        return MEMORY_E;
+                    }
+                    dynamicBuffer = 1;
+                }
+
+                CYASSL_MSG("Processing Cert Chain");
+                while (consumed < sz) {
+                    long   left;
+                    buffer part;
+                    info.consumed = 0;
+                    part.buffer = 0;
+
+                    ret = PemToDer(buff + consumed, sz - consumed, type, &part,
+                                   ctx->heap, &info, &eccKey);
+                    if (ret == 0) {
+                        if ( (idx + part.length) > bufferSz) {
+                            CYASSL_MSG("   Cert Chain bigger than buffer");
+                            ret = BUFFER_E;
+                        }
+                        else {
+                            c32to24(part.length, &chainBuffer[idx]);
+                            idx += CERT_HEADER_SZ;
+                            XMEMCPY(&chainBuffer[idx], part.buffer,part.length);
+                            idx += part.length;
+                            consumed  += info.consumed;
+                            if (used)
+                                *used += info.consumed;
+                        }
+                    }
+
+                    XFREE(part.buffer, ctx->heap, dynamicType);
+                    if (ret < 0) {
+                        CYASSL_MSG("   Error in Cert in Chain");
+                        XFREE(der.buffer, ctx->heap, dynamicType);
+                        return ret;
+                    }
+                    CYASSL_MSG("   Consumed another Cert in Chain");
+
+                    left = sz - consumed;
+                    if (left > 0 && left < CERT_MIN_SIZE) {
+                        CYASSL_MSG("   Non Cert at end of file");
+                        break;
+                    }
+                }
+                CYASSL_MSG("Finished Processing Cert Chain");
+                ctx->certChain.buffer = (byte*)XMALLOC(idx, ctx->heap,
+                                                       dynamicType);
+                if (ctx->certChain.buffer) {
+                    ctx->certChain.length = idx;
+                    XMEMCPY(ctx->certChain.buffer, chainBuffer, idx);
+                }
+                if (dynamicBuffer)
+                    XFREE(chainBuffer, ctx->heap, DYNAMIC_FILE_TYPE);
+                if (ctx->certChain.buffer == NULL) {
+                    XFREE(der.buffer, ctx->heap, dynamicType);
+                    return MEMORY_E;
+                }
+            }
+        }
+        else {  /* ASN1 (DER) or RAW (NTRU) */
+            der.buffer = (byte*) XMALLOC(sz, ctx->heap, dynamicType);
+            if (!der.buffer) return MEMORY_ERROR;
+            XMEMCPY(der.buffer, buff, sz);
+            der.length = sz;
+        }
+
+#if defined(OPENSSL_EXTRA) || defined(HAVE_WEBSERVER)
+        if (info.set) {
+            /* decrypt */
+            char password[80];
+            int  passwordSz;
+            int  ret;
+
+            byte key[AES_256_KEY_SIZE];
+            byte  iv[AES_IV_SIZE];
+
+            if (!ctx->passwd_cb) {
+                XFREE(der.buffer, ctx->heap, dynamicType);
+                return NO_PASSWORD;
+            }
+
+            /* use file's salt for key derivation, hex decode first */
+            if (Base16_Decode(info.iv, info.ivSz, info.iv, &info.ivSz) != 0) {
+                XFREE(der.buffer, ctx->heap, dynamicType);
+                return ASN_INPUT_E;
+            }
+
+            passwordSz = ctx->passwd_cb(password, sizeof(password), 0,
+                                    ctx->userdata);
+            if ( (ret = EVP_BytesToKey(info.name, "MD5", info.iv,
+                            (byte*)password, passwordSz, 1, key, iv)) <= 0) {
+                XFREE(der.buffer, ctx->heap, dynamicType);
+                return ret;
+            }
+
+            if (XSTRNCMP(info.name, "DES-CBC", 7) == 0) {
+                Des enc;
+                Des_SetKey(&enc, key, info.iv, DES_DECRYPTION);
+                Des_CbcDecrypt(&enc, der.buffer, der.buffer, der.length);
+            }
+            else if (XSTRNCMP(info.name, "DES-EDE3-CBC", 13) == 0) {
+                Des3 enc;
+                Des3_SetKey(&enc, key, info.iv, DES_DECRYPTION);
+                Des3_CbcDecrypt(&enc, der.buffer, der.buffer, der.length);
+            }
+            else if (XSTRNCMP(info.name, "AES-128-CBC", 13) == 0) {
+                Aes enc;
+                AesSetKey(&enc, key, AES_128_KEY_SIZE, info.iv, AES_DECRYPTION);
+                AesCbcDecrypt(&enc, der.buffer, der.buffer, der.length);
+            }
+            else if (XSTRNCMP(info.name, "AES-192-CBC", 13) == 0) {
+                Aes enc;
+                AesSetKey(&enc, key, AES_192_KEY_SIZE, info.iv, AES_DECRYPTION);
+                AesCbcDecrypt(&enc, der.buffer, der.buffer, der.length);
+            }
+            else if (XSTRNCMP(info.name, "AES-256-CBC", 13) == 0) {
+                Aes enc;
+                AesSetKey(&enc, key, AES_256_KEY_SIZE, info.iv, AES_DECRYPTION);
+                AesCbcDecrypt(&enc, der.buffer, der.buffer, der.length);
+            }
+            else { 
+                XFREE(der.buffer, ctx->heap, dynamicType);
+                return SSL_BAD_FILE;
+            }
+        }
+#endif /* OPENSSL_EXTRA || HAVE_WEBSERVER */
+
+        if (type == CA_TYPE)
+            return AddCA(ctx->cm, der, CYASSL_USER_CA, ctx->verifyPeer);
+                                                          /* takes der over */
+        else if (type == CERT_TYPE) {
+            if (ssl) {
+                if (ssl->buffers.weOwnCert && ssl->buffers.certificate.buffer)
+                    XFREE(ssl->buffers.certificate.buffer, ctx->heap,
+                          dynamicType);
+                ssl->buffers.certificate = der;
+                ssl->buffers.weOwnCert = 1;
+            }
+            else {
+                if (ctx->certificate.buffer)
+                    XFREE(ctx->certificate.buffer, ctx->heap, dynamicType);
+                ctx->certificate = der;     /* takes der over */
+            }
+        }
+        else if (type == PRIVATEKEY_TYPE) {
+            if (ssl) {
+                if (ssl->buffers.weOwnKey && ssl->buffers.key.buffer)
+                    XFREE(ssl->buffers.key.buffer, ctx->heap, dynamicType);
+                ssl->buffers.key = der;
+                ssl->buffers.weOwnKey = 1;
+            }
+            else {
+                if (ctx->privateKey.buffer)
+                    XFREE(ctx->privateKey.buffer, ctx->heap, dynamicType);
+                ctx->privateKey = der;      /* takes der over */
+            }
+        }
+        else {
+            XFREE(der.buffer, ctx->heap, dynamicType);
+            return SSL_BAD_CERTTYPE;
+        }
+
+        if (type == PRIVATEKEY_TYPE && format != SSL_FILETYPE_RAW) {
+            if (!eccKey) { 
+                /* make sure RSA key can be used */
+                RsaKey key;
+                word32 idx = 0;
+        
+                InitRsaKey(&key, 0);
+                if (RsaPrivateKeyDecode(der.buffer,&idx,&key,der.length) != 0) {
+#ifdef HAVE_ECC  
+                    /* could have DER ECC (or pkcs8 ecc), no easy way to tell */
+                    eccKey = 1;  /* so try it out */
+#endif
+                    if (!eccKey) {
+                        FreeRsaKey(&key);
+                        return SSL_BAD_FILE;
+                    }
+                }
+                FreeRsaKey(&key);
+            }
+#ifdef HAVE_ECC  
+            if (eccKey ) {
+                /* make sure ECC key can be used */
+                word32  idx = 0;
+                ecc_key key;
+
+                ecc_init(&key);
+                if (EccPrivateKeyDecode(der.buffer,&idx,&key,der.length) != 0) {
+                    ecc_free(&key);
+                    return SSL_BAD_FILE;
+                }
+                ecc_free(&key);
+                ctx->haveStaticECC = 1;
+                if (ssl)
+                    ssl->options.haveStaticECC = 1;
+            }
+#endif /* HAVE_ECC */
+        }
+        else if (type == CERT_TYPE) {
+            int         ret;
+            DecodedCert cert;
+
+            CYASSL_MSG("Checking cert signature type");
+            InitDecodedCert(&cert, der.buffer, der.length, ctx->heap);
+
+            if ((ret = DecodeToKey(&cert, 0)) < 0) {
+                CYASSL_MSG("Decode to key failed");
+                return SSL_BAD_FILE; 
+            }            
+            switch (cert.signatureOID) {
+                case CTC_SHAwECDSA:
+                case CTC_SHA256wECDSA:
+                case CTC_SHA384wECDSA:
+                case CTC_SHA512wECDSA:
+                    CYASSL_MSG("ECDSA cert signature");
+                    ctx->haveECDSA = 1;
+                    if (ssl)
+                        ssl->options.haveECDSA = 1;
+                    break;
+                default:
+                    CYASSL_MSG("Not ECDSA cert signature");
+                    break;
+            }
+
+            FreeDecodedCert(&cert);
+        }
+
+        return SSL_SUCCESS;
+    }
+
+
+
+
+/* CA PEM file for verification, may have multiple/chain certs to process */
+static int ProcessChainBuffer(CYASSL_CTX* ctx, const unsigned char* buff,
+                            long sz, int format, int type, CYASSL* ssl)
+{
+    long used = 0;
+    int  ret  = 0;
+
+    CYASSL_MSG("Processing CA PEM file");
+    while (used < sz) {
+        long consumed = 0;
+        long left;
+
+        ret = ProcessBuffer(ctx, buff + used, sz - used, format, type, ssl,
+                            &consumed, 0);
+        if (ret < 0)
+            break;
+
+        CYASSL_MSG("   Processed a CA");
+        used += consumed;
+
+        left = sz - used;
+        if (left > 0 && left < CERT_MIN_SIZE) { /* non cert stuff at eof */
+            CYASSL_MSG("   Non CA cert at eof");
+            break;
+        }
+    }
+    return ret;
+}
+
+
+#ifndef NO_FILESYSTEM
+
+#ifndef MICRIUM
+    #define XFILE      FILE
+    #define XFOPEN     fopen 
+    #define XFSEEK     fseek
+    #define XFTELL     ftell
+    #define XREWIND    rewind
+    #define XFREAD     fread
+    #define XFCLOSE    fclose
+    #define XSEEK_END  SEEK_END
+#else
+    #include 
+    #define XFILE      FS_FILE
+    #define XFOPEN     fs_fopen 
+    #define XFSEEK     fs_fseek
+    #define XFTELL     fs_ftell
+    #define XREWIND    fs_rewind
+    #define XFREAD     fs_fread
+    #define XFCLOSE    fs_fclose
+    #define XSEEK_END  FS_SEEK_END
+#endif
+
+
+/* process a file with name fname into ctx of format and type
+   userChain specifies a user certificate chain to pass during handshake */
+int ProcessFile(CYASSL_CTX* ctx, const char* fname, int format, int type,
+                CYASSL* ssl, int userChain, CYASSL_CRL* crl)
+{
+    byte   staticBuffer[FILE_BUFFER_SIZE];
+    byte*  myBuffer = staticBuffer;
+    int    dynamic = 0;
+    int    ret;
+    long   sz = 0;
+    XFILE* file = XFOPEN(fname, "rb"); 
+
+    (void)crl;
+
+    if (!file) return SSL_BAD_FILE;
+    XFSEEK(file, 0, XSEEK_END);
+    sz = XFTELL(file);
+    XREWIND(file);
+
+    if (sz > (long)sizeof(staticBuffer)) {
+        CYASSL_MSG("Getting dynamic buffer");
+        myBuffer = (byte*) XMALLOC(sz, ctx->heap, DYNAMIC_TYPE_FILE);
+        if (myBuffer == NULL) {
+            XFCLOSE(file);
+            return SSL_BAD_FILE;
+        }
+        dynamic = 1;
+    }
+
+    if ( (ret = XFREAD(myBuffer, sz, 1, file)) < 0)
+        ret = SSL_BAD_FILE;
+    else {
+        if (type == CA_TYPE && format == SSL_FILETYPE_PEM) 
+            ret = ProcessChainBuffer(ctx, myBuffer, sz, format, type, ssl);
+#ifdef HAVE_CRL
+        else if (type == CRL_TYPE)
+            ret = BufferLoadCRL(crl, myBuffer, sz, format);
+#endif
+        else
+            ret = ProcessBuffer(ctx, myBuffer, sz, format, type, ssl, NULL,
+                                userChain);
+    }
+
+    XFCLOSE(file);
+    if (dynamic) XFREE(myBuffer, ctx->heap, DYNAMIC_TYPE_FILE);
+
+    return ret;
+}
+
+
+/* loads file then loads each file in path, no c_rehash */
+int CyaSSL_CTX_load_verify_locations(CYASSL_CTX* ctx, const char* file,
+                                     const char* path)
+{
+    int ret = SSL_SUCCESS;
+
+    CYASSL_ENTER("CyaSSL_CTX_load_verify_locations");
+    (void)path;
+
+    if (ctx == NULL || (file == NULL && path == NULL) )
+        return SSL_FAILURE;
+
+    if (file)
+        ret = ProcessFile(ctx, file, SSL_FILETYPE_PEM, CA_TYPE, NULL, 0, NULL);
+
+    if (ret == SSL_SUCCESS && path) {
+        /* try to load each regular file in path */
+    #ifdef USE_WINDOWS_API 
+        WIN32_FIND_DATAA FindFileData;
+        HANDLE hFind;
+        char   name[MAX_FILENAME_SZ];
+
+        XMEMSET(name, 0, sizeof(name));
+        XSTRNCPY(name, path, MAX_FILENAME_SZ - 4);
+        XSTRNCAT(name, "\\*", 3);
+
+        hFind = FindFirstFileA(name, &FindFileData);
+        if (hFind == INVALID_HANDLE_VALUE) {
+            CYASSL_MSG("FindFirstFile for path verify locations failed");
+            return BAD_PATH_ERROR;
+        }
+
+        do {
+            if (FindFileData.dwFileAttributes != FILE_ATTRIBUTE_DIRECTORY) {
+                XSTRNCPY(name, path, MAX_FILENAME_SZ/2 - 3);
+                XSTRNCAT(name, "\\", 2);
+                XSTRNCAT(name, FindFileData.cFileName, MAX_FILENAME_SZ/2);
+
+                ret = ProcessFile(ctx, name, SSL_FILETYPE_PEM, CA_TYPE, NULL,0,
+                                  NULL);
+            }
+        } while (ret == SSL_SUCCESS && FindNextFileA(hFind, &FindFileData));
+
+        FindClose(hFind);
+    #elif !defined(NO_CYASSL_DIR)
+        struct dirent* entry;
+        DIR*   dir = opendir(path);
+
+        if (dir == NULL) {
+            CYASSL_MSG("opendir path verify locations failed");
+            return BAD_PATH_ERROR;
+        }
+        while ( ret == SSL_SUCCESS && (entry = readdir(dir)) != NULL) {
+            if (entry->d_type & DT_REG) {
+                char name[MAX_FILENAME_SZ];
+
+                XMEMSET(name, 0, sizeof(name));
+                XSTRNCPY(name, path, MAX_FILENAME_SZ/2 - 2);
+                XSTRNCAT(name, "/", 1);
+                XSTRNCAT(name, entry->d_name, MAX_FILENAME_SZ/2);
+                
+                ret = ProcessFile(ctx, name, SSL_FILETYPE_PEM, CA_TYPE, NULL,0,
+                                  NULL);
+            }
+        }
+        closedir(dir);
+    #endif
+    }
+
+    return ret;
+}
+
+
+/* Verify the ceritficate, 1 for success, < 0 for error */
+int CyaSSL_CertManagerVerify(CYASSL_CERT_MANAGER* cm, const char* fname,
+                             int format)
+{
+    int           ret = SSL_FATAL_ERROR;
+    int           eccKey = 0;  /* not used */
+    DecodedCert   cert;
+
+    byte   staticBuffer[FILE_BUFFER_SIZE];
+    byte*  myBuffer = staticBuffer;
+    int    dynamic = 0;
+    long   sz = 0;
+    buffer der;
+    XFILE* file = XFOPEN(fname, "rb"); 
+
+    if (!file) return SSL_BAD_FILE;
+    XFSEEK(file, 0, XSEEK_END);
+    sz = XFTELL(file);
+    XREWIND(file);
+
+    der.buffer = NULL;
+
+    if (sz > (long)sizeof(staticBuffer)) {
+        CYASSL_MSG("Getting dynamic buffer");
+        myBuffer = (byte*) XMALLOC(sz, cm->heap, DYNAMIC_TYPE_FILE);
+        if (myBuffer == NULL) {
+            XFCLOSE(file);
+            return SSL_BAD_FILE;
+        }
+        dynamic = 1;
+    }
+
+    if ( (ret = XFREAD(myBuffer, sz, 1, file)) < 0)
+        ret = SSL_BAD_FILE;
+    else {
+        ret = 0;  /* ok */
+        if (format == SSL_FILETYPE_PEM) { 
+            EncryptedInfo info;
+            
+            info.set       = 0;
+            info.ctx      = NULL;
+            info.consumed = 0;
+            ret = PemToDer(myBuffer, sz, CERT_TYPE, &der, cm->heap, &info,
+                           &eccKey);
+            InitDecodedCert(&cert, der.buffer, der.length, cm->heap);
+
+        }
+        else
+            InitDecodedCert(&cert, myBuffer, sz, cm->heap);
+
+        if (ret == 0)
+            ret = ParseCertRelative(&cert, CERT_TYPE, 1, cm);
+#ifdef HAVE_CRL
+        if (ret == 0 && cm->crlEnabled)
+            ret = CheckCertCRL(cm->crl, &cert);
+#endif
+    }
+
+    FreeDecodedCert(&cert);
+    XFREE(der.buffer, cm->heap, DYNAMIC_TYPE_CERT);
+    XFCLOSE(file);
+    if (dynamic) XFREE(myBuffer, cm->heap, DYNAMIC_TYPE_FILE);
+
+    if (ret == 0)
+        return SSL_SUCCESS;
+    return ret;
+}
+
+
+/* like load verify locations, 1 for success, < 0 for error */
+int CyaSSL_CertManagerLoadCA(CYASSL_CERT_MANAGER* cm, const char* file,
+                             const char* path)
+{
+    int ret = SSL_FATAL_ERROR;
+    CYASSL_CTX* tmp;
+
+    CYASSL_ENTER("CyaSSL_CertManagerLoadCA");
+
+    if (cm == NULL) {
+        CYASSL_MSG("No CertManager error");
+        return ret;
+    }
+    tmp = CyaSSL_CTX_new(CyaSSLv3_client_method());
+
+    if (tmp == NULL) {
+        CYASSL_MSG("CTX new failed");
+        return ret;
+    }
+
+    /* for tmp use */
+    CyaSSL_CertManagerFree(tmp->cm);
+    tmp->cm = cm;
+
+    ret = CyaSSL_CTX_load_verify_locations(tmp, file, path);
+
+    /* don't loose our good one */
+    tmp->cm = NULL;
+    CyaSSL_CTX_free(tmp);
+
+    return ret;
+}
+
+
+
+/* turn on CRL if off and compiled in, set options */
+int CyaSSL_CertManagerEnableCRL(CYASSL_CERT_MANAGER* cm, int options)
+{
+    int ret = SSL_SUCCESS;
+
+    (void)options;
+
+    CYASSL_ENTER("CyaSSL_CertManagerEnableCRL");
+    if (cm == NULL)
+        return BAD_FUNC_ARG;
+
+    #ifdef HAVE_CRL
+        if (cm->crl == NULL) {
+            cm->crl = (CYASSL_CRL*)XMALLOC(sizeof(CYASSL_CRL), cm->heap,
+                                           DYNAMIC_TYPE_CRL);
+            if (cm->crl == NULL)
+                return MEMORY_E;
+
+            if (InitCRL(cm->crl, cm) != 0) {
+                CYASSL_MSG("Init CRL failed");
+                FreeCRL(cm->crl);
+                cm->crl = NULL;
+                return SSL_FAILURE;
+            }
+        }
+        cm->crlEnabled = 1;
+        if (options & CYASSL_CRL_CHECKALL)
+            cm->crlCheckAll = 1;
+    #else
+        ret = NOT_COMPILED_IN;
+    #endif
+
+    return ret;
+}
+
+
+int CyaSSL_CertManagerDisableCRL(CYASSL_CERT_MANAGER* cm)
+{
+    CYASSL_ENTER("CyaSSL_CertManagerDisableCRL");
+    if (cm == NULL)
+        return BAD_FUNC_ARG;
+
+    cm->crlEnabled = 0;
+
+    return SSL_SUCCESS;
+}
+
+
+#ifdef HAVE_CRL
+
+
+/* check CRL if enabled, SSL_SUCCESS  */
+int CyaSSL_CertManagerCheckCRL(CYASSL_CERT_MANAGER* cm, byte* der, int sz)
+{
+    int         ret;
+    DecodedCert cert;
+
+    CYASSL_ENTER("CyaSSL_CertManagerCheckCRL");
+
+    if (cm == NULL)
+        return BAD_FUNC_ARG;
+
+    if (cm->crlEnabled == 0)
+        return SSL_SUCCESS;
+
+    InitDecodedCert(&cert, der, sz, NULL);
+
+    ret = ParseCertRelative(&cert, CERT_TYPE, NO_VERIFY, cm);
+    if (ret != 0) {
+        CYASSL_MSG("ParseCert failed");
+        return ret;
+    }
+    else {
+        ret = CheckCertCRL(cm->crl, &cert);
+        if (ret != 0) {
+            CYASSL_MSG("CheckCertCRL failed");
+        }
+    }
+
+    FreeDecodedCert(&cert);
+
+    if (ret == 0)
+        return SSL_SUCCESS;  /* convert */
+
+    return ret;
+}
+
+
+int CyaSSL_CertManagerSetCRL_Cb(CYASSL_CERT_MANAGER* cm, CbMissingCRL cb)
+{
+    CYASSL_ENTER("CyaSSL_CertManagerLoadCRL");
+    if (cm == NULL)
+        return BAD_FUNC_ARG;
+
+    cm->cbMissingCRL = cb;
+
+    return SSL_SUCCESS;
+}
+
+
+int CyaSSL_CertManagerLoadCRL(CYASSL_CERT_MANAGER* cm, const char* path,
+                              int type, int monitor)
+{
+    CYASSL_ENTER("CyaSSL_CertManagerLoadCRL");
+    if (cm == NULL)
+        return BAD_FUNC_ARG;
+
+    if (cm->crl == NULL) {
+        if (CyaSSL_CertManagerEnableCRL(cm, 0) != SSL_SUCCESS) {
+            CYASSL_MSG("Enable CRL failed");
+            return -1;
+        }
+    }
+
+    return LoadCRL(cm->crl, path, type, monitor);
+}
+
+
+int CyaSSL_EnableCRL(CYASSL* ssl, int options)
+{
+    CYASSL_ENTER("CyaSSL_EnableCRL");
+    if (ssl)
+        return CyaSSL_CertManagerEnableCRL(ssl->ctx->cm, options);
+    else
+        return BAD_FUNC_ARG;
+}
+
+
+int CyaSSL_DisableCRL(CYASSL* ssl)
+{
+    CYASSL_ENTER("CyaSSL_DisableCRL");
+    if (ssl)
+        return CyaSSL_CertManagerDisableCRL(ssl->ctx->cm);
+    else
+        return BAD_FUNC_ARG;
+}
+
+
+int CyaSSL_LoadCRL(CYASSL* ssl, const char* path, int type, int monitor)
+{
+    CYASSL_ENTER("CyaSSL_LoadCRL");
+    if (ssl)
+        return CyaSSL_CertManagerLoadCRL(ssl->ctx->cm, path, type, monitor);
+    else
+        return BAD_FUNC_ARG;
+}
+
+
+int CyaSSL_SetCRL_Cb(CYASSL* ssl, CbMissingCRL cb)
+{
+    CYASSL_ENTER("CyaSSL_SetCRL_Cb");
+    if (ssl)
+        return CyaSSL_CertManagerSetCRL_Cb(ssl->ctx->cm, cb);
+    else
+        return BAD_FUNC_ARG;
+}
+
+
+int CyaSSL_CTX_EnableCRL(CYASSL_CTX* ctx, int options)
+{
+    CYASSL_ENTER("CyaSSL_CTX_EnableCRL");
+    if (ctx)
+        return CyaSSL_CertManagerEnableCRL(ctx->cm, options);
+    else
+        return BAD_FUNC_ARG;
+}
+
+
+int CyaSSL_CTX_DisableCRL(CYASSL_CTX* ctx)
+{
+    CYASSL_ENTER("CyaSSL_CTX_DisableCRL");
+    if (ctx)
+        return CyaSSL_CertManagerDisableCRL(ctx->cm);
+    else
+        return BAD_FUNC_ARG;
+}
+
+
+int CyaSSL_CTX_LoadCRL(CYASSL_CTX* ctx, const char* path, int type, int monitor)
+{
+    CYASSL_ENTER("CyaSSL_CTX_LoadCRL");
+    if (ctx)
+        return CyaSSL_CertManagerLoadCRL(ctx->cm, path, type, monitor);
+    else
+        return BAD_FUNC_ARG;
+}
+
+
+int CyaSSL_CTX_SetCRL_Cb(CYASSL_CTX* ctx, CbMissingCRL cb)
+{
+    CYASSL_ENTER("CyaSSL_CTX_SetCRL_Cb");
+    if (ctx)
+        return CyaSSL_CertManagerSetCRL_Cb(ctx->cm, cb);
+    else
+        return BAD_FUNC_ARG;
+}
+
+
+#endif /* HAVE_CRL */
+
+
+#ifdef CYASSL_DER_LOAD
+
+/* Add format parameter to allow DER load of CA files */
+int CyaSSL_CTX_der_load_verify_locations(CYASSL_CTX* ctx, const char* file,
+                                         int format)
+{
+    CYASSL_ENTER("CyaSSL_CTX_der_load_verify_locations");
+    if (ctx == NULL || file == NULL)
+        return SSL_FAILURE;
+
+    if (ProcessFile(ctx, file, format, CA_TYPE, NULL, 0, NULL) == SSL_SUCCESS)
+        return SSL_SUCCESS;
+
+    return SSL_FAILURE;
+}
+
+#endif /* CYASSL_DER_LOAD */
+
+
+#ifdef CYASSL_CERT_GEN
+
+/* load pem cert from file into der buffer, return der size or error */
+int CyaSSL_PemCertToDer(const char* fileName, unsigned char* derBuf, int derSz) 
+{
+    byte   staticBuffer[FILE_BUFFER_SIZE];
+    byte*  fileBuf = staticBuffer;
+    int    dynamic = 0;
+    int    ret;
+    int    ecc = 0;
+    long   sz = 0;
+    XFILE* file = XFOPEN(fileName, "rb"); 
+    EncryptedInfo info;
+    buffer        converted;
+
+    CYASSL_ENTER("CyaSSL_PemCertToDer");
+    converted.buffer = 0;
+
+    if (!file) return SSL_BAD_FILE;
+    XFSEEK(file, 0, XSEEK_END);
+    sz = XFTELL(file);
+    XREWIND(file);
+
+    if (sz > (long)sizeof(staticBuffer)) {
+        fileBuf = (byte*) XMALLOC(sz, 0, DYNAMIC_TYPE_FILE);
+        if (fileBuf == NULL) {
+            XFCLOSE(file);
+            return SSL_BAD_FILE;
+        }
+        dynamic = 1;
+    }
+
+    if ( (ret = XFREAD(fileBuf, sz, 1, file)) < 0)
+        ret = SSL_BAD_FILE;
+    else
+        ret = PemToDer(fileBuf, sz, CA_TYPE, &converted, 0, &info, &ecc);
+
+    if (ret == 0) {
+        if (converted.length < (word32)derSz) {
+            XMEMCPY(derBuf, converted.buffer, converted.length);
+            ret = converted.length;
+        }
+        else
+            ret = BUFFER_E;
+    }       
+
+    XFREE(converted.buffer, 0, DYNAMIC_TYPE_CA); 
+    if (dynamic)
+        XFREE(fileBuf, 0, DYNAMIC_TYPE_FILE); 
+    XFCLOSE(file);
+
+    return ret;
+}
+
+#endif /* CYASSL_CERT_GEN */
+
+
+int CyaSSL_CTX_use_certificate_file(CYASSL_CTX* ctx, const char* file,
+                                    int format)
+{
+    CYASSL_ENTER("CyaSSL_CTX_use_certificate_file");
+    if (ProcessFile(ctx, file, format, CERT_TYPE, NULL, 0, NULL) == SSL_SUCCESS)
+        return SSL_SUCCESS;
+
+    return SSL_FAILURE;
+}
+
+
+int CyaSSL_CTX_use_PrivateKey_file(CYASSL_CTX* ctx, const char* file,int format)
+{
+    CYASSL_ENTER("CyaSSL_CTX_use_PrivateKey_file");
+    if (ProcessFile(ctx, file, format, PRIVATEKEY_TYPE, NULL, 0, NULL)
+                    == SSL_SUCCESS)
+        return SSL_SUCCESS;
+
+    return SSL_FAILURE;
+}
+
+
+int CyaSSL_CTX_use_certificate_chain_file(CYASSL_CTX* ctx, const char* file)
+{
+   /* procces up to MAX_CHAIN_DEPTH plus subject cert */
+   CYASSL_ENTER("CyaSSL_CTX_use_certificate_chain_file");
+   if (ProcessFile(ctx, file, SSL_FILETYPE_PEM,CERT_TYPE,NULL,1, NULL)
+                   == SSL_SUCCESS)
+       return SSL_SUCCESS;
+
+   return SSL_FAILURE;
+}
+
+
+#ifdef OPENSSL_EXTRA
+/* put SSL type in extra for now, not very common */
+
+int CyaSSL_use_certificate_file(CYASSL* ssl, const char* file, int format)
+{
+    CYASSL_ENTER("CyaSSL_use_certificate_file");
+    if (ProcessFile(ssl->ctx, file, format, CERT_TYPE, ssl, 0, NULL)
+                    == SSL_SUCCESS)
+        return SSL_SUCCESS;
+
+    return SSL_FAILURE;
+}
+
+
+int CyaSSL_use_PrivateKey_file(CYASSL* ssl, const char* file, int format)
+{
+    CYASSL_ENTER("CyaSSL_use_PrivateKey_file");
+    if (ProcessFile(ssl->ctx, file, format, PRIVATEKEY_TYPE, ssl, 0, NULL)
+                                                                 == SSL_SUCCESS)
+        return SSL_SUCCESS;
+
+    return SSL_FAILURE;
+}
+
+
+int CyaSSL_use_certificate_chain_file(CYASSL* ssl, const char* file)
+{
+   /* procces up to MAX_CHAIN_DEPTH plus subject cert */
+   CYASSL_ENTER("CyaSSL_use_certificate_chain_file");
+   if (ProcessFile(ssl->ctx, file, SSL_FILETYPE_PEM, CERT_TYPE, ssl, 1, NULL)
+                                                                 == SSL_SUCCESS)
+       return SSL_SUCCESS;
+
+   return SSL_FAILURE;
+}
+
+
+/* server wrapper for ctx or ssl Diffie-Hellman parameters */
+static int CyaSSL_SetTmpDH_buffer_wrapper(CYASSL_CTX* ctx, CYASSL* ssl,
+                                  const unsigned char* buf, long sz, int format)
+{
+    buffer der;
+    int    ret;
+    int    weOwnDer = 0;
+    byte   p[MAX_DH_SIZE];
+    byte   g[MAX_DH_SIZE];
+    word32 pSz = sizeof(p);
+    word32 gSz = sizeof(g);
+
+    der.buffer = (byte*)buf;
+    der.length = sz;
+
+    if (format != SSL_FILETYPE_ASN1 && format != SSL_FILETYPE_PEM)
+        return SSL_BAD_FILETYPE;
+
+    if (format == SSL_FILETYPE_PEM) {
+        der.buffer = NULL;
+        ret = PemToDer(buf, sz, DH_PARAM_TYPE, &der, ctx->heap, NULL,NULL);
+        if (ret < 0) {
+            XFREE(der.buffer, ctx->heap, DYNAMIC_TYPE_KEY);
+            return ret;
+        }
+        weOwnDer = 1;
+    }
+
+    if (DhParamsLoad(der.buffer, der.length, p, &pSz, g, &gSz) < 0)
+        ret = SSL_BAD_FILETYPE;
+    else {
+        if (ssl)
+            ret = CyaSSL_SetTmpDH(ssl, p, pSz, g, gSz);
+        else
+            ret = CyaSSL_CTX_SetTmpDH(ctx, p, pSz, g, gSz);
+    }
+
+    if (weOwnDer)
+        XFREE(der.buffer, ctx->heap, DYNAMIC_TYPE_KEY);
+
+    return ret;
+}
+
+/* server Diffie-Hellman parameters */
+int CyaSSL_SetTmpDH_buffer(CYASSL* ssl, const unsigned char* buf, long sz,
+                           int format)
+{
+    return CyaSSL_SetTmpDH_buffer_wrapper(ssl->ctx, ssl, buf, sz, format);
+}
+
+
+/* server ctx Diffie-Hellman parameters */
+int CyaSSL_CTX_SetTmpDH_buffer(CYASSL_CTX* ctx, const unsigned char* buf,
+                               long sz, int format)
+{
+    return CyaSSL_SetTmpDH_buffer_wrapper(ctx, NULL, buf, sz, format);
+}
+
+
+#ifdef HAVE_ECC
+
+/* Set Temp CTX EC-DHE size in octets, should be 20 - 66 for 160 - 521 bit */
+int CyaSSL_CTX_SetTmpEC_DHE_Sz(CYASSL_CTX* ctx, word16 sz)
+{
+    if (ctx == NULL || sz < ECC_MINSIZE || sz > ECC_MAXSIZE)
+        return BAD_FUNC_ARG;
+
+    ctx->eccTempKeySz = sz;
+
+    return SSL_SUCCESS;
+}
+
+
+/* Set Temp SSL EC-DHE size in octets, should be 20 - 66 for 160 - 521 bit */
+int CyaSSL_SetTmpEC_DHE_Sz(CYASSL* ssl, word16 sz)
+{
+    if (ssl == NULL || sz < ECC_MINSIZE || sz > ECC_MAXSIZE)
+        return BAD_FUNC_ARG;
+
+    ssl->eccTempKeySz = sz;
+
+    return SSL_SUCCESS;
+}
+
+#endif /* HAVE_ECC */
+
+
+#if !defined(NO_FILESYSTEM)
+
+/* server Diffie-Hellman parameters */
+static int CyaSSL_SetTmpDH_file_wrapper(CYASSL_CTX* ctx, CYASSL* ssl,
+                                        const char* fname, int format)
+{
+    byte   staticBuffer[FILE_BUFFER_SIZE];
+    byte*  myBuffer = staticBuffer;
+    int    dynamic = 0;
+    int    ret;
+    long   sz = 0;
+    XFILE* file = XFOPEN(fname, "rb"); 
+
+    if (!file) return SSL_BAD_FILE;
+    XFSEEK(file, 0, XSEEK_END);
+    sz = XFTELL(file);
+    XREWIND(file);
+
+    if (sz > (long)sizeof(staticBuffer)) {
+        CYASSL_MSG("Getting dynamic buffer");
+        myBuffer = (byte*) XMALLOC(sz, ctx->heap, DYNAMIC_TYPE_FILE);
+        if (myBuffer == NULL) {
+            XFCLOSE(file);
+            return SSL_BAD_FILE;
+        }
+        dynamic = 1;
+    }
+
+    if ( (ret = XFREAD(myBuffer, sz, 1, file)) < 0)
+        ret = SSL_BAD_FILE;
+    else {
+        if (ssl)
+            ret = CyaSSL_SetTmpDH_buffer(ssl, myBuffer, sz, format);
+        else
+            ret = CyaSSL_CTX_SetTmpDH_buffer(ctx, myBuffer, sz, format);
+    }
+
+    XFCLOSE(file);
+    if (dynamic) XFREE(myBuffer, ctx->heap, DYNAMIC_TYPE_FILE);
+
+    return ret;
+}
+
+/* server Diffie-Hellman parameters */
+int CyaSSL_SetTmpDH_file(CYASSL* ssl, const char* fname, int format)
+{
+    return CyaSSL_SetTmpDH_file_wrapper(ssl->ctx, ssl, fname, format);
+}
+
+
+/* server Diffie-Hellman parameters */
+int CyaSSL_CTX_SetTmpDH_file(CYASSL_CTX* ctx, const char* fname, int format)
+{
+    return CyaSSL_SetTmpDH_file_wrapper(ctx, NULL, fname, format);
+}
+
+
+#endif /* !NO_FILESYSTEM */
+#endif /* OPENSSL_EXTRA */
+
+#ifdef HAVE_NTRU
+
+int CyaSSL_CTX_use_NTRUPrivateKey_file(CYASSL_CTX* ctx, const char* file)
+{
+    CYASSL_ENTER("CyaSSL_CTX_use_NTRUPrivateKey_file");
+    if (ProcessFile(ctx, file, SSL_FILETYPE_RAW, PRIVATEKEY_TYPE, NULL, 0, NULL)
+                         == SSL_SUCCESS) {
+        ctx->haveNTRU = 1;
+        return SSL_SUCCESS;
+    }
+
+    return SSL_FAILURE;
+}
+
+#endif /* HAVE_NTRU */
+
+
+
+#ifdef OPENSSL_EXTRA
+
+    int CyaSSL_CTX_use_RSAPrivateKey_file(CYASSL_CTX* ctx,const char* file,
+                                       int format)
+    {
+        CYASSL_ENTER("SSL_CTX_use_RSAPrivateKey_file");
+        if (ProcessFile(ctx, file,format,PRIVATEKEY_TYPE,NULL,0, NULL)
+                        == SSL_SUCCESS)
+            return SSL_SUCCESS;
+
+        return SSL_FAILURE;
+    }
+
+    int CyaSSL_use_RSAPrivateKey_file(CYASSL* ssl, const char* file, int format)
+    {
+        CYASSL_ENTER("CyaSSL_use_RSAPrivateKey_file");
+        if (ProcessFile(ssl->ctx, file, format, PRIVATEKEY_TYPE, ssl, 0, NULL)
+                                                                 == SSL_SUCCESS)
+            return SSL_SUCCESS;
+
+        return SSL_FAILURE;
+    }
+
+#endif /* OPENSSL_EXTRA */
+
+#endif /* NO_FILESYSTEM */
+
+
+void CyaSSL_CTX_set_verify(CYASSL_CTX* ctx, int mode, VerifyCallback vc)
+{
+    CYASSL_ENTER("CyaSSL_CTX_set_verify");
+    if (mode & SSL_VERIFY_PEER) {
+        ctx->verifyPeer = 1;
+        ctx->verifyNone = 0;  /* in case perviously set */
+    }
+
+    if (mode == SSL_VERIFY_NONE) {
+        ctx->verifyNone = 1;
+        ctx->verifyPeer = 0;  /* in case previously set */
+    }
+
+    if (mode & SSL_VERIFY_FAIL_IF_NO_PEER_CERT)
+        ctx->failNoCert = 1;
+
+    ctx->verifyCallback = vc;
+}
+
+
+void CyaSSL_set_verify(CYASSL* ssl, int mode, VerifyCallback vc)
+{
+    CYASSL_ENTER("CyaSSL_set_verify");
+    if (mode & SSL_VERIFY_PEER) {
+        ssl->options.verifyPeer = 1;
+        ssl->options.verifyNone = 0;  /* in case perviously set */
+    }
+
+    if (mode == SSL_VERIFY_NONE) {
+        ssl->options.verifyNone = 1;
+        ssl->options.verifyPeer = 0;  /* in case previously set */
+    }
+
+    if (mode & SSL_VERIFY_FAIL_IF_NO_PEER_CERT)
+        ssl->options.failNoCert = 1;
+
+    ssl->verifyCallback = vc;
+}
+
+
+/* store context CA Cache addition callback */
+void CyaSSL_CTX_SetCACb(CYASSL_CTX* ctx, CallbackCACache cb)
+{
+    if (ctx && ctx->cm)
+        ctx->cm->caCacheCallback = cb;
+}
+
+
+#ifndef NO_SESSION_CACHE
+
+CYASSL_SESSION* CyaSSL_get_session(CYASSL* ssl)
+{
+    CYASSL_ENTER("SSL_get_session");
+    if (ssl)
+        return GetSession(ssl, 0);
+
+    return NULL;
+}
+
+
+int CyaSSL_set_session(CYASSL* ssl, CYASSL_SESSION* session)
+{
+    CYASSL_ENTER("SSL_set_session");
+    if (session)
+        return SetSession(ssl, session);
+
+    return SSL_FAILURE;
+}
+
+#endif /* NO_SESSION_CACHE */
+
+
+void CyaSSL_load_error_strings(void)   /* compatibility only */
+{}
+
+
+int CyaSSL_library_init(void)
+{
+    CYASSL_ENTER("SSL_library_init");
+    if (CyaSSL_Init() == 0)
+        return SSL_SUCCESS;
+    else
+        return SSL_FATAL_ERROR;
+}
+
+
+#ifndef NO_SESSION_CACHE
+
+/* on by default if built in but allow user to turn off */
+long CyaSSL_CTX_set_session_cache_mode(CYASSL_CTX* ctx, long mode)
+{
+    CYASSL_ENTER("SSL_CTX_set_session_cache_mode");
+    if (mode == SSL_SESS_CACHE_OFF)
+        ctx->sessionCacheOff = 1;
+
+    if (mode == SSL_SESS_CACHE_NO_AUTO_CLEAR)
+        ctx->sessionCacheFlushOff = 1;
+
+    return SSL_SUCCESS;
+}
+
+#endif /* NO_SESSION_CACHE */
+
+
+int CyaSSL_CTX_set_cipher_list(CYASSL_CTX* ctx, const char* list)
+{
+    CYASSL_ENTER("CyaSSL_CTX_set_cipher_list");
+    if (SetCipherList(&ctx->suites, list))
+        return SSL_SUCCESS;
+    else
+        return SSL_FAILURE;
+}
+
+
+int CyaSSL_set_cipher_list(CYASSL* ssl, const char* list)
+{
+    CYASSL_ENTER("CyaSSL_set_cipher_list");
+    if (SetCipherList(&ssl->suites, list)) {
+        byte havePSK = 0;
+
+        #ifndef NO_PSK
+            havePSK = ssl->options.havePSK;
+        #endif
+
+        InitSuites(&ssl->suites, ssl->version, ssl->options.haveDH, havePSK,
+                   ssl->options.haveNTRU, ssl->options.haveECDSA,
+                   ssl->options.haveStaticECC, ssl->ctx->method->side);
+
+        return SSL_SUCCESS;
+    }
+    else
+        return SSL_FAILURE;
+}
+
+
+/* client only parts */
+#ifndef NO_CYASSL_CLIENT
+
+    CYASSL_METHOD* CyaSSLv3_client_method(void)
+    {
+        CYASSL_METHOD* method =
+                              (CYASSL_METHOD*) XMALLOC(sizeof(CYASSL_METHOD), 0,
+                                                       DYNAMIC_TYPE_METHOD);
+        CYASSL_ENTER("SSLv3_client_method");
+        if (method)
+            InitSSL_Method(method, MakeSSLv3());
+        return method;
+    }
+
+    #ifdef CYASSL_DTLS
+        CYASSL_METHOD* CyaDTLSv1_client_method(void)
+        {
+            CYASSL_METHOD* method =
+                              (CYASSL_METHOD*) XMALLOC(sizeof(CYASSL_METHOD), 0,
+                                                       DYNAMIC_TYPE_METHOD);
+            CYASSL_ENTER("DTLSv1_client_method");
+            if (method)
+                InitSSL_Method(method, MakeDTLSv1());
+            return method;
+        }
+    #endif
+
+
+    /* please see note at top of README if you get an error from connect */
+    int CyaSSL_connect(CYASSL* ssl)
+    {
+        int neededState;
+
+        CYASSL_ENTER("SSL_connect()");
+
+        #ifdef HAVE_ERRNO_H 
+            errno = 0;
+        #endif
+
+        if (ssl->options.side != CLIENT_END) {
+            CYASSL_ERROR(ssl->error = SIDE_ERROR);
+            return SSL_FATAL_ERROR;
+        }
+
+        #ifdef CYASSL_DTLS
+            if (ssl->version.major == DTLS_MAJOR && 
+                                      ssl->version.minor == DTLS_MINOR) {
+                ssl->options.dtls   = 1;
+                ssl->options.tls    = 1;
+                ssl->options.tls1_1 = 1;
+            }
+        #endif
+
+        if (ssl->buffers.outputBuffer.length > 0) {
+            if ( (ssl->error = SendBuffered(ssl)) == 0) {
+                ssl->options.connectState++;
+                CYASSL_MSG("connect state: Advanced from buffered send");
+            }
+            else {
+                CYASSL_ERROR(ssl->error);
+                return SSL_FATAL_ERROR;
+            }
+        }
+
+        switch (ssl->options.connectState) {
+
+        case CONNECT_BEGIN :
+            /* always send client hello first */
+            if ( (ssl->error = SendClientHello(ssl)) != 0) {
+                CYASSL_ERROR(ssl->error);
+                return SSL_FATAL_ERROR;
+            }
+            ssl->options.connectState = CLIENT_HELLO_SENT;
+            CYASSL_MSG("connect state: CLIENT_HELLO_SENT");
+
+        case CLIENT_HELLO_SENT :
+            neededState = ssl->options.resuming ? SERVER_FINISHED_COMPLETE :
+                                          SERVER_HELLODONE_COMPLETE;
+            #ifdef CYASSL_DTLS
+                if (ssl->options.dtls && !ssl->options.resuming)
+                    neededState = SERVER_HELLOVERIFYREQUEST_COMPLETE;
+            #endif
+            /* get response */
+            while (ssl->options.serverState < neededState) {
+                if ( (ssl->error = ProcessReply(ssl)) < 0) {
+                    CYASSL_ERROR(ssl->error);
+                    return SSL_FATAL_ERROR;
+                }
+                /* if resumption failed, reset needed state */
+                else if (neededState == SERVER_FINISHED_COMPLETE)
+                    if (!ssl->options.resuming) {
+                        if (!ssl->options.dtls)
+                            neededState = SERVER_HELLODONE_COMPLETE;
+                        else
+                            neededState = SERVER_HELLOVERIFYREQUEST_COMPLETE;
+                    }
+            }
+
+            ssl->options.connectState = HELLO_AGAIN;
+            CYASSL_MSG("connect state: HELLO_AGAIN");
+
+        case HELLO_AGAIN :
+            if (ssl->options.certOnly)
+                return SSL_SUCCESS;
+
+            #ifdef CYASSL_DTLS
+                if (ssl->options.dtls && !ssl->options.resuming) {
+                    /* re-init hashes, exclude first hello and verify request */
+                    InitMd5(&ssl->hashMd5);
+                    InitSha(&ssl->hashSha);
+                    #ifndef NO_SHA256
+                        if (IsAtLeastTLSv1_2(ssl))
+                            InitSha256(&ssl->hashSha256);
+                    #endif
+                    if ( (ssl->error = SendClientHello(ssl)) != 0) {
+                        CYASSL_ERROR(ssl->error);
+                        return SSL_FATAL_ERROR;
+                    }
+                }
+            #endif
+
+            ssl->options.connectState = HELLO_AGAIN_REPLY;
+            CYASSL_MSG("connect state: HELLO_AGAIN_REPLY");
+
+        case HELLO_AGAIN_REPLY :
+            #ifdef CYASSL_DTLS
+                if (ssl->options.dtls) {
+                    neededState = ssl->options.resuming ?
+                           SERVER_FINISHED_COMPLETE : SERVER_HELLODONE_COMPLETE;
+            
+                    /* get response */
+                    while (ssl->options.serverState < neededState) {
+                        if ( (ssl->error = ProcessReply(ssl)) < 0) {
+                                CYASSL_ERROR(ssl->error);
+                                return SSL_FATAL_ERROR;
+                        }
+                        /* if resumption failed, reset needed state */
+                        else if (neededState == SERVER_FINISHED_COMPLETE)
+                            if (!ssl->options.resuming)
+                                neededState = SERVER_HELLODONE_COMPLETE;
+                    }
+                }
+            #endif
+
+            ssl->options.connectState = FIRST_REPLY_DONE;
+            CYASSL_MSG("connect state: FIRST_REPLY_DONE");
+
+        case FIRST_REPLY_DONE :
+            if (ssl->options.sendVerify)
+                if ( (ssl->error = SendCertificate(ssl)) != 0) {
+                    CYASSL_ERROR(ssl->error);
+                    return SSL_FATAL_ERROR;
+                }
+
+            ssl->options.connectState = FIRST_REPLY_FIRST;
+            CYASSL_MSG("connect state: FIRST_REPLY_FIRST");
+
+        case FIRST_REPLY_FIRST :
+            if (!ssl->options.resuming)
+                if ( (ssl->error = SendClientKeyExchange(ssl)) != 0) {
+                    CYASSL_ERROR(ssl->error);
+                    return SSL_FATAL_ERROR;
+                }
+
+            ssl->options.connectState = FIRST_REPLY_SECOND;
+            CYASSL_MSG("connect state: FIRST_REPLY_SECOND");
+
+        case FIRST_REPLY_SECOND :
+            if (ssl->options.sendVerify)
+                if ( (ssl->error = SendCertificateVerify(ssl)) != 0) {
+                    CYASSL_ERROR(ssl->error);
+                    return SSL_FATAL_ERROR;
+            }
+            ssl->options.connectState = FIRST_REPLY_THIRD;
+            CYASSL_MSG("connect state: FIRST_REPLY_THIRD");
+
+        case FIRST_REPLY_THIRD :
+            if ( (ssl->error = SendChangeCipher(ssl)) != 0) {
+                CYASSL_ERROR(ssl->error);
+                return SSL_FATAL_ERROR;
+            }
+            ssl->options.connectState = FIRST_REPLY_FOURTH;
+            CYASSL_MSG("connect state: FIRST_REPLY_FOURTH");
+
+        case FIRST_REPLY_FOURTH :
+            if ( (ssl->error = SendFinished(ssl)) != 0) {
+                CYASSL_ERROR(ssl->error);
+                return SSL_FATAL_ERROR;
+            }
+
+            ssl->options.connectState = FINISHED_DONE;
+            CYASSL_MSG("connect state: FINISHED_DONE");
+
+        case FINISHED_DONE :
+            /* get response */
+            while (ssl->options.serverState < SERVER_FINISHED_COMPLETE)
+                if ( (ssl->error = ProcessReply(ssl)) < 0) {
+                    CYASSL_ERROR(ssl->error);
+                    return SSL_FATAL_ERROR;
+                }
+          
+            ssl->options.connectState = SECOND_REPLY_DONE;
+            CYASSL_MSG("connect state: SECOND_REPLY_DONE");
+
+        case SECOND_REPLY_DONE:
+            if (ssl->buffers.inputBuffer.dynamicFlag)
+                ShrinkInputBuffer(ssl, NO_FORCED_FREE);
+            CYASSL_LEAVE("SSL_connect()", SSL_SUCCESS);
+            return SSL_SUCCESS;
+
+        default:
+            CYASSL_MSG("Unknown connect state ERROR");
+            return SSL_FATAL_ERROR; /* unknown connect state */
+        }
+    }
+
+#endif /* NO_CYASSL_CLIENT */
+
+
+/* server only parts */
+#ifndef NO_CYASSL_SERVER
+
+    CYASSL_METHOD* CyaSSLv3_server_method(void)
+    {
+        CYASSL_METHOD* method =
+                              (CYASSL_METHOD*) XMALLOC(sizeof(CYASSL_METHOD), 0,
+                                                       DYNAMIC_TYPE_METHOD);
+        CYASSL_ENTER("SSLv3_server_method");
+        if (method) {
+            InitSSL_Method(method, MakeSSLv3());
+            method->side = SERVER_END;
+        }
+        return method;
+    }
+
+
+    #ifdef CYASSL_DTLS
+        CYASSL_METHOD* CyaDTLSv1_server_method(void)
+        {
+            CYASSL_METHOD* method =
+                              (CYASSL_METHOD*) XMALLOC(sizeof(CYASSL_METHOD), 0,
+                                                       DYNAMIC_TYPE_METHOD);
+            CYASSL_ENTER("DTLSv1_server_method");
+            if (method) {
+                InitSSL_Method(method, MakeDTLSv1());
+                method->side = SERVER_END;
+            }
+            return method;
+        }
+    #endif
+
+
+    int CyaSSL_accept(CYASSL* ssl)
+    {
+        byte havePSK = 0;
+        CYASSL_ENTER("SSL_accept()");
+
+        #ifdef HAVE_ERRNO_H 
+            errno = 0;
+        #endif
+
+        #ifndef NO_PSK
+            havePSK = ssl->options.havePSK;
+        #endif
+
+        if (ssl->options.side != SERVER_END) {
+            CYASSL_ERROR(ssl->error = SIDE_ERROR);
+            return SSL_FATAL_ERROR;
+        }
+
+        /* in case used set_accept_state after init */
+        if (!havePSK && (ssl->buffers.certificate.buffer == NULL ||
+                         ssl->buffers.key.buffer == NULL)) {
+            CYASSL_MSG("accept error: don't have server cert and key");
+            ssl->error = NO_PRIVATE_KEY;
+            CYASSL_ERROR(ssl->error);
+            return SSL_FATAL_ERROR;
+        }
+
+        #ifdef HAVE_ECC
+            /* in case used set_accept_state after init */
+            if (ssl->eccTempKeyPresent == 0) {
+                if (ecc_make_key(&ssl->rng, ssl->eccTempKeySz,
+                                 &ssl->eccTempKey) != 0) {
+                    ssl->error = ECC_MAKEKEY_ERROR;
+                    CYASSL_ERROR(ssl->error);
+                    return SSL_FATAL_ERROR; 
+                } 
+                ssl->eccTempKeyPresent = 1;
+            }
+        #endif
+
+        #ifdef CYASSL_DTLS
+            if (ssl->version.major == DTLS_MAJOR &&
+                                      ssl->version.minor == DTLS_MINOR) {
+                ssl->options.dtls   = 1;
+                ssl->options.tls    = 1;
+                ssl->options.tls1_1 = 1;
+            }
+        #endif
+
+        if (ssl->buffers.outputBuffer.length > 0) {
+            if ( (ssl->error = SendBuffered(ssl)) == 0) {
+                ssl->options.acceptState++;
+                CYASSL_MSG("accept state: Advanced from buffered send");
+            }
+            else {
+                CYASSL_ERROR(ssl->error);
+                return SSL_FATAL_ERROR;
+            }
+        }
+
+        switch (ssl->options.acceptState) {
+    
+        case ACCEPT_BEGIN :
+            /* get response */
+            while (ssl->options.clientState < CLIENT_HELLO_COMPLETE)
+                if ( (ssl->error = ProcessReply(ssl)) < 0) {
+                    CYASSL_ERROR(ssl->error);
+                    return SSL_FATAL_ERROR;
+                }
+            ssl->options.acceptState = ACCEPT_CLIENT_HELLO_DONE;
+            CYASSL_MSG("accept state ACCEPT_CLIENT_HELLO_DONE");
+
+        case ACCEPT_CLIENT_HELLO_DONE :
+            #ifdef CYASSL_DTLS
+                if (ssl->options.dtls && !ssl->options.resuming)
+                    if ( (ssl->error = SendHelloVerifyRequest(ssl)) != 0) {
+                        CYASSL_ERROR(ssl->error);
+                        return SSL_FATAL_ERROR;
+                    }
+            #endif
+            ssl->options.acceptState = HELLO_VERIFY_SENT;
+            CYASSL_MSG("accept state HELLO_VERIFY_SENT");
+
+        case HELLO_VERIFY_SENT:
+            #ifdef CYASSL_DTLS
+                if (ssl->options.dtls && !ssl->options.resuming) {
+                    ssl->options.clientState = NULL_STATE;  /* get again */
+                    /* re-init hashes, exclude first hello and verify request */
+                    InitMd5(&ssl->hashMd5);
+                    InitSha(&ssl->hashSha);
+                    #ifndef NO_SHA256
+                        if (IsAtLeastTLSv1_2(ssl))
+                            InitSha256(&ssl->hashSha256);
+                    #endif
+
+                    while (ssl->options.clientState < CLIENT_HELLO_COMPLETE)
+                        if ( (ssl->error = ProcessReply(ssl)) < 0) {
+                            CYASSL_ERROR(ssl->error);
+                            return SSL_FATAL_ERROR;
+                        }
+                }
+            #endif
+            ssl->options.acceptState = ACCEPT_FIRST_REPLY_DONE;
+            CYASSL_MSG("accept state ACCEPT_FIRST_REPLY_DONE");
+
+        case ACCEPT_FIRST_REPLY_DONE :
+            if ( (ssl->error = SendServerHello(ssl)) != 0) {
+                CYASSL_ERROR(ssl->error);
+                return SSL_FATAL_ERROR;
+            }
+            ssl->options.acceptState = SERVER_HELLO_SENT;
+            CYASSL_MSG("accept state SERVER_HELLO_SENT");
+
+        case SERVER_HELLO_SENT :
+            if (!ssl->options.resuming) 
+                if ( (ssl->error = SendCertificate(ssl)) != 0) {
+                    CYASSL_ERROR(ssl->error);
+                    return SSL_FATAL_ERROR;
+                }
+            ssl->options.acceptState = CERT_SENT;
+            CYASSL_MSG("accept state CERT_SENT");
+
+        case CERT_SENT :
+            if (!ssl->options.resuming) 
+                if ( (ssl->error = SendServerKeyExchange(ssl)) != 0) {
+                    CYASSL_ERROR(ssl->error);
+                    return SSL_FATAL_ERROR;
+                }
+            ssl->options.acceptState = KEY_EXCHANGE_SENT;
+            CYASSL_MSG("accept state KEY_EXCHANGE_SENT");
+
+        case KEY_EXCHANGE_SENT :
+            if (!ssl->options.resuming) 
+                if (ssl->options.verifyPeer)
+                    if ( (ssl->error = SendCertificateRequest(ssl)) != 0) {
+                        CYASSL_ERROR(ssl->error);
+                        return SSL_FATAL_ERROR;
+                    }
+            ssl->options.acceptState = CERT_REQ_SENT;
+            CYASSL_MSG("accept state CERT_REQ_SENT");
+
+        case CERT_REQ_SENT :
+            if (!ssl->options.resuming) 
+                if ( (ssl->error = SendServerHelloDone(ssl)) != 0) {
+                    CYASSL_ERROR(ssl->error);
+                    return SSL_FATAL_ERROR;
+                }
+            ssl->options.acceptState = SERVER_HELLO_DONE;
+            CYASSL_MSG("accept state SERVER_HELLO_DONE");
+
+        case SERVER_HELLO_DONE :
+            if (!ssl->options.resuming) {
+                while (ssl->options.clientState < CLIENT_FINISHED_COMPLETE)
+                    if ( (ssl->error = ProcessReply(ssl)) < 0) {
+                        CYASSL_ERROR(ssl->error);
+                        return SSL_FATAL_ERROR;
+                    }
+            }
+            ssl->options.acceptState = ACCEPT_SECOND_REPLY_DONE;
+            CYASSL_MSG("accept state  ACCEPT_SECOND_REPLY_DONE");
+          
+        case ACCEPT_SECOND_REPLY_DONE : 
+            if ( (ssl->error = SendChangeCipher(ssl)) != 0) {
+                CYASSL_ERROR(ssl->error);
+                return SSL_FATAL_ERROR;
+            }
+            ssl->options.acceptState = CHANGE_CIPHER_SENT;
+            CYASSL_MSG("accept state  CHANGE_CIPHER_SENT");
+
+        case CHANGE_CIPHER_SENT : 
+            if ( (ssl->error = SendFinished(ssl)) != 0) {
+                CYASSL_ERROR(ssl->error);
+                return SSL_FATAL_ERROR;
+            }
+
+            ssl->options.acceptState = ACCEPT_FINISHED_DONE;
+            CYASSL_MSG("accept state ACCEPT_FINISHED_DONE");
+
+        case ACCEPT_FINISHED_DONE :
+            if (ssl->options.resuming)
+                while (ssl->options.clientState < CLIENT_FINISHED_COMPLETE)
+                    if ( (ssl->error = ProcessReply(ssl)) < 0) {
+                        CYASSL_ERROR(ssl->error);
+                        return SSL_FATAL_ERROR;
+                    }
+
+            ssl->options.acceptState = ACCEPT_THIRD_REPLY_DONE;
+            CYASSL_MSG("accept state ACCEPT_THIRD_REPLY_DONE");
+
+        case ACCEPT_THIRD_REPLY_DONE :
+            if (ssl->buffers.inputBuffer.dynamicFlag)
+                ShrinkInputBuffer(ssl, NO_FORCED_FREE);
+            CYASSL_LEAVE("SSL_accept()", SSL_SUCCESS);
+            return SSL_SUCCESS;
+
+        default :
+            CYASSL_MSG("Unknown accept state ERROR");
+            return SSL_FATAL_ERROR;
+        }
+    }
+
+#endif /* NO_CYASSL_SERVER */
+
+/* prevent multiple mutex initializations */
+static volatile int initRefCount = 0;
+static CyaSSL_Mutex count_mutex;   /* init ref count mutex */
+
+int CyaSSL_Init(void)
+{
+    int ret = 0;
+
+    CYASSL_ENTER("CyaSSL_Init");
+
+    if (initRefCount == 0) {
+#ifndef NO_SESSION_CACHE
+        if (InitMutex(&session_mutex) != 0)
+            ret = BAD_MUTEX_ERROR;
+#endif
+        if (InitMutex(&count_mutex) != 0)
+            ret = BAD_MUTEX_ERROR;
+    }
+    if (ret == 0) {
+        LockMutex(&count_mutex);
+        initRefCount++;
+        UnLockMutex(&count_mutex);
+    }
+
+    return ret;
+}
+
+
+int CyaSSL_Cleanup(void)
+{
+    int ret = 0;
+    int release = 0;
+
+    CYASSL_ENTER("CyaSSL_Cleanup");
+
+    LockMutex(&count_mutex);
+
+    release = initRefCount-- == 1;
+    if (initRefCount < 0)
+        initRefCount = 0;
+
+    UnLockMutex(&count_mutex);
+
+    if (!release)
+        return ret;
+
+#ifndef NO_SESSION_CACHE
+    if (FreeMutex(&session_mutex) != 0)
+        ret = BAD_MUTEX_ERROR;
+#endif
+    if (FreeMutex(&count_mutex) != 0)
+        ret = BAD_MUTEX_ERROR;
+
+    return ret;
+}
+
+
+#ifndef NO_SESSION_CACHE
+
+
+static INLINE word32 HashSession(const byte* sessionID)
+{
+    /* id is random, just make 32 bit number from first 4 bytes for now */
+    return (sessionID[0] << 24) | (sessionID[1] << 16) | (sessionID[2] <<  8) |
+            sessionID[3];
+}
+
+
+void CyaSSL_flush_sessions(CYASSL_CTX* ctx, long tm)
+{
+    /* static table now, no flusing needed */
+    (void)ctx;
+    (void)tm;
+}
+
+
+/* set ssl session timeout in seconds */
+int CyaSSL_set_timeout(CYASSL* ssl, unsigned int to)
+{
+    if (ssl == NULL)
+        return BAD_FUNC_ARG;
+
+    ssl->timeout = to;
+
+    return SSL_SUCCESS;
+}
+
+
+/* set ctx session timeout in seconds */
+int CyaSSL_CTX_set_timeout(CYASSL_CTX* ctx, unsigned int to)
+{
+    if (ctx == NULL)
+        return BAD_FUNC_ARG;
+
+    ctx->timeout = to;
+
+    return SSL_SUCCESS;
+}
+
+
+CYASSL_SESSION* GetSession(CYASSL* ssl, byte* masterSecret)
+{
+    CYASSL_SESSION* ret = 0;
+    const byte*  id = ssl->arrays.sessionID;
+    word32       row;
+    int          idx;
+    
+    if (ssl->options.sessionCacheOff)
+        return NULL;
+
+    if (ssl->options.haveSessionId == 0)
+        return NULL;
+
+    row = HashSession(id) % SESSION_ROWS;
+
+    if (LockMutex(&session_mutex) != 0)
+        return 0;
+   
+    if (SessionCache[row].totalCount >= SESSIONS_PER_ROW)
+        idx = SESSIONS_PER_ROW - 1;
+    else
+        idx = SessionCache[row].nextIdx - 1;
+
+    for (; idx >= 0; idx--) {
+        CYASSL_SESSION* current;
+        
+        if (idx >= SESSIONS_PER_ROW)    /* server could have restarted, idx  */
+            break;                      /* would be word32(-1) and seg fault */
+        
+        current = &SessionCache[row].Sessions[idx];
+        if (XMEMCMP(current->sessionID, id, ID_LEN) == 0) {
+            if (LowResTimer() < (current->bornOn + current->timeout)) {
+                ret = current;
+                if (masterSecret)
+                    XMEMCPY(masterSecret, current->masterSecret, SECRET_LEN);
+            }
+            break;
+        }   
+    }
+
+    UnLockMutex(&session_mutex);
+    
+    return ret;
+}
+
+
+int SetSession(CYASSL* ssl, CYASSL_SESSION* session)
+{
+    if (ssl->options.sessionCacheOff)
+        return SSL_FAILURE;
+
+    if (LowResTimer() < (session->bornOn + session->timeout)) {
+        ssl->session  = *session;
+        ssl->options.resuming = 1;
+
+#ifdef SESSION_CERTS
+        ssl->version              = session->version;
+        ssl->options.cipherSuite0 = session->cipherSuite0;
+        ssl->options.cipherSuite  = session->cipherSuite;
+#endif
+
+        return SSL_SUCCESS;
+    }
+    return SSL_FAILURE;  /* session timed out */
+}
+
+
+int AddSession(CYASSL* ssl)
+{
+    word32 row, idx;
+
+    if (ssl->options.sessionCacheOff)
+        return 0;
+
+    if (ssl->options.haveSessionId == 0)
+        return 0;
+
+    row = HashSession(ssl->arrays.sessionID) % SESSION_ROWS;
+
+    if (LockMutex(&session_mutex) != 0)
+        return BAD_MUTEX_ERROR;
+
+    idx = SessionCache[row].nextIdx++;
+
+    XMEMCPY(SessionCache[row].Sessions[idx].masterSecret,
+           ssl->arrays.masterSecret, SECRET_LEN);
+    XMEMCPY(SessionCache[row].Sessions[idx].sessionID, ssl->arrays.sessionID,
+           ID_LEN);
+
+    SessionCache[row].Sessions[idx].timeout = ssl->timeout;
+    SessionCache[row].Sessions[idx].bornOn  = LowResTimer();
+
+#ifdef SESSION_CERTS
+    SessionCache[row].Sessions[idx].chain.count = ssl->session.chain.count;
+    XMEMCPY(SessionCache[row].Sessions[idx].chain.certs,
+           ssl->session.chain.certs, sizeof(x509_buffer) * MAX_CHAIN_DEPTH);
+
+    SessionCache[row].Sessions[idx].version      = ssl->version;
+    SessionCache[row].Sessions[idx].cipherSuite0 = ssl->options.cipherSuite0;
+    SessionCache[row].Sessions[idx].cipherSuite  = ssl->options.cipherSuite;
+#endif
+
+    SessionCache[row].totalCount++;
+    if (SessionCache[row].nextIdx == SESSIONS_PER_ROW)
+        SessionCache[row].nextIdx = 0;
+
+    if (UnLockMutex(&session_mutex) != 0)
+        return BAD_MUTEX_ERROR;
+
+    return 0;
+}
+
+
+    #ifdef SESSION_STATS
+
+    CYASSL_API
+    void PrintSessionStats(void)
+    {
+        word32 totalSessionsSeen = 0;
+        word32 totalSessionsNow = 0;
+        word32 rowNow;
+        int    i;
+        double E;               /* expected freq */
+        double chiSquare = 0;
+        
+        for (i = 0; i < SESSION_ROWS; i++) {
+            totalSessionsSeen += SessionCache[i].totalCount;
+
+            if (SessionCache[i].totalCount >= SESSIONS_PER_ROW)
+                rowNow = SESSIONS_PER_ROW;
+            else if (SessionCache[i].nextIdx == 0)
+                rowNow = 0;
+            else
+                rowNow = SessionCache[i].nextIdx;
+        
+            totalSessionsNow += rowNow;
+        }
+
+        printf("Total Sessions Seen = %d\n", totalSessionsSeen);
+        printf("Total Sessions Now  = %d\n", totalSessionsNow);
+
+        E = (double)totalSessionsSeen / SESSION_ROWS;
+
+        for (i = 0; i < SESSION_ROWS; i++) {
+            double diff = SessionCache[i].totalCount - E;
+            diff *= diff;                /* square    */
+            diff /= E;                   /* normalize */
+
+            chiSquare += diff;
+        }
+        printf("  chi-square = %5.1f, d.f. = %d\n", chiSquare,
+                                                     SESSION_ROWS - 1);
+        if (SESSION_ROWS == 11)
+            printf(" .05 p value =  18.3, chi-square should be less\n");
+        else if (SESSION_ROWS == 211)
+            printf(".05 p value  = 244.8, chi-square should be less\n");
+        else if (SESSION_ROWS == 5981)
+            printf(".05 p value  = 6161.0, chi-square should be less\n");
+        else if (SESSION_ROWS == 3)
+            printf(".05 p value  =   6.0, chi-square should be less\n");
+        else if (SESSION_ROWS == 2861)
+            printf(".05 p value  = 2985.5, chi-square should be less\n");
+        printf("\n");
+    }
+
+    #endif /* SESSION_STATS */
+
+#else  /* NO_SESSION_CACHE */
+
+/* No session cache version */
+CYASSL_SESSION* GetSession(CYASSL* ssl, byte* masterSecret)
+{
+    return NULL;  
+}
+
+#endif /* NO_SESSION_CACHE */
+
+
+/* call before SSL_connect, if verifying will add name check to
+   date check and signature check */
+int CyaSSL_check_domain_name(CYASSL* ssl, const char* dn)
+{
+    CYASSL_ENTER("CyaSSL_check_domain_name");
+    if (ssl->buffers.domainName.buffer)
+        XFREE(ssl->buffers.domainName.buffer, ssl->heap, DYNAMIC_TYPE_DOMAIN);
+
+    ssl->buffers.domainName.length = (word32)XSTRLEN(dn) + 1;
+    ssl->buffers.domainName.buffer = (byte*) XMALLOC(
+                ssl->buffers.domainName.length, ssl->heap, DYNAMIC_TYPE_DOMAIN);
+
+    if (ssl->buffers.domainName.buffer) {
+        XSTRNCPY((char*)ssl->buffers.domainName.buffer, dn,
+                ssl->buffers.domainName.length);
+        return SSL_SUCCESS;
+    }
+    else {
+        ssl->error = MEMORY_ERROR;
+        return SSL_FAILURE;
+    }
+}
+
+
+/* turn on CyaSSL zlib compression
+   returns 0 for success, else error (not built in)
+*/
+int CyaSSL_set_compression(CYASSL* ssl)
+{
+    CYASSL_ENTER("CyaSSL_set_compression");
+    (void)ssl;
+#ifdef HAVE_LIBZ
+    ssl->options.usingCompression = 1;
+    return 0;
+#else
+    return NOT_COMPILED_IN;
+#endif
+}
+
+
+#ifndef USE_WINDOWS_API 
+    #ifndef NO_WRITEV
+
+        /* simulate writev semantics, doesn't actually do block at a time though
+           because of SSL_write behavior and because front adds may be small */
+        int CyaSSL_writev(CYASSL* ssl, const struct iovec* iov, int iovcnt)
+        {
+            byte  tmp[OUTPUT_RECORD_SIZE];
+            byte* myBuffer    = tmp;
+            int   send      = 0;
+            int   newBuffer = 0;
+            int   idx       = 0;
+            int   i;
+            int   ret;
+
+            CYASSL_ENTER("CyaSSL_writev");
+
+            for (i = 0; i < iovcnt; i++)
+                send += iov[i].iov_len;
+
+            if (send > (int)sizeof(tmp)) {
+                byte* tmp2 = (byte*) XMALLOC(send, ssl->heap,
+                                             DYNAMIC_TYPE_WRITEV);
+                if (!tmp2)
+                    return MEMORY_ERROR;
+                myBuffer = tmp2;
+                newBuffer = 1;
+            }
+
+            for (i = 0; i < iovcnt; i++) {
+                XMEMCPY(&myBuffer[idx], iov[i].iov_base, iov[i].iov_len);
+                idx += iov[i].iov_len;
+            }
+
+            ret = CyaSSL_write(ssl, myBuffer, send);
+
+            if (newBuffer) XFREE(myBuffer, ssl->heap, DYNAMIC_TYPE_WRITEV);
+
+            return ret;
+        }
+    #endif
+#endif
+
+
+#ifdef CYASSL_CALLBACKS
+
+    typedef struct itimerval Itimerval;
+
+    /* don't keep calling simple functions while setting up timer and singals
+       if no inlining these are the next best */
+
+    #define AddTimes(a, b, c)                       \
+        do {                                        \
+            c.tv_sec  = a.tv_sec  + b.tv_sec;       \
+            c.tv_usec = a.tv_usec + b.tv_usec;      \
+            if (c.tv_sec >=  1000000) {             \
+                c.tv_sec++;                         \
+                c.tv_usec -= 1000000;               \
+            }                                       \
+        } while (0)
+
+
+    #define SubtractTimes(a, b, c)                  \
+        do {                                        \
+            c.tv_sec  = a.tv_sec  - b.tv_sec;       \
+            c.tv_usec = a.tv_usec - b.tv_usec;      \
+            if (c.tv_sec < 0) {                     \
+                c.tv_sec--;                         \
+                c.tv_usec += 1000000;               \
+            }                                       \
+        } while (0)
+
+    #define CmpTimes(a, b, cmp)                     \
+        ((a.tv_sec  ==  b.tv_sec) ?                 \
+            (a.tv_usec cmp b.tv_usec) :             \
+            (a.tv_sec  cmp b.tv_sec))               \
+
+
+    /* do nothing handler */
+    static void myHandler(int signo)
+    {
+        return;
+    }
+
+
+    static int CyaSSL_ex_wrapper(CYASSL* ssl, HandShakeCallBack hsCb,
+                                 TimeoutCallBack toCb, Timeval timeout)
+    {
+        int       ret        = SSL_FATAL_ERROR;
+        int       oldTimerOn = 0;   /* was timer already on */
+        Timeval   startTime;
+        Timeval   endTime;
+        Timeval   totalTime;
+        Itimerval myTimeout;
+        Itimerval oldTimeout; /* if old timer adjust from total time to reset */
+        struct sigaction act, oact;
+       
+        #define ERR_OUT(x) { ssl->hsInfoOn = 0; ssl->toInfoOn = 0; return x; }
+
+        if (hsCb) {
+            ssl->hsInfoOn = 1;
+            InitHandShakeInfo(&ssl->handShakeInfo);
+        }
+        if (toCb) {
+            ssl->toInfoOn = 1;
+            InitTimeoutInfo(&ssl->timeoutInfo);
+            
+            if (gettimeofday(&startTime, 0) < 0)
+                ERR_OUT(GETTIME_ERROR);
+
+            /* use setitimer to simulate getitimer, init 0 myTimeout */
+            myTimeout.it_interval.tv_sec  = 0;
+            myTimeout.it_interval.tv_usec = 0;
+            myTimeout.it_value.tv_sec     = 0;
+            myTimeout.it_value.tv_usec    = 0;
+            if (setitimer(ITIMER_REAL, &myTimeout, &oldTimeout) < 0)
+                ERR_OUT(SETITIMER_ERROR);
+
+            if (oldTimeout.it_value.tv_sec || oldTimeout.it_value.tv_usec) {
+                oldTimerOn = 1;
+                
+                /* is old timer going to expire before ours */
+                if (CmpTimes(oldTimeout.it_value, timeout, <)) { 
+                    timeout.tv_sec  = oldTimeout.it_value.tv_sec;
+                    timeout.tv_usec = oldTimeout.it_value.tv_usec;
+                }       
+            }
+            myTimeout.it_value.tv_sec  = timeout.tv_sec;
+            myTimeout.it_value.tv_usec = timeout.tv_usec;
+            
+            /* set up signal handler, don't restart socket send/recv */
+            act.sa_handler = myHandler;
+            sigemptyset(&act.sa_mask);
+            act.sa_flags = 0;
+#ifdef SA_INTERRUPT
+            act.sa_flags |= SA_INTERRUPT;
+#endif
+            if (sigaction(SIGALRM, &act, &oact) < 0)
+                ERR_OUT(SIGACT_ERROR);
+
+            if (setitimer(ITIMER_REAL, &myTimeout, 0) < 0)
+                ERR_OUT(SETITIMER_ERROR);
+        }
+
+        /* do main work */
+#ifndef NO_CYASSL_CLIENT
+        if (ssl->options.side == CLIENT_END)
+            ret = CyaSSL_connect(ssl);
+#endif
+#ifndef NO_CYASSL_SERVER
+        if (ssl->options.side == SERVER_END)
+            ret = CyaSSL_accept(ssl);
+#endif
+       
+        /* do callbacks */ 
+        if (toCb) {
+            if (oldTimerOn) {
+                gettimeofday(&endTime, 0);
+                SubtractTimes(endTime, startTime, totalTime);
+                /* adjust old timer for elapsed time */
+                if (CmpTimes(totalTime, oldTimeout.it_value, <))
+                    SubtractTimes(oldTimeout.it_value, totalTime,
+                                  oldTimeout.it_value);
+                else {
+                    /* reset value to interval, may be off */
+                    oldTimeout.it_value.tv_sec = oldTimeout.it_interval.tv_sec;
+                    oldTimeout.it_value.tv_usec =oldTimeout.it_interval.tv_usec;
+                }
+                /* keep iter the same whether there or not */
+            }
+            /* restore old handler */
+            if (sigaction(SIGALRM, &oact, 0) < 0)
+                ret = SIGACT_ERROR;    /* more pressing error, stomp */
+            else
+                /* use old settings which may turn off (expired or not there) */
+                if (setitimer(ITIMER_REAL, &oldTimeout, 0) < 0)
+                    ret = SETITIMER_ERROR;
+            
+            /* if we had a timeout call callback */
+            if (ssl->timeoutInfo.timeoutName[0]) {
+                ssl->timeoutInfo.timeoutValue.tv_sec  = timeout.tv_sec;
+                ssl->timeoutInfo.timeoutValue.tv_usec = timeout.tv_usec;
+                (toCb)(&ssl->timeoutInfo);
+            }
+            /* clean up */
+            FreeTimeoutInfo(&ssl->timeoutInfo, ssl->heap);
+            ssl->toInfoOn = 0;
+        }
+        if (hsCb) {
+            FinishHandShakeInfo(&ssl->handShakeInfo, ssl);
+            (hsCb)(&ssl->handShakeInfo);
+            ssl->hsInfoOn = 0;
+        }
+        return ret;
+    }
+
+
+#ifndef NO_CYASSL_CLIENT
+
+    int CyaSSL_connect_ex(CYASSL* ssl, HandShakeCallBack hsCb,
+                          TimeoutCallBack toCb, Timeval timeout)
+    {
+        CYASSL_ENTER("CyaSSL_connect_ex");
+        return CyaSSL_ex_wrapper(ssl, hsCb, toCb, timeout);
+    }
+
+#endif
+
+
+#ifndef NO_CYASSL_SERVER
+
+    int CyaSSL_accept_ex(CYASSL* ssl, HandShakeCallBack hsCb,
+                         TimeoutCallBack toCb,Timeval timeout)
+    {
+        CYASSL_ENTER("CyaSSL_accept_ex");
+        return CyaSSL_ex_wrapper(ssl, hsCb, toCb, timeout);
+    }
+
+#endif
+
+#endif /* CYASSL_CALLBACKS */
+
+
+#ifndef NO_PSK
+
+    void CyaSSL_CTX_set_psk_client_callback(CYASSL_CTX* ctx,
+                                         psk_client_callback cb)
+    {
+        CYASSL_ENTER("SSL_CTX_set_psk_client_callback");
+        ctx->havePSK = 1;
+        ctx->client_psk_cb = cb;
+    }
+
+
+    void CyaSSL_set_psk_client_callback(CYASSL* ssl, psk_client_callback cb)
+    {
+        CYASSL_ENTER("SSL_set_psk_client_callback");
+        ssl->options.havePSK = 1;
+        ssl->options.client_psk_cb = cb;
+
+        InitSuites(&ssl->suites, ssl->version,TRUE,TRUE, ssl->options.haveNTRU,
+                   ssl->options.haveECDSA, ssl->options.haveStaticECC,
+                   ssl->ctx->method->side);
+    }
+
+
+    void CyaSSL_CTX_set_psk_server_callback(CYASSL_CTX* ctx,
+                                         psk_server_callback cb)
+    {
+        CYASSL_ENTER("SSL_CTX_set_psk_server_callback");
+        ctx->havePSK = 1;
+        ctx->server_psk_cb = cb;
+    }
+
+
+    void CyaSSL_set_psk_server_callback(CYASSL* ssl, psk_server_callback cb)
+    {
+        CYASSL_ENTER("SSL_set_psk_server_callback");
+        ssl->options.havePSK = 1;
+        ssl->options.server_psk_cb = cb;
+
+        InitSuites(&ssl->suites, ssl->version, ssl->options.haveDH, TRUE,
+                   ssl->options.haveNTRU, ssl->options.haveECDSA,
+                   ssl->options.haveStaticECC, ssl->ctx->method->side);
+    }
+
+
+    const char* CyaSSL_get_psk_identity_hint(const CYASSL* ssl)
+    {
+        CYASSL_ENTER("SSL_get_psk_identity_hint");
+        return ssl->arrays.server_hint;
+    }
+
+
+    const char* CyaSSL_get_psk_identity(const CYASSL* ssl)
+    {
+        CYASSL_ENTER("SSL_get_psk_identity");
+        return ssl->arrays.client_identity;
+    }
+
+
+    int CyaSSL_CTX_use_psk_identity_hint(CYASSL_CTX* ctx, const char* hint)
+    {
+        CYASSL_ENTER("SSL_CTX_use_psk_identity_hint");
+        if (hint == 0)
+            ctx->server_hint[0] = 0;
+        else {
+            XSTRNCPY(ctx->server_hint, hint, MAX_PSK_ID_LEN);
+            ctx->server_hint[MAX_PSK_ID_LEN - 1] = '\0';
+        }
+        return SSL_SUCCESS;
+    }
+
+
+    int CyaSSL_use_psk_identity_hint(CYASSL* ssl, const char* hint)
+    {
+        CYASSL_ENTER("SSL_use_psk_identity_hint");
+        if (hint == 0)
+            ssl->arrays.server_hint[0] = 0;
+        else {
+            XSTRNCPY(ssl->arrays.server_hint, hint, MAX_PSK_ID_LEN);
+            ssl->arrays.server_hint[MAX_PSK_ID_LEN - 1] = '\0';
+        }
+        return SSL_SUCCESS;
+    }
+
+#endif /* NO_PSK */
+
+
+/* used to be defined on NO_FILESYSTEM only, but are generally useful */
+
+    /* CyaSSL extension allows DER files to be loaded from buffers as well */
+    int CyaSSL_CTX_load_verify_buffer(CYASSL_CTX* ctx, const unsigned char* in,
+                                      long sz, int format)
+    {
+        CYASSL_ENTER("CyaSSL_CTX_load_verify_buffer");
+        if (format == SSL_FILETYPE_PEM)
+            return ProcessChainBuffer(ctx, in, sz, format, CA_TYPE, NULL);
+        else
+            return ProcessBuffer(ctx, in, sz, format, CA_TYPE, NULL,NULL,0);
+    }
+
+
+    int CyaSSL_CTX_use_certificate_buffer(CYASSL_CTX* ctx,
+                                 const unsigned char* in, long sz, int format)
+    {
+        CYASSL_ENTER("CyaSSL_CTX_use_certificate_buffer");
+        return ProcessBuffer(ctx, in, sz, format, CERT_TYPE, NULL, NULL, 0);
+    }
+
+
+    int CyaSSL_CTX_use_PrivateKey_buffer(CYASSL_CTX* ctx,
+                                 const unsigned char* in, long sz, int format)
+    {
+        CYASSL_ENTER("CyaSSL_CTX_use_PrivateKey_buffer");
+        return ProcessBuffer(ctx, in, sz, format, PRIVATEKEY_TYPE, NULL,NULL,0);
+    }
+
+
+    int CyaSSL_CTX_use_certificate_chain_buffer(CYASSL_CTX* ctx,
+                                 const unsigned char* in, long sz)
+    {
+        CYASSL_ENTER("CyaSSL_CTX_use_certificate_chain_buffer");
+        return ProcessBuffer(ctx, in, sz, SSL_FILETYPE_PEM, CERT_TYPE, NULL,
+                             NULL, 1);
+    }
+
+    int CyaSSL_use_certificate_buffer(CYASSL* ssl,
+                                 const unsigned char* in, long sz, int format)
+    {
+        CYASSL_ENTER("CyaSSL_use_certificate_buffer");
+        return ProcessBuffer(ssl->ctx, in, sz, format,CERT_TYPE,ssl,NULL,0);
+    }
+
+
+    int CyaSSL_use_PrivateKey_buffer(CYASSL* ssl,
+                                 const unsigned char* in, long sz, int format)
+    {
+        CYASSL_ENTER("CyaSSL_use_PrivateKey_buffer");
+        return ProcessBuffer(ssl->ctx, in, sz, format, PRIVATEKEY_TYPE, 
+                             ssl, NULL, 0);
+    }
+
+
+    int CyaSSL_use_certificate_chain_buffer(CYASSL* ssl,
+                                 const unsigned char* in, long sz)
+    {
+        CYASSL_ENTER("CyaSSL_use_certificate_chain_buffer");
+        return ProcessBuffer(ssl->ctx, in, sz, SSL_FILETYPE_PEM, CERT_TYPE,
+                             ssl, NULL, 1);
+    }
+
+/* old NO_FILESYSTEM end */
+
+
+#if defined(OPENSSL_EXTRA) || defined(GOAHEAD_WS)
+
+
+    int CyaSSL_add_all_algorithms(void)
+    {
+        CYASSL_ENTER("CyaSSL_add_all_algorithms");
+        CyaSSL_Init();
+        return SSL_SUCCESS;
+    }
+
+
+    long CyaSSL_CTX_sess_set_cache_size(CYASSL_CTX* ctx, long sz)
+    {
+        /* cache size fixed at compile time in CyaSSL */
+        (void)ctx;
+        (void)sz;
+        return 0;
+    }
+
+
+    void CyaSSL_CTX_set_quiet_shutdown(CYASSL_CTX* ctx, int mode)
+    {
+        CYASSL_ENTER("CyaSSL_CTX_set_quiet_shutdown");
+        if (mode)
+            ctx->quietShutdown = 1;
+    }
+
+
+    void CyaSSL_set_quiet_shutdown(CYASSL* ssl, int mode)
+    {
+        CYASSL_ENTER("CyaSSL_CTX_set_quiet_shutdown");
+        if (mode)
+            ssl->options.quietShutdown = 1;
+    }
+
+
+    int CyaSSL_CTX_check_private_key(CYASSL_CTX* ctx)
+    {
+        /* TODO: check private against public for RSA match */
+        (void)ctx; 
+        CYASSL_ENTER("SSL_CTX_check_private_key");
+        return SSL_SUCCESS;
+    }
+
+
+    void CyaSSL_set_bio(CYASSL* ssl, CYASSL_BIO* rd, CYASSL_BIO* wr)
+    {
+        CYASSL_ENTER("SSL_set_bio");
+        CyaSSL_set_rfd(ssl, rd->fd);
+        CyaSSL_set_wfd(ssl, wr->fd);
+
+        ssl->biord = rd;
+        ssl->biowr = wr;
+    }
+
+
+    void CyaSSL_CTX_set_client_CA_list(CYASSL_CTX* ctx,
+                                       STACK_OF(CYASSL_X509_NAME)* names)
+    {
+        (void)ctx; 
+        (void)names; 
+    }
+
+
+    STACK_OF(CYASSL_X509_NAME)* CyaSSL_load_client_CA_file(const char* fname)
+    {
+        (void)fname;
+        return 0;
+    }
+
+
+    int CyaSSL_CTX_set_default_verify_paths(CYASSL_CTX* ctx)
+    {
+        /* TODO:, not needed in goahead */
+        (void)ctx; 
+        return SSL_NOT_IMPLEMENTED;
+    }
+
+
+    /* keyblock size in bytes or -1 */
+    int CyaSSL_get_keyblock_size(CYASSL* ssl)
+    {
+        if (ssl == NULL)
+            return -1;
+
+        return 2 * (ssl->specs.key_size + ssl->specs.iv_size +
+                    ssl->specs.hash_size);
+    }
+
+
+    /* store keys returns 0 or -1 on error */
+    int CyaSSL_get_keys(CYASSL* ssl, unsigned char** ms, unsigned int* msLen,
+                                     unsigned char** sr, unsigned int* srLen,
+                                     unsigned char** cr, unsigned int* crLen)
+    {
+        if (ssl == NULL)
+            return -1;
+
+        *ms = ssl->arrays.masterSecret;
+        *sr = ssl->arrays.serverRandom;
+        *cr = ssl->arrays.clientRandom;
+
+        *msLen = SECRET_LEN;
+        *srLen = RAN_LEN;
+        *crLen = RAN_LEN;
+    
+        return 0;
+    }
+
+
+    void CyaSSL_set_accept_state(CYASSL* ssl)
+    {
+        byte havePSK = 0;
+
+        CYASSL_ENTER("SSL_set_accept_state");
+        ssl->options.side = SERVER_END;
+        /* reset suites in case user switched */
+#ifndef NO_PSK
+        havePSK = ssl->options.havePSK;
+#endif
+        InitSuites(&ssl->suites, ssl->version, ssl->options.haveDH, havePSK,
+                   ssl->options.haveNTRU, ssl->options.haveECDSA,
+                   ssl->options.haveStaticECC, ssl->ctx->method->side);
+    }
+
+   
+    /* return true if connection established */
+    int CyaSSL_is_init_finished(CYASSL* ssl)
+    {
+        if (ssl == NULL)
+            return 0;
+
+        if (ssl->options.handShakeState == HANDSHAKE_DONE)
+            return 1;
+
+        return 0;
+    }
+
+
+    void CyaSSL_CTX_set_tmp_rsa_callback(CYASSL_CTX* ctx,
+                                      CYASSL_RSA*(*f)(CYASSL*, int, int))
+    {
+        /* CyaSSL verifies all these internally */   
+        (void)ctx; 
+        (void)f; 
+    }
+
+
+    void CyaSSL_set_shutdown(CYASSL* ssl, int opt)
+    {
+        (void)ssl; 
+        (void)opt; 
+    }
+
+
+    long CyaSSL_CTX_set_options(CYASSL_CTX* ctx, long opt)
+    {
+        /* goahead calls with 0, do nothing */ 
+        CYASSL_ENTER("SSL_CTX_set_options");
+        (void)ctx; 
+        return opt;
+    }
+
+
+    int CyaSSL_set_rfd(CYASSL* ssl, int rfd)
+    {
+        CYASSL_ENTER("SSL_set_rfd");
+        ssl->rfd = rfd;      /* not used directly to allow IO callbacks */
+
+        ssl->IOCB_ReadCtx  = &ssl->rfd;
+
+        return SSL_SUCCESS;
+    }
+
+
+    int CyaSSL_set_wfd(CYASSL* ssl, int wfd)
+    {
+        CYASSL_ENTER("SSL_set_wfd");
+        ssl->wfd = wfd;      /* not used directly to allow IO callbacks */
+
+        ssl->IOCB_WriteCtx  = &ssl->wfd;
+
+        return SSL_SUCCESS;
+    }
+
+
+    CYASSL_RSA* CyaSSL_RSA_generate_key(int len, unsigned long bits,
+                                          void(*f)(int, int, void*), void* data)
+    {
+        /* no tmp key needed, actual generation not supported */
+        CYASSL_ENTER("RSA_generate_key");
+        (void)len; 
+        (void)bits; 
+        (void)f; 
+        (void)data; 
+        return NULL;
+    }
+
+
+    CYASSL_X509_NAME* CyaSSL_X509_get_issuer_name(CYASSL_X509* cert)
+    {
+        CYASSL_ENTER("X509_get_issuer_name");
+        return &cert->issuer;
+    }
+
+
+    CYASSL_X509_NAME* CyaSSL_X509_get_subject_name(CYASSL_X509* cert)
+    {
+        CYASSL_ENTER("X509_get_subject_name");
+        return &cert->subject;
+    }
+
+
+    /* copy name into in buffer, at most sz bytes, if buffer is null will
+       malloc buffer, call responsible for freeing                     */
+    char* CyaSSL_X509_NAME_oneline(CYASSL_X509_NAME* name, char* in, int sz)
+    {
+        int copySz = min(sz, name->sz);
+
+        CYASSL_ENTER("CyaSSL_X509_NAME_oneline");
+        if (!name->sz) return in;
+
+        if (!in) {
+            in = (char*)XMALLOC(name->sz, 0, DYNAMIC_TYPE_OPENSSL);
+            if (!in ) return in;
+            copySz = name->sz;
+        }
+
+        if (copySz == 0)
+            return in;
+
+        XMEMCPY(in, name->name, copySz - 1);
+        in[copySz - 1] = 0;
+
+        return in;
+    }
+
+
+    CYASSL_X509* CyaSSL_X509_STORE_CTX_get_current_cert(
+                                                     CYASSL_X509_STORE_CTX* ctx)
+    {
+        (void)ctx; 
+        return 0;
+    }
+
+
+    int CyaSSL_X509_STORE_CTX_get_error(CYASSL_X509_STORE_CTX* ctx)
+    {
+        (void)ctx; 
+        return 0;
+    }
+
+
+    int CyaSSL_X509_STORE_CTX_get_error_depth(CYASSL_X509_STORE_CTX* ctx)
+    {
+        (void)ctx; 
+        return 0;
+    }
+
+
+    CYASSL_BIO_METHOD* CyaSSL_BIO_f_buffer(void)
+    {
+        static CYASSL_BIO_METHOD meth;
+
+        CYASSL_ENTER("BIO_f_buffer");
+        meth.type = BIO_BUFFER;
+
+        return &meth;
+    }
+
+
+    long CyaSSL_BIO_set_write_buffer_size(CYASSL_BIO* bio, long size)
+    {
+        /* CyaSSL has internal buffer, compatibility only */
+        CYASSL_ENTER("BIO_set_write_buffer_size");
+        (void)bio; 
+        return size; 
+    }
+
+
+    CYASSL_BIO_METHOD* CyaSSL_BIO_f_ssl(void)
+    {
+        static CYASSL_BIO_METHOD meth;
+
+        CYASSL_ENTER("BIO_f_ssl");
+        meth.type = BIO_SSL;
+
+        return &meth;
+    }
+
+
+    CYASSL_BIO* CyaSSL_BIO_new_socket(int sfd, int closeF)
+    {
+        CYASSL_BIO* bio = (CYASSL_BIO*) XMALLOC(sizeof(CYASSL_BIO), 0,
+                                                DYNAMIC_TYPE_OPENSSL);
+
+        CYASSL_ENTER("BIO_new_socket");
+        if (bio) { 
+            bio->type  = BIO_SOCKET;
+            bio->close = (byte)closeF;
+            bio->eof   = 0;
+            bio->ssl   = 0;
+            bio->fd    = sfd;
+            bio->prev  = 0;
+            bio->next  = 0;
+        }
+        return bio; 
+    }
+
+
+    int CyaSSL_BIO_eof(CYASSL_BIO* b)
+    {
+        CYASSL_ENTER("BIO_eof");
+        if (b->eof)
+            return 1;
+
+        return 0;        
+    }
+
+
+    long CyaSSL_BIO_set_ssl(CYASSL_BIO* b, CYASSL* ssl, int closeF)
+    {
+        CYASSL_ENTER("BIO_set_ssl");
+        b->ssl   = ssl;
+        b->close = (byte)closeF;
+    /* add to ssl for bio free if SSL_free called before/instead of free_all? */
+
+        return 0;
+    }
+
+
+    CYASSL_BIO* CyaSSL_BIO_new(CYASSL_BIO_METHOD* method)
+    {
+        CYASSL_BIO* bio = (CYASSL_BIO*) XMALLOC(sizeof(CYASSL_BIO), 0,
+                                                DYNAMIC_TYPE_OPENSSL);
+        CYASSL_ENTER("BIO_new");
+        if (bio) {
+            bio->type   = method->type;
+            bio->close  = 0;
+            bio->eof    = 0;
+            bio->ssl    = NULL;
+            bio->mem    = NULL;
+            bio->memLen = 0;
+            bio->fd     = 0;
+            bio->prev   = NULL;
+            bio->next   = NULL;
+        }
+        return bio;
+    }
+
+
+    int CyaSSL_BIO_get_mem_data(CYASSL_BIO* bio, const byte** p)
+    {
+        if (bio == NULL || p == NULL)
+            return -1;
+
+        *p = bio->mem;
+
+        return bio->memLen;
+    }
+
+
+    CYASSL_BIO* CyaSSL_BIO_new_mem_buf(void* buf, int len)
+    {
+        CYASSL_BIO* bio = NULL;
+        if (buf == NULL)
+            return bio;
+
+        bio = CyaSSL_BIO_new(CyaSSL_BIO_s_mem());
+        if (bio == NULL)
+            return bio;
+
+        bio->memLen = len;
+        bio->mem    = (byte*)XMALLOC(len, 0, DYNAMIC_TYPE_OPENSSL);
+        if (bio->mem == NULL) {
+            XFREE(bio, 0, DYNAMIC_TYPE_OPENSSL);
+            return NULL;
+        }
+
+        XMEMCPY(bio->mem, buf, len);
+
+        return bio;
+    }
+
+
+#ifdef USE_WINDOWS_API 
+    #define CloseSocket(s) closesocket(s)
+#else
+    #define CloseSocket(s) close(s)
+#endif
+
+    int CyaSSL_BIO_free(CYASSL_BIO* bio)
+    {
+        /* unchain?, doesn't matter in goahead since from free all */
+        CYASSL_ENTER("BIO_free");
+        if (bio) {
+            if (bio->close) {
+                if (bio->ssl)
+                    CyaSSL_free(bio->ssl);
+                if (bio->fd)
+                    CloseSocket(bio->fd);
+            }
+            if (bio->mem)
+                XFREE(bio->mem, 0, DYNAMIC_TYPE_OPENSSL);
+            XFREE(bio, 0, DYNAMIC_TYPE_OPENSSL);
+        }
+        return 0;
+    }
+
+
+    int CyaSSL_BIO_free_all(CYASSL_BIO* bio)
+    {
+        CYASSL_ENTER("BIO_free_all");
+        while (bio) {
+            CYASSL_BIO* next = bio->next;
+            CyaSSL_BIO_free(bio);
+            bio = next;
+        }
+        return 0;
+    }
+
+
+    int CyaSSL_BIO_read(CYASSL_BIO* bio, void* buf, int len)
+    {
+        int  ret;
+        CYASSL* ssl = 0;
+        CYASSL_BIO* front = bio;
+
+        CYASSL_ENTER("BIO_read");
+        /* already got eof, again is error */
+        if (front->eof)
+            return SSL_FATAL_ERROR;
+
+        while(bio && ((ssl = bio->ssl) == 0) )
+            bio = bio->next;
+
+        if (ssl == 0) return BAD_FUNC_ARG;
+
+        ret = CyaSSL_read(ssl, buf, len);
+        if (ret == 0)
+            front->eof = 1;
+        else if (ret < 0) {
+            int err = CyaSSL_get_error(ssl, 0);
+            if ( !(err == SSL_ERROR_WANT_READ || err == SSL_ERROR_WANT_WRITE) )
+                front->eof = 1;
+        }
+        return ret;
+    }
+
+
+    int CyaSSL_BIO_write(CYASSL_BIO* bio, const void* data, int len)
+    {
+        int  ret;
+        CYASSL* ssl = 0;
+        CYASSL_BIO* front = bio;
+
+        CYASSL_ENTER("BIO_write");
+        /* already got eof, again is error */
+        if (front->eof)
+            return SSL_FATAL_ERROR;
+
+        while(bio && ((ssl = bio->ssl) == 0) )
+            bio = bio->next;
+
+        if (ssl == 0) return BAD_FUNC_ARG;
+
+        ret = CyaSSL_write(ssl, data, len);
+        if (ret == 0)
+            front->eof = 1;
+        else if (ret < 0) {
+            int err = CyaSSL_get_error(ssl, 0);
+            if ( !(err == SSL_ERROR_WANT_READ || err == SSL_ERROR_WANT_WRITE) )
+                front->eof = 1;
+        }
+
+        return ret;
+    }
+
+
+    CYASSL_BIO* CyaSSL_BIO_push(CYASSL_BIO* top, CYASSL_BIO* append)
+    {
+        CYASSL_ENTER("BIO_push");
+        top->next    = append;
+        append->prev = top;
+
+        return top;
+    }
+
+
+    int CyaSSL_BIO_flush(CYASSL_BIO* bio)
+    {
+        /* for CyaSSL no flushing needed */
+        CYASSL_ENTER("BIO_flush");
+        (void)bio; 
+        return 1;
+    }
+
+
+#endif /* OPENSSL_EXTRA || GOAHEAD_WS */
+
+
+#if defined(OPENSSL_EXTRA) || defined(HAVE_WEBSERVER)
+
+    void CyaSSL_CTX_set_default_passwd_cb_userdata(CYASSL_CTX* ctx,
+                                                   void* userdata)
+    {
+        CYASSL_ENTER("SSL_CTX_set_default_passwd_cb_userdata");
+        ctx->userdata = userdata;
+    }
+
+
+    void CyaSSL_CTX_set_default_passwd_cb(CYASSL_CTX* ctx, pem_password_cb cb)
+    {
+        CYASSL_ENTER("SSL_CTX_set_default_passwd_cb");
+        ctx->passwd_cb = cb;
+    }
+
+    int CyaSSL_num_locks(void)
+    {
+        return 0;
+    }
+
+    void CyaSSL_set_locking_callback(void (*f)(int, int, const char*, int))
+    {
+        (void)f; 
+    }
+
+    void CyaSSL_set_id_callback(unsigned long (*f)(void))
+    {
+        (void)f; 
+    }
+
+    unsigned long CyaSSL_ERR_get_error(void)
+    {
+        /* TODO: */
+        return 0;
+    }
+
+    int CyaSSL_EVP_BytesToKey(const CYASSL_EVP_CIPHER* type,
+                       const CYASSL_EVP_MD* md, const byte* salt,
+                       const byte* data, int sz, int count, byte* key, byte* iv)
+    {
+        int keyLen = 0;
+        int ivLen  = 0;
+
+        Md5    myMD;
+        byte   digest[MD5_DIGEST_SIZE];
+
+        int j;
+        int keyLeft;
+        int ivLeft;
+        int keyOutput = 0;
+
+        CYASSL_ENTER("EVP_BytesToKey");
+        InitMd5(&myMD);
+
+        /* only support MD5 for now */
+        if (XSTRNCMP(md, "MD5", 3)) return 0;
+
+        /* only support CBC DES and AES for now */
+        if (XSTRNCMP(type, "DES-CBC", 7) == 0) {
+            keyLen = DES_KEY_SIZE;
+            ivLen  = DES_IV_SIZE;
+        }
+        else if (XSTRNCMP(type, "DES-EDE3-CBC", 12) == 0) {
+            keyLen = DES3_KEY_SIZE;
+            ivLen  = DES_IV_SIZE;
+        }
+        else if (XSTRNCMP(type, "AES-128-CBC", 11) == 0) {
+            keyLen = AES_128_KEY_SIZE;
+            ivLen  = AES_IV_SIZE;
+        }
+        else if (XSTRNCMP(type, "AES-192-CBC", 11) == 0) {
+            keyLen = AES_192_KEY_SIZE;
+            ivLen  = AES_IV_SIZE;
+        }
+        else if (XSTRNCMP(type, "AES-256-CBC", 11) == 0) {
+            keyLen = AES_256_KEY_SIZE;
+            ivLen  = AES_IV_SIZE;
+        }
+        else
+            return 0;
+
+        keyLeft   = keyLen;
+        ivLeft    = ivLen;
+
+        while (keyOutput < (keyLen + ivLen)) {
+            int digestLeft = MD5_DIGEST_SIZE;
+            /* D_(i - 1) */
+            if (keyOutput)                      /* first time D_0 is empty */
+                Md5Update(&myMD, digest, MD5_DIGEST_SIZE);
+            /* data */
+            Md5Update(&myMD, data, sz);
+            /* salt */
+            if (salt)
+                Md5Update(&myMD, salt, EVP_SALT_SIZE);
+            Md5Final(&myMD, digest);
+            /* count */
+            for (j = 1; j < count; j++) {
+                Md5Update(&myMD, digest, MD5_DIGEST_SIZE);
+                Md5Final(&myMD, digest);
+            }
+
+            if (keyLeft) {
+                int store = min(keyLeft, MD5_DIGEST_SIZE);
+                XMEMCPY(&key[keyLen - keyLeft], digest, store);
+
+                keyOutput  += store;
+                keyLeft    -= store;
+                digestLeft -= store;
+            }
+
+            if (ivLeft && digestLeft) {
+                int store = min(ivLeft, digestLeft);
+                XMEMCPY(&iv[ivLen - ivLeft], &digest[MD5_DIGEST_SIZE -
+                                                    digestLeft], store);
+                keyOutput += store;
+                ivLeft    -= store;
+            }
+        }
+        if (keyOutput != (keyLen + ivLen))
+            return 0;
+        return keyOutput;
+    }
+
+#endif /* OPENSSL_EXTRA || HAVE_WEBSERVER */
+
+
+#ifdef OPENSSL_EXTRA
+
+    unsigned long CyaSSLeay(void)
+    {
+        return SSLEAY_VERSION_NUMBER;
+    }
+
+
+    const char* CyaSSLeay_version(int type)
+    {
+        static const char* version = "SSLeay CyaSSL compatibility";
+        (void)type; 
+        return version;
+    }
+
+
+    void CyaSSL_MD5_Init(CYASSL_MD5_CTX* md5)
+    {
+        typedef char md5_test[sizeof(MD5_CTX) >= sizeof(Md5) ? 1 : -1];
+        (void)sizeof(md5_test);
+
+        CYASSL_ENTER("MD5_Init");
+        InitMd5((Md5*)md5);
+    }
+
+
+    void CyaSSL_MD5_Update(CYASSL_MD5_CTX* md5, const void* input,
+                           unsigned long sz)
+    {
+        CYASSL_ENTER("CyaSSL_MD5_Update");
+        Md5Update((Md5*)md5, (const byte*)input, sz);
+    }
+
+
+    void CyaSSL_MD5_Final(byte* input, CYASSL_MD5_CTX* md5)
+    {
+        CYASSL_ENTER("MD5_Final");
+        Md5Final((Md5*)md5, input);
+    }
+
+
+    void CyaSSL_SHA_Init(CYASSL_SHA_CTX* sha)
+    {
+        typedef char sha_test[sizeof(SHA_CTX) >= sizeof(Sha) ? 1 : -1];
+        (void)sizeof(sha_test);
+
+        CYASSL_ENTER("SHA_Init");
+        InitSha((Sha*)sha);
+    }
+
+
+    void CyaSSL_SHA_Update(CYASSL_SHA_CTX* sha, const void* input,
+                           unsigned long sz)
+    {
+        CYASSL_ENTER("SHA_Update");
+        ShaUpdate((Sha*)sha, (const byte*)input, sz);
+    }
+
+
+    void CyaSSL_SHA_Final(byte* input, CYASSL_SHA_CTX* sha)
+    {
+        CYASSL_ENTER("SHA_Final");
+        ShaFinal((Sha*)sha, input);
+    }
+
+
+    void CyaSSL_SHA1_Init(CYASSL_SHA_CTX* sha)
+    {
+        CYASSL_ENTER("SHA1_Init");
+        SHA_Init(sha);
+    }
+
+
+    void CyaSSL_SHA1_Update(CYASSL_SHA_CTX* sha, const void* input,
+                            unsigned long sz)
+    {
+        CYASSL_ENTER("SHA1_Update");
+        SHA_Update(sha, input, sz);
+    }
+
+
+    void CyaSSL_SHA1_Final(byte* input, CYASSL_SHA_CTX* sha)
+    {
+        CYASSL_ENTER("SHA1_Final");
+        SHA_Final(input, sha);
+    }
+
+
+    void CyaSSL_SHA256_Init(CYASSL_SHA256_CTX* sha256)
+    {
+        typedef char sha_test[sizeof(SHA256_CTX) >= sizeof(Sha256) ? 1 : -1];
+        (void)sizeof(sha_test);
+
+        CYASSL_ENTER("SHA256_Init");
+        InitSha256((Sha256*)sha256);
+    }
+
+
+    void CyaSSL_SHA256_Update(CYASSL_SHA256_CTX* sha, const void* input,
+                              unsigned long sz)
+    {
+        CYASSL_ENTER("SHA256_Update");
+        Sha256Update((Sha256*)sha, (const byte*)input, sz);
+    }
+
+
+    void CyaSSL_SHA256_Final(byte* input, CYASSL_SHA256_CTX* sha)
+    {
+        CYASSL_ENTER("SHA256_Final");
+        Sha256Final((Sha256*)sha, input);
+    }
+
+
+    #ifdef CYASSL_SHA384
+
+    void CyaSSL_SHA384_Init(CYASSL_SHA384_CTX* sha)
+    {
+        typedef char sha_test[sizeof(SHA384_CTX) >= sizeof(Sha384) ? 1 : -1];
+        (void)sizeof(sha_test);
+
+        CYASSL_ENTER("SHA384_Init");
+        InitSha384((Sha384*)sha);
+    }
+
+
+    void CyaSSL_SHA384_Update(CYASSL_SHA384_CTX* sha, const void* input,
+                           unsigned long sz)
+    {
+        CYASSL_ENTER("SHA384_Update");
+        Sha384Update((Sha384*)sha, (const byte*)input, sz);
+    }
+
+
+    void CyaSSL_SHA384_Final(byte* input, CYASSL_SHA384_CTX* sha)
+    {
+        CYASSL_ENTER("SHA384_Final");
+        Sha384Final((Sha384*)sha, input);
+    }
+
+    #endif /* CYASSL_SHA384 */
+
+
+   #ifdef CYASSL_SHA512
+
+    void CyaSSL_SHA512_Init(CYASSL_SHA512_CTX* sha)
+    {
+        typedef char sha_test[sizeof(SHA512_CTX) >= sizeof(Sha512) ? 1 : -1];
+        (void)sizeof(sha_test);
+
+        CYASSL_ENTER("SHA512_Init");
+        InitSha512((Sha512*)sha);
+    }
+
+
+    void CyaSSL_SHA512_Update(CYASSL_SHA512_CTX* sha, const void* input,
+                           unsigned long sz)
+    {
+        CYASSL_ENTER("SHA512_Update");
+        Sha512Update((Sha512*)sha, (const byte*)input, sz);
+    }
+
+
+    void CyaSSL_SHA512_Final(byte* input, CYASSL_SHA512_CTX* sha)
+    {
+        CYASSL_ENTER("SHA512_Final");
+        Sha512Final((Sha512*)sha, input);
+    }
+
+    #endif /* CYASSL_SHA512 */
+
+
+    const CYASSL_EVP_MD* CyaSSL_EVP_md5(void)
+    {
+        static const char* type = "MD5";
+        CYASSL_ENTER("EVP_md5");
+        return type;
+    }
+
+
+    const CYASSL_EVP_MD* CyaSSL_EVP_sha1(void)
+    {
+        static const char* type = "SHA";
+        CYASSL_ENTER("EVP_sha1");
+        return type;
+    }
+
+
+    const CYASSL_EVP_MD* CyaSSL_EVP_sha256(void)
+    {
+        static const char* type = "SHA256";
+        CYASSL_ENTER("EVP_sha256");
+        return type;
+    }
+
+    #ifdef CYASSL_SHA384
+
+    const CYASSL_EVP_MD* CyaSSL_EVP_sha384(void)
+    {
+        static const char* type = "SHA384";
+        CYASSL_ENTER("EVP_sha384");
+        return type;
+    }
+
+    #endif /* CYASSL_SHA384 */
+
+    #ifdef CYASSL_SHA512
+
+    const CYASSL_EVP_MD* CyaSSL_EVP_sha512(void)
+    {
+        static const char* type = "SHA512";
+        CYASSL_ENTER("EVP_sha512");
+        return type;
+    }
+
+    #endif /* CYASSL_SHA512 */
+
+
+    void CyaSSL_EVP_MD_CTX_init(CYASSL_EVP_MD_CTX* ctx)
+    {
+        CYASSL_ENTER("EVP_CIPHER_MD_CTX_init");
+        (void)ctx; 
+        /* do nothing */ 
+    }
+
+
+    const CYASSL_EVP_CIPHER* CyaSSL_EVP_aes_128_cbc(void)
+    {
+        static const char* type = "AES128-CBC";
+        CYASSL_ENTER("CyaSSL_EVP_aes_128_cbc");
+        return type;
+    }
+
+
+    const CYASSL_EVP_CIPHER* CyaSSL_EVP_aes_192_cbc(void)
+    {
+        static const char* type = "AES192-CBC";
+        CYASSL_ENTER("CyaSSL_EVP_aes_192_cbc");
+        return type;
+    }
+
+
+    const CYASSL_EVP_CIPHER* CyaSSL_EVP_aes_256_cbc(void)
+    {
+        static const char* type = "AES256-CBC";
+        CYASSL_ENTER("CyaSSL_EVP_aes_256_cbc");
+        return type;
+    }
+
+
+    const CYASSL_EVP_CIPHER* CyaSSL_EVP_aes_128_ctr(void)
+    {
+        static const char* type = "AES128-CTR";
+        CYASSL_ENTER("CyaSSL_EVP_aes_128_ctr");
+        return type;
+    }
+
+
+    const CYASSL_EVP_CIPHER* CyaSSL_EVP_aes_192_ctr(void)
+    {
+        static const char* type = "AES192-CTR";
+        CYASSL_ENTER("CyaSSL_EVP_aes_192_ctr");
+        return type;
+    }
+
+
+    const CYASSL_EVP_CIPHER* CyaSSL_EVP_aes_256_ctr(void)
+    {
+        static const char* type = "AES256-CTR";
+        CYASSL_ENTER("CyaSSL_EVP_aes_256_ctr");
+        return type;
+    }
+
+
+    const CYASSL_EVP_CIPHER* CyaSSL_EVP_des_cbc(void)
+    {
+        static const char* type = "DES-CBC";
+        CYASSL_ENTER("CyaSSL_EVP_des_cbc");
+        return type;
+    }
+
+
+    const CYASSL_EVP_CIPHER* CyaSSL_EVP_des_ede3_cbc(void)
+    {
+        static const char* type = "DES-EDE3-CBC";
+        CYASSL_ENTER("CyaSSL_EVP_des_ede3_cbc");
+        return type;
+    }
+
+
+    const CYASSL_EVP_CIPHER* CyaSSL_EVP_rc4(void)
+    {
+        static const char* type = "ARC4";
+        CYASSL_ENTER("CyaSSL_EVP_rc4");
+        return type;
+    }
+
+
+    const CYASSL_EVP_CIPHER* CyaSSL_EVP_enc_null(void)
+    {
+        static const char* type = "NULL";
+        CYASSL_ENTER("CyaSSL_EVP_enc_null");
+        return type;
+    }
+
+
+    int CyaSSL_EVP_MD_CTX_cleanup(CYASSL_EVP_MD_CTX* ctx)
+    {
+        CYASSL_ENTER("EVP_MD_CTX_cleanup");
+        (void)ctx; 
+        return 0;
+    }
+
+
+
+    void CyaSSL_EVP_CIPHER_CTX_init(CYASSL_EVP_CIPHER_CTX* ctx)
+    {
+        CYASSL_ENTER("EVP_CIPHER_CTX_init");
+        if (ctx) {
+            ctx->cipherType = 0xff;   /* no init */
+            ctx->keyLen     = 0;
+            ctx->enc        = 1;      /* start in encrypt mode */
+        }
+    }
+
+
+    int CyaSSL_EVP_CIPHER_CTX_cleanup(CYASSL_EVP_CIPHER_CTX* ctx)
+    {
+        CYASSL_ENTER("EVP_CIPHER_CTX_cleanup");
+        if (ctx) {
+            ctx->cipherType = 0xff;  /* no more init */
+            ctx->keyLen     = 0;
+        }
+
+        return 1;  /* success */
+    }    
+
+    int  CyaSSL_EVP_CipherInit(CYASSL_EVP_CIPHER_CTX* ctx,
+                               const CYASSL_EVP_CIPHER* type, byte* key,
+                               byte* iv, int enc)
+    {
+        CYASSL_ENTER("CyaSSL_EVP_CipherInit");
+        if (ctx == NULL) {
+            CYASSL_MSG("no ctx");
+            return 0;   /* failure */
+        }
+
+        if (type == NULL && ctx->cipherType == 0xff) {
+            CYASSL_MSG("no type set");
+            return 0;   /* failure */
+        }
+
+        if (ctx->cipherType == AES_128_CBC_TYPE || (type &&
+                                       XSTRNCMP(type, "AES128-CBC", 10) == 0)) {
+            CYASSL_MSG("AES-128-CBC");
+            ctx->cipherType = AES_128_CBC_TYPE;
+            ctx->keyLen     = 16;
+            if (enc == 0 || enc == 1)
+                ctx->enc = enc ? 1 : 0;
+            if (key)
+                AesSetKey(&ctx->cipher.aes, key, ctx->keyLen, iv,
+                          ctx->enc ? AES_ENCRYPTION : AES_DECRYPTION);
+            if (iv && key == NULL)
+                AesSetIV(&ctx->cipher.aes, iv);
+        }
+        else if (ctx->cipherType == AES_192_CBC_TYPE || (type &&
+                                       XSTRNCMP(type, "AES192-CBC", 10) == 0)) {
+            CYASSL_MSG("AES-192-CBC");
+            ctx->cipherType = AES_192_CBC_TYPE;
+            ctx->keyLen     = 24;
+            if (enc == 0 || enc == 1)
+                ctx->enc = enc ? 1 : 0;
+            if (key)
+                AesSetKey(&ctx->cipher.aes, key, ctx->keyLen, iv,
+                          ctx->enc ? AES_ENCRYPTION : AES_DECRYPTION);
+            if (iv && key == NULL)
+                AesSetIV(&ctx->cipher.aes, iv);
+        }
+        else if (ctx->cipherType == AES_256_CBC_TYPE || (type &&
+                                       XSTRNCMP(type, "AES256-CBC", 10) == 0)) {
+            CYASSL_MSG("AES-256-CBC");
+            ctx->cipherType = AES_256_CBC_TYPE;
+            ctx->keyLen     = 32;
+            if (enc == 0 || enc == 1)
+                ctx->enc = enc ? 1 : 0;
+            if (key)
+                AesSetKey(&ctx->cipher.aes, key, ctx->keyLen, iv,
+                          ctx->enc ? AES_ENCRYPTION : AES_DECRYPTION);
+            if (iv && key == NULL)
+                AesSetIV(&ctx->cipher.aes, iv);
+        }
+#ifdef CYASSL_AES_COUNTER
+        else if (ctx->cipherType == AES_128_CTR_TYPE || (type &&
+                                       XSTRNCMP(type, "AES128-CTR", 10) == 0)) {
+            CYASSL_MSG("AES-128-CTR");
+            ctx->cipherType = AES_128_CTR_TYPE;
+            ctx->keyLen     = 16;
+            if (enc == 0 || enc == 1)
+                ctx->enc = enc ? 1 : 0;
+            if (key)
+                AesSetKey(&ctx->cipher.aes, key, ctx->keyLen, iv,
+                          AES_ENCRYPTION);
+            if (iv && key == NULL)
+                AesSetIV(&ctx->cipher.aes, iv);
+        }
+        else if (ctx->cipherType == AES_192_CTR_TYPE || (type &&
+                                       XSTRNCMP(type, "AES192-CTR", 10) == 0)) {
+            CYASSL_MSG("AES-192-CTR");
+            ctx->cipherType = AES_192_CTR_TYPE;
+            ctx->keyLen     = 24;
+            if (enc == 0 || enc == 1)
+                ctx->enc = enc ? 1 : 0;
+            if (key)
+                AesSetKey(&ctx->cipher.aes, key, ctx->keyLen, iv,
+                          AES_ENCRYPTION);
+            if (iv && key == NULL)
+                AesSetIV(&ctx->cipher.aes, iv);
+        }
+        else if (ctx->cipherType == AES_256_CTR_TYPE || (type &&
+                                       XSTRNCMP(type, "AES256-CTR", 10) == 0)) {
+            CYASSL_MSG("AES-256-CTR");
+            ctx->cipherType = AES_256_CTR_TYPE;
+            ctx->keyLen     = 32;
+            if (enc == 0 || enc == 1)
+                ctx->enc = enc ? 1 : 0;
+            if (key)
+                AesSetKey(&ctx->cipher.aes, key, ctx->keyLen, iv,
+                          AES_ENCRYPTION);
+            if (iv && key == NULL)
+                AesSetIV(&ctx->cipher.aes, iv);
+        }
+#endif /* CYASSL_AES_CTR */
+        else if (ctx->cipherType == DES_CBC_TYPE || (type &&
+                                       XSTRNCMP(type, "DES-CBC", 7) == 0)) {
+            CYASSL_MSG("DES-CBC");
+            ctx->cipherType = DES_CBC_TYPE;
+            ctx->keyLen     = 8;
+            if (enc == 0 || enc == 1)
+                ctx->enc = enc ? 1 : 0;
+            if (key)
+                Des_SetKey(&ctx->cipher.des, key, iv,
+                          ctx->enc ? DES_ENCRYPTION : DES_DECRYPTION);
+            if (iv && key == NULL)
+                Des_SetIV(&ctx->cipher.des, iv);
+        }
+        else if (ctx->cipherType == DES_EDE3_CBC_TYPE || (type &&
+                                     XSTRNCMP(type, "DES-EDE3-CBC", 11) == 0)) {
+            CYASSL_MSG("DES-EDE3-CBC");
+            ctx->cipherType = DES_EDE3_CBC_TYPE;
+            ctx->keyLen     = 24;
+            if (enc == 0 || enc == 1)
+                ctx->enc = enc ? 1 : 0;
+            if (key)
+                Des3_SetKey(&ctx->cipher.des3, key, iv,
+                          ctx->enc ? DES_ENCRYPTION : DES_DECRYPTION);
+            if (iv && key == NULL)
+                Des3_SetIV(&ctx->cipher.des3, iv);
+        }
+        else if (ctx->cipherType == ARC4_TYPE || (type &&
+                                     XSTRNCMP(type, "ARC4", 4) == 0)) {
+            CYASSL_MSG("ARC4");
+            ctx->cipherType = ARC4_TYPE;
+            if (ctx->keyLen == 0)  /* user may have already set */
+                ctx->keyLen = 16;  /* default to 128 */
+            if (key)
+                Arc4SetKey(&ctx->cipher.arc4, key, ctx->keyLen); 
+        }
+        else if (ctx->cipherType == NULL_CIPHER_TYPE || (type &&
+                                     XSTRNCMP(type, "NULL", 4) == 0)) {
+            CYASSL_MSG("NULL cipher");
+            ctx->cipherType = NULL_CIPHER_TYPE;
+            ctx->keyLen = 0; 
+        }
+        else
+            return 0;   /* failure */
+
+
+        return 1;   /* success */
+    }
+
+
+    int CyaSSL_EVP_CIPHER_CTX_key_length(CYASSL_EVP_CIPHER_CTX* ctx)
+    {
+        CYASSL_ENTER("CyaSSL_EVP_CIPHER_CTX_key_length");
+        if (ctx)
+            return ctx->keyLen;
+
+        return 0;   /* failure */
+    }
+
+
+    int CyaSSL_EVP_CIPHER_CTX_set_key_length(CYASSL_EVP_CIPHER_CTX* ctx,
+                                             int keylen)
+    {
+        CYASSL_ENTER("CyaSSL_EVP_CIPHER_CTX_set_key_length");
+        if (ctx)
+            ctx->keyLen = keylen;
+        else
+            return 0;  /* failure */
+
+        return 1;  /* success */
+    }
+
+
+    int CyaSSL_EVP_Cipher(CYASSL_EVP_CIPHER_CTX* ctx, byte* dst, byte* src,
+                          word32 len)
+    {
+        CYASSL_ENTER("CyaSSL_EVP_Cipher");
+
+        if (ctx == NULL || dst == NULL || src == NULL) {
+            CYASSL_MSG("Bad function argument");
+            return 0;  /* failure */
+        }
+
+        if (ctx->cipherType == 0xff) { 
+            CYASSL_MSG("no init");
+            return 0;  /* failure */
+        }
+
+        switch (ctx->cipherType) {
+
+            case AES_128_CBC_TYPE :
+            case AES_192_CBC_TYPE :
+            case AES_256_CBC_TYPE :
+                CYASSL_MSG("AES CBC");
+                if (ctx->enc)
+                    AesCbcEncrypt(&ctx->cipher.aes, dst, src, len);
+                else
+                    AesCbcDecrypt(&ctx->cipher.aes, dst, src, len);
+                break;
+
+#ifdef CYASSL_AES_COUNTER
+            case AES_128_CTR_TYPE :
+            case AES_192_CTR_TYPE :
+            case AES_256_CTR_TYPE :
+                    CYASSL_MSG("AES CTR");
+                    AesCtrEncrypt(&ctx->cipher.aes, dst, src, len);
+                break;
+#endif
+
+            case DES_CBC_TYPE :
+                if (ctx->enc)
+                    Des_CbcEncrypt(&ctx->cipher.des, dst, src, len);
+                else
+                    Des_CbcDecrypt(&ctx->cipher.des, dst, src, len);
+                break;
+                
+            case DES_EDE3_CBC_TYPE :
+                if (ctx->enc)
+                    Des3_CbcEncrypt(&ctx->cipher.des3, dst, src, len);
+                else
+                    Des3_CbcDecrypt(&ctx->cipher.des3, dst, src, len);
+                break;
+
+            case ARC4_TYPE :
+                Arc4Process(&ctx->cipher.arc4, dst, src, len);
+                break;
+
+            case NULL_CIPHER_TYPE :
+                XMEMCPY(dst, src, len);
+                break;
+
+            default: {
+                CYASSL_MSG("bad type");
+                return 0;  /* failure */
+            }
+        }    
+
+        CYASSL_MSG("CyaSSL_EVP_Cipher success");
+        return 1;  /* success */ 
+    }
+
+
+    /* store for external read of iv, 0 on success */
+    int  CyaSSL_StoreExternalIV(CYASSL_EVP_CIPHER_CTX* ctx)
+    {
+        CYASSL_ENTER("CyaSSL_StoreExternalIV");
+
+        if (ctx == NULL) {
+            CYASSL_MSG("Bad function argument");
+            return -1;
+        }
+    
+        switch (ctx->cipherType) {
+
+            case AES_128_CBC_TYPE :
+            case AES_192_CBC_TYPE :
+            case AES_256_CBC_TYPE :
+                CYASSL_MSG("AES CBC");
+                memcpy(ctx->iv, &ctx->cipher.aes.reg, AES_BLOCK_SIZE);
+                break;
+
+#ifdef CYASSL_AES_COUNTER
+            case AES_128_CTR_TYPE :
+            case AES_192_CTR_TYPE :
+            case AES_256_CTR_TYPE :
+                CYASSL_MSG("AES CTR");
+                memcpy(ctx->iv, &ctx->cipher.aes.reg, AES_BLOCK_SIZE);
+                break;
+#endif
+
+            case DES_CBC_TYPE :
+                CYASSL_MSG("DES CBC");
+                memcpy(ctx->iv, &ctx->cipher.des.reg, DES_BLOCK_SIZE);
+                break;
+                
+            case DES_EDE3_CBC_TYPE :
+                CYASSL_MSG("DES EDE3 CBC");
+                memcpy(ctx->iv, &ctx->cipher.des.reg, DES_BLOCK_SIZE);
+                break;
+
+            case ARC4_TYPE :
+                CYASSL_MSG("ARC4");
+                break;
+
+            case NULL_CIPHER_TYPE :
+                CYASSL_MSG("NULL");
+                break;
+
+            default: {
+                CYASSL_MSG("bad type");
+                return -1;  /* failure */
+            }
+        }    
+        return 0;  /* success */
+    }
+
+
+    /* set internal IV from external, 0 on success */
+    int  CyaSSL_SetInternalIV(CYASSL_EVP_CIPHER_CTX* ctx)
+    {
+
+        CYASSL_ENTER("CyaSSL_SetInternalIV");
+
+        if (ctx == NULL) {
+            CYASSL_MSG("Bad function argument");
+            return -1;
+        }
+    
+        switch (ctx->cipherType) {
+
+            case AES_128_CBC_TYPE :
+            case AES_192_CBC_TYPE :
+            case AES_256_CBC_TYPE :
+                CYASSL_MSG("AES CBC");
+                memcpy(&ctx->cipher.aes.reg, ctx->iv, AES_BLOCK_SIZE);
+                break;
+
+#ifdef CYASSL_AES_COUNTER
+            case AES_128_CTR_TYPE :
+            case AES_192_CTR_TYPE :
+            case AES_256_CTR_TYPE :
+                CYASSL_MSG("AES CTR");
+                memcpy(&ctx->cipher.aes.reg, ctx->iv, AES_BLOCK_SIZE);
+                break;
+#endif
+
+            case DES_CBC_TYPE :
+                CYASSL_MSG("DES CBC");
+                memcpy(&ctx->cipher.des.reg, ctx->iv, DES_BLOCK_SIZE);
+                break;
+                
+            case DES_EDE3_CBC_TYPE :
+                CYASSL_MSG("DES EDE3 CBC");
+                memcpy(&ctx->cipher.des.reg, ctx->iv, DES_BLOCK_SIZE);
+                break;
+
+            case ARC4_TYPE :
+                CYASSL_MSG("ARC4");
+                break;
+
+            case NULL_CIPHER_TYPE :
+                CYASSL_MSG("NULL");
+                break;
+
+            default: {
+                CYASSL_MSG("bad type");
+                return -1;  /* failure */
+            }
+        }    
+        return 0;  /* success */
+    }
+
+
+    int CyaSSL_EVP_DigestInit(CYASSL_EVP_MD_CTX* ctx, const CYASSL_EVP_MD* type)
+    {
+        CYASSL_ENTER("EVP_DigestInit");
+        if (XSTRNCMP(type, "MD5", 3) == 0) {
+             ctx->macType = MD5;
+             CyaSSL_MD5_Init((MD5_CTX*)&ctx->hash);
+        }
+        else if (XSTRNCMP(type, "SHA256", 6) == 0) {
+             ctx->macType = SHA256;
+             CyaSSL_SHA256_Init((SHA256_CTX*)&ctx->hash);
+        }
+    #ifdef CYASSL_SHA384
+        else if (XSTRNCMP(type, "SHA384", 6) == 0) {
+             ctx->macType = SHA384;
+             CyaSSL_SHA384_Init((SHA384_CTX*)&ctx->hash);
+        }
+    #endif
+    #ifdef CYASSL_SHA512
+        else if (XSTRNCMP(type, "SHA512", 6) == 0) {
+             ctx->macType = SHA512;
+             CyaSSL_SHA512_Init((SHA512_CTX*)&ctx->hash);
+        }
+    #endif
+        /* has to be last since would pick or 256, 384, or 512 too */
+        else if (XSTRNCMP(type, "SHA", 3) == 0) {
+             ctx->macType = SHA;
+             CyaSSL_SHA_Init((SHA_CTX*)&ctx->hash);
+        }    
+        else
+             return BAD_FUNC_ARG;
+
+        return 0;
+    }
+
+
+    int CyaSSL_EVP_DigestUpdate(CYASSL_EVP_MD_CTX* ctx, const void* data,
+                                unsigned long sz)
+    {
+        CYASSL_ENTER("EVP_DigestUpdate");
+        if (ctx->macType == MD5) 
+            CyaSSL_MD5_Update((MD5_CTX*)&ctx->hash, data, (unsigned long)sz);
+        else if (ctx->macType == SHA) 
+            CyaSSL_SHA_Update((SHA_CTX*)&ctx->hash, data, (unsigned long)sz);
+        else if (ctx->macType == SHA256) 
+            CyaSSL_SHA256_Update((SHA256_CTX*)&ctx->hash, data,
+                                 (unsigned long)sz);
+    #ifdef CYASSL_SHA384
+        else if (ctx->macType == SHA384) 
+            CyaSSL_SHA384_Update((SHA384_CTX*)&ctx->hash, data,
+                                 (unsigned long)sz);
+    #endif
+    #ifdef CYASSL_SHA512
+        else if (ctx->macType == SHA512) 
+            CyaSSL_SHA512_Update((SHA512_CTX*)&ctx->hash, data,
+                                 (unsigned long)sz);
+    #endif
+        else
+            return BAD_FUNC_ARG;
+
+        return 0;
+    }
+
+
+    int CyaSSL_EVP_DigestFinal(CYASSL_EVP_MD_CTX* ctx, unsigned char* md,
+                               unsigned int* s)
+    {
+        CYASSL_ENTER("EVP_DigestFinal");
+        if (ctx->macType == MD5) {
+            CyaSSL_MD5_Final(md, (MD5_CTX*)&ctx->hash);
+            if (s) *s = MD5_DIGEST_SIZE;
+        }
+        else if (ctx->macType == SHA) {
+            CyaSSL_SHA_Final(md, (SHA_CTX*)&ctx->hash);
+            if (s) *s = SHA_DIGEST_SIZE;
+        }
+        else if (ctx->macType == SHA256) {
+            CyaSSL_SHA256_Final(md, (SHA256_CTX*)&ctx->hash);
+            if (s) *s = SHA256_DIGEST_SIZE;
+        }
+    #ifdef CYASSL_SHA384
+        else if (ctx->macType == SHA384) {
+            CyaSSL_SHA384_Final(md, (SHA384_CTX*)&ctx->hash);
+            if (s) *s = SHA384_DIGEST_SIZE;
+        }
+    #endif
+    #ifdef CYASSL_SHA512
+        else if (ctx->macType == SHA512) {
+            CyaSSL_SHA512_Final(md, (SHA512_CTX*)&ctx->hash);
+            if (s) *s = SHA512_DIGEST_SIZE;
+        }
+    #endif
+        else
+            return BAD_FUNC_ARG;
+
+        return 0;
+    }
+
+
+    int CyaSSL_EVP_DigestFinal_ex(CYASSL_EVP_MD_CTX* ctx, unsigned char* md,
+                                  unsigned int* s)
+    {
+        CYASSL_ENTER("EVP_DigestFinal_ex");
+        return EVP_DigestFinal(ctx, md, s);
+    }
+
+
+    unsigned char* CyaSSL_HMAC(const CYASSL_EVP_MD* evp_md, const void* key,
+                               int key_len, const unsigned char* d, int n,
+                               unsigned char* md, unsigned int* md_len)
+    {
+        Hmac hmac;
+
+        CYASSL_ENTER("HMAC");
+        if (!md) return 0;  /* no static buffer support */
+
+        if (XSTRNCMP(evp_md, "MD5", 3) == 0) {
+            HmacSetKey(&hmac, MD5, (const byte*)key, key_len);
+            if (md_len) *md_len = MD5_DIGEST_SIZE;
+        }
+        else if (XSTRNCMP(evp_md, "SHA", 3) == 0) {
+            HmacSetKey(&hmac, SHA, (const byte*)key, key_len);    
+            if (md_len) *md_len = SHA_DIGEST_SIZE;
+        }
+        else
+            return 0;
+
+        HmacUpdate(&hmac, d, n);
+        HmacFinal(&hmac, md);
+    
+        return md;
+    }
+
+    void CyaSSL_ERR_clear_error(void)
+    {
+        /* TODO: */
+    }
+
+
+    int CyaSSL_RAND_status(void)
+    {
+        return 1;  /* CTaoCrypt provides enough seed internally */
+    }
+
+
+
+    void CyaSSL_RAND_add(const void* add, int len, double entropy)
+    {
+        (void)add;
+        (void)len;
+        (void)entropy;
+
+        /* CyaSSL seeds/adds internally, use explicit RNG if you want
+           to take control */
+    }
+
+
+    int CyaSSL_DES_key_sched(CYASSL_const_DES_cblock* key,
+                             CYASSL_DES_key_schedule* schedule)
+    {
+        CYASSL_ENTER("DES_key_sched");
+        XMEMCPY(schedule, key, sizeof(const_DES_cblock));
+        return 0;
+    }
+
+
+    void CyaSSL_DES_cbc_encrypt(const unsigned char* input,
+                     unsigned char* output, long length,
+                     CYASSL_DES_key_schedule* schedule, CYASSL_DES_cblock* ivec,
+                     int enc)
+    {
+        Des myDes;
+        CYASSL_ENTER("DES_cbc_encrypt");
+        Des_SetKey(&myDes, (const byte*)schedule, (const byte*)ivec, !enc);
+
+        if (enc)
+            Des_CbcEncrypt(&myDes, output, input, length);
+        else
+            Des_CbcDecrypt(&myDes, output, input, length);
+    }
+
+
+    /* correctly sets ivec for next call */
+    void CyaSSL_DES_ncbc_encrypt(const unsigned char* input,
+                     unsigned char* output, long length,
+                     CYASSL_DES_key_schedule* schedule, CYASSL_DES_cblock* ivec,
+                     int enc)
+    {
+        Des myDes;
+        CYASSL_ENTER("DES_ncbc_encrypt");
+        Des_SetKey(&myDes, (const byte*)schedule, (const byte*)ivec, !enc);
+
+        if (enc)
+            Des_CbcEncrypt(&myDes, output, input, length);
+        else
+            Des_CbcDecrypt(&myDes, output, input, length);
+
+        XMEMCPY(ivec, output + length - sizeof(DES_cblock), sizeof(DES_cblock));
+    }
+
+
+    void CyaSSL_ERR_free_strings(void)
+    {
+        /* handled internally */
+    }
+
+
+    void CyaSSL_ERR_remove_state(unsigned long state)
+    {
+        /* TODO: GetErrors().Remove(); */
+        (void)state; 
+    }
+
+
+    void CyaSSL_EVP_cleanup(void)
+    {
+        /* nothing to do here */
+    }
+
+
+    void CyaSSL_cleanup_all_ex_data(void)
+    {
+        /* nothing to do here */
+    }
+
+
+    long CyaSSL_CTX_set_mode(CYASSL_CTX* ctx, long mode)
+    {
+        /* SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER is CyaSSL default mode */
+
+        CYASSL_ENTER("SSL_CTX_set_mode");
+        if (mode == SSL_MODE_ENABLE_PARTIAL_WRITE)
+            ctx->partialWrite = 1;
+
+        return mode;
+    }
+
+
+    long CyaSSL_CTX_get_mode(CYASSL_CTX* ctx)
+    {
+        /* TODO: */
+        (void)ctx; 
+        return 0;
+    }
+
+
+    void CyaSSL_CTX_set_default_read_ahead(CYASSL_CTX* ctx, int m)
+    {
+        /* TODO: maybe? */
+        (void)ctx; 
+        (void)m; 
+    }
+
+
+    int CyaSSL_CTX_set_session_id_context(CYASSL_CTX* ctx,
+                                       const unsigned char* sid_ctx,
+                                       unsigned int sid_ctx_len)
+    {
+        /* No application specific context needed for cyaSSL */
+        (void)ctx; 
+        (void)sid_ctx; 
+        (void)sid_ctx_len; 
+        return SSL_SUCCESS;
+    }
+
+
+    long CyaSSL_CTX_sess_get_cache_size(CYASSL_CTX* ctx)
+    {
+        /* TODO: maybe? */
+        (void)ctx; 
+        return (~0);
+    }
+
+    unsigned long CyaSSL_ERR_get_error_line_data(const char** file, int* line,
+                                          const char** data, int *flags)
+    {
+        /* Not implemented */
+        (void)file; 
+        (void)line; 
+        (void)data; 
+        (void)flags; 
+        return 0;
+    }
+
+
+    CYASSL_X509* CyaSSL_get_peer_certificate(CYASSL* ssl)
+    {
+        CYASSL_ENTER("SSL_get_peer_certificate");
+        if (ssl->peerCert.issuer.sz)
+            return &ssl->peerCert;
+        else
+            return 0;
+    }
+
+
+
+    int CyaSSL_set_ex_data(CYASSL* ssl, int idx, void* data)
+    {
+#ifdef FORTRESS
+        if (ssl != NULL && idx < MAX_EX_DATA)
+        {
+            ssl->ex_data[idx] = data;
+            return SSL_SUCCESS;
+        }
+#else
+        (void)ssl;
+        (void)idx;
+        (void)data;
+#endif
+        return SSL_FAILURE;
+    }
+
+
+    int CyaSSL_get_shutdown(const CYASSL* ssl)
+    {
+        (void)ssl;
+        return 0;
+    }
+
+
+    int CyaSSL_set_session_id_context(CYASSL* ssl, const unsigned char* id,
+                                   unsigned int len)
+    {
+        (void)ssl;
+        (void)id;
+        (void)len;
+        return 0;
+    }
+
+
+    void CyaSSL_set_connect_state(CYASSL* ssl)
+    {
+        (void)ssl;
+        /* client by default */ 
+    }
+
+
+    int CyaSSL_session_reused(CYASSL* ssl)
+    {
+        return ssl->options.resuming;
+    }
+
+
+    void CyaSSL_SESSION_free(CYASSL_SESSION* session)
+    {
+        (void)session;
+    }
+
+
+    const char* CyaSSL_get_version(CYASSL* ssl)
+    {
+        CYASSL_ENTER("SSL_get_version");
+        if (ssl->version.major == SSLv3_MAJOR) {
+            switch (ssl->version.minor) {
+                case SSLv3_MINOR :
+                    return "SSLv3";
+                case TLSv1_MINOR :
+                    return "TLSv1";
+                case TLSv1_1_MINOR :
+                    return "TLSv1.1";
+                case TLSv1_2_MINOR :
+                    return "TLSv1.2";
+                default:
+                    return "unknown";
+            }
+        }
+        else if (ssl->version.major == DTLS_MAJOR)
+            return "DTLS";
+        return "unknown";
+    }
+
+
+    CYASSL_CIPHER* CyaSSL_get_current_cipher(CYASSL* ssl)
+    {
+        CYASSL_ENTER("SSL_get_current_cipher");
+        if (ssl)
+            return &ssl->cipher;
+        else
+            return NULL;
+    }
+
+
+    const char* CyaSSL_CIPHER_get_name(const CYASSL_CIPHER* cipher)
+    {
+        CYASSL_ENTER("SSL_CIPHER_get_name");
+        if (cipher) {
+#ifdef HAVE_ECC
+            if (cipher->ssl->options.cipherSuite0 == ECC_BYTE) {
+            /* ECC suites */
+            switch (cipher->ssl->options.cipherSuite) {
+                case TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA :
+                    return "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA";
+                case TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA :
+                    return "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA";
+                case TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA :
+                    return "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA";
+                case TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA :
+                    return "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA";
+                case TLS_ECDHE_RSA_WITH_RC4_128_SHA :
+                    return "TLS_ECDHE_RSA_WITH_RC4_128_SHA";
+                case TLS_ECDHE_ECDSA_WITH_RC4_128_SHA :
+                    return "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA";
+                case TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA :
+                    return "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA";
+                case TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA :
+                    return "TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA";
+
+                case TLS_ECDH_RSA_WITH_AES_128_CBC_SHA :
+                    return "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA";
+                case TLS_ECDH_RSA_WITH_AES_256_CBC_SHA :
+                    return "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA";
+                case TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA :
+                    return "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA";
+                case TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA :
+                    return "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA";
+                case TLS_ECDH_RSA_WITH_RC4_128_SHA :
+                    return "TLS_ECDH_RSA_WITH_RC4_128_SHA";
+                case TLS_ECDH_ECDSA_WITH_RC4_128_SHA :
+                    return "TLS_ECDH_ECDSA_WITH_RC4_128_SHA";
+                case TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA :
+                    return "TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA";
+                case TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA :
+                    return "TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA";
+
+                default:
+                    return "NONE";
+            }
+            }
+#endif
+            if (cipher->ssl->options.cipherSuite0 != ECC_BYTE) {
+            /* normal suites */
+            switch (cipher->ssl->options.cipherSuite) {
+                case SSL_RSA_WITH_RC4_128_SHA :
+                    return "SSL_RSA_WITH_RC4_128_SHA";
+                case SSL_RSA_WITH_RC4_128_MD5 :
+                    return "SSL_RSA_WITH_RC4_128_MD5";
+                case SSL_RSA_WITH_3DES_EDE_CBC_SHA :
+                    return "SSL_RSA_WITH_3DES_EDE_CBC_SHA";
+                case TLS_RSA_WITH_AES_128_CBC_SHA :
+                    return "TLS_RSA_WITH_AES_128_CBC_SHA";
+                case TLS_RSA_WITH_AES_256_CBC_SHA :
+                    return "TLS_RSA_WITH_AES_256_CBC_SHA";
+                case TLS_RSA_WITH_AES_128_CBC_SHA256 :
+                    return "TLS_RSA_WITH_AES_128_CBC_SHA256";
+                case TLS_RSA_WITH_AES_256_CBC_SHA256 :
+                    return "TLS_RSA_WITH_AES_256_CBC_SHA256";
+                case TLS_PSK_WITH_AES_128_CBC_SHA :
+                    return "TLS_PSK_WITH_AES_128_CBC_SHA";
+                case TLS_PSK_WITH_AES_256_CBC_SHA :
+                    return "TLS_PSK_WITH_AES_256_CBC_SHA";
+                case TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 :
+                    return "TLS_DHE_RSA_WITH_AES_128_CBC_SHA256";
+                case TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 :
+                    return "TLS_DHE_RSA_WITH_AES_256_CBC_SHA256";
+                case TLS_DHE_RSA_WITH_AES_128_CBC_SHA :
+                    return "TLS_DHE_RSA_WITH_AES_128_CBC_SHA";
+                case TLS_DHE_RSA_WITH_AES_256_CBC_SHA :
+                    return "TLS_DHE_RSA_WITH_AES_256_CBC_SHA";
+                case TLS_RSA_WITH_HC_128_CBC_MD5 :
+                    return "TLS_RSA_WITH_HC_128_CBC_MD5";
+                case TLS_RSA_WITH_HC_128_CBC_SHA :
+                    return "TLS_RSA_WITH_HC_128_CBC_SHA";
+                case TLS_RSA_WITH_RABBIT_CBC_SHA :
+                    return "TLS_RSA_WITH_RABBIT_CBC_SHA";
+                case TLS_NTRU_RSA_WITH_RC4_128_SHA :
+                    return "TLS_NTRU_RSA_WITH_RC4_128_SHA";
+                case TLS_NTRU_RSA_WITH_3DES_EDE_CBC_SHA :
+                    return "TLS_NTRU_RSA_WITH_3DES_EDE_CBC_SHA";
+                case TLS_NTRU_RSA_WITH_AES_128_CBC_SHA :
+                    return "TLS_NTRU_RSA_WITH_AES_128_CBC_SHA";
+                case TLS_NTRU_RSA_WITH_AES_256_CBC_SHA :
+                    return "TLS_NTRU_RSA_WITH_AES_256_CBC_SHA";
+                default:
+                    return "NONE";
+            }  /* switch */
+            }  /* normal / ECC */
+        }
+
+        return "NONE";
+    }
+
+
+    const char* CyaSSL_get_cipher(CYASSL* ssl)
+    {
+        CYASSL_ENTER("CyaSSL_get_cipher");
+        return CyaSSL_CIPHER_get_name(CyaSSL_get_current_cipher(ssl));
+    }
+
+
+    /* server ctx Diffie-Hellman parameters */
+    int CyaSSL_CTX_SetTmpDH(CYASSL_CTX* ctx, const unsigned char* p, int pSz,
+                            const unsigned char* g, int gSz)
+    {
+        CYASSL_ENTER("CyaSSL_CTX_SetTmpDH");
+        if (ctx == NULL || p == NULL || g == NULL) return BAD_FUNC_ARG;
+
+        XFREE(ctx->serverDH_P.buffer, ctx->heap, DYNAMIC_TYPE_DH);
+        XFREE(ctx->serverDH_G.buffer, ctx->heap, DYNAMIC_TYPE_DH);
+
+        ctx->serverDH_P.buffer = (byte*)XMALLOC(pSz, ctx->heap,DYNAMIC_TYPE_DH);
+        if (ctx->serverDH_P.buffer == NULL)
+            return MEMORY_E;
+
+        ctx->serverDH_G.buffer = (byte*)XMALLOC(gSz, ctx->heap,DYNAMIC_TYPE_DH);
+        if (ctx->serverDH_G.buffer == NULL) {
+            XFREE(ctx->serverDH_P.buffer, ctx->heap, DYNAMIC_TYPE_DH);
+            return MEMORY_E;
+        }
+
+        ctx->serverDH_P.length = pSz;
+        ctx->serverDH_G.length = gSz;
+
+        XMEMCPY(ctx->serverDH_P.buffer, p, pSz);
+        XMEMCPY(ctx->serverDH_G.buffer, g, gSz);
+
+        ctx->haveDH = 1;
+
+        CYASSL_LEAVE("CyaSSL_CTX_SetTmpDH", 0);
+        return 0;
+    }
+
+
+    char* CyaSSL_CIPHER_description(CYASSL_CIPHER* cipher, char* in, int len)
+    {
+        (void)cipher;
+        (void)in;
+        (void)len;
+        return 0;
+    }
+
+
+    CYASSL_SESSION* CyaSSL_get1_session(CYASSL* ssl)  /* what's ref count */
+    {
+        (void)ssl;
+        return 0;
+    }
+
+
+    void CyaSSL_X509_free(CYASSL_X509* buf)
+    {
+        (void)buf;
+    }
+
+
+    /* was do nothing */
+    /*
+    void OPENSSL_free(void* buf)
+    {
+        (void)buf;
+    }
+    */
+
+
+    int CyaSSL_OCSP_parse_url(char* url, char** host, char** port, char** path,
+                       int* ssl)
+    {
+        (void)url;
+        (void)host;
+        (void)port;
+        (void)path;
+        (void)ssl;
+        return 0;
+    }
+
+
+    CYASSL_METHOD* CyaSSLv2_client_method(void)
+    {
+        return 0;
+    }
+
+
+    CYASSL_METHOD* CyaSSLv2_server_method(void)
+    {
+        return 0;
+    }
+
+
+#ifndef NO_MD4
+
+    void CyaSSL_MD4_Init(CYASSL_MD4_CTX* md4)
+    {
+        /* make sure we have a big enough buffer */
+        typedef char ok[sizeof(md4->buffer) >= sizeof(Md4) ? 1 : -1];
+        (void) sizeof(ok);
+ 
+        CYASSL_ENTER("MD4_Init");
+        InitMd4((Md4*)md4);    
+    }
+
+
+    void CyaSSL_MD4_Update(CYASSL_MD4_CTX* md4, const void* data,
+                           unsigned long len)
+    {
+        CYASSL_ENTER("MD4_Update");
+        Md4Update((Md4*)md4, (const byte*)data, (word32)len); 
+    }
+
+
+    void CyaSSL_MD4_Final(unsigned char* digest, CYASSL_MD4_CTX* md4)
+    {
+        CYASSL_ENTER("MD4_Final");
+        Md4Final((Md4*)md4, digest); 
+    }
+
+#endif /* NO_MD4 */
+
+
+    CYASSL_BIO* CyaSSL_BIO_pop(CYASSL_BIO* top)
+    {
+        (void)top;
+        return 0;
+    }
+
+
+    int CyaSSL_BIO_pending(CYASSL_BIO* bio)
+    {
+        (void)bio;
+        return 0;
+    }
+
+
+
+    CYASSL_BIO_METHOD* CyaSSL_BIO_s_mem(void)
+    {
+        static CYASSL_BIO_METHOD meth;
+
+        CYASSL_ENTER("BIO_s_mem");
+        meth.type = BIO_MEMORY;
+
+        return &meth;
+    }
+
+
+    CYASSL_BIO_METHOD* CyaSSL_BIO_f_base64(void)
+    {
+        return 0;
+    }
+
+
+    void CyaSSL_BIO_set_flags(CYASSL_BIO* bio, int flags)
+    {
+        (void)bio;
+        (void)flags;
+    }
+
+
+
+    void CyaSSL_RAND_screen(void)
+    {
+    
+    }
+
+
+    const char* CyaSSL_RAND_file_name(char* fname, unsigned long len)
+    {
+        (void)fname;
+        (void)len;
+        return 0;
+    }
+
+
+    int CyaSSL_RAND_write_file(const char* fname)
+    {
+        (void)fname;
+        return 0;
+    }
+
+
+    int CyaSSL_RAND_load_file(const char* fname, long len)
+    {
+        (void)fname;
+        /* CTaoCrypt provides enough entropy internally or will report error */
+        if (len == -1)
+            return 1024;
+        else
+            return (int)len;
+    }
+
+
+    int CyaSSL_RAND_egd(const char* path)
+    {
+        (void)path;
+        return 0;
+    }
+
+
+
+    CYASSL_COMP_METHOD* CyaSSL_COMP_zlib(void)
+    {
+        return 0;
+    }
+
+
+    CYASSL_COMP_METHOD* CyaSSL_COMP_rle(void)
+    {
+        return 0;
+    }
+
+
+    int CyaSSL_COMP_add_compression_method(int method, void* data)
+    {
+        (void)method;
+        (void)data;
+        return 0;
+    }
+
+
+
+    int CyaSSL_get_ex_new_index(long idx, void* data, void* cb1, void* cb2,
+                             void* cb3)
+    {
+        (void)idx;
+        (void)data;
+        (void)cb1;
+        (void)cb2;
+        (void)cb3;
+        return 0;
+    }
+
+
+    void CyaSSL_set_dynlock_create_callback(CYASSL_dynlock_value* (*f)(
+                                                              const char*, int))
+    {
+        (void)f;
+    }
+
+
+    void CyaSSL_set_dynlock_lock_callback(
+                 void (*f)(int, CYASSL_dynlock_value*, const char*, int))
+    {
+        (void)f;
+    }
+
+
+    void CyaSSL_set_dynlock_destroy_callback(
+                      void (*f)(CYASSL_dynlock_value*, const char*, int))
+    {
+        (void)f;
+    }
+
+
+
+    const char* CyaSSL_X509_verify_cert_error_string(long err)
+    {
+        (void)err;
+        return 0;
+    }
+
+
+
+    int CyaSSL_X509_LOOKUP_add_dir(CYASSL_X509_LOOKUP* lookup, const char* dir,
+                                   long len)
+    {
+        (void)lookup;
+        (void)dir;
+        (void)len;
+        return 0;
+    }
+
+
+    int CyaSSL_X509_LOOKUP_load_file(CYASSL_X509_LOOKUP* lookup,
+                                     const char* file, long len)
+    {
+        (void)lookup;
+        (void)file;
+        (void)len;
+        return 0;
+    }
+
+
+    CYASSL_X509_LOOKUP_METHOD* CyaSSL_X509_LOOKUP_hash_dir(void)
+    {
+        return 0;
+    }
+
+
+    CYASSL_X509_LOOKUP_METHOD* CyaSSL_X509_LOOKUP_file(void)
+    {
+        return 0;
+    }
+
+
+
+    CYASSL_X509_LOOKUP* CyaSSL_X509_STORE_add_lookup(CYASSL_X509_STORE* store,
+                                                   CYASSL_X509_LOOKUP_METHOD* m)
+    {
+        (void)store;
+        (void)m;
+        return 0;
+    }
+
+
+    CYASSL_X509_STORE* CyaSSL_X509_STORE_new(void)
+    {
+        return 0;
+    }
+
+
+    int CyaSSL_X509_STORE_get_by_subject(CYASSL_X509_STORE_CTX* ctx, int idx,
+                                CYASSL_X509_NAME* name, CYASSL_X509_OBJECT* obj)
+    {
+        (void)ctx;
+        (void)idx;
+        (void)name;
+        (void)obj;
+        return 0;
+    }
+
+
+    int CyaSSL_X509_STORE_CTX_init(CYASSL_X509_STORE_CTX* ctx,
+         CYASSL_X509_STORE* store, CYASSL_X509* x509, STACK_OF(CYASSL_X509)* sk)
+    {
+        (void)ctx;
+        (void)store;
+        (void)x509;
+        (void)sk;
+        return 0;
+    }
+
+
+    void CyaSSL_X509_STORE_CTX_cleanup(CYASSL_X509_STORE_CTX* ctx)
+    {
+        (void)ctx;
+    }
+
+
+
+    CYASSL_ASN1_TIME* CyaSSL_X509_CRL_get_lastUpdate(CYASSL_X509_CRL* crl)
+    {
+        (void)crl;
+        return 0;
+    }
+
+
+    CYASSL_ASN1_TIME* CyaSSL_X509_CRL_get_nextUpdate(CYASSL_X509_CRL* crl)
+    {
+        (void)crl;
+        return 0;
+    }
+
+
+
+    CYASSL_EVP_PKEY* CyaSSL_X509_get_pubkey(CYASSL_X509* x509)
+    {
+        (void)x509;
+        return 0;
+    }
+
+
+    int CyaSSL_X509_CRL_verify(CYASSL_X509_CRL* crl, CYASSL_EVP_PKEY* key)
+    {
+        (void)crl;
+        (void)key;
+        return 0;
+    }
+
+
+    void CyaSSL_X509_STORE_CTX_set_error(CYASSL_X509_STORE_CTX* ctx, int err)
+    {
+        (void)ctx;
+        (void)err;
+    }
+
+
+    void CyaSSL_X509_OBJECT_free_contents(CYASSL_X509_OBJECT* obj)
+    {
+        (void)obj;
+    }
+
+
+    void CyaSSL_EVP_PKEY_free(CYASSL_EVP_PKEY* key)
+    {
+        (void)key;
+    }
+
+
+    int CyaSSL_X509_cmp_current_time(const CYASSL_ASN1_TIME* asnTime)
+    {
+        (void)asnTime;
+        return 0;
+    }
+
+
+    int CyaSSL_sk_X509_REVOKED_num(CYASSL_X509_REVOKED* revoked)
+    {
+        (void)revoked;
+        return 0;
+    }
+
+
+
+    CYASSL_X509_REVOKED* CyaSSL_X509_CRL_get_REVOKED(CYASSL_X509_CRL* crl)
+    {
+        (void)crl;
+        return 0;
+    }
+
+
+    CYASSL_X509_REVOKED* CyaSSL_sk_X509_REVOKED_value(
+                                        CYASSL_X509_REVOKED* revoked, int value)
+    {
+        (void)revoked;
+        (void)value;
+        return 0;
+    }
+
+
+
+    CYASSL_ASN1_INTEGER* CyaSSL_X509_get_serialNumber(CYASSL_X509* x509)
+    {
+        (void)x509;
+        return 0;
+    }
+
+
+    int CyaSSL_ASN1_TIME_print(CYASSL_BIO* bio, const CYASSL_ASN1_TIME* asnTime)
+    {
+        (void)bio;
+        (void)asnTime;
+        return 0;
+    }
+
+
+
+    int CyaSSL_ASN1_INTEGER_cmp(const CYASSL_ASN1_INTEGER* a,
+                                const CYASSL_ASN1_INTEGER* b)
+    {
+        (void)a;
+        (void)b;
+        return 0;
+    }
+
+
+    long CyaSSL_ASN1_INTEGER_get(const CYASSL_ASN1_INTEGER* i)
+    {
+        (void)i;
+        return 0;
+    }
+
+
+
+    void* CyaSSL_X509_STORE_CTX_get_ex_data(CYASSL_X509_STORE_CTX* ctx, int idx)
+    {
+#ifdef FORTRESS
+        if (ctx != NULL && idx == 0)
+            return ctx->ex_data;
+#else
+        (void)ctx;
+        (void)idx;
+#endif
+        return 0;
+    }
+
+
+    int CyaSSL_get_ex_data_X509_STORE_CTX_idx(void)
+    {
+        return 0;
+    }
+
+
+    void* CyaSSL_get_ex_data(const CYASSL* ssl, int idx)
+    {
+#ifdef FORTRESS
+        if (ssl != NULL && idx < MAX_EX_DATA)
+            return ssl->ex_data[idx];
+#else
+        (void)ssl;
+        (void)idx;
+#endif
+        return 0;
+    }
+
+
+    void CyaSSL_CTX_set_info_callback(CYASSL_CTX* ctx, void (*f)(void))
+    {
+        (void)ctx;
+        (void)f;
+    }
+
+
+    unsigned long CyaSSL_ERR_peek_error(void)
+    {
+        return 0;
+    }
+
+
+    int CyaSSL_ERR_GET_REASON(int err)
+    {
+        (void)err;
+        return 0;
+    }
+
+
+    char* CyaSSL_alert_type_string_long(int alertID)
+    {
+        (void)alertID;
+        return 0;
+    }
+
+
+    char* CyaSSL_alert_desc_string_long(int alertID)
+    {
+        (void)alertID;
+        return 0;
+    }
+
+
+    char* CyaSSL_state_string_long(CYASSL* ssl)
+    {
+        (void)ssl;
+        return 0;
+    }
+
+
+    int CyaSSL_PEM_def_callback(char* name, int num, int w, void* key)
+    {
+        (void)name;
+        (void)num;
+        (void)w;
+        (void)key;
+        return 0;
+    }
+    
+
+    long CyaSSL_CTX_sess_accept(CYASSL_CTX* ctx)
+    {
+        (void)ctx;
+        return 0;
+    }
+
+
+    long CyaSSL_CTX_sess_connect(CYASSL_CTX* ctx)
+    {
+        (void)ctx;
+        return 0;
+    }
+
+
+    long CyaSSL_CTX_sess_accept_good(CYASSL_CTX* ctx)
+    {
+        (void)ctx;
+        return 0;
+    }
+
+
+    long CyaSSL_CTX_sess_connect_good(CYASSL_CTX* ctx)
+    {
+        (void)ctx;
+        return 0;
+    }
+
+
+    long CyaSSL_CTX_sess_accept_renegotiate(CYASSL_CTX* ctx)
+    {
+        (void)ctx;
+        return 0;
+    }
+
+
+    long CyaSSL_CTX_sess_connect_renegotiate(CYASSL_CTX* ctx)
+    {
+        (void)ctx;
+        return 0;
+    }
+
+
+    long CyaSSL_CTX_sess_hits(CYASSL_CTX* ctx)
+    {
+        (void)ctx;
+        return 0;
+    }
+
+
+    long CyaSSL_CTX_sess_cb_hits(CYASSL_CTX* ctx)
+    {
+        (void)ctx;
+        return 0;
+    }
+
+
+    long CyaSSL_CTX_sess_cache_full(CYASSL_CTX* ctx)
+    {
+        (void)ctx;
+        return 0;
+    }
+
+
+    long CyaSSL_CTX_sess_misses(CYASSL_CTX* ctx)
+    {
+        (void)ctx;
+        return 0;
+    }
+
+
+    long CyaSSL_CTX_sess_timeouts(CYASSL_CTX* ctx)
+    {
+        (void)ctx;
+        return 0;
+    }
+
+
+    long CyaSSL_CTX_sess_number(CYASSL_CTX* ctx)
+    {
+        (void)ctx;
+        return 0;
+    }
+
+
+    void CyaSSL_DES_set_key_unchecked(CYASSL_const_DES_cblock* myDes,
+                                                   CYASSL_DES_key_schedule* key)
+    {
+        (void)myDes;
+        (void)key;
+    }
+
+
+    void CyaSSL_DES_set_odd_parity(CYASSL_DES_cblock* myDes)
+    {
+        (void)myDes;
+    }
+
+    
+    void CyaSSL_DES_ecb_encrypt(CYASSL_DES_cblock* desa,
+                 CYASSL_DES_cblock* desb, CYASSL_DES_key_schedule* key, int len)
+    {
+        (void)desa;
+        (void)desb;
+        (void)key;
+        (void)len;
+    }
+
+    int CyaSSL_BIO_printf(CYASSL_BIO* bio, const char* format, ...)
+    {
+        (void)bio;
+        (void)format;
+        return 0;
+    }
+
+
+    int CyaSSL_ASN1_UTCTIME_print(CYASSL_BIO* bio, const CYASSL_ASN1_UTCTIME* a)
+    {
+        (void)bio;
+        (void)a;
+        return 0;
+    }
+    
+
+    int  CyaSSL_sk_num(CYASSL_X509_REVOKED* rev)
+    {
+        (void)rev;
+        return 0;
+    }
+
+
+    void* CyaSSL_sk_value(CYASSL_X509_REVOKED* rev, int i)
+    {
+        (void)rev;
+        (void)i;
+        return 0;
+    }
+
+
+    /* stunnel 4.28 needs */
+    void* CyaSSL_CTX_get_ex_data(const CYASSL_CTX* ctx, int d)
+    {
+        (void)ctx;
+        (void)d;
+        return 0;
+    }
+
+
+    int CyaSSL_CTX_set_ex_data(CYASSL_CTX* ctx, int d, void* p)
+    {
+        (void)ctx;
+        (void)d;
+        (void)p;
+        return SSL_SUCCESS;
+    }
+
+
+    void CyaSSL_CTX_sess_set_get_cb(CYASSL_CTX* ctx,
+                        CYASSL_SESSION*(*f)(CYASSL*, unsigned char*, int, int*))
+    {
+        (void)ctx;
+        (void)f;
+    }
+
+
+    void CyaSSL_CTX_sess_set_new_cb(CYASSL_CTX* ctx,
+                                 int (*f)(CYASSL*, CYASSL_SESSION*))
+    {
+        (void)ctx;
+        (void)f;
+    }
+
+
+    void CyaSSL_CTX_sess_set_remove_cb(CYASSL_CTX* ctx, void (*f)(CYASSL_CTX*,
+                                                            CYASSL_SESSION*))
+    {
+        (void)ctx;
+        (void)f;
+    }
+
+
+    int CyaSSL_i2d_SSL_SESSION(CYASSL_SESSION* sess, unsigned char** p)
+    {
+        (void)sess;
+        (void)p;
+        return sizeof(CYASSL_SESSION);
+    }
+
+
+    CYASSL_SESSION* CyaSSL_d2i_SSL_SESSION(CYASSL_SESSION** sess,
+                                    const unsigned char** p, long i)
+    {
+        (void)p;
+        (void)i;
+        if (sess)
+            return *sess;
+        return NULL;
+    }
+
+
+    long CyaSSL_SESSION_get_timeout(const CYASSL_SESSION* sess)
+    {
+        CYASSL_ENTER("CyaSSL_SESSION_get_timeout");
+        return sess->timeout;
+    }
+
+
+    long CyaSSL_SESSION_get_time(const CYASSL_SESSION* sess)
+    {
+        CYASSL_ENTER("CyaSSL_SESSION_get_time");
+        return sess->bornOn;
+    }
+
+
+    int CyaSSL_CTX_get_ex_new_index(long idx, void* arg, void* a, void* b,
+                                    void* c)
+    {
+        (void)idx;
+        (void)arg;
+        (void)a;
+        (void)b;
+        (void)c;
+        return 0; 
+    }
+
+    /* write X509 serial number in unsigned binary to buffer 
+       buffer needs to be at least EXTERNAL_SERIAL_SIZE (32) for all cases
+       return 0 on success */
+    int CyaSSL_X509_get_serial_number(CYASSL_X509* x509, byte* in, int* inOutSz)
+    {
+        CYASSL_ENTER("CyaSSL_X509_get_serial_number");
+        if (x509 == NULL || in == NULL || *inOutSz < x509->serialSz)
+            return BAD_FUNC_ARG;
+
+        XMEMCPY(in, x509->serial, x509->serialSz);
+        *inOutSz = x509->serialSz;
+
+        return 0;
+    }
+
+
+    const byte* CyaSSL_X509_get_der(CYASSL_X509* x509, int* outSz)
+    { 
+        CYASSL_ENTER("CyaSSL_X509_get_der");
+        
+        if (x509 == NULL || outSz == NULL)
+            return NULL;
+
+        *outSz = (int)x509->derCert.length;
+        return x509->derCert.buffer;
+    }  
+
+
+    char*  CyaSSL_X509_get_subjectCN(CYASSL_X509* x509)
+    {
+        if (x509 == NULL)
+            return NULL;
+
+        return x509->subjectCN;
+    }
+
+
+#ifdef FORTRESS
+    int CyaSSL_cmp_peer_cert_to_file(CYASSL* ssl, const char *fname)
+    {
+        int ret = -1;
+
+        CYASSL_ENTER("CyaSSL_cmp_peer_cert_to_file");
+        if (ssl != NULL && fname != NULL)
+        {
+            XFILE*        file = NULL;
+            int           sz = 0;
+            byte          staticBuffer[FILE_BUFFER_SIZE];
+            byte*         myBuffer = staticBuffer;
+            CYASSL_CTX*   ctx = ssl->ctx;
+            EncryptedInfo info;
+            buffer        fileDer;
+            int           eccKey = 0;
+            CYASSL_X509*  peer_cert = &ssl->peerCert;
+
+            info.set = 0;
+            info.ctx = ctx;
+            info.consumed = 0;
+            fileDer.buffer = 0;
+
+            file = XFOPEN(fname, "rb"); 
+            if (!file) return SSL_BAD_FILE;
+            XFSEEK(file, 0, XSEEK_END);
+            sz = XFTELL(file);
+            XREWIND(file);
+            if (sz > (long)sizeof(staticBuffer)) {
+                CYASSL_MSG("Getting dynamic buffer");
+                myBuffer = (byte*) XMALLOC(sz, ctx->heap, DYNAMIC_TYPE_FILE);
+            }
+            
+            if ((myBuffer != NULL) &&
+                (XFREAD(myBuffer, sz, 1, file) > 0) &&
+                (PemToDer(myBuffer, sz, CERT_TYPE,
+                                &fileDer, ctx->heap, &info, &eccKey) == 0) &&
+                (fileDer.length != 0) &&
+                (fileDer.length == peer_cert->derCert.length) &&
+                (XMEMCMP(peer_cert->derCert.buffer, fileDer.buffer,
+                                                    fileDer.length) == 0))
+            {
+                ret = 0;
+            }
+
+            XFCLOSE(file);
+            if (fileDer.buffer)
+                XFREE(fileDer.buffer, ctx->heap, DYNAMIC_TYPE_CERT);
+            if (myBuffer && (myBuffer != staticBuffer))
+                XFREE(myBuffer, ctx->heap, DYNAMIC_TYPE_FILE);
+        }
+
+        return ret;
+    }
+#else
+    int CyaSSL_cmp_peer_cert_to_file(CYASSL* ssl, const char *fname)
+    {
+        (void)ssl;
+        (void)fname;
+        return -1;
+    }
+#endif
+
+
+static RNG globalRNG;
+static int initGlobalRNG = 0;
+
+    int CyaSSL_RAND_seed(const void* seed, int len)
+    {
+
+        CYASSL_MSG("CyaSSL_RAND_seed");
+
+        (void)seed;
+        (void)len;
+
+        if (initGlobalRNG == 0) {
+            if (InitRng(&globalRNG) < 0) {
+                CYASSL_MSG("CyaSSL Init Global RNG failed");
+            }
+            initGlobalRNG = 1;
+        }
+
+        return 0;
+    }
+
+
+    int CyaSSL_RAND_bytes(unsigned char* buf, int num)
+    {
+        RNG    tmpRNG;
+        RNG*   rng = &tmpRNG; 
+
+        CYASSL_ENTER("RAND_bytes");
+        if (InitRng(&tmpRNG) != 0) {
+            CYASSL_MSG("Bad RNG Init, trying global");
+            if (initGlobalRNG == 0) {
+                CYASSL_MSG("Global RNG no Init");
+                return 0; 
+            }
+            rng = &globalRNG;
+        }
+
+        RNG_GenerateBlock(rng, buf, num);
+
+        return 1;
+    }
+
+    CYASSL_BN_CTX* CyaSSL_BN_CTX_new(void)
+    {
+        static int ctx;  /* ctaocrypt doesn't now need ctx */
+
+        CYASSL_MSG("CyaSSL_BN_CTX_new");
+
+        return (CYASSL_BN_CTX*)&ctx;
+    }
+
+    void CyaSSL_BN_CTX_init(CYASSL_BN_CTX* ctx)
+    {
+        (void)ctx;
+        CYASSL_MSG("CyaSSL_BN_CTX_init");
+    }
+
+
+    void CyaSSL_BN_CTX_free(CYASSL_BN_CTX* ctx)
+    {
+        (void)ctx;
+        CYASSL_MSG("CyaSSL_BN_CTX_free");
+
+        /* do free since static ctx that does nothing */
+    }
+
+
+    static void InitCyaSSL_BigNum(CYASSL_BIGNUM* bn)
+    { 
+        CYASSL_MSG("InitCyaSSL_BigNum");
+        if (bn) {
+            bn->neg      = 0;
+            bn->internal = NULL;
+        }
+    }
+
+
+    CYASSL_BIGNUM* CyaSSL_BN_new(void)
+    {
+        CYASSL_BIGNUM* external;
+        mp_int*        mpi;
+
+        CYASSL_MSG("CyaSSL_BN_new");
+
+        mpi = (mp_int*) XMALLOC(sizeof(mp_int), NULL, DYNAMIC_TYPE_BIGINT);
+        if (mpi == NULL) {
+            CYASSL_MSG("CyaSSL_BN_new malloc mpi failure");
+            return NULL;
+        }
+
+        external = (CYASSL_BIGNUM*) XMALLOC(sizeof(CYASSL_BIGNUM), NULL,
+                                            DYNAMIC_TYPE_BIGINT);
+        if (external == NULL) {
+            CYASSL_MSG("CyaSSL_BN_new malloc CYASSL_BIGNUM failure");
+            XFREE(mpi, NULL, DYNAMIC_TYPE_BIGINT);
+            return NULL;
+        }
+
+        InitCyaSSL_BigNum(external);
+        mp_init(mpi);
+        external->internal = mpi;
+
+        return external;
+    }
+
+
+    void CyaSSL_BN_free(CYASSL_BIGNUM* bn)
+    {
+        CYASSL_MSG("CyaSSL_BN_free");
+        if (bn) {
+            if (bn->internal) {
+                mp_clear((mp_int*)bn->internal);
+                XFREE(bn->internal, NULL, DYNAMIC_TYPE_BIGINT);
+                bn->internal = NULL;
+            }
+            XFREE(bn, NULL, DYNAMIC_TYPE_BIGINT);
+        }
+    }
+
+
+    void CyaSSL_BN_clear_free(CYASSL_BIGNUM* bn)
+    {
+        CYASSL_MSG("CyaSSL_BN_clear_free");
+
+        CyaSSL_BN_free(bn);
+    }
+
+
+    int CyaSSL_BN_sub(CYASSL_BIGNUM* r, const CYASSL_BIGNUM* a,
+                      const CYASSL_BIGNUM* b)
+    {
+        CYASSL_MSG("CyaSSL_BN_sub");
+
+        if (r == NULL || a == NULL || b == NULL)
+            return 0;
+
+        if (mp_sub((mp_int*)a->internal,(mp_int*)b->internal,
+                   (mp_int*)r->internal) == MP_OKAY)
+            return 1;
+
+        CYASSL_MSG("CyaSSL_BN_sub mp_sub failed");
+        return 0;
+    }
+
+
+    int CyaSSL_BN_mod(CYASSL_BIGNUM* r, const CYASSL_BIGNUM* a,
+	                  const CYASSL_BIGNUM* b, const CYASSL_BN_CTX* c)
+    {
+        (void)c;
+        CYASSL_MSG("CyaSSL_BN_mod");
+
+        if (r == NULL || a == NULL || b == NULL)
+            return 0;
+
+        if (mp_mod((mp_int*)a->internal,(mp_int*)b->internal,
+                   (mp_int*)r->internal) == MP_OKAY)
+            return 1;
+
+        CYASSL_MSG("CyaSSL_BN_mod mp_mod failed");
+        return 0;
+    }
+
+
+    const CYASSL_BIGNUM* CyaSSL_BN_value_one(void)
+    {
+        static CYASSL_BIGNUM* bn_one = NULL;
+
+        CYASSL_MSG("CyaSSL_BN_value_one");
+
+        if (bn_one == NULL) {
+            bn_one = CyaSSL_BN_new();
+            if (bn_one)
+                mp_set_int((mp_int*)bn_one->internal, 1);
+        }
+
+        return bn_one;
+    }
+
+
+    int CyaSSL_BN_num_bytes(const CYASSL_BIGNUM* bn)
+    {
+        CYASSL_MSG("CyaSSL_BN_num_bytes");
+
+        if (bn == NULL || bn->internal == NULL)
+            return 0;
+
+        return mp_unsigned_bin_size((mp_int*)bn->internal);
+    }
+
+
+    int CyaSSL_BN_num_bits(const CYASSL_BIGNUM* bn)
+    {
+        CYASSL_MSG("CyaSSL_BN_num_bits");
+
+        if (bn == NULL || bn->internal == NULL)
+            return 0;
+
+        return mp_count_bits((mp_int*)bn->internal);
+    }
+
+
+    int CyaSSL_BN_is_zero(const CYASSL_BIGNUM* bn)
+    {
+        CYASSL_MSG("CyaSSL_BN_is_zero");
+
+        if (bn == NULL || bn->internal == NULL)
+            return 0;
+
+        return mp_iszero((mp_int*)bn->internal);
+    }
+
+
+    int CyaSSL_BN_is_one(const CYASSL_BIGNUM* bn)
+    {
+        CYASSL_MSG("CyaSSL_BN_is_one");
+
+        if (bn == NULL || bn->internal == NULL)
+            return 0;
+
+        if (mp_cmp_d((mp_int*)bn->internal, 1) == 0)
+            return 1;
+
+        return 0;
+    }
+
+
+    int CyaSSL_BN_is_odd(const CYASSL_BIGNUM* bn)
+    {
+        CYASSL_MSG("CyaSSL_BN_is_odd");
+
+        if (bn == NULL || bn->internal == NULL)
+            return 0;
+
+        return mp_isodd((mp_int*)bn->internal);
+    }
+
+
+    int CyaSSL_BN_cmp(const CYASSL_BIGNUM* a, const CYASSL_BIGNUM* b)
+    {
+        CYASSL_MSG("CyaSSL_BN_cmp");
+
+        if (a == NULL || a->internal == NULL || b == NULL || b->internal ==NULL)
+            return 0;
+
+        return mp_cmp((mp_int*)a->internal, (mp_int*)b->internal);
+    }
+
+
+    int CyaSSL_BN_bn2bin(const CYASSL_BIGNUM* bn, unsigned char* r)
+    {
+        CYASSL_MSG("CyaSSL_BN_bn2bin");
+
+        if (bn == NULL || bn->internal == NULL) {
+            CYASSL_MSG("NULL bn error");
+            return -1;
+        }
+
+        if (r == NULL)
+            return mp_unsigned_bin_size((mp_int*)bn->internal);
+
+        if (mp_to_unsigned_bin((mp_int*)bn->internal, r) != MP_OKAY) {
+            CYASSL_MSG("mp_to_unsigned_bin error");
+            return -1;
+        }
+
+        return mp_unsigned_bin_size((mp_int*)bn->internal);
+    }
+
+
+    CYASSL_BIGNUM* CyaSSL_BN_bin2bn(const unsigned char* str, int len,
+	                            CYASSL_BIGNUM* ret)
+    {
+        CYASSL_MSG("CyaSSL_BN_bin2bn");
+
+        if (ret && ret->internal) {
+            if (mp_read_unsigned_bin((mp_int*)ret->internal, str, len) != 0) {
+                CYASSL_MSG("mp_read_unsigned_bin failure");
+                return NULL;
+            } 
+        }
+        else {
+            CYASSL_MSG("CyaSSL_BN_bin2bn wants return bignum");
+        }
+
+        return ret;
+    }
+
+
+    int CyaSSL_mask_bits(CYASSL_BIGNUM* bn, int n)
+    {
+        (void)bn;
+        (void)n;
+        CYASSL_MSG("CyaSSL_BN_mask_bits");
+
+        return -1;
+    }
+
+
+    int CyaSSL_BN_rand(CYASSL_BIGNUM* bn, int bits, int top, int bottom)
+    {
+        byte          buff[1024];
+        RNG           tmpRNG;
+        RNG*          rng = &tmpRNG; 
+        int           ret;
+        int           len = bits/8;
+
+        (void)top;
+        (void)bottom;
+        CYASSL_MSG("CyaSSL_BN_rand");
+
+        if (bn == NULL || bn->internal == NULL) {
+            CYASSL_MSG("Bad function arguments");
+            return 0; 
+        }
+
+        if (bits % 8)
+            len++;
+
+        if ( (ret = InitRng(&tmpRNG)) != 0) {
+            CYASSL_MSG("Bad RNG Init, trying global");
+            if (initGlobalRNG == 0) {
+                CYASSL_MSG("Global RNG no Init");
+                return 0; 
+            }
+            rng = &globalRNG;
+        }
+
+        RNG_GenerateBlock(rng, buff, len);
+        buff[0]     |= 0x80 | 0x40;
+        buff[len-1] |= 0x01;
+
+        if (mp_read_unsigned_bin((mp_int*)bn->internal,buff,len) != MP_OKAY) {
+            CYASSL_MSG("mp read bin failed");
+            return 0;
+        }
+                
+        return 1;
+    }
+
+
+    int CyaSSL_BN_is_bit_set(const CYASSL_BIGNUM* bn, int n)
+    {
+        (void)bn;
+        (void)n;
+
+        CYASSL_MSG("CyaSSL_BN_is_bit_set");
+
+        return 0;
+    }
+
+
+    int CyaSSL_BN_hex2bn(CYASSL_BIGNUM** bn, const char* str)
+    {
+        byte    decoded[1024];
+        word32  decSz = sizeof(decoded);
+
+        CYASSL_MSG("CyaSSL_BN_hex2bn");
+
+        if (str == NULL) {
+            CYASSL_MSG("Bad function argument");
+            return 0;
+        }
+
+        if (Base16_Decode((byte*)str, strlen(str), decoded, &decSz) < 0) {
+            CYASSL_MSG("Bad Base16_Decode error");
+            return 0;
+        }
+
+        if (bn == NULL)
+            return decSz;
+
+        if (*bn == NULL) {
+            *bn = CyaSSL_BN_new();
+            if (*bn == NULL) {
+                CYASSL_MSG("BN new failed");
+                return 0;
+            }
+        }
+
+        if (CyaSSL_BN_bin2bn(decoded, decSz, *bn) == NULL) {
+            CYASSL_MSG("Bad bin2bn error");
+            return 0;
+        }
+
+        return 1;  /* success */
+    }
+
+
+    CYASSL_BIGNUM* CyaSSL_BN_dup(const CYASSL_BIGNUM* bn)
+    {
+        CYASSL_BIGNUM* ret;
+
+        CYASSL_MSG("CyaSSL_BN_dup");
+
+        if (bn == NULL || bn->internal == NULL) {
+            CYASSL_MSG("bn NULL error");
+            return NULL;
+        }
+
+        ret = CyaSSL_BN_new();
+        if (ret == NULL) {
+            CYASSL_MSG("bn new error");
+            return NULL;
+        }
+
+        if (mp_copy((mp_int*)bn->internal, (mp_int*)ret->internal) != MP_OKAY) {
+            CYASSL_MSG("mp_copy error");
+            CyaSSL_BN_free(ret);
+            return NULL;
+        }
+
+        return ret;
+    }
+
+
+    CYASSL_BIGNUM* CyaSSL_BN_copy(CYASSL_BIGNUM* r, const CYASSL_BIGNUM* bn)
+    {
+        (void)r;
+        (void)bn;
+
+        CYASSL_MSG("CyaSSL_BN_copy");
+
+        return NULL;
+    }
+
+
+    int CyaSSL_BN_set_word(CYASSL_BIGNUM* bn, unsigned long w)
+    {
+        (void)bn;
+        (void)w;
+
+        CYASSL_MSG("CyaSSL_BN_set_word");
+
+        return -1;
+    }
+
+
+    int CyaSSL_BN_dec2bn(CYASSL_BIGNUM** bn, const char* str)
+    {
+        (void)bn;
+        (void)str;
+
+        CYASSL_MSG("CyaSSL_BN_dec2bn");
+
+        return -1;
+    }
+
+
+    char* CyaSSL_BN_bn2dec(const CYASSL_BIGNUM* bn)
+    {
+        (void)bn;
+
+        CYASSL_MSG("CyaSSL_BN_bn2dec");
+
+        return NULL;
+    }
+
+
+    static void InitCyaSSL_DH(CYASSL_DH* dh)
+    {
+        if (dh) {
+            dh->p        = NULL;
+            dh->g        = NULL;
+            dh->pub_key  = NULL;
+            dh->priv_key = NULL;
+            dh->internal = NULL;
+            dh->inSet    = 0;
+            dh->exSet    = 0;
+        }
+    }
+
+
+    CYASSL_DH* CyaSSL_DH_new(void)
+    {
+        CYASSL_DH* external;
+        DhKey*     key;
+
+        CYASSL_MSG("CyaSSL_DH_new");
+
+        key = (DhKey*) XMALLOC(sizeof(DhKey), NULL, DYNAMIC_TYPE_DH);
+        if (key == NULL) {
+            CYASSL_MSG("CyaSSL_DH_new malloc DhKey failure");
+            return NULL;
+        }
+
+        external = (CYASSL_DH*) XMALLOC(sizeof(CYASSL_DH), NULL,
+                                        DYNAMIC_TYPE_DH);
+        if (external == NULL) {
+            CYASSL_MSG("CyaSSL_DH_new malloc CYASSL_DH failure");
+            XFREE(key, NULL, DYNAMIC_TYPE_DH);
+            return NULL;
+        }
+
+        InitCyaSSL_DH(external);
+        InitDhKey(key);
+        external->internal = key;
+
+        return external;
+    }
+
+
+    void CyaSSL_DH_free(CYASSL_DH* dh)
+    {
+        CYASSL_MSG("CyaSSL_DH_free");
+
+        if (dh) {
+            if (dh->internal) {
+                FreeDhKey((DhKey*)dh->internal);
+                XFREE(dh->internal, NULL, DYNAMIC_TYPE_DH);
+                dh->internal = NULL;
+            }
+            CyaSSL_BN_free(dh->priv_key);
+            CyaSSL_BN_free(dh->pub_key);
+            CyaSSL_BN_free(dh->g);
+            CyaSSL_BN_free(dh->p);
+            InitCyaSSL_DH(dh);  /* set back to NULLs for safety */
+
+            XFREE(dh, NULL, DYNAMIC_TYPE_DH);
+        }
+    }
+
+
+    static int SetDhInternal(CYASSL_DH* dh) 
+    {
+        unsigned char p[1024];
+        unsigned char g[1024];
+        int           pSz = sizeof(p);
+        int           gSz = sizeof(g);
+
+        CYASSL_ENTER("SetDhInternal");
+
+        if (dh == NULL || dh->p == NULL || dh->g == NULL) {
+            CYASSL_MSG("Bad function arguments");
+            return -1;
+        }
+
+        if (CyaSSL_BN_bn2bin(dh->p, NULL) > pSz) {
+            CYASSL_MSG("Bad p internal size");
+            return -1;
+        }
+
+        if (CyaSSL_BN_bn2bin(dh->g, NULL) > gSz) {
+            CYASSL_MSG("Bad g internal size");
+            return -1;
+        }
+
+        pSz = CyaSSL_BN_bn2bin(dh->p, p);
+        gSz = CyaSSL_BN_bn2bin(dh->g, g);
+        
+        if (pSz <= 0 || gSz <= 0) {
+            CYASSL_MSG("Bad BN2bin set");
+            return -1;
+        }
+
+        if (DhSetKey((DhKey*)dh->internal, p, pSz, g, gSz) < 0) {
+            CYASSL_MSG("Bad DH SetKey");
+            return -1;
+        }
+
+        dh->inSet = 1;
+
+        return 0;
+    }
+
+
+    int CyaSSL_DH_size(CYASSL_DH* dh)
+    {
+        CYASSL_MSG("CyaSSL_DH_size");
+
+        if (dh == NULL)
+            return 0;
+
+        return CyaSSL_BN_num_bytes(dh->p);
+    }
+
+
+    /* return 1 on success else 0 */
+    int CyaSSL_DH_generate_key(CYASSL_DH* dh)
+    {
+        unsigned char pub [1024];
+        unsigned char priv[1024];
+        word32        pubSz  = sizeof(pub);
+        word32        privSz = sizeof(priv);
+        RNG           tmpRNG;
+        RNG*          rng = &tmpRNG; 
+        int           ret;
+
+        CYASSL_MSG("CyaSSL_DH_generate_key");
+
+        if (dh == NULL || dh->p == NULL || dh->g == NULL) {
+            CYASSL_MSG("Bad function arguments");
+            return 0; 
+        }
+
+        if (dh->inSet == 0) {
+            if (SetDhInternal(dh) < 0) {
+                CYASSL_MSG("Bad DH set internal");
+                return 0; 
+            }
+        }
+
+        if ( (ret = InitRng(&tmpRNG)) != 0) {
+            CYASSL_MSG("Bad RNG Init, trying global");
+            if (initGlobalRNG == 0) {
+                CYASSL_MSG("Global RNG no Init");
+                return 0; 
+            }
+            rng = &globalRNG;
+        }
+
+        if (DhGenerateKeyPair((DhKey*)dh->internal, rng, priv, &privSz,
+                                pub, &pubSz) < 0) {
+            CYASSL_MSG("Bad DhGenerateKeyPair");
+            return 0; 
+        }
+
+        if (dh->pub_key)
+            CyaSSL_BN_free(dh->pub_key);
+        dh->pub_key = CyaSSL_BN_new();
+        if (dh->pub_key == NULL) {
+            CYASSL_MSG("Bad DH new pub");
+            return 0; 
+        }
+
+        if (dh->priv_key)
+            CyaSSL_BN_free(dh->priv_key);
+        dh->priv_key = CyaSSL_BN_new();
+        if (dh->priv_key == NULL) {
+            CYASSL_MSG("Bad DH new priv");
+            return 0; 
+        }
+
+        if (CyaSSL_BN_bin2bn(pub, pubSz, dh->pub_key) == NULL) {
+            CYASSL_MSG("Bad DH bn2bin error pub");
+            return 0; 
+        }
+
+        if (CyaSSL_BN_bin2bn(priv, privSz, dh->priv_key) == NULL) {
+            CYASSL_MSG("Bad DH bn2bin error priv");
+            return 0; 
+        }
+
+        CYASSL_MSG("CyaSSL_generate_key success");
+        return 1;
+    }
+
+
+    /* return 1 on success, 0 otherwise */
+    int CyaSSL_DH_compute_key(unsigned char* key, CYASSL_BIGNUM* otherPub,
+                              CYASSL_DH* dh)
+    {
+        unsigned char pub [1024];
+        unsigned char priv[1024];
+        word32        pubSz  = sizeof(pub);
+        word32        privSz = sizeof(priv);
+        word32        keySz;
+
+        CYASSL_MSG("CyaSSL_DH_compute_key");
+
+        if (dh == NULL || dh->priv_key == NULL || otherPub == NULL) {
+            CYASSL_MSG("Bad function arguments");
+            return 0; 
+        }
+
+        keySz = (word32)DH_size(dh);
+        if (keySz == 0) {
+            CYASSL_MSG("Bad DH_size");
+            return 0;
+        }
+
+        if (CyaSSL_BN_bn2bin(dh->priv_key, NULL) > (int)privSz) {
+            CYASSL_MSG("Bad priv internal size");
+            return 0;
+        }
+
+        if (CyaSSL_BN_bn2bin(otherPub, NULL) > (int)pubSz) {
+            CYASSL_MSG("Bad otherPub size");
+            return 0;
+        }
+
+        privSz = CyaSSL_BN_bn2bin(dh->priv_key, priv);
+        pubSz  = CyaSSL_BN_bn2bin(otherPub, pub);
+        
+        if (privSz <= 0 || pubSz <= 0) {
+            CYASSL_MSG("Bad BN2bin set");
+            return 0;
+        }
+
+        if (DhAgree((DhKey*)dh->internal, key, &keySz, priv, privSz, pub,
+                    pubSz) < 0) {
+            CYASSL_MSG("DhAgree failed");
+            return 0;
+        }
+
+        CYASSL_MSG("CyaSSL_compute_key success");
+        return (int)keySz;
+    }
+
+
+    static void InitCyaSSL_DSA(CYASSL_DSA* dsa)
+    {
+        if (dsa) {
+            dsa->p        = NULL;
+            dsa->q        = NULL;
+            dsa->g        = NULL;
+            dsa->pub_key  = NULL;
+            dsa->priv_key = NULL;
+            dsa->internal = NULL;
+            dsa->inSet    = 0;
+            dsa->exSet    = 0;
+        }
+    }
+
+
+    CYASSL_DSA* CyaSSL_DSA_new(void)
+    {
+        CYASSL_DSA* external;
+        DsaKey*     key;
+
+        CYASSL_MSG("CyaSSL_DSA_new");
+
+        key = (DsaKey*) XMALLOC(sizeof(DsaKey), NULL, DYNAMIC_TYPE_DSA);
+        if (key == NULL) {
+            CYASSL_MSG("CyaSSL_DSA_new malloc DsaKey failure");
+            return NULL;
+        }
+
+        external = (CYASSL_DSA*) XMALLOC(sizeof(CYASSL_DSA), NULL,
+                                        DYNAMIC_TYPE_DSA);
+        if (external == NULL) {
+            CYASSL_MSG("CyaSSL_DSA_new malloc CYASSL_DSA failure");
+            XFREE(key, NULL, DYNAMIC_TYPE_DSA);
+            return NULL;
+        }
+
+        InitCyaSSL_DSA(external);
+        InitDsaKey(key);
+        external->internal = key;
+
+        return external;
+    }
+
+
+    void CyaSSL_DSA_free(CYASSL_DSA* dsa)
+    {
+        CYASSL_MSG("CyaSSL_DSA_free");
+
+        if (dsa) {
+            if (dsa->internal) {
+                FreeDsaKey((DsaKey*)dsa->internal);
+                XFREE(dsa->internal, NULL, DYNAMIC_TYPE_DSA);
+                dsa->internal = NULL;
+            }
+            CyaSSL_BN_free(dsa->priv_key);
+            CyaSSL_BN_free(dsa->pub_key);
+            CyaSSL_BN_free(dsa->g);
+            CyaSSL_BN_free(dsa->q);
+            CyaSSL_BN_free(dsa->p);
+            InitCyaSSL_DSA(dsa);  /* set back to NULLs for safety */
+
+            XFREE(dsa, NULL, DYNAMIC_TYPE_DSA);
+        }
+    }
+
+
+    int CyaSSL_DSA_generate_key(CYASSL_DSA* dsa)
+    {
+        (void)dsa;
+
+        CYASSL_MSG("CyaSSL_DSA_generate_key");
+
+        return 0;  /* key gen not needed by server */
+    }
+
+
+    int CyaSSL_DSA_generate_parameters_ex(CYASSL_DSA* dsa, int bits,
+                   unsigned char* seed, int seedLen, int* counterRet,
+                   unsigned long* hRet, void* cb)
+    {
+        (void)dsa;
+        (void)bits;
+        (void)seed;
+        (void)seedLen;
+        (void)counterRet;
+        (void)hRet;
+        (void)cb;
+
+        CYASSL_MSG("CyaSSL_DSA_generate_parameters_ex");
+
+        return 0;  /* key gen not needed by server */
+    }
+
+
+    static void InitCyaSSL_Rsa(CYASSL_RSA* rsa)
+    {
+        if (rsa) {
+            rsa->n        = NULL;
+            rsa->e        = NULL;
+            rsa->d        = NULL;
+            rsa->p        = NULL;
+            rsa->q        = NULL;
+	        rsa->dmp1     = NULL;
+	        rsa->dmq1     = NULL;
+	        rsa->iqmp     = NULL;
+            rsa->internal = NULL;
+            rsa->inSet    = 0;
+            rsa->exSet    = 0;
+        }
+    }
+
+
+    CYASSL_RSA* CyaSSL_RSA_new(void)
+    {
+        CYASSL_RSA* external;
+        RsaKey*     key;
+
+        CYASSL_MSG("CyaSSL_RSA_new");
+
+        key = (RsaKey*) XMALLOC(sizeof(RsaKey), NULL, DYNAMIC_TYPE_RSA);
+        if (key == NULL) {
+            CYASSL_MSG("CyaSSL_RSA_new malloc RsaKey failure");
+            return NULL;
+        }
+
+        external = (CYASSL_RSA*) XMALLOC(sizeof(CYASSL_RSA), NULL,
+                                         DYNAMIC_TYPE_RSA);
+        if (external == NULL) {
+            CYASSL_MSG("CyaSSL_RSA_new malloc CYASSL_RSA failure");
+            XFREE(key, NULL, DYNAMIC_TYPE_RSA);
+            return NULL;
+        }
+
+        InitCyaSSL_Rsa(external);
+        InitRsaKey(key, NULL);
+        external->internal = key;
+
+        return external;
+    }
+
+
+    void CyaSSL_RSA_free(CYASSL_RSA* rsa)
+    {
+        CYASSL_MSG("CyaSSL_RSA_free");
+
+        if (rsa) {
+            if (rsa->internal) {
+                FreeRsaKey((RsaKey*)rsa->internal);
+                XFREE(rsa->internal, NULL, DYNAMIC_TYPE_RSA);
+                rsa->internal = NULL;
+            }
+            CyaSSL_BN_free(rsa->iqmp);
+            CyaSSL_BN_free(rsa->dmq1);
+            CyaSSL_BN_free(rsa->dmp1);
+            CyaSSL_BN_free(rsa->q);
+            CyaSSL_BN_free(rsa->p);
+            CyaSSL_BN_free(rsa->d);
+            CyaSSL_BN_free(rsa->e);
+            CyaSSL_BN_free(rsa->n);
+            InitCyaSSL_Rsa(rsa);  /* set back to NULLs for safety */
+
+            XFREE(rsa, NULL, DYNAMIC_TYPE_RSA);
+        }
+    }
+
+
+    static int SetIndividualExternal(CYASSL_BIGNUM** bn, mp_int* mpi)
+    {
+        CYASSL_MSG("Entering SetIndividualExternal");
+
+        if (mpi == NULL) {
+            CYASSL_MSG("mpi NULL error");
+            return -1;
+        }
+
+        if (*bn == NULL) {
+            *bn = CyaSSL_BN_new();
+            if (*bn == NULL) {
+                CYASSL_MSG("SetIndividualExternal alloc failed");
+                return -1;
+            }
+        }
+
+        if (mp_copy(mpi, (mp_int*)((*bn)->internal)) != MP_OKAY) {
+            CYASSL_MSG("mp_copy error");
+            return -1;
+        }
+
+        return 0;
+    }
+
+
+    static int SetDsaExternal(CYASSL_DSA* dsa)
+    {
+        DsaKey* key;
+        CYASSL_MSG("Entering SetDsaExternal");
+
+        if (dsa == NULL || dsa->internal == NULL) {
+            CYASSL_MSG("dsa key NULL error");
+            return -1;
+        }
+
+        key = (DsaKey*)dsa->internal;
+
+        if (SetIndividualExternal(&dsa->p, &key->p) < 0) {
+            CYASSL_MSG("dsa p key error");
+            return -1;
+        }
+
+        if (SetIndividualExternal(&dsa->q, &key->q) < 0) {
+            CYASSL_MSG("dsa q key error");
+            return -1;
+        }
+
+        if (SetIndividualExternal(&dsa->g, &key->g) < 0) {
+            CYASSL_MSG("dsa g key error");
+            return -1;
+        }
+
+        if (SetIndividualExternal(&dsa->pub_key, &key->y) < 0) {
+            CYASSL_MSG("dsa y key error");
+            return -1;
+        }
+
+        if (SetIndividualExternal(&dsa->priv_key, &key->x) < 0) {
+            CYASSL_MSG("dsa x key error");
+            return -1;
+        }
+
+        dsa->exSet = 1;
+
+        return 0;
+    }
+
+
+    static int SetRsaExternal(CYASSL_RSA* rsa)
+    {
+        RsaKey* key;
+        CYASSL_MSG("Entering SetRsaExternal");
+
+        if (rsa == NULL || rsa->internal == NULL) {
+            CYASSL_MSG("rsa key NULL error");
+            return -1;
+        }
+
+        key = (RsaKey*)rsa->internal;
+
+        if (SetIndividualExternal(&rsa->n, &key->n) < 0) {
+            CYASSL_MSG("rsa n key error");
+            return -1;
+        }
+
+        if (SetIndividualExternal(&rsa->e, &key->e) < 0) {
+            CYASSL_MSG("rsa e key error");
+            return -1;
+        }
+
+        if (SetIndividualExternal(&rsa->d, &key->d) < 0) {
+            CYASSL_MSG("rsa d key error");
+            return -1;
+        }
+
+        if (SetIndividualExternal(&rsa->p, &key->p) < 0) {
+            CYASSL_MSG("rsa p key error");
+            return -1;
+        }
+
+        if (SetIndividualExternal(&rsa->q, &key->q) < 0) {
+            CYASSL_MSG("rsa q key error");
+            return -1;
+        }
+
+        if (SetIndividualExternal(&rsa->dmp1, &key->dP) < 0) {
+            CYASSL_MSG("rsa dP key error");
+            return -1;
+        }
+
+        if (SetIndividualExternal(&rsa->dmq1, &key->dQ) < 0) {
+            CYASSL_MSG("rsa dQ key error");
+            return -1;
+        }
+
+        if (SetIndividualExternal(&rsa->iqmp, &key->u) < 0) {
+            CYASSL_MSG("rsa u key error");
+            return -1;
+        }
+
+        rsa->exSet = 1;
+
+        return 0;
+    }
+
+
+    int CyaSSL_RSA_generate_key_ex(CYASSL_RSA* rsa, int bits, CYASSL_BIGNUM* bn,
+                                   void* cb)
+    {
+        RNG rng;
+
+        CYASSL_MSG("CyaSSL_RSA_generate_key_ex");
+
+        (void)rsa;
+        (void)bits;
+        (void)cb;
+        (void)bn;
+    
+        if (InitRng(&rng) < 0) {
+            CYASSL_MSG("RNG init failed");
+            return -1;
+        }
+
+#ifdef CYASSL_KEY_GEN
+        if (MakeRsaKey((RsaKey*)rsa->internal, bits, 65537, &rng) < 0) {
+            CYASSL_MSG("MakeRsaKey failed");
+            return -1;
+        }
+
+        if (SetRsaExternal(rsa) < 0) {
+            CYASSL_MSG("SetRsaExternal failed");
+            return -1;
+        }
+
+        rsa->inSet = 1;
+
+        return 1;  /* success */
+#else
+        CYASSL_MSG("No Key Gen built in");
+        return -1;
+#endif
+
+    }
+
+
+    int CyaSSL_RSA_blinding_on(CYASSL_RSA* rsa, CYASSL_BN_CTX* bn)
+    {
+        (void)rsa;
+        (void)bn;
+
+        CYASSL_MSG("CyaSSL_RSA_blinding_on");
+
+        return 1;  /* on by default */
+    }
+
+
+    int CyaSSL_RSA_public_encrypt(int len, unsigned char* fr,
+	                            unsigned char* to, CYASSL_RSA* rsa, int padding)
+    {
+        (void)len;
+        (void)fr;
+        (void)to;
+        (void)rsa;
+        (void)padding;
+
+        CYASSL_MSG("CyaSSL_RSA_public_encrypt");
+
+        return -1;
+    }
+
+
+    int CyaSSL_RSA_private_decrypt(int len, unsigned char* fr,
+	                            unsigned char* to, CYASSL_RSA* rsa, int padding)
+    {
+        (void)len;
+        (void)fr;
+        (void)to;
+        (void)rsa;
+        (void)padding;
+
+        CYASSL_MSG("CyaSSL_RSA_private_decrypt");
+
+        return -1;
+    }
+
+
+    int CyaSSL_RSA_size(const CYASSL_RSA* rsa)
+    {
+        CYASSL_MSG("CyaSSL_RSA_size");
+
+        if (rsa == NULL)
+            return 0;
+
+        return CyaSSL_BN_num_bytes(rsa->n);
+    }
+
+
+    /* return 0 on success, < 0 otherwise */
+    int CyaSSL_DSA_do_sign(const unsigned char* d, unsigned char* sigRet,
+                           CYASSL_DSA* dsa)
+    {
+        RNG    tmpRNG;
+        RNG*   rng = &tmpRNG; 
+
+        CYASSL_MSG("CyaSSL_DSA_do_sign");
+
+        if (d == NULL || sigRet == NULL || dsa == NULL) {
+            CYASSL_MSG("Bad function arguments");
+            return -1;
+        }
+
+        if (dsa->inSet == 0) {
+            CYASSL_MSG("No DSA internal set");
+            return -1;
+        }
+
+        if (InitRng(&tmpRNG) != 0) {
+            CYASSL_MSG("Bad RNG Init, trying global");
+            if (initGlobalRNG == 0) {
+                CYASSL_MSG("Global RNG no Init");
+                return -1; 
+            }
+            rng = &globalRNG;
+        }
+
+        if (DsaSign(d, sigRet, (DsaKey*)dsa->internal, rng) < 0) {
+            CYASSL_MSG("DsaSign failed");
+            return -1;
+        }
+
+        return 0;
+    }
+
+
+    /* return 1 on success, 0 otherwise */
+    int CyaSSL_RSA_sign(int type, const unsigned char* m,
+                               unsigned int mLen, unsigned char* sigRet,
+                               unsigned int* sigLen, CYASSL_RSA* rsa)
+    {
+        byte   encodedSig[MAX_ENCODED_SIG_SZ];
+        word32 outLen;
+        word32 signSz;
+        RNG    tmpRNG;
+        RNG*   rng = &tmpRNG; 
+
+        CYASSL_MSG("CyaSSL_RSA_sign");
+
+        if (m == NULL || sigRet == NULL || sigLen == NULL || rsa == NULL) {
+            CYASSL_MSG("Bad function arguments");
+            return 0;
+        }
+
+        if (rsa->inSet == 0) {
+            CYASSL_MSG("No RSA internal set");
+            return 0;
+        }
+
+        outLen = (word32)CyaSSL_BN_num_bytes(rsa->n);
+        if (outLen == 0) {
+            CYASSL_MSG("Bad RSA size");
+            return 0;
+        }
+       
+        if (InitRng(&tmpRNG) != 0) {
+            CYASSL_MSG("Bad RNG Init, trying global");
+            if (initGlobalRNG == 0) {
+                CYASSL_MSG("Global RNG no Init");
+                return 0; 
+            }
+            rng = &globalRNG;
+        }
+
+        switch (type) {
+            case NID_md5:
+                type = MD5h;
+                break;
+
+            case NID_sha1:
+                type = SHAh;
+                break;
+
+            default:
+                CYASSL_MSG("Bad md type");
+                return 0;
+        }
+
+        signSz = EncodeSignature(encodedSig, m, mLen, type);
+        if (signSz == 0) {
+            CYASSL_MSG("Bad Encode Signature");
+            return 0;
+        }
+
+        *sigLen = RsaSSL_Sign(encodedSig, signSz, sigRet, outLen,
+                              (RsaKey*)rsa->internal, rng);
+        if (*sigLen <= 0) {
+            CYASSL_MSG("Bad Rsa Sign");
+            return 0;
+        }
+
+        CYASSL_MSG("CyaSSL_RSA_sign success");
+        return 1;  /* success */
+    }
+
+
+    int CyaSSL_RSA_public_decrypt(int flen, unsigned char* from,
+                              unsigned char* to, CYASSL_RSA* rsa, int padding)
+    {
+        (void)flen;
+        (void)from;
+        (void)to;
+        (void)rsa;
+        (void)padding;
+
+        CYASSL_MSG("CyaSSL_RSA_public_decrypt");
+
+        return -1;
+    }
+
+
+    /* generate p-1 and q-1 */
+    int CyaSSL_RSA_GenAdd(CYASSL_RSA* rsa)
+    {
+        int    err;
+        mp_int tmp;
+
+        CYASSL_MSG("CyaSSL_RsaGenAdd");
+
+        if (rsa == NULL || rsa->p == NULL || rsa->q == NULL || rsa->d == NULL ||
+                           rsa->dmp1 == NULL || rsa->dmq1 == NULL) {
+            CYASSL_MSG("rsa no init error");
+            return -1;
+        }
+
+        if (mp_init(&tmp) != MP_OKAY) {
+            CYASSL_MSG("mp_init error");
+            return -1;
+        }
+
+        err = mp_sub_d((mp_int*)rsa->p->internal, 1, &tmp);
+        if (err != MP_OKAY)
+            CYASSL_MSG("mp_sub_d error");
+        else
+            err = mp_mod((mp_int*)rsa->d->internal, &tmp,
+                         (mp_int*)rsa->dmp1->internal);
+
+        if (err != MP_OKAY)
+            CYASSL_MSG("mp_mod error");
+        else
+            err = mp_sub_d((mp_int*)rsa->q->internal, 1, &tmp);
+        if (err != MP_OKAY)
+            CYASSL_MSG("mp_sub_d error");
+        else
+            err = mp_mod((mp_int*)rsa->d->internal, &tmp,
+                         (mp_int*)rsa->dmq1->internal);
+
+        mp_clear(&tmp);
+
+        if (err == MP_OKAY)
+            return 0;
+        else
+            return -1;
+    }
+
+
+    void CyaSSL_HMAC_Init(CYASSL_HMAC_CTX* ctx, const void* key, int keylen,
+                      const EVP_MD* type)
+    {
+        CYASSL_MSG("CyaSSL_HMAC_Init");
+
+        if (ctx == NULL) {
+            CYASSL_MSG("no ctx on init");
+            return;
+        }
+
+        if (type) {
+            CYASSL_MSG("init has type");
+
+            if (XSTRNCMP(type, "MD5", 3) == 0) {
+                CYASSL_MSG("md5 hmac");
+                ctx->type = MD5;
+            }
+            else if (XSTRNCMP(type, "SHA256", 6) == 0) {
+                CYASSL_MSG("sha256 hmac");
+                ctx->type = SHA256;
+            }
+            
+            /* has to be last since would pick or 256, 384, or 512 too */
+            else if (XSTRNCMP(type, "SHA", 3) == 0) {
+                CYASSL_MSG("sha hmac");
+                ctx->type = SHA;
+            }
+            else {
+                CYASSL_MSG("bad init type");
+            }
+        }
+
+        if (key && keylen) {
+            CYASSL_MSG("keying hmac");
+            HmacSetKey(&ctx->hmac, ctx->type, (const byte*)key, (word32)keylen);
+        }
+    }
+
+
+    void CyaSSL_HMAC_Update(CYASSL_HMAC_CTX* ctx, const unsigned char* data,
+                        int len)
+    {
+        CYASSL_MSG("CyaSSL_HMAC_Update");
+
+        if (ctx && data) {
+            CYASSL_MSG("updating hmac");
+            HmacUpdate(&ctx->hmac, data, (word32)len);
+        }
+    }
+
+
+    void CyaSSL_HMAC_Final(CYASSL_HMAC_CTX* ctx, unsigned char* hash,
+                       unsigned int* len)
+    {
+        CYASSL_MSG("CyaSSL_HMAC_Final");
+
+        if (ctx && hash) {
+            CYASSL_MSG("final hmac");
+            HmacFinal(&ctx->hmac, hash);
+
+            if (len) {
+                CYASSL_MSG("setting output len");
+                switch (ctx->type) {
+                    case MD5:
+                        *len = MD5_DIGEST_SIZE;
+                        break;
+
+                    case SHA:
+                        *len = SHA_DIGEST_SIZE;
+                        break;
+
+                    case SHA256:
+                        *len = SHA256_DIGEST_SIZE;
+                        break;
+
+                    default:
+                        CYASSL_MSG("bad hmac type");
+                }
+            }
+        }
+    }
+
+
+    void CyaSSL_HMAC_cleanup(CYASSL_HMAC_CTX* ctx)
+    {
+        (void)ctx;
+
+        CYASSL_MSG("CyaSSL_HMAC_cleanup");
+    }
+
+
+    const CYASSL_EVP_MD* CyaSSL_EVP_get_digestbynid(int id)
+    {
+        CYASSL_MSG("CyaSSL_get_digestbynid");
+
+        switch(id) {
+            case NID_md5:
+                return CyaSSL_EVP_md5();
+                break;
+
+            case NID_sha1:
+                return CyaSSL_EVP_sha1();
+                break;
+
+            default:
+                CYASSL_MSG("Bad digest id value");
+        }
+
+        return NULL;
+    }
+
+
+    CYASSL_RSA* CyaSSL_EVP_PKEY_get1_RSA(CYASSL_EVP_PKEY* key)
+    {
+        (void)key;
+        CYASSL_MSG("CyaSSL_EVP_PKEY_get1_RSA");
+
+        return NULL;
+    }
+
+
+    CYASSL_DSA* CyaSSL_EVP_PKEY_get1_DSA(CYASSL_EVP_PKEY* key)
+    {
+        (void)key;
+        CYASSL_MSG("CyaSSL_EVP_PKEY_get1_DSA");
+
+        return NULL;
+    }
+
+
+    void* CyaSSL_EVP_X_STATE(const CYASSL_EVP_CIPHER_CTX* ctx)
+    {
+        CYASSL_MSG("CyaSSL_EVP_X_STATE");
+
+        if (ctx) {
+            switch (ctx->cipherType) {
+                case ARC4_TYPE:
+                    CYASSL_MSG("returning arc4 state");
+                    return (void*)&ctx->cipher.arc4.x;
+                    break;
+
+                default:
+                    CYASSL_MSG("bad x state type");
+                    return 0;
+            }
+        }
+
+        return NULL;
+    }
+
+
+    int CyaSSL_EVP_X_STATE_LEN(const CYASSL_EVP_CIPHER_CTX* ctx)
+    {
+        CYASSL_MSG("CyaSSL_EVP_X_STATE_LEN");
+
+        if (ctx) {
+            switch (ctx->cipherType) {
+                case ARC4_TYPE:
+                    CYASSL_MSG("returning arc4 state size");
+                    return sizeof(Arc4);
+                    break;
+
+                default:
+                    CYASSL_MSG("bad x state type");
+                    return 0;
+            }
+        }
+
+        return 0;
+    }
+
+
+    void CyaSSL_3des_iv(CYASSL_EVP_CIPHER_CTX* ctx, int doset,
+                                unsigned char* iv, int len)
+    {
+        (void)len;
+
+        CYASSL_MSG("CyaSSL_3des_iv");
+
+        if (ctx == NULL || iv == NULL) {
+            CYASSL_MSG("Bad function argument");
+            return;
+        }
+
+        if (doset)
+            Des3_SetIV(&ctx->cipher.des3, iv);
+        else
+            memcpy(iv, &ctx->cipher.des3.reg, DES_BLOCK_SIZE);
+    }
+
+
+    void CyaSSL_aes_ctr_iv(CYASSL_EVP_CIPHER_CTX* ctx, int doset,
+                          unsigned char* iv, int len)
+    {
+        (void)len;
+
+        CYASSL_MSG("CyaSSL_aes_ctr_iv");
+
+        if (ctx == NULL || iv == NULL) {
+            CYASSL_MSG("Bad function argument");
+            return;
+        }
+
+        if (doset)
+            AesSetIV(&ctx->cipher.aes, iv);
+        else
+            memcpy(iv, &ctx->cipher.aes.reg, AES_BLOCK_SIZE);
+    }
+
+
+    const CYASSL_EVP_MD* CyaSSL_EVP_ripemd160(void)
+    {
+        CYASSL_MSG("CyaSSL_ripemd160");
+
+        return NULL;
+    }
+
+
+    int CyaSSL_EVP_MD_size(const CYASSL_EVP_MD* type)
+    {
+        CYASSL_MSG("CyaSSL_EVP_MD_size");
+
+        if (type == NULL) {
+            CYASSL_MSG("No md type arg");
+            return BAD_FUNC_ARG;
+        }
+
+        if (XSTRNCMP(type, "MD5", 3) == 0) {
+            return MD5_DIGEST_SIZE;
+        }
+        else if (XSTRNCMP(type, "SHA256", 6) == 0) {
+            return SHA256_DIGEST_SIZE;
+        }
+    #ifdef CYASSL_SHA384
+        else if (XSTRNCMP(type, "SHA384", 6) == 0) {
+            return SHA384_DIGEST_SIZE;
+        }
+    #endif
+    #ifdef CYASSL_SHA512
+        else if (XSTRNCMP(type, "SHA512", 6) == 0) {
+            return SHA512_DIGEST_SIZE;
+        }
+    #endif
+        /* has to be last since would pick or 256, 384, or 512 too */
+        else if (XSTRNCMP(type, "SHA", 3) == 0) {
+            return SHA_DIGEST_SIZE;
+        }   
+
+        return BAD_FUNC_ARG;
+    }
+
+
+    int CyaSSL_EVP_CIPHER_CTX_iv_length(const CYASSL_EVP_CIPHER_CTX* ctx)
+    {
+        CYASSL_MSG("CyaSSL_EVP_CIPHER_CTX_iv_length");
+
+        switch (ctx->cipherType) {
+
+            case AES_128_CBC_TYPE :
+            case AES_192_CBC_TYPE :
+            case AES_256_CBC_TYPE :
+                CYASSL_MSG("AES CBC");
+                return AES_BLOCK_SIZE;
+                break;
+
+#ifdef CYASSL_AES_COUNTER
+            case AES_128_CTR_TYPE :
+            case AES_192_CTR_TYPE :
+            case AES_256_CTR_TYPE :
+                CYASSL_MSG("AES CTR");
+                return AES_BLOCK_SIZE;
+                break;
+#endif
+
+            case DES_CBC_TYPE :
+                CYASSL_MSG("DES CBC");
+                return DES_BLOCK_SIZE;
+                break;
+                
+            case DES_EDE3_CBC_TYPE :
+                CYASSL_MSG("DES EDE3 CBC");
+                return DES_BLOCK_SIZE;
+                break;
+
+            case ARC4_TYPE :
+                CYASSL_MSG("ARC4");
+                return 0;
+                break;
+
+            case NULL_CIPHER_TYPE :
+                CYASSL_MSG("NULL");
+                return 0;
+                break;
+
+            default: {
+                CYASSL_MSG("bad type");
+            }
+        }    
+        return 0;
+    }
+
+
+    void CyaSSL_OPENSSL_free(void* p)
+    {
+        CYASSL_MSG("CyaSSL_OPENSSL_free");
+
+        XFREE(p, NULL, 0);
+    }
+
+
+    int CyaSSL_PEM_write_bio_RSAPrivateKey(CYASSL_BIO* bio, RSA* rsa,
+	                                  const EVP_CIPHER* cipher,
+	                                  unsigned char* passwd, int len,
+	                                  pem_password_cb cb, void* arg)
+    {
+        (void)bio;
+        (void)rsa;
+        (void)cipher;
+        (void)passwd;
+        (void)len;
+        (void)cb;
+        (void)arg;
+
+        CYASSL_MSG("CyaSSL_PEM_write_bio_RSAPrivateKey");
+
+        return -1;
+    }
+
+
+
+    int CyaSSL_PEM_write_bio_DSAPrivateKey(CYASSL_BIO* bio, DSA* rsa,
+	                                  const EVP_CIPHER* cipher,
+	                                  unsigned char* passwd, int len,
+	                                  pem_password_cb cb, void* arg)
+    {
+        (void)bio;
+        (void)rsa;
+        (void)cipher;
+        (void)passwd;
+        (void)len;
+        (void)cb;
+        (void)arg;
+
+        CYASSL_MSG("CyaSSL_PEM_write_bio_DSAPrivateKey");
+
+        return -1;
+    }
+
+
+
+    CYASSL_EVP_PKEY* CyaSSL_PEM_read_bio_PrivateKey(CYASSL_BIO* bio,
+                        CYASSL_EVP_PKEY** key, pem_password_cb cb, void* arg)
+    {
+        (void)bio;
+        (void)key;
+        (void)cb;
+        (void)arg;
+
+        CYASSL_MSG("CyaSSL_PEM_read_bio_PrivateKey");
+
+        return NULL;
+    }
+
+
+
+/* Return bytes written to buff or < 0 for error */
+int CyaSSL_KeyPemToDer(const unsigned char* pem, int pemSz, unsigned char* buff,
+                       int buffSz, const char* pass)
+{
+    EncryptedInfo info;
+    int           eccKey = 0;
+    int           ret;
+    buffer        der;
+
+    (void)pass;
+
+    CYASSL_ENTER("CyaSSL_KeyPemToDer");
+
+    if (pem == NULL || buff == NULL || buffSz <= 0) {
+        CYASSL_MSG("Bad pem der args"); 
+        return BAD_FUNC_ARG;
+    }
+
+    info.set       = 0;
+    info.ctx      = NULL;
+    info.consumed = 0;
+    der.buffer    = NULL;
+
+    ret = PemToDer(pem, pemSz, PRIVATEKEY_TYPE, &der, NULL, &info, &eccKey);
+    if (ret < 0) {
+        CYASSL_MSG("Bad Pem To Der"); 
+    }
+    else {
+        if (der.length <= (word32)buffSz) {
+            XMEMCPY(buff, der.buffer, der.length);
+            ret = der.length;
+        }
+        else {
+            CYASSL_MSG("Bad der length");
+            ret = BAD_FUNC_ARG;
+        }
+    }
+
+    XFREE(der.buffer, NULL, DYANMIC_KEY_TYPE);
+
+    return ret;
+}
+
+
+/* Load RSA from Der, 0 on success < 0 on error */
+int CyaSSL_RSA_LoadDer(CYASSL_RSA* rsa, const unsigned char* der,  int derSz)
+{
+    word32 idx = 0;
+    int    ret;
+
+    CYASSL_ENTER("CyaSSL_RSA_LoadDer");
+
+    if (rsa == NULL || rsa->internal == NULL || der == NULL || derSz <= 0) {
+        CYASSL_MSG("Bad function arguments");
+        return BAD_FUNC_ARG;
+    }
+
+    ret = RsaPrivateKeyDecode(der, &idx, (RsaKey*)rsa->internal, derSz);
+    if (ret < 0) {
+        CYASSL_MSG("RsaPrivateKeyDecode failed");
+        return ret;
+    }
+
+    if (SetRsaExternal(rsa) < 0) {
+        CYASSL_MSG("SetRsaExternal failed");
+        return -1;
+    }
+
+    rsa->inSet = 1;
+
+    return 0;
+}
+
+
+/* Load DSA from Der, 0 on success < 0 on error */
+int CyaSSL_DSA_LoadDer(CYASSL_DSA* dsa, const unsigned char* der,  int derSz)
+{
+    word32 idx = 0;
+    int    ret;
+
+    CYASSL_ENTER("CyaSSL_DSA_LoadDer");
+
+    if (dsa == NULL || dsa->internal == NULL || der == NULL || derSz <= 0) {
+        CYASSL_MSG("Bad function arguments");
+        return BAD_FUNC_ARG;
+    }
+
+    ret = DsaPrivateKeyDecode(der, &idx, (DsaKey*)dsa->internal, derSz);
+    if (ret < 0) {
+        CYASSL_MSG("DsaPrivateKeyDecode failed");
+        return ret;
+    }
+
+    if (SetDsaExternal(dsa) < 0) {
+        CYASSL_MSG("SetDsaExternal failed");
+        return -1;
+    }
+
+    dsa->inSet = 1;
+
+    return 0;
+}
+
+
+
+
+
+#endif /* OPENSSL_EXTRA */
+
+
+#ifdef SESSION_CERTS
+
+
+/* Get peer's certificate chain */
+CYASSL_X509_CHAIN* CyaSSL_get_peer_chain(CYASSL* ssl)
+{
+    CYASSL_ENTER("CyaSSL_get_peer_chain");
+    if (ssl)
+        return &ssl->session.chain;
+
+    return 0;
+}
+
+
+/* Get peer's certificate chain total count */
+int CyaSSL_get_chain_count(CYASSL_X509_CHAIN* chain)
+{
+    CYASSL_ENTER("CyaSSL_get_chain_count");
+    if (chain)
+        return chain->count;
+
+    return 0;
+}
+
+
+/* Get peer's ASN.1 DER ceritifcate at index (idx) length in bytes */
+int CyaSSL_get_chain_length(CYASSL_X509_CHAIN* chain, int idx)
+{
+    CYASSL_ENTER("CyaSSL_get_chain_length");
+    if (chain)
+        return chain->certs[idx].length;
+
+    return 0;
+}
+
+
+/* Get peer's ASN.1 DER ceritifcate at index (idx) */
+byte* CyaSSL_get_chain_cert(CYASSL_X509_CHAIN* chain, int idx)
+{
+    CYASSL_ENTER("CyaSSL_get_chain_cert");
+    if (chain)
+        return chain->certs[idx].buffer;
+
+    return 0;
+}
+
+
+/* Get peer's PEM ceritifcate at index (idx), output to buffer if inLen big
+   enough else return error (-1), output length is in *outLen */
+int  CyaSSL_get_chain_cert_pem(CYASSL_X509_CHAIN* chain, int idx,
+                               unsigned char* buf, int inLen, int* outLen)
+{
+    const char header[] = "-----BEGIN CERTIFICATE-----\n";
+    const char footer[] = "-----END CERTIFICATE-----\n";
+
+    int headerLen = sizeof(header) - 1;
+    int footerLen = sizeof(footer) - 1;
+    int i;
+    int err;
+
+    CYASSL_ENTER("CyaSSL_get_chain_cert_pem");
+    if (!chain || !outLen || !buf)
+        return BAD_FUNC_ARG;
+
+    /* don't even try if inLen too short */
+    if (inLen < headerLen + footerLen + chain->certs[idx].length)
+        return BAD_FUNC_ARG;
+
+    /* header */
+    XMEMCPY(buf, header, headerLen);
+    i = headerLen;
+
+    /* body */
+    *outLen = inLen;  /* input to Base64_Encode */
+    if ( (err = Base64_Encode(chain->certs[idx].buffer,
+                       chain->certs[idx].length, buf + i, (word32*)outLen)) < 0)
+        return err;
+    i += *outLen;
+
+    /* footer */
+    if ( (i + footerLen) > inLen)
+        return BAD_FUNC_ARG;
+    XMEMCPY(buf + i, footer, footerLen);
+    *outLen += headerLen + footerLen; 
+
+    return 0;
+}
+
+
+/* get session ID */
+const byte* CyaSSL_get_sessionID(const CYASSL_SESSION* session)
+{
+    CYASSL_ENTER("CyaSSL_get_sessionID");
+    if (session)
+        return session->sessionID;
+
+    return NULL;
+}
+
+
+#endif /* SESSION_CERTS */
+
+
+#ifdef HAVE_OCSP
+
+long CyaSSL_CTX_OCSP_set_options(CYASSL_CTX* ctx, long options)
+{
+    CYASSL_ENTER("CyaSSL_CTX_OCSP_set_options");
+    if (ctx != NULL) {
+        ctx->ocsp.enabled = (options && CYASSL_OCSP_ENABLE) != 0;
+        ctx->ocsp.useOverrideUrl = (options && CYASSL_OCSP_URL_OVERRIDE) != 0;
+        return 1;
+    }
+    return 0;
+}
+
+
+int CyaSSL_CTX_OCSP_set_override_url(CYASSL_CTX* ctx, const char* url)
+{
+    CYASSL_ENTER("CyaSSL_CTX_OCSP_set_override_url");
+    return CyaSSL_OCSP_set_override_url(&ctx->ocsp, url);
+}
+
+#endif
+
diff --git a/FreeRTOS-Plus/CyaSSL/src/tls.c b/FreeRTOS-Plus/CyaSSL/src/tls.c
new file mode 100644
index 000000000..dfeab8147
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/src/tls.c
@@ -0,0 +1,477 @@
+/* tls.c
+ *
+ * Copyright (C) 2006-2012 Sawtooth Consulting Ltd.
+ *
+ * This file is part of CyaSSL.
+ *
+ * CyaSSL is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * CyaSSL is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifdef HAVE_CONFIG_H
+    #include 
+#endif
+
+#include 
+#include 
+#include 
+#include 
+
+
+
+#ifndef NO_TLS
+
+
+/* calculate XOR for TLSv1 PRF */
+static INLINE void get_xor(byte *digest, word32 digLen, byte* md5, byte* sha)
+{
+    word32 i;
+
+    for (i = 0; i < digLen; i++) 
+        digest[i] = md5[i] ^ sha[i];
+}
+
+
+
+/* compute p_hash for MD5, SHA-1, or SHA-256 for TLSv1 PRF */
+static void p_hash(byte* result, word32 resLen, const byte* secret,
+                   word32 secLen, const byte* seed, word32 seedLen, int hash)
+{
+    word32   len = hash == md5_mac ? MD5_DIGEST_SIZE : hash == sha_mac ?
+                                           SHA_DIGEST_SIZE : SHA256_DIGEST_SIZE;
+    word32   times = resLen / len;
+    word32   lastLen = resLen % len;
+    word32   lastTime;
+    word32   i;
+    word32   idx = 0;
+    byte     previous[SHA256_DIGEST_SIZE];  /* max size */
+    byte     current[SHA256_DIGEST_SIZE];   /* max size */
+
+    Hmac hmac;
+
+    if (lastLen) times += 1;
+    lastTime = times - 1;
+
+    HmacSetKey(&hmac, hash == md5_mac ? MD5 : hash == sha_mac ? SHA : SHA256,
+               secret, secLen);
+    HmacUpdate(&hmac, seed, seedLen);       /* A0 = seed */
+    HmacFinal(&hmac, previous);             /* A1 */
+
+    for (i = 0; i < times; i++) {
+        HmacUpdate(&hmac, previous, len);
+        HmacUpdate(&hmac, seed, seedLen);
+        HmacFinal(&hmac, current);
+
+        if ( (i == lastTime) && lastLen)
+            XMEMCPY(&result[idx], current, lastLen);
+        else {
+            XMEMCPY(&result[idx], current, len);
+            idx += len;
+            HmacUpdate(&hmac, previous, len);
+            HmacFinal(&hmac, previous);
+        }
+    }
+}
+
+
+
+/* compute TLSv1 PRF (pseudo random function using HMAC) */
+static void PRF(byte* digest, word32 digLen, const byte* secret, word32 secLen,
+            const byte* label, word32 labLen, const byte* seed, word32 seedLen,
+            int useSha256)
+{
+    word32 half = (secLen + 1) / 2;
+
+    byte md5_half[MAX_PRF_HALF];        /* half is real size */
+    byte sha_half[MAX_PRF_HALF];        /* half is real size */
+    byte labelSeed[MAX_PRF_LABSEED];    /* labLen + seedLen is real size */
+    byte md5_result[MAX_PRF_DIG];       /* digLen is real size */
+    byte sha_result[MAX_PRF_DIG];       /* digLen is real size */
+
+    if (half > MAX_PRF_HALF)
+        return;
+    if (labLen + seedLen > MAX_PRF_LABSEED)
+        return;
+    if (digLen > MAX_PRF_DIG)
+        return;
+    
+    XMEMCPY(md5_half, secret, half);
+    XMEMCPY(sha_half, secret + half - secLen % 2, half);
+
+    XMEMCPY(labelSeed, label, labLen);
+    XMEMCPY(labelSeed + labLen, seed, seedLen);
+
+    if (useSha256) {
+        p_hash(digest, digLen, secret, secLen, labelSeed, labLen + seedLen,
+               sha256_mac);
+        return;
+    }
+
+    p_hash(md5_result, digLen, md5_half, half, labelSeed, labLen + seedLen,
+           md5_mac);
+    p_hash(sha_result, digLen, sha_half, half, labelSeed, labLen + seedLen,
+           sha_mac);
+    get_xor(digest, digLen, md5_result, sha_result);
+}
+
+
+void BuildTlsFinished(CYASSL* ssl, Hashes* hashes, const byte* sender)
+{
+    const byte* side;
+    byte        handshake_hash[FINISHED_SZ];
+    word32      hashSz = FINISHED_SZ;
+
+    Md5Final(&ssl->hashMd5, handshake_hash);
+    ShaFinal(&ssl->hashSha, &handshake_hash[MD5_DIGEST_SIZE]);
+#ifndef NO_SHA256
+    if (IsAtLeastTLSv1_2(ssl)) {
+        Sha256Final(&ssl->hashSha256, handshake_hash);
+        hashSz = SHA256_DIGEST_SIZE;
+    }
+#endif
+   
+    if ( XSTRNCMP((const char*)sender, (const char*)client, SIZEOF_SENDER) == 0)
+        side = tls_client;
+    else
+        side = tls_server;
+
+    PRF(hashes->md5, TLS_FINISHED_SZ, ssl->arrays.masterSecret, SECRET_LEN,
+        side, FINISHED_LABEL_SZ, handshake_hash, hashSz, IsAtLeastTLSv1_2(ssl));
+}
+
+
+ProtocolVersion MakeTLSv1(void)
+{
+    ProtocolVersion pv;
+    pv.major = SSLv3_MAJOR;
+    pv.minor = TLSv1_MINOR;
+
+    return pv;
+}
+
+
+ProtocolVersion MakeTLSv1_1(void)
+{
+    ProtocolVersion pv;
+    pv.major = SSLv3_MAJOR;
+    pv.minor = TLSv1_1_MINOR;
+
+    return pv;
+}
+
+
+ProtocolVersion MakeTLSv1_2(void)
+{
+    ProtocolVersion pv;
+    pv.major = SSLv3_MAJOR;
+    pv.minor = TLSv1_2_MINOR;
+
+    return pv;
+}
+
+
+static const byte master_label[MASTER_LABEL_SZ + 1] = "master secret";
+static const byte key_label   [KEY_LABEL_SZ + 1]    = "key expansion";
+
+
+int DeriveTlsKeys(CYASSL* ssl)
+{
+    int length = 2 * ssl->specs.hash_size + 
+                 2 * ssl->specs.key_size  +
+                 2 * ssl->specs.iv_size;
+    byte         seed[SEED_LEN];
+    byte         key_data[MAX_PRF_DIG];
+
+    XMEMCPY(seed, ssl->arrays.serverRandom, RAN_LEN);
+    XMEMCPY(&seed[RAN_LEN], ssl->arrays.clientRandom, RAN_LEN);
+
+    PRF(key_data, length, ssl->arrays.masterSecret, SECRET_LEN, key_label,
+        KEY_LABEL_SZ, seed, SEED_LEN, IsAtLeastTLSv1_2(ssl));
+
+    return StoreKeys(ssl, key_data);
+}
+
+
+int MakeTlsMasterSecret(CYASSL* ssl)
+{
+    byte seed[SEED_LEN];
+    
+    XMEMCPY(seed, ssl->arrays.clientRandom, RAN_LEN);
+    XMEMCPY(&seed[RAN_LEN], ssl->arrays.serverRandom, RAN_LEN);
+
+    PRF(ssl->arrays.masterSecret, SECRET_LEN,
+        ssl->arrays.preMasterSecret, ssl->arrays.preMasterSz,
+        master_label, MASTER_LABEL_SZ, 
+        seed, SEED_LEN, IsAtLeastTLSv1_2(ssl));
+
+#ifdef SHOW_SECRETS
+    {
+        int i;
+        printf("master secret: ");
+        for (i = 0; i < SECRET_LEN; i++)
+            printf("%02x", ssl->arrays.masterSecret[i]);
+        printf("\n");
+    }
+#endif
+
+    return DeriveTlsKeys(ssl);
+}
+
+
+/*** next for static INLINE s copied from cyassl_int.c ***/
+
+/* convert 16 bit integer to opaque */
+INLINE static void c16toa(word16 u16, byte* c)
+{
+    c[0] = (u16 >> 8) & 0xff;
+    c[1] =  u16 & 0xff;
+}
+
+
+/* convert 32 bit integer to opaque */
+static INLINE void c32toa(word32 u32, byte* c)
+{
+    c[0] = (u32 >> 24) & 0xff;
+    c[1] = (u32 >> 16) & 0xff;
+    c[2] = (u32 >>  8) & 0xff;
+    c[3] =  u32 & 0xff;
+}
+
+
+static INLINE word32 GetSEQIncrement(CYASSL* ssl, int verify)
+{
+#ifdef CYASSL_DTLS
+    if (ssl->options.dtls) {
+        if (verify)
+            return ssl->keys.dtls_peer_sequence_number; /* explicit from peer */
+        else
+            return ssl->keys.dtls_sequence_number - 1; /* already incremented */
+    }
+#endif
+    if (verify)
+        return ssl->keys.peer_sequence_number++; 
+    else
+        return ssl->keys.sequence_number++; 
+}
+
+
+#ifdef CYASSL_DTLS
+
+static INLINE word32 GetEpoch(CYASSL* ssl, int verify)
+{
+    if (verify)
+        return ssl->keys.dtls_peer_epoch; 
+    else
+        return ssl->keys.dtls_epoch; 
+}
+
+#endif /* CYASSL_DTLS */
+
+
+static INLINE const byte* GetMacSecret(CYASSL* ssl, int verify)
+{
+    if ( (ssl->options.side == CLIENT_END && !verify) ||
+         (ssl->options.side == SERVER_END &&  verify) )
+        return ssl->keys.client_write_MAC_secret;
+    else
+        return ssl->keys.server_write_MAC_secret;
+}
+
+/*** end copy ***/
+
+
+/* TLS type HMAC */
+void TLS_hmac(CYASSL* ssl, byte* digest, const byte* in, word32 sz,
+              int content, int verify)
+{
+    Hmac hmac;
+    byte seq[SEQ_SZ] = { 0x00, 0x00, 0x00, 0x00 };
+    byte length[LENGTH_SZ];
+    byte inner[ENUM_LEN + VERSION_SZ + LENGTH_SZ]; /* type + version +len */
+    int  type;
+
+    c16toa((word16)sz, length);
+#ifdef CYASSL_DTLS
+    if (ssl->options.dtls)
+        c16toa(GetEpoch(ssl, verify), seq);
+#endif
+    c32toa(GetSEQIncrement(ssl, verify), &seq[sizeof(word32)]);
+    
+    if (ssl->specs.mac_algorithm == md5_mac)
+        type = MD5;
+    else if (ssl->specs.mac_algorithm == sha_mac)
+        type = SHA;
+    else
+        type = SHA256;
+    HmacSetKey(&hmac, type, GetMacSecret(ssl, verify), ssl->specs.hash_size);
+    
+    HmacUpdate(&hmac, seq, SEQ_SZ);                               /* seq_num */
+    inner[0] = (byte)content;                                     /* type */
+    inner[ENUM_LEN] = ssl->version.major;
+    inner[ENUM_LEN + ENUM_LEN] = ssl->version.minor;              /* version */
+    XMEMCPY(&inner[ENUM_LEN + VERSION_SZ], length, LENGTH_SZ);     /* length */
+    HmacUpdate(&hmac, inner, sizeof(inner));
+    HmacUpdate(&hmac, in, sz);                                /* content */
+    HmacFinal(&hmac, digest);
+}
+
+
+#ifndef NO_CYASSL_CLIENT
+
+    CYASSL_METHOD* CyaTLSv1_client_method(void)
+    {
+        CYASSL_METHOD* method =
+                             (CYASSL_METHOD*) XMALLOC(sizeof(CYASSL_METHOD), 0,
+                                                      DYNAMIC_TYPE_METHOD);
+        if (method)
+            InitSSL_Method(method, MakeTLSv1());
+        return method;
+    }
+
+
+    CYASSL_METHOD* CyaTLSv1_1_client_method(void)
+    {
+        CYASSL_METHOD* method =
+                              (CYASSL_METHOD*) XMALLOC(sizeof(CYASSL_METHOD), 0,
+                                                       DYNAMIC_TYPE_METHOD);
+        if (method)
+            InitSSL_Method(method, MakeTLSv1_1());
+        return method;
+    }
+
+
+#ifndef NO_SHA256   /* can't use without SHA256 */
+
+    CYASSL_METHOD* CyaTLSv1_2_client_method(void)
+    {
+        CYASSL_METHOD* method =
+                              (CYASSL_METHOD*) XMALLOC(sizeof(CYASSL_METHOD), 0,
+                                                       DYNAMIC_TYPE_METHOD);
+        if (method)
+            InitSSL_Method(method, MakeTLSv1_2());
+        return method;
+    }
+
+#endif
+
+
+    CYASSL_METHOD* CyaSSLv23_client_method(void)
+    {
+        CYASSL_METHOD* method =
+                              (CYASSL_METHOD*) XMALLOC(sizeof(CYASSL_METHOD), 0,
+                                                       DYNAMIC_TYPE_METHOD);
+        if (method) {
+#ifndef NO_SHA256         /* 1.2 requires SHA256 */
+            InitSSL_Method(method, MakeTLSv1_2());
+#else
+            InitSSL_Method(method, MakeTLSv1_1());
+#endif
+            method->downgrade = 1;
+        }
+        return method;
+    }
+
+
+#endif /* NO_CYASSL_CLIENT */
+
+
+
+#ifndef NO_CYASSL_SERVER
+
+    CYASSL_METHOD* CyaTLSv1_server_method(void)
+    {
+        CYASSL_METHOD* method =
+                              (CYASSL_METHOD*) XMALLOC(sizeof(CYASSL_METHOD), 0,
+                                                       DYNAMIC_TYPE_METHOD);
+        if (method) {
+            InitSSL_Method(method, MakeTLSv1());
+            method->side = SERVER_END;
+        }
+        return method;
+    }
+
+
+    CYASSL_METHOD* CyaTLSv1_1_server_method(void)
+    {
+        CYASSL_METHOD* method =
+                              (CYASSL_METHOD*) XMALLOC(sizeof(CYASSL_METHOD), 0,
+                                                       DYNAMIC_TYPE_METHOD);
+        if (method) {
+            InitSSL_Method(method, MakeTLSv1_1());
+            method->side = SERVER_END;
+        }
+        return method;
+    }
+
+
+#ifndef NO_SHA256   /* can't use without SHA256 */
+
+    CYASSL_METHOD* CyaTLSv1_2_server_method(void)
+    {
+        CYASSL_METHOD* method =
+                              (CYASSL_METHOD*) XMALLOC(sizeof(CYASSL_METHOD), 0,
+                                                       DYNAMIC_TYPE_METHOD);
+        if (method) {
+            InitSSL_Method(method, MakeTLSv1_2());
+            method->side = SERVER_END;
+        }
+        return method;
+    }
+
+#endif
+
+
+    CYASSL_METHOD* CyaSSLv23_server_method(void)
+    {
+        CYASSL_METHOD* method =
+                              (CYASSL_METHOD*) XMALLOC(sizeof(CYASSL_METHOD), 0,
+                                                       DYNAMIC_TYPE_METHOD);
+        if (method) {
+#ifndef NO_SHA256         /* 1.2 requires SHA256 */
+            InitSSL_Method(method, MakeTLSv1_2());
+#else
+            InitSSL_Method(method, MakeTLSv1_1());
+#endif
+            method->side      = SERVER_END;
+            method->downgrade = 1;
+        }
+        return method;
+    }
+
+
+
+#endif /* NO_CYASSL_SERVER */
+
+#else /* NO_TLS */
+
+/* catch CyaSSL programming errors */
+void BuildTlsFinished(CYASSL* ssl, Hashes* hashes, const byte* sender)
+{
+   
+}
+
+
+int DeriveTlsKeys(CYASSL* ssl)
+{
+    return NOT_COMPILED_IN;
+}
+
+
+int MakeTlsMasterSecret(CYASSL* ssl)
+{ 
+    return NOT_COMPILED_IN;
+}
+
+#endif /* NO_TLS */
+
diff --git a/FreeRTOS-Plus/CyaSSL/sslSniffer/sslSniffer.vcproj b/FreeRTOS-Plus/CyaSSL/sslSniffer/sslSniffer.vcproj
new file mode 100644
index 000000000..1a4ca9b1d
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/sslSniffer/sslSniffer.vcproj
@@ -0,0 +1,206 @@
+
+
+	
+		
+	
+	
+	
+	
+		
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+		
+		
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+		
+	
+	
+	
+	
+		
+			
+			
+		
+		
+			
+			
+		
+		
+			
+			
+		
+	
+	
+	
+
diff --git a/FreeRTOS-Plus/CyaSSL/sslSniffer/sslSnifferTest/include.am b/FreeRTOS-Plus/CyaSSL/sslSniffer/sslSnifferTest/include.am
new file mode 100644
index 000000000..cf2ed1c78
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/sslSniffer/sslSnifferTest/include.am
@@ -0,0 +1,12 @@
+# vim:ft=automake
+# included from Top Level Makefile.am
+# All paths should be given relative to the root
+
+noinst_PROGRAMS += sslSniffer/sslSnifferTest/snifftest
+sslSniffer_sslSnifferTest_snifftest_SOURCES = sslSniffer/sslSnifferTest/snifftest.c
+if BUILD_SNIFFER
+sslSniffer_sslSnifferTest_snifftest_LDADD        = src/libcyassl.la -lpcap
+sslSniffer_sslSnifferTest_snifftest_DEPENDENCIES = src/libcyassl.la
+endif
+EXTRA_DIST += sslSniffer/sslSniffer.vcproj
+EXTRA_DIST += sslSniffer/sslSnifferTest/sslSniffTest.vcproj
diff --git a/FreeRTOS-Plus/CyaSSL/sslSniffer/sslSnifferTest/snifftest.c b/FreeRTOS-Plus/CyaSSL/sslSniffer/sslSnifferTest/snifftest.c
new file mode 100644
index 000000000..d304ad1d5
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/sslSniffer/sslSnifferTest/snifftest.c
@@ -0,0 +1,238 @@
+/* snifftest.c
+ *
+ * Copyright (C) 2006-2012 Sawtooth Consulting Ltd.
+ *
+ * This file is part of CyaSSL.
+ *
+ * CyaSSL is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * CyaSSL is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifdef HAVE_CONFIG_H
+    #include 
+#endif
+
+#ifdef _WIN32
+    #define CYASSL_SNIFFER
+#endif
+
+#ifndef CYASSL_SNIFFER
+
+/* blank build */
+#include 
+#include 
+int main()
+{
+    printf("do ./configure --enable-sniffer to enable build support\n");
+    return EXIT_SUCCESS;
+}
+
+#else
+/* do a full build */
+
+#ifdef _MSC_VER
+	/* builds on *nix too, for scanf device and port */
+	#define _CRT_SECURE_NO_WARNINGS
+#endif
+
+#include      /* pcap stuff */
+#include          /* printf */
+#include         /* EXIT_SUCCESS */
+#include         /* signal */
+
+#include 
+
+
+#ifndef _WIN32
+    #include 
+#endif
+
+typedef unsigned char byte;
+
+enum {
+    ETHER_IF_FRAME_LEN = 14,   /* ethernet interface frame length */
+    LOCAL_IF_FRAME_LEN =  4,   /* localhost interface frame length  */
+};
+
+
+pcap_t* pcap = 0;
+pcap_if_t *alldevs;
+
+static void sig_handler(const int sig) 
+{
+    printf("SIGINT handled.\n");
+    if (pcap)
+        pcap_close(pcap);
+	pcap_freealldevs(alldevs);
+#ifndef _WIN32
+    ssl_FreeSniffer();
+#endif
+    exit(EXIT_SUCCESS);
+}
+
+
+void err_sys(const char* msg)
+{
+	fprintf(stderr, "%s\n", msg);
+	exit(EXIT_FAILURE);
+}
+
+
+#ifdef _WIN32
+	#define SNPRINTF _snprintf
+#else
+	#define SNPRINTF snprintf
+#endif
+
+
+char* iptos(unsigned int addr)
+{
+	static char    output[32];
+	byte *p = (byte*)&addr;
+
+	SNPRINTF(output, sizeof(output), "%d.%d.%d.%d", p[0], p[1], p[2], p[3]);
+
+	return output;
+}
+
+
+int main(int argc, char** argv)
+{
+    int          ret;
+	int		     inum;
+	int		     port;
+	int		     i = 0;
+    char         err[PCAP_ERRBUF_SIZE];
+	char         filter[32];
+	char         loopback = 0;
+	char        *server = NULL;
+	struct       bpf_program fp;
+	pcap_if_t   *d;
+	pcap_addr_t *a;
+
+    signal(SIGINT, sig_handler);
+
+#ifndef _WIN32
+    ssl_InitSniffer();
+#endif
+    ssl_Trace("./tracefile.txt", err);
+
+	if (pcap_findalldevs(&alldevs, err) == -1)
+		err_sys("Error in pcap_findalldevs");
+
+	for (d = alldevs; d; d=d->next) {
+		printf("%d. %s", ++i, d->name);
+		if (d->description)
+			printf(" (%s)\n", d->description);
+		else
+			printf(" (No description available)\n");
+	}
+
+	if (i == 0)
+		err_sys("No interfaces found! Make sure pcap or WinPcap is installed "
+                "correctly and you have sufficient permissions");
+
+	printf("Enter the interface number (1-%d): ", i);
+	scanf("%d", &inum);
+
+	if (inum < 1 || inum > i)
+		err_sys("Interface number out of range");
+
+	/* Jump to the selected adapter */
+	for (d = alldevs, i = 0; i < inum - 1; d = d->next, i++);
+
+	pcap = pcap_create(d->name, err);
+
+    if (pcap == NULL) printf("pcap_create failed %s\n", err);
+
+	if (d->flags & PCAP_IF_LOOPBACK)
+		loopback = 1;
+
+	/* get an IPv4 address */
+	for (a = d->addresses; a; a = a->next) {
+		switch(a->addr->sa_family)
+		{
+			case AF_INET:
+				server =iptos(((struct sockaddr_in *)a->addr)->sin_addr.s_addr);
+				printf("server = %s\n", server);
+				break;
+		}
+	}
+	if (server == NULL)
+		err_sys("Unable to get device IPv4 address");
+
+    ret = pcap_set_snaplen(pcap, 65536);
+    if (ret != 0) printf("pcap_set_snaplen failed %s\n", pcap_geterr(pcap));
+
+    ret = pcap_set_timeout(pcap, 1000); 
+    if (ret != 0) printf("pcap_set_timeout failed %s\n", pcap_geterr(pcap));
+
+    ret = pcap_set_buffer_size(pcap, 1000000); 
+    if (ret != 0)
+		printf("pcap_set_buffer_size failed %s\n", pcap_geterr(pcap));
+
+    ret = pcap_set_promisc(pcap, 1); 
+    if (ret != 0) printf("pcap_set_promisc failed %s\n", pcap_geterr(pcap));
+
+
+    ret = pcap_activate(pcap);
+    if (ret != 0) printf("pcap_activate failed %s\n", pcap_geterr(pcap));
+
+	printf("Enter the port to scan: ");
+	scanf("%d", &port);
+
+	SNPRINTF(filter, sizeof(filter), "tcp and port %d", port);
+
+	ret = pcap_compile(pcap, &fp, filter, 0, 0);
+    if (ret != 0) printf("pcap_compile failed %s\n", pcap_geterr(pcap));
+
+    ret = pcap_setfilter(pcap, &fp);
+    if (ret != 0) printf("pcap_setfilter failed %s\n", pcap_geterr(pcap));
+
+    ret = ssl_SetPrivateKey(server, port, "../../certs/server-key.pem",
+                            FILETYPE_PEM, NULL, err);
+    if (ret != 0)
+        err_sys(err);
+
+    while (1) {
+        struct pcap_pkthdr header;
+        const unsigned char* packet = pcap_next(pcap, &header);
+        if (packet) {
+
+            byte data[65535];
+
+            if (header.caplen > 40)  { /* min ip(20) + min tcp(20) */
+				int frame = ETHER_IF_FRAME_LEN;
+				if (loopback)
+					frame = LOCAL_IF_FRAME_LEN;
+				packet        += frame;
+				header.caplen -= frame;					
+            }
+            else
+                continue;
+
+            ret = ssl_DecodePacket(packet, header.caplen, data, err);
+            if (ret < 0)
+                printf("ssl_Decode ret = %d, %s\n", ret, err);
+            if (ret > 0) {
+                data[ret] = 0;
+				printf("SSL App Data:%s\n", data);
+            }
+        }
+    }
+
+    return EXIT_SUCCESS;
+}
+
+#endif /* full build */
diff --git a/FreeRTOS-Plus/CyaSSL/sslSniffer/sslSnifferTest/sslSniffTest.vcproj b/FreeRTOS-Plus/CyaSSL/sslSniffer/sslSnifferTest/sslSniffTest.vcproj
new file mode 100644
index 000000000..0a45e3ea1
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/sslSniffer/sslSnifferTest/sslSniffTest.vcproj
@@ -0,0 +1,199 @@
+
+
+	
+		
+	
+	
+	
+	
+		
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+		
+		
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+		
+	
+	
+	
+	
+		
+			
+			
+		
+		
+		
+		
+		
+	
+	
+	
+
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/.log b/FreeRTOS-Plus/CyaSSL/stamp-h.in
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/.log
rename to FreeRTOS-Plus/CyaSSL/stamp-h.in
diff --git a/FreeRTOS-Plus/CyaSSL/support/libcyassl.pc.in b/FreeRTOS-Plus/CyaSSL/support/libcyassl.pc.in
new file mode 100644
index 000000000..ad469bc48
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/support/libcyassl.pc.in
@@ -0,0 +1,10 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: cyassl
+Description: cyassl C library.
+Version: @VERSION@
+Libs: -L${libdir} -lcyassl
+Cflags: -I${includedir}
diff --git a/FreeRTOS-Plus/CyaSSL/swig/PythonBuild.sh b/FreeRTOS-Plus/CyaSSL/swig/PythonBuild.sh
new file mode 100644
index 000000000..7f0939c42
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/swig/PythonBuild.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+echo
+swig -python cyassl.i
+pythonIncludes=`python-config --includes`
+pythonLibs=`python-config --libs`
+gcc -c -fpic cyassl_wrap.c -I$pythonIncludes
+gcc -c -fpic cyassl_adds.c 
+gcc -shared -flat_namespace  cyassl_adds.o  cyassl_wrap.o -lcyassl $pythonLibs -o _cyassl.so
+python runme.py
diff --git a/FreeRTOS-Plus/CyaSSL/swig/README b/FreeRTOS-Plus/CyaSSL/swig/README
new file mode 100644
index 000000000..302bc6be7
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/swig/README
@@ -0,0 +1,44 @@
+
+
+Initial swig interface file
+
+Please send questions to support@yassl.com
+
+
+
+**Python Support**
+
+    For Linux, OS X, or *nix
+
+1) build CyaSSL with fpic on Linux, not needed on OS X
+    ./configure --disable-shared CFLAGS=-fpic
+    make
+    sudo make install
+
+
+2) start the example echoserver from the examples/echoserver directory
+    ./echoserver
+
+3) run ./PtyonBuild.sh from this directory it will
+    a) build the swig wrapper file
+    b) compile the swig wrapper and cyassl wrapper files
+    c) place them into a cyassl shared library for python
+    d) run runme.py which will connect to the CyaSSL echo server, write a
+       string, then read the result and output it
+
+
+    Windows only 
+
+1) Make sure the install path to cyassl doesn't have any spaces anywhere in the
+   directory path because swig doesn't like that
+2) Have python for Windows installed, note install directory
+3) Have swigwin installed, note install directory
+4) Make sure swigwin install direcotry is added to PATH env. variable
+5) Make sure env. variables PYTHON_INCLUDE and PYTHON_LIB are set correctly e.g.
+    PYTHON_INCLUE="c:\Python26\include"
+    PYTHON_LIB="c:\Python26\libs\python26.lib"
+6) Build python_cyassl in Release mode only, Debug build fails to find a debug
+    python library that isn't included by default
+7) The outputs _cyassl.pyd and cyassl.py are the cyassl import library
+8) Can now run python runme.py from the swig directory 
+
diff --git a/FreeRTOS-Plus/CyaSSL/swig/cyassl.i b/FreeRTOS-Plus/CyaSSL/swig/cyassl.i
new file mode 100644
index 000000000..d32776ff2
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/swig/cyassl.i
@@ -0,0 +1,63 @@
+/* cyassl.i
+ *
+ * Copyright (C) 2006-2011 Sawtooth Consulting Ltd.
+ *
+ * This file is part of CyaSSL.
+ *
+ * CyaSSL is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * CyaSSL is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+%module cyassl
+%{
+    #include 
+    #include 
+
+    /* defn adds */
+    char* CyaSSL_error_string(int err);
+    int   CyaSSL_swig_connect(CYASSL*, const char* server, int port);
+    RNG*  GetRng(void);
+    RsaKey* GetRsaPrivateKey(const char* file);
+    void    FillSignStr(unsigned char*, const char*, int);
+%}
+
+
+CYASSL_METHOD* CyaTLSv1_client_method(void);
+CYASSL_CTX*    CyaSSL_CTX_new(CYASSL_METHOD*);
+int            CyaSSL_CTX_load_verify_locations(CYASSL_CTX*, const char*, const char*);
+CYASSL*        CyaSSL_new(CYASSL_CTX*);
+int            CyaSSL_get_error(CYASSL*, int);
+int            CyaSSL_write(CYASSL*, const char*, int);
+int            CyaSSL_Debugging_ON(void);
+int            CyaSSL_Init(void);
+char*          CyaSSL_error_string(int);
+int            CyaSSL_swig_connect(CYASSL*, const char* server, int port);
+
+int         RsaSSL_Sign(const unsigned char* in, int inLen, unsigned char* out, int outLen, RsaKey* key, RNG* rng);
+
+int         RsaSSL_Verify(const unsigned char* in, int inLen, unsigned char* out, int outLen, RsaKey* key);
+
+RNG* GetRng(void);
+RsaKey* GetRsaPrivateKey(const char* file);
+void    FillSignStr(unsigned char*, const char*, int);
+
+%include carrays.i
+%include cdata.i
+%array_class(unsigned char, byteArray);
+int         CyaSSL_read(CYASSL*, unsigned char*, int);
+
+
+#define    SSL_FAILURE      0
+#define    SSL_SUCCESS      1
+
diff --git a/FreeRTOS-Plus/CyaSSL/swig/cyassl_adds.c b/FreeRTOS-Plus/CyaSSL/swig/cyassl_adds.c
new file mode 100644
index 000000000..a6c7b2e4a
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/swig/cyassl_adds.c
@@ -0,0 +1,232 @@
+/* cyassl_adds.c
+ *
+ * Copyright (C) 2006-2012 Sawtooth Consulting Ltd.
+ *
+ * This file is part of CyaSSL.
+ *
+ * CyaSSL is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * CyaSSL is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifdef HAVE_CONFIG_H
+    #include 
+#endif
+
+#ifndef _WIN32
+    #define HAVE_CONFIG_H
+#endif
+
+#include 
+#include 
+#include 
+
+#include 
+#include 
+#include 
+#include 
+
+#ifdef _WIN32
+    #include 
+    #include 
+    #ifdef TEST_IPV6            /* don't require newer SDK for IPV4 */
+	    #include 
+        #include 
+    #endif
+    #define SOCKET_T int
+#else
+    #include 
+    #include 
+    #include 
+    #include 
+    #include 
+    #include 
+    #include 
+    #include 
+    #include 
+    #include 
+    #ifdef NON_BLOCKING
+        #include 
+    #endif
+    #ifdef TEST_IPV6
+        #include 
+    #endif
+    #define SOCKET_T unsigned int
+#endif /* _WIN32 */
+
+#ifdef _MSC_VER
+    /* disable conversion warning */
+    /* 4996 warning to use MS extensions e.g., strcpy_s instead of strncpy */
+    #pragma warning(disable:4244 4996)
+#endif
+
+#if defined(__MACH__) || defined(_WIN32)
+    #ifndef _SOCKLEN_T
+        typedef int socklen_t;
+    #endif
+#endif
+
+
+/* HPUX doesn't use socklent_t for third parameter to accept */
+#if !defined(__hpux__)
+    typedef socklen_t* ACCEPT_THIRD_T;
+#else
+    typedef int*       ACCEPT_THIRD_T;
+#endif
+
+
+#ifdef _WIN32
+    #define CloseSocket(s) closesocket(s)
+    #define StartTCP() { WSADATA wsd; WSAStartup(0x0002, &wsd); }
+#else
+    #define CloseSocket(s) close(s)
+    #define StartTCP() 
+#endif
+
+
+#ifdef TEST_IPV6
+    typedef struct sockaddr_in6 SOCKADDR_IN_T;
+    #define AF_INET_V    AF_INET6
+#else
+    typedef struct sockaddr_in  SOCKADDR_IN_T;
+    #define AF_INET_V    AF_INET
+#endif
+   
+
+enum {
+    SSL_BLOCKING    = 2,
+    SSL_NONBLOCKING = 4
+};
+
+
+static int tcp_socket(SOCKET_T* sockfd, SOCKADDR_IN_T* addr, const char* peer,
+                       short port)
+{
+    const char* host = peer;
+
+    /* peer could be in human readable form */
+    if (isalpha(peer[0])) {
+        struct hostent* entry = gethostbyname(peer);
+
+        if (entry) {
+            struct sockaddr_in tmp;
+            memset(&tmp, 0, sizeof(struct sockaddr_in));
+            memcpy(&tmp.sin_addr.s_addr, entry->h_addr_list[0],entry->h_length);
+            host = inet_ntoa(tmp.sin_addr);
+        }
+        else
+            return -1;   /* no entry for host */ 
+    }
+
+    *sockfd = socket(AF_INET, SOCK_STREAM, 0);
+    memset(addr, 0, sizeof(SOCKADDR_IN_T));
+
+    addr->sin_family = AF_INET;
+    addr->sin_port = htons(port);
+    addr->sin_addr.s_addr = inet_addr(host);
+
+#ifdef SO_NOSIGPIPE
+    {
+        int on = 1;
+        socklen_t len = sizeof(on);
+        setsockopt(*sockfd, SOL_SOCKET, SO_NOSIGPIPE, &on, len);
+    }
+#endif
+
+    return 0;
+}
+
+
+static int tcp_connect(SOCKET_T* sockfd, const char* ip, short port)
+{
+    SOCKADDR_IN_T addr;
+    int ret = tcp_socket(sockfd, &addr, ip, port);
+    if (ret != 0) return ret;
+
+    if (connect(*sockfd, (const struct sockaddr*)&addr, sizeof(addr)) != 0)
+        return -2; /* can't connect */
+
+    return 0;
+}
+    
+
+int CyaSSL_swig_connect(CYASSL* ssl, const char* server, int port)
+{
+    SOCKET_T sockfd;
+    int ret = tcp_connect(&sockfd, server, port);
+    if (ret != 0) return ret;
+    
+    CyaSSL_set_fd(ssl, sockfd);
+
+    return CyaSSL_connect(ssl);
+}
+
+
+char* CyaSSL_error_string(int err)
+{
+    static char buffer[80];
+
+    return CyaSSL_ERR_error_string(err, buffer);
+}
+
+
+RNG* GetRng(void)
+{
+    RNG* rng = (RNG*)malloc(sizeof(RNG));
+
+    if (rng)
+        if (InitRng(rng) != 0) {
+            free(rng);
+            rng = 0;
+        }
+
+    return rng;
+}
+
+
+RsaKey* GetRsaPrivateKey(const char* keyFile)
+{
+    RsaKey* key = (RsaKey*)malloc(sizeof(RsaKey));
+
+    if (key) {
+        byte   tmp[1024];
+        size_t bytes;
+        int    ret;
+        word32 idx = 0;
+        FILE*  file = fopen(keyFile, "rb");
+
+        if (!file) {
+            free(key);
+            return 0;
+        }
+
+        bytes = fread(tmp, 1, sizeof(tmp), file);
+        fclose(file);
+        InitRsaKey(key, 0);
+
+        ret = RsaPrivateKeyDecode(tmp, &idx, key, (word32)bytes);
+        if (ret != 0) {
+            FreeRsaKey(key);
+            free(key);
+            return 0;
+        }
+    }
+    return key;
+}
+
+
+void FillSignStr(unsigned char* dst, const char* src, int size)
+{
+    memcpy(dst, src, size);
+}
+
diff --git a/FreeRTOS-Plus/CyaSSL/swig/include.am b/FreeRTOS-Plus/CyaSSL/swig/include.am
new file mode 100644
index 000000000..32adb5b8f
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/swig/include.am
@@ -0,0 +1,12 @@
+# vim:ft=automake
+# All paths should be given relative to the root
+
+EXTRA_DIST+= \
+	     swig/PythonBuild.sh \
+	     swig/README \
+	     swig/cyassl.i \
+	     swig/cyassl_adds.c \
+	     swig/python_cyassl.vcproj \
+	     swig/rsasign.py \
+	     swig/runme.py
+
diff --git a/FreeRTOS-Plus/CyaSSL/swig/python_cyassl.vcproj b/FreeRTOS-Plus/CyaSSL/swig/python_cyassl.vcproj
new file mode 100644
index 000000000..d4373a949
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/swig/python_cyassl.vcproj
@@ -0,0 +1,225 @@
+
+
+	
+		
+	
+	
+	
+	
+		
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+		
+		
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+		
+	
+	
+	
+	
+		
+			
+			
+			
+			
+		
+		
+		
+		
+		
+		
+			
+				
+			
+			
+				
+			
+		
+	
+	
+	
+
diff --git a/FreeRTOS-Plus/CyaSSL/swig/rsasign.py b/FreeRTOS-Plus/CyaSSL/swig/rsasign.py
new file mode 100644
index 000000000..ad2e114f8
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/swig/rsasign.py
@@ -0,0 +1,35 @@
+# file: rsasign.py
+
+import cyassl 
+
+
+# start Random Number Generator
+rng = cyassl.GetRng()
+if rng == None:
+    print "Couldn't get an RNG"
+    exit(-1)
+
+# load RSA private key in DER format
+key = cyassl.GetRsaPrivateKey("../certs/client-key.der")
+if key == None:
+    print "Couldn't load DER private key file"
+    exit(-1)
+
+# Make byte Arrays and fill input
+signOutput = cyassl.byteArray(128)   # 128 allows 1024 bit private key
+signStr    = cyassl.byteArray(25)    # input can't be larger then key size
+                                     # 64 for 512 bit 128 for 1024 bit
+cyassl.FillSignStr(signStr, "Everybody gets Friday off", 25)
+
+# Do RSA Sign
+signedSize = cyassl.RsaSSL_Sign(signStr, 25, signOutput, 128, key, rng) 
+
+# Show output 
+print "Signed Size = ", signedSize, " signed array = ", cyassl.cdata(signOutput, signedSize)
+
+# let's verify this worked
+signVerify = cyassl.byteArray(signedSize)
+verifySize = cyassl.RsaSSL_Verify(signOutput, signedSize, signVerify, signedSize, key)
+
+print "Verify Size = ", verifySize, " verify array = ", cyassl.cdata(signVerify, verifySize)
+
diff --git a/FreeRTOS-Plus/CyaSSL/swig/runme.py b/FreeRTOS-Plus/CyaSSL/swig/runme.py
new file mode 100644
index 000000000..42cbdb454
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/swig/runme.py
@@ -0,0 +1,40 @@
+# file: runme.py
+
+import cyassl 
+
+print ""
+print "Trying to connect to the echo server..."
+
+cyassl.CyaSSL_Init()
+#cyassl.CyaSSL_Debugging_ON()
+ctx = cyassl.CyaSSL_CTX_new(cyassl.CyaTLSv1_client_method())
+if ctx == None:
+    print "Couldn't get SSL CTX for TLSv1"
+    exit(-1)
+
+ret = cyassl.CyaSSL_CTX_load_verify_locations(ctx, "../certs/ca-cert.pem", None)
+if ret != cyassl.SSL_SUCCESS:
+    print "Couldn't do SSL_CTX_load_verify_locations "
+    print "error string = ", ret 
+    exit(-1)
+
+ssl = cyassl.CyaSSL_new(ctx)
+ret = cyassl.CyaSSL_swig_connect(ssl, "localhost", 11111)
+
+if ret != cyassl.SSL_SUCCESS:
+    print "Couldn't do SSL connect"
+    err    = cyassl.CyaSSL_get_error(ssl, 0)
+    print "error string = ", cyassl.CyaSSL_error_string(err)
+    exit(-1)
+
+print "...Connected"
+written = cyassl.CyaSSL_write(ssl, "hello from python\r\n", 19)
+
+if written > 0:
+    print "Wrote ", written, " bytes"
+
+byteArray = cyassl.byteArray(100)
+readBytes = cyassl.CyaSSL_read(ssl, byteArray, 100)
+
+print "server reply: ", cyassl.cdata(byteArray, readBytes) 
+
diff --git a/FreeRTOS-Plus/CyaSSL/tests/api.c b/FreeRTOS-Plus/CyaSSL/tests/api.c
new file mode 100644
index 000000000..c0067b9f5
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/tests/api.c
@@ -0,0 +1,783 @@
+/* api.c API unit tests
+ *
+ * Copyright (C) 2006-2012 Sawtooth Consulting Ltd.
+ *
+ * This file is part of CyaSSL.
+ *
+ * CyaSSL is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * CyaSSL is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include 
+#include 
+#define NO_MAIN_DRIVER
+#include 
+#include "unit.h"
+
+#define TEST_FAIL       (-1)
+#define TEST_SUCCESS    (0)
+
+static int test_CyaSSL_Init(void);
+static int test_CyaSSL_Cleanup(void);
+static int test_CyaSSL_Method_Allocators(void);
+static int test_CyaSSL_CTX_new(CYASSL_METHOD *method);
+#ifndef NO_FILESYSTEM
+static int test_CyaSSL_CTX_use_certificate_file(void);
+static int test_CyaSSL_CTX_use_PrivateKey_file(void);
+static int test_CyaSSL_CTX_load_verify_locations(void);
+static int test_server_CyaSSL_new(void);
+static int test_client_CyaSSL_new(void);
+static int test_CyaSSL_read_write(void);
+#endif
+
+/* test function helpers */
+static int test_method(CYASSL_METHOD *method, const char *name);
+static int test_method2(CYASSL_METHOD *method, const char *name);
+#ifndef NO_FILESYSTEM
+static int test_ucf(CYASSL_CTX *ctx, const char* file, int type,
+    int cond, const char* name);
+static int test_upkf(CYASSL_CTX *ctx, const char* file, int type,
+    int cond, const char* name);
+static int test_lvl(CYASSL_CTX *ctx, const char* file, const char* path,
+    int cond, const char* name);
+
+THREAD_RETURN CYASSL_THREAD test_server_nofail(void*);
+void test_client_nofail(void*);
+void wait_tcp_ready(func_args*);
+#endif
+
+static const char* bogusFile  = "/dev/null";
+static const char* testingFmt = "   %s:";
+static const char* resultFmt  = " %s\n";
+static const char* passed     = "passed";
+static const char* failed     = "failed";
+
+/* List of methods found in echoserver.c that I'm skipping for the moment:
+ * - CyaSSL_CTX_set_session_cache_mode()
+ */
+
+int ApiTest(void)
+{
+    printf(" Begin API Tests\n");
+    test_CyaSSL_Init();
+    test_CyaSSL_Method_Allocators();
+    test_CyaSSL_CTX_new(CyaSSLv23_server_method());
+#ifndef NO_FILESYSTEM
+    test_CyaSSL_CTX_use_certificate_file();
+    test_CyaSSL_CTX_use_PrivateKey_file();
+    test_CyaSSL_CTX_load_verify_locations();
+    test_server_CyaSSL_new();
+    test_client_CyaSSL_new();
+    test_CyaSSL_read_write();
+#endif
+    test_CyaSSL_Cleanup();
+    printf(" End API Tests\n");
+
+    return TEST_SUCCESS;
+}
+
+int test_CyaSSL_Init(void)
+{
+    int result;
+
+    printf(testingFmt, "CyaSSL_Init()");
+    result = CyaSSL_Init();
+    printf(resultFmt, result ? failed : passed);
+
+    return result;
+}
+
+static int test_CyaSSL_Cleanup(void)
+{
+    int result;
+
+    printf(testingFmt, "CyaSSL_Cleanup()");
+    result = CyaSSL_Cleanup();
+    printf(resultFmt, result ? failed : passed);
+
+    return result;
+}
+
+int test_method(CYASSL_METHOD *method, const char *name)
+{
+    printf(testingFmt, name);
+    if (method == NULL)
+    {
+        printf(resultFmt, failed);
+        return TEST_FAIL;
+    }
+    XFREE(method, 0, DYNAMIC_TYPE_METHOD);
+    printf(resultFmt, passed);
+    return TEST_SUCCESS;
+}
+
+int test_method2(CYASSL_METHOD *method, const char *name)
+{
+    printf(testingFmt, name);
+    if (method != NULL)
+    {
+        XFREE(method, 0, DYNAMIC_TYPE_METHOD);
+        printf(resultFmt, failed);
+        return TEST_FAIL;
+    }
+    printf(resultFmt, passed);
+    return TEST_SUCCESS;
+}
+
+int test_CyaSSL_Method_Allocators(void)
+{
+    test_method(CyaSSLv3_server_method(), "CyaSSLv3_server_method()");
+    test_method(CyaSSLv3_client_method(), "CyaSSLv3_client_method()");
+    test_method(CyaTLSv1_server_method(), "CyaTLSv1_server_method()");
+    test_method(CyaTLSv1_client_method(), "CyaTLSv1_client_method()");
+    test_method(CyaTLSv1_1_server_method(), "CyaTLSv1_1_server_method()");
+    test_method(CyaTLSv1_1_client_method(), "CyaTLSv1_1_client_method()");
+    test_method(CyaTLSv1_2_server_method(), "CyaTLSv1_2_server_method()");
+    test_method(CyaTLSv1_2_client_method(), "CyaTLSv1_2_client_method()");
+    test_method(CyaSSLv23_client_method(), "CyaSSLv23_client_method()");
+
+#ifdef CYASSL_DTLS
+    test_method(CyaDTLSv1_server_method(), "CyaDTLSv1_server_method()");
+    test_method(CyaDTLSv1_client_method(), "CyaDTLSv1_client_method()");
+#endif /* CYASSL_DTLS */
+
+#ifdef OPENSSL_EXTRA
+    test_method2(CyaSSLv2_server_method(), "CyaSSLv2_server_method()");
+    test_method2(CyaSSLv2_client_method(), "CyaSSLv2_client_method()");
+#endif /* OPENSSL_EXTRA */
+
+    return TEST_SUCCESS;
+}
+
+int test_CyaSSL_CTX_new(CYASSL_METHOD *method)
+{
+    if (method != NULL)
+    {
+        CYASSL_CTX *ctx;
+    
+        printf(testingFmt, "CyaSSL_CTX_new(NULL)");
+        ctx = CyaSSL_CTX_new(NULL);
+        if (ctx != NULL)
+        {
+            CyaSSL_CTX_free(ctx);
+            printf(resultFmt, failed);
+        }
+        else
+            printf(resultFmt, passed);
+    
+        printf(testingFmt, "CyaSSL_CTX_new(method)");
+        ctx = CyaSSL_CTX_new(method);
+        if (ctx == NULL)
+        {
+            printf(resultFmt, failed);
+            XFREE(method, 0, DYNAMIC_TYPE_METHOD);
+            /* free the method data. if this was successful, freeing
+               the CTX frees the method. */
+        }
+        else
+        {
+            CyaSSL_CTX_free(ctx);
+            printf(resultFmt, passed);
+        }
+    }
+    else
+        printf("test_CyaSSL_CTX_new() called without method\n");
+
+    return TEST_SUCCESS;
+}
+
+#ifndef NO_FILESYSTEM
+/* Helper for testing CyaSSL_CTX_use_certificate_file() */
+int test_ucf(CYASSL_CTX *ctx, const char* file, int type, int cond,
+    const char* name)
+{
+    int result;
+
+    printf(testingFmt, name);
+    result = CyaSSL_CTX_use_certificate_file(ctx, file, type);
+    if (result != cond)
+    {
+        printf(resultFmt, failed);
+        return TEST_FAIL;
+    }
+    printf(resultFmt, passed);
+    return TEST_SUCCESS;
+}
+
+int test_CyaSSL_CTX_use_certificate_file(void)
+{
+    CYASSL_METHOD *method;
+    CYASSL_CTX *ctx;
+
+    method = CyaSSLv23_server_method();
+    if (method == NULL)
+    {
+        printf("test_CyaSSL_CTX_use_certificate_file() cannot create method\n");
+        return TEST_FAIL;
+    }
+
+    ctx = CyaSSL_CTX_new(method);
+    if (ctx == NULL)
+    {
+        printf("test_CyaSSL_CTX_use_certificate_file() cannot create context\n");
+        XFREE(method, 0, DYNAMIC_TYPE_METHOD);
+        return TEST_FAIL;
+    }
+
+    /* setting all parameters to garbage. this should succeed with
+        failure */
+    /* Then set the parameters to legit values but set each item to
+        bogus and call again. Finish with a successful success. */
+
+    test_ucf(NULL, NULL, 9999, SSL_FAILURE,
+        "CyaSSL_CTX_use_certificate_file(NULL, NULL, 9999)");
+/*  test_ucf(NULL, svrCert, SSL_FILETYPE_PEM, SSL_FAILURE,
+        "CyaSSL_CTX_use_certificate_file(NULL, svrCert, SSL_FILETYPE_PEM)");*/
+    test_ucf(ctx, bogusFile, SSL_FILETYPE_PEM, SSL_FAILURE,
+        "CyaSSL_CTX_use_certificate_file(ctx, bogusFile, SSL_FILETYPE_PEM)");
+    test_ucf(ctx, svrCert, 9999, SSL_FAILURE,
+        "CyaSSL_CTX_use_certificate_file(ctx, svrCert, 9999)");
+    test_ucf(ctx, svrCert, SSL_FILETYPE_PEM, SSL_SUCCESS,
+        "CyaSSL_CTX_use_certificate_file(ctx, svrCert, SSL_FILETYPE_PEM)");
+
+    CyaSSL_CTX_free(ctx);
+    return TEST_SUCCESS;
+}
+
+/* Helper for testing CyaSSL_CTX_use_PrivateKey_file() */
+int test_upkf(CYASSL_CTX *ctx, const char* file, int type, int cond,
+    const char* name)
+{
+    int result;
+
+    printf(testingFmt, name);
+    result = CyaSSL_CTX_use_PrivateKey_file(ctx, file, type);
+    if (result != cond)
+    {
+        printf(resultFmt, failed);
+        return TEST_FAIL;
+    }
+    printf(resultFmt, passed);
+    return TEST_SUCCESS;
+}
+
+int test_CyaSSL_CTX_use_PrivateKey_file(void)
+{
+    CYASSL_METHOD *method;
+    CYASSL_CTX *ctx;
+
+    method = CyaSSLv23_server_method();
+    if (method == NULL)
+    {
+        printf("test_CyaSSL_CTX_use_PrivateKey_file() cannot create method\n");
+        return TEST_FAIL;
+    }
+
+    ctx = CyaSSL_CTX_new(method);
+    if (ctx == NULL)
+    {
+        printf("test_CyaSSL_CTX_use_PrivateKey_file() cannot create context\n");
+        XFREE(method, 0, DYNAMIC_TYPE_METHOD);
+        return TEST_FAIL;
+    }
+
+    test_upkf(NULL, NULL, 9999, SSL_FAILURE,
+        "CyaSSL_CTX_use_PrivateKey_file(NULL, NULL, 9999)");
+/*  test_upkf(NULL, svrKey, SSL_FILETYPE_PEM, SSL_FAILURE,
+        "CyaSSL_CTX_use_PrivateKey_file(NULL, svrKey, SSL_FILETYPE_PEM)");*/
+    test_upkf(ctx, bogusFile, SSL_FILETYPE_PEM, SSL_FAILURE,
+        "CyaSSL_CTX_use_PrivateKey_file(ctx, bogusFile, SSL_FILETYPE_PEM)");
+    test_upkf(ctx, svrKey, 9999, SSL_FAILURE,
+        "CyaSSL_CTX_use_PrivateKey_file(ctx, svrKey, 9999)");
+    test_upkf(ctx, svrKey, SSL_FILETYPE_PEM, SSL_SUCCESS,
+        "CyaSSL_CTX_use_PrivateKey_file(ctx, svrKey, SSL_FILETYPE_PEM)");
+
+    CyaSSL_CTX_free(ctx);
+    return TEST_SUCCESS;
+}
+
+/* Helper for testing CyaSSL_CTX_load_verify_locations() */
+int test_lvl(CYASSL_CTX *ctx, const char* file, const char* path, int cond,
+    const char* name)
+{
+    int result;
+
+    printf(testingFmt, name);
+    /*
+     * CyaSSL_CTX_load_verify_locations() returns SSL_SUCCESS (1) for 
+     * success, SSL_FAILURE (0) for a non-specific failure, or a specific
+     * failure code (<0). Need to normalize the return code to 1 or 0.
+     */
+    result = CyaSSL_CTX_load_verify_locations(ctx, file, path) >= SSL_SUCCESS;
+    if (result != cond)
+    {
+        printf(resultFmt, failed);
+        return TEST_FAIL;
+    }
+    printf(resultFmt, passed);
+    return TEST_SUCCESS;
+}
+
+int test_CyaSSL_CTX_load_verify_locations(void)
+{
+    CYASSL_METHOD *method;
+    CYASSL_CTX *ctx;
+
+    method = CyaSSLv23_client_method();
+    if (method == NULL)
+    {
+        printf("test_CyaSSL_CTX_load_verify_locations() cannot create method\n");
+        return TEST_FAIL;
+    }
+
+    ctx = CyaSSL_CTX_new(method);
+    if (ctx == NULL)
+    {
+        printf("test_CyaSSL_CTX_load_verify_locations() cannot create context\n");
+        free(method);
+        return TEST_FAIL;
+    }
+    
+    test_lvl(NULL, NULL, NULL, SSL_FAILURE,
+        "CyaSSL_CTX_load_verify_locations(NULL, NULL, NULL)");
+    test_lvl(ctx, NULL, NULL, SSL_FAILURE,
+        "CyaSSL_CTX_load_verify_locations(ctx, NULL, NULL)");
+    test_lvl(NULL, caCert, NULL, SSL_FAILURE,
+        "CyaSSL_CTX_load_verify_locations(ctx, NULL, NULL)");
+    test_lvl(ctx, caCert, bogusFile, SSL_FAILURE,
+        "CyaSSL_CTX_load_verify_locations(ctx, caCert, bogusFile)");
+    /* Add a test for the certs directory path loading. */
+    /* There is a leak here. If you load a second cert, the first one
+       is lost. */
+    test_lvl(ctx, caCert, 0, SSL_SUCCESS,
+        "CyaSSL_CTX_load_verify_locations(ctx, caCert, 0)");
+
+    CyaSSL_CTX_free(ctx);
+    return TEST_SUCCESS;
+}
+
+int test_server_CyaSSL_new(void)
+{
+    int result;
+    CYASSL_CTX *ctx;
+    CYASSL_CTX *ctx_nocert;
+    CYASSL *ssl;
+
+    ctx = CyaSSL_CTX_new(CyaSSLv23_server_method());
+    if (ctx == NULL)
+    {
+        printf("test_server_CyaSSL_new() cannot create context\n");
+        return TEST_FAIL;
+    }
+
+    result = CyaSSL_CTX_use_certificate_file(ctx, svrCert, SSL_FILETYPE_PEM);
+    if (result == SSL_FAILURE)
+    {
+        printf("test_server_CyaSSL_new() cannot obtain certificate\n");
+        CyaSSL_CTX_free(ctx);
+        return TEST_FAIL;
+    }
+
+    result = CyaSSL_CTX_use_PrivateKey_file(ctx, svrKey, SSL_FILETYPE_PEM);
+    if (result == SSL_FAILURE)
+    {
+        printf("test_server_CyaSSL_new() cannot obtain key\n");
+        CyaSSL_CTX_free(ctx);
+        return TEST_FAIL;
+    }
+
+    ctx_nocert = CyaSSL_CTX_new(CyaSSLv23_server_method());
+    if (ctx_nocert == NULL)
+    {
+        printf("test_server_CyaSSL_new() cannot create bogus context\n");
+        CyaSSL_CTX_free(ctx);
+        return TEST_FAIL;
+    }
+
+    printf(testingFmt, "CyaSSL_new(NULL) server");
+    ssl = CyaSSL_new(NULL);
+    if (ssl != NULL)
+    {
+        printf(resultFmt, failed);
+        CyaSSL_free(ssl);
+    }
+    else
+        printf(resultFmt, passed);
+
+    printf(testingFmt, "CyaSSL_new(ctx_nocert) server");
+    ssl = CyaSSL_new(ctx_nocert);
+    if (ssl != NULL)
+    {
+        printf(resultFmt, failed);
+        CyaSSL_free(ssl);
+    }
+    else
+        printf(resultFmt, passed);
+
+    printf(testingFmt, "CyaSSL_new(ctx) server");
+    ssl = CyaSSL_new(ctx);
+    if (ssl == NULL)
+        printf(resultFmt, failed);
+    else
+    {
+        printf(resultFmt, passed);
+        CyaSSL_free(ssl);
+    }
+    
+    CyaSSL_CTX_free(ctx_nocert);
+    CyaSSL_CTX_free(ctx);
+    return TEST_SUCCESS;
+}
+
+int test_client_CyaSSL_new(void)
+{
+    int result;
+    CYASSL_CTX *ctx;
+    CYASSL_CTX *ctx_nocert;
+    CYASSL *ssl;
+
+    ctx = CyaSSL_CTX_new(CyaSSLv23_client_method());
+    if (ctx == NULL)
+    {
+        printf("test_client_CyaSSL_new() cannot create context\n");
+        return TEST_FAIL;
+    }
+
+    result = CyaSSL_CTX_load_verify_locations(ctx, caCert, 0);
+    if (result == SSL_FAILURE)
+    {
+        printf("test_client_CyaSSL_new() cannot obtain certificate\n");
+        CyaSSL_CTX_free(ctx);
+        return TEST_FAIL;
+    }
+
+    ctx_nocert = CyaSSL_CTX_new(CyaSSLv23_client_method());
+    if (ctx_nocert == NULL)
+    {
+        printf("test_client_CyaSSL_new() cannot create bogus context\n");
+        CyaSSL_CTX_free(ctx);
+        return TEST_FAIL;
+    }
+
+    printf(testingFmt, "CyaSSL_new(NULL) client");
+    ssl = CyaSSL_new(NULL);
+    if (ssl != NULL)
+    {
+        printf(resultFmt, failed);
+        CyaSSL_free(ssl);
+    }
+    else
+        printf(resultFmt, passed);
+
+    printf(testingFmt, "CyaSSL_new(ctx_nocert) client");
+    ssl = CyaSSL_new(ctx_nocert);
+    if (ssl == NULL)
+        printf(resultFmt, failed);
+    else
+    {
+        printf(resultFmt, passed);
+        CyaSSL_free(ssl);
+    }
+
+    printf(testingFmt, "CyaSSL_new(ctx) client");
+    ssl = CyaSSL_new(ctx);
+    if (ssl == NULL)
+        printf(resultFmt, failed);
+    else
+    {
+        printf(resultFmt, passed);
+        CyaSSL_free(ssl);
+    }
+
+    CyaSSL_CTX_free(ctx_nocert);
+    CyaSSL_CTX_free(ctx);
+    return TEST_SUCCESS;
+}
+
+
+static int test_CyaSSL_read_write(void)
+{
+    /* The unit testing for read and write shall happen simutaneously, since
+     * one can't do anything with one without the other. (Except for a failure
+     * test case.) This function will call all the others that will set up,
+     * execute, and report their test findings.
+     *
+     * Set up the success case first. This function will become the template
+     * for the other tests. This should eventually be renamed
+     *
+     * The success case isn't interesting, how can this fail?
+     * - Do not give the client context a CA certificate. The connect should
+     *   fail. Do not need server for this?
+     * - Using NULL for the ssl object on server. Do not need client for this.
+     * - Using NULL for the ssl object on client. Do not need server for this.
+     * - Good ssl objects for client and server. Client write() without server
+     *   read().
+     * - Good ssl objects for client and server. Server write() without client
+     *   read().
+     * - Forgetting the password callback?
+    */
+    int test_result = TEST_SUCCESS;
+    tcp_ready ready;
+    func_args client_args;
+    func_args server_args;
+    THREAD_TYPE serverThread;
+
+    StartTCP();
+
+    InitTcpReady(&ready);
+    server_args.signal = &ready;
+    start_thread(test_server_nofail, &server_args, &serverThread);
+    wait_tcp_ready(&server_args);
+    test_client_nofail(&client_args);
+    join_thread(serverThread);
+
+    if (client_args.return_code != TEST_SUCCESS)
+    {
+        printf(resultFmt, "client failure");
+        test_result = TEST_FAIL;
+    }
+    if (server_args.return_code != TEST_SUCCESS)
+    {
+        printf(resultFmt, "server failure");
+        test_result = TEST_FAIL;
+    }
+
+    FreeTcpReady(&ready);
+
+    return test_result;
+};
+
+
+THREAD_RETURN CYASSL_THREAD test_server_nofail(void* args)
+{
+    SOCKET_T sockfd = 0;
+    int clientfd = 0;
+
+    CYASSL_METHOD* method = 0;
+    CYASSL_CTX* ctx = 0;
+    CYASSL* ssl = 0;
+
+    char msg[] = "I hear you fa shizzle!";
+    char input[1024];
+    int idx;
+   
+    ((func_args*)args)->return_code = TEST_FAIL;
+    method = CyaSSLv23_server_method();
+    ctx = CyaSSL_CTX_new(method);
+
+    CyaSSL_CTX_set_verify(ctx,
+                    SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT, 0);
+
+#ifdef OPENSSL_EXTRA
+    CyaSSL_CTX_set_default_passwd_cb(ctx, PasswordCallBack);
+#endif
+
+    if (CyaSSL_CTX_load_verify_locations(ctx, cliCert, 0) != SSL_SUCCESS)
+    {
+        /*err_sys("can't load ca file, Please run from CyaSSL home dir");*/
+        return 0;
+    }
+    if (CyaSSL_CTX_use_certificate_file(ctx, svrCert, SSL_FILETYPE_PEM)
+            != SSL_SUCCESS)
+    {
+        /*err_sys("can't load server cert chain file, "
+                "Please run from CyaSSL home dir");*/
+        return 0;
+    }
+    if (CyaSSL_CTX_use_PrivateKey_file(ctx, svrKey, SSL_FILETYPE_PEM)
+            != SSL_SUCCESS)
+    {
+        /*err_sys("can't load server key file, "
+                "Please run from CyaSSL home dir");*/
+        return 0;
+    }
+    ssl = CyaSSL_new(ctx);
+    tcp_accept(&sockfd, &clientfd, (func_args*)args);
+#ifndef CYASSL_DTLS
+    CloseSocket(sockfd);
+#endif
+
+    CyaSSL_set_fd(ssl, clientfd);
+
+#ifdef NO_PSK
+    #if !defined(NO_FILESYSTEM) && defined(OPENSSL_EXTRA)
+        CyaSSL_SetTmpDH_file(ssl, dhParam, SSL_FILETYPE_PEM);
+    #else
+        SetDH(ssl);  /* will repick suites with DHE, higher priority than PSK */
+    #endif
+#endif
+    if (CyaSSL_accept(ssl) != SSL_SUCCESS)
+    {
+        int err = CyaSSL_get_error(ssl, 0);
+        char buffer[80];
+        printf("error = %d, %s\n", err, CyaSSL_ERR_error_string(err, buffer));
+        /*err_sys("SSL_accept failed");*/
+        return 0;
+    }
+
+    idx = CyaSSL_read(ssl, input, sizeof(input));
+    if (idx > 0) {
+        input[idx] = 0;
+        printf("Client message: %s\n", input);
+    }
+    
+    if (CyaSSL_write(ssl, msg, sizeof(msg)) != sizeof(msg))
+    {
+        /*err_sys("SSL_write failed");*/
+        return 0;
+    }
+
+    CyaSSL_shutdown(ssl);
+    CyaSSL_free(ssl);
+    CyaSSL_CTX_free(ctx);
+    
+    CloseSocket(clientfd);
+    ((func_args*)args)->return_code = TEST_SUCCESS;
+    return 0;
+}
+
+void test_client_nofail(void* args)
+{
+    SOCKET_T sockfd = 0;
+
+    CYASSL_METHOD*  method  = 0;
+    CYASSL_CTX*     ctx     = 0;
+    CYASSL*         ssl     = 0;
+
+    char msg[64] = "hello cyassl!";
+    char reply[1024];
+    int  input;
+    int  msgSz = strlen(msg);
+
+    int     argc = ((func_args*)args)->argc;
+    char**  argv = ((func_args*)args)->argv;
+
+    ((func_args*)args)->return_code = TEST_FAIL;
+    method = CyaSSLv23_client_method();
+    ctx = CyaSSL_CTX_new(method);
+
+#ifdef OPENSSL_EXTRA
+    CyaSSL_CTX_set_default_passwd_cb(ctx, PasswordCallBack);
+#endif
+
+    if (CyaSSL_CTX_load_verify_locations(ctx, caCert, 0) != SSL_SUCCESS)
+    {
+        /* err_sys("can't load ca file, Please run from CyaSSL home dir");*/
+        return;
+    }
+    if (CyaSSL_CTX_use_certificate_file(ctx, cliCert, SSL_FILETYPE_PEM)
+            != SSL_SUCCESS)
+    {
+        /*err_sys("can't load client cert file, "
+                "Please run from CyaSSL home dir");*/
+        return;
+    }
+    if (CyaSSL_CTX_use_PrivateKey_file(ctx, cliKey, SSL_FILETYPE_PEM)
+            != SSL_SUCCESS)
+    {
+        /*err_sys("can't load client key file, "
+                "Please run from CyaSSL home dir");*/
+        return;
+    }
+
+    tcp_connect(&sockfd, yasslIP, yasslPort);
+
+    ssl = CyaSSL_new(ctx);
+    CyaSSL_set_fd(ssl, sockfd);
+    if (CyaSSL_connect(ssl) != SSL_SUCCESS)
+    {
+        int  err = CyaSSL_get_error(ssl, 0);
+        char buffer[80];
+        printf("err = %d, %s\n", err, CyaSSL_ERR_error_string(err, buffer));
+        /*printf("SSL_connect failed");*/
+        return;
+    }
+
+    if (CyaSSL_write(ssl, msg, msgSz) != msgSz)
+    {
+        /*err_sys("SSL_write failed");*/
+        return;
+    }
+
+    input = CyaSSL_read(ssl, reply, sizeof(reply));
+    if (input > 0)
+    {
+        reply[input] = 0;
+        printf("Server response: %s\n", reply);
+    }
+
+    ((func_args*)args)->return_code = TEST_SUCCESS;
+    return;
+}
+
+
+
+void wait_tcp_ready(func_args* args)
+{
+#ifdef _POSIX_THREADS
+    pthread_mutex_lock(&args->signal->mutex);
+    
+    if (!args->signal->ready)
+        pthread_cond_wait(&args->signal->cond, &args->signal->mutex);
+    args->signal->ready = 0; /* reset */
+
+    pthread_mutex_unlock(&args->signal->mutex);
+#endif
+}
+
+
+void start_thread(THREAD_FUNC fun, func_args* args, THREAD_TYPE* thread)
+{
+#ifdef _POSIX_THREADS
+    pthread_create(thread, 0, fun, args);
+    return;
+#else
+    *thread = (THREAD_TYPE)_beginthreadex(0, 0, fun, args, 0, 0);
+#endif
+}
+
+
+void join_thread(THREAD_TYPE thread)
+{
+#ifdef _POSIX_THREADS
+    pthread_join(thread, 0);
+#else
+    int res = WaitForSingleObject(thread, INFINITE);
+    assert(res == WAIT_OBJECT_0);
+    res = CloseHandle(thread);
+    assert(res);
+#endif
+}
+
+
+void InitTcpReady(tcp_ready* ready)
+{
+    ready->ready = 0;
+#ifdef _POSIX_THREADS
+      pthread_mutex_init(&ready->mutex, 0);
+      pthread_cond_init(&ready->cond, 0);
+#endif
+}
+
+
+void FreeTcpReady(tcp_ready* ready)
+{
+#ifdef _POSIX_THREADS
+    pthread_mutex_destroy(&ready->mutex);
+    pthread_cond_destroy(&ready->cond);
+#endif
+}
+#endif /* NO_FILESYSTEM */
+
+
diff --git a/FreeRTOS-Plus/CyaSSL/tests/hash.c b/FreeRTOS-Plus/CyaSSL/tests/hash.c
new file mode 100644
index 000000000..70dd00f4e
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/tests/hash.c
@@ -0,0 +1,555 @@
+/* hash.c has unit tests
+ *
+ * Copyright (C) 2006-2012 Sawtooth Consulting Ltd.
+ *
+ * This file is part of CyaSSL.
+ *
+ * CyaSSL is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * CyaSSL is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifdef HAVE_CONFIG_H
+    #include 
+#endif
+
+#include 
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#include "unit.h"
+
+typedef struct testVector {
+    char*  input;
+    char*  output; 
+    size_t inLen;
+    size_t outLen;
+} testVector;
+
+int  md4_test(void);
+int  md5_test(void);
+int  sha_test(void);
+int  sha256_test(void);
+int  sha512_test(void);
+int  sha384_test(void);
+int  ripemd_test(void);
+int  hmac_test(void);
+
+int HashTest(void)
+{
+    int ret = 0;
+
+#ifndef NO_MD4
+    if ( (ret = md4_test()) ) {
+        printf( "   MD4      test failed!\n");
+        return ret; 
+    } else
+        printf( "   MD4      test passed!\n");
+#endif
+
+    if ( (ret = md5_test()) ) {
+        printf( "   MD5      test failed!\n");
+        return ret; 
+    } else
+        printf( "   MD5      test passed!\n");
+    
+    if ( (ret = sha_test()) ) {
+        printf( "   SHA      test failed!\n");
+        return ret; 
+    } else
+        printf( "   SHA      test passed!\n");
+    
+#ifndef NO_SHA256
+    if ( (ret = sha256_test()) ) {
+        printf( "   SHA-256  test failed!\n");
+        return ret; 
+    } else
+        printf( "   SHA-256  test passed!\n");
+#endif
+
+#ifdef CYASSL_SHA512
+    if ( (ret = sha512_test()) ) {
+        printf( "   SHA-512  test failed!\n");
+        return ret; 
+    } else
+        printf( "   SHA-512  test passed!\n");
+#endif
+
+#ifdef CYASSL_SHA384
+    if ( (ret = sha384_test()) ) {
+        printf( "   SHA-384  test failed!\n");
+        return ret; 
+    } else
+        printf( "   SHA-384  test passed!\n");
+#endif
+
+#ifdef CYASSL_RIPEMD
+    if ( (ret = ripemd_test()) ) {
+        printf( "   RIPEMD   test failed!\n");
+        return ret; 
+    } else
+        printf( "   RIPEMD   test passed!\n");
+#endif
+
+#ifndef NO_HMAC
+    if ( (ret = hmac_test()) ) {
+        printf( "   HMAC     test failed!\n");
+        return ret; 
+    } else
+        printf( "   HMAC     test passed!\n");
+#endif
+    
+    return 0;
+}
+
+#ifndef NO_MD4
+
+int md4_test(void)
+{
+    Md4  md4;
+    byte hash[MD4_DIGEST_SIZE];
+
+    testVector a, b, c, d, e, f, g;
+    testVector test_md4[7];
+    int times = sizeof(test_md4) / sizeof(testVector), i;
+
+    a.input  = "";
+    a.output = "\x31\xd6\xcf\xe0\xd1\x6a\xe9\x31\xb7\x3c\x59\xd7\xe0\xc0\x89" 
+               "\xc0";
+    a.inLen  = strlen(a.input);
+    a.outLen = strlen(a.output);
+
+    b.input  = "a";
+    b.output = "\xbd\xe5\x2c\xb3\x1d\xe3\x3e\x46\x24\x5e\x05\xfb\xdb\xd6\xfb" 
+               "\x24";
+    b.inLen  = strlen(b.input);
+    b.outLen = strlen(b.output);
+
+    c.input  = "abc";
+    c.output = "\xa4\x48\x01\x7a\xaf\x21\xd8\x52\x5f\xc1\x0a\xe8\x7a\xa6\x72" 
+               "\x9d";
+    c.inLen  = strlen(c.input);
+    c.outLen = strlen(c.output);
+
+    d.input  = "message digest";
+    d.output = "\xd9\x13\x0a\x81\x64\x54\x9f\xe8\x18\x87\x48\x06\xe1\xc7\x01" 
+               "\x4b";
+    d.inLen  = strlen(d.input);
+    d.outLen = strlen(d.output);
+
+    e.input  = "abcdefghijklmnopqrstuvwxyz";
+    e.output = "\xd7\x9e\x1c\x30\x8a\xa5\xbb\xcd\xee\xa8\xed\x63\xdf\x41\x2d" 
+               "\xa9";
+    e.inLen  = strlen(e.input);
+    e.outLen = strlen(e.output);
+
+    f.input  = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz012345"
+               "6789";
+    f.output = "\x04\x3f\x85\x82\xf2\x41\xdb\x35\x1c\xe6\x27\xe1\x53\xe7\xf0" 
+               "\xe4";
+    f.inLen  = strlen(f.input);
+    f.outLen = strlen(f.output);
+
+    g.input  = "1234567890123456789012345678901234567890123456789012345678"
+               "9012345678901234567890";
+    g.output = "\xe3\x3b\x4d\xdc\x9c\x38\xf2\x19\x9c\x3e\x7b\x16\x4f\xcc\x05" 
+               "\x36";
+    g.inLen  = strlen(g.input);
+    g.outLen = strlen(g.output);
+
+    test_md4[0] = a;
+    test_md4[1] = b;
+    test_md4[2] = c;
+    test_md4[3] = d;
+    test_md4[4] = e;
+    test_md4[5] = f;
+    test_md4[6] = g;
+
+    InitMd4(&md4);
+
+    for (i = 0; i < times; ++i) {
+        Md4Update(&md4, (byte*)test_md4[i].input, (word32)test_md4[i].inLen);
+        Md4Final(&md4, hash);
+
+        if (memcmp(hash, test_md4[i].output, MD4_DIGEST_SIZE) != 0)
+            return -205 - i;
+    }
+
+    return 0;
+}
+
+#endif /* NO_MD4 */
+
+int md5_test(void)
+{
+    Md5  md5;
+    byte hash[MD5_DIGEST_SIZE];
+
+    testVector a, b, c, d, e;
+    testVector test_md5[5];
+    int times = sizeof(test_md5) / sizeof(testVector), i;
+
+    a.input  = "abc";
+    a.output = "\x90\x01\x50\x98\x3c\xd2\x4f\xb0\xd6\x96\x3f\x7d\x28\xe1\x7f"
+               "\x72";
+    a.inLen  = strlen(a.input);
+    a.outLen = strlen(a.output);
+
+    b.input  = "message digest";
+    b.output = "\xf9\x6b\x69\x7d\x7c\xb7\x93\x8d\x52\x5a\x2f\x31\xaa\xf1\x61"
+               "\xd0";
+    b.inLen  = strlen(b.input);
+    b.outLen = strlen(b.output);
+
+    c.input  = "abcdefghijklmnopqrstuvwxyz";
+    c.output = "\xc3\xfc\xd3\xd7\x61\x92\xe4\x00\x7d\xfb\x49\x6c\xca\x67\xe1"
+               "\x3b";
+    c.inLen  = strlen(c.input);
+    c.outLen = strlen(c.output);
+
+    d.input  = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz012345"
+               "6789";
+    d.output = "\xd1\x74\xab\x98\xd2\x77\xd9\xf5\xa5\x61\x1c\x2c\x9f\x41\x9d"
+               "\x9f";
+    d.inLen  = strlen(d.input);
+    d.outLen = strlen(d.output);
+
+    e.input  = "1234567890123456789012345678901234567890123456789012345678"
+               "9012345678901234567890";
+    e.output = "\x57\xed\xf4\xa2\x2b\xe3\xc9\x55\xac\x49\xda\x2e\x21\x07\xb6"
+               "\x7a";
+    e.inLen  = strlen(e.input);
+    e.outLen = strlen(e.output);
+
+    test_md5[0] = a;
+    test_md5[1] = b;
+    test_md5[2] = c;
+    test_md5[3] = d;
+    test_md5[4] = e;
+
+    InitMd5(&md5);
+
+    for (i = 0; i < times; ++i) {
+        Md5Update(&md5, (byte*)test_md5[i].input, (word32)test_md5[i].inLen);
+        Md5Final(&md5, hash);
+
+        if (memcmp(hash, test_md5[i].output, MD5_DIGEST_SIZE) != 0)
+            return -5 - i;
+    }
+
+    return 0;
+}
+
+int sha_test(void)
+{
+    Sha  sha;
+    byte hash[SHA_DIGEST_SIZE];
+
+    testVector a, b, c, d;
+    testVector test_sha[4];
+    int times = sizeof(test_sha) / sizeof(struct testVector), i;
+
+    a.input  = "abc";
+    a.output = "\xA9\x99\x3E\x36\x47\x06\x81\x6A\xBA\x3E\x25\x71\x78\x50\xC2"
+               "\x6C\x9C\xD0\xD8\x9D";
+    a.inLen  = strlen(a.input);
+    a.outLen = strlen(a.output);
+
+    b.input  = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq";
+    b.output = "\x84\x98\x3E\x44\x1C\x3B\xD2\x6E\xBA\xAE\x4A\xA1\xF9\x51\x29"
+               "\xE5\xE5\x46\x70\xF1";
+    b.inLen  = strlen(b.input);
+    b.outLen = strlen(b.output);
+
+    c.input  = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+               "aaaaaa";
+    c.output = "\x00\x98\xBA\x82\x4B\x5C\x16\x42\x7B\xD7\xA1\x12\x2A\x5A\x44"
+               "\x2A\x25\xEC\x64\x4D";
+    c.inLen  = strlen(c.input);
+    c.outLen = strlen(c.output);
+
+    d.input  = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+               "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+               "aaaaaaaaaa";
+    d.output = "\xAD\x5B\x3F\xDB\xCB\x52\x67\x78\xC2\x83\x9D\x2F\x15\x1E\xA7"
+               "\x53\x99\x5E\x26\xA0";
+    d.inLen  = strlen(d.input);
+    d.outLen = strlen(d.output);
+
+    test_sha[0] = a;
+    test_sha[1] = b;
+    test_sha[2] = c;
+    test_sha[3] = d;
+
+    InitSha(&sha);
+
+    for (i = 0; i < times; ++i) {
+        ShaUpdate(&sha, (byte*)test_sha[i].input, (word32)test_sha[i].inLen);
+        ShaFinal(&sha, hash);
+
+        if (memcmp(hash, test_sha[i].output, SHA_DIGEST_SIZE) != 0)
+            return -10 - i;
+    }
+
+    return 0;
+}
+
+#ifndef NO_SHA256
+int sha256_test(void)
+{
+    Sha256 sha;
+    byte   hash[SHA256_DIGEST_SIZE];
+
+    testVector a, b;
+    testVector test_sha[2];
+    int times = sizeof(test_sha) / sizeof(struct testVector), i;
+
+    a.input  = "abc";
+    a.output = "\xBA\x78\x16\xBF\x8F\x01\xCF\xEA\x41\x41\x40\xDE\x5D\xAE\x22"
+               "\x23\xB0\x03\x61\xA3\x96\x17\x7A\x9C\xB4\x10\xFF\x61\xF2\x00"
+               "\x15\xAD";
+    a.inLen  = strlen(a.input);
+    a.outLen = strlen(a.output);
+
+    b.input  = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq";
+    b.output = "\x24\x8D\x6A\x61\xD2\x06\x38\xB8\xE5\xC0\x26\x93\x0C\x3E\x60"
+               "\x39\xA3\x3C\xE4\x59\x64\xFF\x21\x67\xF6\xEC\xED\xD4\x19\xDB"
+               "\x06\xC1";
+    b.inLen  = strlen(b.input);
+    b.outLen = strlen(b.output);
+
+    test_sha[0] = a;
+    test_sha[1] = b;
+
+    InitSha256(&sha);
+
+    for (i = 0; i < times; ++i) {
+        Sha256Update(&sha, (byte*)test_sha[i].input,(word32)test_sha[i].inLen);
+        Sha256Final(&sha, hash);
+
+        if (memcmp(hash, test_sha[i].output, SHA256_DIGEST_SIZE) != 0)
+            return -10 - i;
+    }
+
+    return 0;
+}
+#endif
+
+#ifdef CYASSL_SHA512
+int sha512_test(void)
+{
+    Sha512 sha;
+    byte   hash[SHA512_DIGEST_SIZE];
+
+    testVector a, b;
+    testVector test_sha[2];
+    int times = sizeof(test_sha) / sizeof(struct testVector), i;
+
+    a.input  = "abc";
+    a.output = "\xdd\xaf\x35\xa1\x93\x61\x7a\xba\xcc\x41\x73\x49\xae\x20\x41"
+               "\x31\x12\xe6\xfa\x4e\x89\xa9\x7e\xa2\x0a\x9e\xee\xe6\x4b\x55"
+               "\xd3\x9a\x21\x92\x99\x2a\x27\x4f\xc1\xa8\x36\xba\x3c\x23\xa3"
+               "\xfe\xeb\xbd\x45\x4d\x44\x23\x64\x3c\xe8\x0e\x2a\x9a\xc9\x4f"
+               "\xa5\x4c\xa4\x9f";
+    a.inLen  = strlen(a.input);
+    a.outLen = strlen(a.output);
+
+    b.input  = "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhi"
+               "jklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu";
+    b.output = "\x8e\x95\x9b\x75\xda\xe3\x13\xda\x8c\xf4\xf7\x28\x14\xfc\x14"
+               "\x3f\x8f\x77\x79\xc6\xeb\x9f\x7f\xa1\x72\x99\xae\xad\xb6\x88"
+               "\x90\x18\x50\x1d\x28\x9e\x49\x00\xf7\xe4\x33\x1b\x99\xde\xc4"
+               "\xb5\x43\x3a\xc7\xd3\x29\xee\xb6\xdd\x26\x54\x5e\x96\xe5\x5b"
+               "\x87\x4b\xe9\x09"; 
+    b.inLen  = strlen(b.input);
+    b.outLen = strlen(b.output);
+
+    test_sha[0] = a;
+    test_sha[1] = b;
+
+    InitSha512(&sha);
+
+    for (i = 0; i < times; ++i) {
+        Sha512Update(&sha, (byte*)test_sha[i].input,(word32)test_sha[i].inLen);
+        Sha512Final(&sha, hash);
+
+        if (memcmp(hash, test_sha[i].output, SHA512_DIGEST_SIZE) != 0)
+            return -10 - i;
+    }
+
+    return 0;
+}
+#endif
+
+#ifdef CYASSL_SHA384
+int sha384_test()
+{
+    Sha384 sha;
+    byte   hash[SHA384_DIGEST_SIZE];
+
+    testVector a, b;
+    testVector test_sha[2];
+    int times = sizeof(test_sha) / sizeof(struct testVector), i;
+
+    a.input  = "abc";
+    a.output = "\xcb\x00\x75\x3f\x45\xa3\x5e\x8b\xb5\xa0\x3d\x69\x9a\xc6\x50"
+               "\x07\x27\x2c\x32\xab\x0e\xde\xd1\x63\x1a\x8b\x60\x5a\x43\xff"
+               "\x5b\xed\x80\x86\x07\x2b\xa1\xe7\xcc\x23\x58\xba\xec\xa1\x34"
+               "\xc8\x25\xa7";
+    a.inLen  = strlen(a.input);
+    a.outLen = strlen(a.output);
+
+    b.input  = "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhi"
+               "jklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu";
+    b.output = "\x09\x33\x0c\x33\xf7\x11\x47\xe8\x3d\x19\x2f\xc7\x82\xcd\x1b"
+               "\x47\x53\x11\x1b\x17\x3b\x3b\x05\xd2\x2f\xa0\x80\x86\xe3\xb0"
+               "\xf7\x12\xfc\xc7\xc7\x1a\x55\x7e\x2d\xb9\x66\xc3\xe9\xfa\x91"
+               "\x74\x60\x39";
+    b.inLen  = strlen(b.input);
+    b.outLen = strlen(b.output);
+
+    test_sha[0] = a;
+    test_sha[1] = b;
+
+    InitSha384(&sha);
+
+    for (i = 0; i < times; ++i) {
+        Sha384Update(&sha, (byte*)test_sha[i].input,(word32)test_sha[i].inLen);
+        Sha384Final(&sha, hash);
+
+        if (memcmp(hash, test_sha[i].output, SHA384_DIGEST_SIZE) != 0)
+            return -10 - i;
+    }
+
+    return 0;
+}
+#endif
+
+#ifdef CYASSL_RIPEMD
+int ripemd_test(void)
+{
+    RipeMd  ripemd;
+    byte hash[RIPEMD_DIGEST_SIZE];
+
+    testVector a, b, c, d;
+    testVector test_ripemd[4];
+    int times = sizeof(test_ripemd) / sizeof(struct testVector), i;
+
+    a.input  = "abc";
+    a.output = "\x8e\xb2\x08\xf7\xe0\x5d\x98\x7a\x9b\x04\x4a\x8e\x98\xc6"
+               "\xb0\x87\xf1\x5a\x0b\xfc";
+    a.inLen  = strlen(a.input);
+    a.outLen = strlen(a.output);
+
+    b.input  = "message digest";
+    b.output = "\x5d\x06\x89\xef\x49\xd2\xfa\xe5\x72\xb8\x81\xb1\x23\xa8"
+               "\x5f\xfa\x21\x59\x5f\x36";
+    b.inLen  = strlen(b.input);
+    b.outLen = strlen(b.output);
+
+    c.input  = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"; 
+    c.output = "\x12\xa0\x53\x38\x4a\x9c\x0c\x88\xe4\x05\xa0\x6c\x27\xdc"
+               "\xf4\x9a\xda\x62\xeb\x2b";
+    c.inLen  = strlen(c.input);
+    c.outLen = strlen(c.output);
+
+    d.input  = "12345678901234567890123456789012345678901234567890123456"
+               "789012345678901234567890";
+    d.output = "\x9b\x75\x2e\x45\x57\x3d\x4b\x39\xf4\xdb\xd3\x32\x3c\xab"
+               "\x82\xbf\x63\x32\x6b\xfb"; 
+    d.inLen  = strlen(d.input);
+    d.outLen = strlen(d.output);
+
+    test_ripemd[0] = a;
+    test_ripemd[1] = b;
+    test_ripemd[2] = c;
+    test_ripemd[3] = d;
+
+    InitRipeMd(&ripemd);
+
+    for (i = 0; i < times; ++i) {
+        RipeMdUpdate(&ripemd, (byte*)test_ripemd[i].input,
+                     (word32)test_ripemd[i].inLen);
+        RipeMdFinal(&ripemd, hash);
+
+        if (memcmp(hash, test_ripemd[i].output, RIPEMD_DIGEST_SIZE) != 0)
+            return -10 - i;
+    }
+
+    return 0;
+}
+#endif /* CYASSL_RIPEMD */
+
+#ifndef NO_HMAC
+int hmac_test(void)
+{
+    Hmac hmac;
+    byte hash[MD5_DIGEST_SIZE];
+
+    const char* keys[]=
+    {
+        "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b",
+        "Jefe",
+        "\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA"
+    };
+
+    testVector a, b, c;
+    testVector test_hmac[3];
+
+    int times = sizeof(test_hmac) / sizeof(testVector), i;
+
+    a.input  = "Hi There";
+    a.output = "\x92\x94\x72\x7a\x36\x38\xbb\x1c\x13\xf4\x8e\xf8\x15\x8b\xfc"
+               "\x9d";
+    a.inLen  = strlen(a.input);
+    a.outLen = strlen(a.output);
+
+    b.input  = "what do ya want for nothing?";
+    b.output = "\x75\x0c\x78\x3e\x6a\xb0\xb5\x03\xea\xa8\x6e\x31\x0a\x5d\xb7"
+               "\x38";
+    b.inLen  = strlen(b.input);
+    b.outLen = strlen(b.output);
+
+    c.input  = "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD"
+               "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD"
+               "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD"
+               "\xDD\xDD\xDD\xDD\xDD\xDD";
+    c.output = "\x56\xbe\x34\x52\x1d\x14\x4c\x88\xdb\xb8\xc7\x33\xf0\xe8\xb3"
+               "\xf6";
+    c.inLen  = strlen(c.input);
+    c.outLen = strlen(c.output);
+
+    test_hmac[0] = a;
+    test_hmac[1] = b;
+    test_hmac[2] = c;
+
+    for (i = 0; i < times; ++i) {
+        HmacSetKey(&hmac, MD5, (byte*)keys[i], (word32)strlen(keys[i]));
+        HmacUpdate(&hmac, (byte*)test_hmac[i].input,
+                   (word32)test_hmac[i].inLen);
+        HmacFinal(&hmac, hash);
+
+        if (memcmp(hash, test_hmac[i].output, MD5_DIGEST_SIZE) != 0)
+            return -20 - i;
+    }
+
+    return 0;
+}
+#endif
+
diff --git a/FreeRTOS-Plus/CyaSSL/tests/include.am b/FreeRTOS-Plus/CyaSSL/tests/include.am
new file mode 100644
index 000000000..812b593a2
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/tests/include.am
@@ -0,0 +1,16 @@
+# vim:ft=automake
+# included from Top Level Makefile.am
+# All paths should be given relative to the root
+
+
+check_PROGRAMS += tests/unit
+noinst_PROGRAMS += tests/unit
+tests_unit_SOURCES = \
+			      tests/unit.c \
+			      tests/api.c \
+			      tests/suites.c \
+                  tests/hash.c
+tests_unit_CFLAGS       = $(AM_CFLAGS) $(PTHREAD_CFLAGS)
+tests_unit_LDADD        = src/libcyassl.la  $(PTHREAD_LIBS)
+tests_unit_DEPENDENCIES = src/libcyassl.la
+EXTRA_DIST+=tests/unit.h
diff --git a/FreeRTOS-Plus/CyaSSL/tests/suites.c b/FreeRTOS-Plus/CyaSSL/tests/suites.c
new file mode 100644
index 000000000..322a39ae4
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/tests/suites.c
@@ -0,0 +1 @@
+/* suites.c cipher suite unit tests */
diff --git a/FreeRTOS-Plus/CyaSSL/tests/unit.c b/FreeRTOS-Plus/CyaSSL/tests/unit.c
new file mode 100644
index 000000000..0d81f113d
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/tests/unit.c
@@ -0,0 +1,16 @@
+/* unit.c unit tests driver */
+#include 
+#include "unit.h"
+
+int main(int argc, char** argv)
+{
+    printf("hello unit tests\n");
+
+    if (ApiTest() != 0)
+        printf("api test failed\n");
+
+    if (HashTest() != 0)
+        printf("hash test failed\n");
+
+    return 0;
+}
diff --git a/FreeRTOS-Plus/CyaSSL/tests/unit.h b/FreeRTOS-Plus/CyaSSL/tests/unit.h
new file mode 100644
index 000000000..36e1ba3a0
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/tests/unit.h
@@ -0,0 +1,6 @@
+/* unit.h unit tests driver */
+
+int ApiTest(void);
+int SuiteTest(void);
+int HashTest(void);
+
diff --git a/FreeRTOS-Plus/CyaSSL/testsuite/include.am b/FreeRTOS-Plus/CyaSSL/testsuite/include.am
new file mode 100644
index 000000000..1772ac124
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/testsuite/include.am
@@ -0,0 +1,22 @@
+# vim:ft=automake
+# included from Top Level Makefile.am
+# All paths should be given relative to the root
+
+
+check_PROGRAMS += testsuite/testsuite
+noinst_PROGRAMS += testsuite/testsuite
+testsuite_testsuite_SOURCES = \
+			      ctaocrypt/test/test.c \
+			      examples/client/client.c \
+			      examples/echoclient/echoclient.c \
+			      examples/echoserver/echoserver.c \
+			      examples/server/server.c \
+			      testsuite/testsuite.c
+testsuite_testsuite_CFLAGS       = -DNO_MAIN_DRIVER $(AM_CFLAGS) $(PTHREAD_CFLAGS)
+testsuite_testsuite_LDADD        = src/libcyassl.la $(PTHREAD_LIBS)
+testsuite_testsuite_DEPENDENCIES = src/libcyassl.la
+EXTRA_DIST += testsuite/testsuite.sln
+EXTRA_DIST += testsuite/testsuite-ntru.vcproj
+EXTRA_DIST += testsuite/testsuite.vcproj
+EXTRA_DIST += input
+EXTRA_DIST += quit
diff --git a/FreeRTOS-Plus/CyaSSL/testsuite/testsuite-ntru.vcproj b/FreeRTOS-Plus/CyaSSL/testsuite/testsuite-ntru.vcproj
new file mode 100644
index 000000000..6ed108a22
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/testsuite/testsuite-ntru.vcproj
@@ -0,0 +1,219 @@
+
+
+	
+		
+	
+	
+	
+	
+		
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+		
+		
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+		
+	
+	
+	
+	
+		
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+		
+		
+		
+		
+		
+	
+	
+	
+
diff --git a/FreeRTOS-Plus/CyaSSL/testsuite/testsuite.c b/FreeRTOS-Plus/CyaSSL/testsuite/testsuite.c
new file mode 100644
index 000000000..0a64ee378
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/testsuite/testsuite.c
@@ -0,0 +1,233 @@
+/* testsuite.c
+ *
+ * Copyright (C) 2006-2012 Sawtooth Consulting Ltd.
+ *
+ * This file is part of CyaSSL.
+ *
+ * CyaSSL is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * CyaSSL is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifdef HAVE_CONFIG_H
+    #include 
+#endif
+
+#include 
+#include 
+#include 
+
+#ifdef SINGLE_THREADED
+    #error testsuite needs threads to run, please run ctaocrypt/test, \
+           and the examples/ individually
+#endif
+
+void wait_tcp_ready(func_args*);
+void ctaocrypt_test(void*);
+
+void client_test(void*);
+void echoclient_test(void*);
+
+THREAD_RETURN CYASSL_THREAD server_test(void*);
+THREAD_RETURN CYASSL_THREAD echoserver_test(void*);
+
+void file_test(char* file, byte* hash);
+
+enum {
+    NUMARGS = 3
+};
+
+
+int main(int argc, char** argv)
+{
+    func_args args;
+    func_args server_args;
+
+    tcp_ready ready;
+    THREAD_TYPE serverThread;
+
+    StartTCP();
+
+    args.argc = server_args.argc = argc;
+    args.argv = server_args.argv = argv;
+
+    CyaSSL_Init();
+#ifdef DEBUG_CYASSL
+    CyaSSL_Debugging_ON();
+#endif
+
+    if (CurrentDir("testsuite"))
+        ChangeDirBack(1);
+    else if (CurrentDir("build"))  /* Xcode->Preferences->Locations->Build */
+        ChangeDirBack(2);          /* Location "Place build product in locations
+                                      specified by targets", uses build/Debug */
+    /* CTaoCrypt test */
+    ctaocrypt_test(&args);
+    if (args.return_code != 0) return args.return_code;
+ 
+    /* Simple CyaSSL client server test */
+    InitTcpReady(&ready);
+    server_args.signal = &ready;
+    start_thread(server_test, &server_args, &serverThread);
+    wait_tcp_ready(&server_args);
+
+    client_test(&args);
+    if (args.return_code != 0) return args.return_code;
+    join_thread(serverThread);
+    if (server_args.return_code != 0) return server_args.return_code;
+
+    /* Echo input yaSSL client server test */
+    start_thread(echoserver_test, &server_args, &serverThread);
+    wait_tcp_ready(&server_args);
+    {
+        func_args echo_args;
+        char* myArgv[NUMARGS];
+
+        char argc0[32];
+        char argc1[32];
+        char argc2[32];
+
+        myArgv[0] = argc0;
+        myArgv[1] = argc1;
+        myArgv[2] = argc2;
+
+        echo_args.argc = NUMARGS;
+        echo_args.argv = myArgv;
+   
+        strcpy(echo_args.argv[0], "echoclient");
+        strcpy(echo_args.argv[1], "input");
+        strcpy(echo_args.argv[2], "output");
+        remove("output");
+
+        /* make sure OK */
+        echoclient_test(&echo_args);
+        if (echo_args.return_code != 0) return echo_args.return_code;  
+
+#ifdef CYASSL_DTLS
+        wait_tcp_ready(&server_args);
+#endif
+        /* send quit to echoserver */
+        echo_args.argc = 2;
+        strcpy(echo_args.argv[1], "quit");
+
+        echoclient_test(&echo_args);
+        if (echo_args.return_code != 0) return echo_args.return_code;
+        join_thread(serverThread);
+        if (server_args.return_code != 0) return server_args.return_code;
+    }
+
+    /* validate output equals input */
+    {
+        byte input[MD5_DIGEST_SIZE];
+        byte output[MD5_DIGEST_SIZE];
+
+        file_test("input",  input);
+        file_test("output", output);
+        if (memcmp(input, output, sizeof(input)) != 0)
+            return EXIT_FAILURE;
+    }
+
+    CyaSSL_Cleanup();
+    FreeTcpReady(&ready);
+
+    printf("\nAll tests passed!\n");
+    return EXIT_SUCCESS;
+}
+
+
+
+void wait_tcp_ready(func_args* args)
+{
+#ifdef _POSIX_THREADS
+    pthread_mutex_lock(&args->signal->mutex);
+    
+    if (!args->signal->ready)
+        pthread_cond_wait(&args->signal->cond, &args->signal->mutex);
+    args->signal->ready = 0; /* reset */
+
+    pthread_mutex_unlock(&args->signal->mutex);
+#endif
+}
+
+
+void start_thread(THREAD_FUNC fun, func_args* args, THREAD_TYPE* thread)
+{
+#ifdef _POSIX_THREADS
+    pthread_create(thread, 0, fun, args);
+    return;
+#else
+    *thread = (THREAD_TYPE)_beginthreadex(0, 0, fun, args, 0, 0);
+#endif
+}
+
+
+void join_thread(THREAD_TYPE thread)
+{
+#ifdef _POSIX_THREADS
+    pthread_join(thread, 0);
+#else
+    int res = WaitForSingleObject(thread, INFINITE);
+    assert(res == WAIT_OBJECT_0);
+    res = CloseHandle(thread);
+    assert(res);
+#endif
+}
+
+
+void InitTcpReady(tcp_ready* ready)
+{
+    ready->ready = 0;
+#ifdef _POSIX_THREADS
+      pthread_mutex_init(&ready->mutex, 0);
+      pthread_cond_init(&ready->cond, 0);
+#endif
+}
+
+
+void FreeTcpReady(tcp_ready* ready)
+{
+#ifdef _POSIX_THREADS
+    pthread_mutex_destroy(&ready->mutex);
+    pthread_cond_destroy(&ready->cond);
+#endif
+}
+
+
+void file_test(char* file, byte* check)
+{
+    FILE* f;
+    int   i = 0, j;
+    Md5   md5;
+    byte  buf[1024];
+    byte  md5sum[MD5_DIGEST_SIZE];
+   
+    InitMd5(&md5); 
+    if( !( f = fopen( file, "rb" ) )) {
+        printf("Can't open %s\n", file);
+        return;
+    }
+    while( ( i = (int)fread(buf, 1, sizeof(buf), f )) > 0 )
+        Md5Update(&md5, buf, i);
+    
+    Md5Final(&md5, md5sum);
+    memcpy(check, md5sum, sizeof(md5sum));
+
+    for(j = 0; j < MD5_DIGEST_SIZE; ++j ) 
+        printf( "%02x", md5sum[j] );
+   
+    printf("  %s\n", file);
+
+    fclose(f);
+}
+
+
diff --git a/FreeRTOS-Plus/CyaSSL/testsuite/testsuite.sln b/FreeRTOS-Plus/CyaSSL/testsuite/testsuite.sln
new file mode 100644
index 000000000..b89dcc1f4
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/testsuite/testsuite.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual C++ Express 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testsuite", "testsuite.vcproj", "{9D4D8446-CE91-4F7A-AFF2-90D0B5DCD717}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{9D4D8446-CE91-4F7A-AFF2-90D0B5DCD717}.Debug|Win32.ActiveCfg = Debug|Win32
+		{9D4D8446-CE91-4F7A-AFF2-90D0B5DCD717}.Debug|Win32.Build.0 = Debug|Win32
+		{9D4D8446-CE91-4F7A-AFF2-90D0B5DCD717}.Release|Win32.ActiveCfg = Release|Win32
+		{9D4D8446-CE91-4F7A-AFF2-90D0B5DCD717}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/FreeRTOS-Plus/CyaSSL/testsuite/testsuite.vcproj b/FreeRTOS-Plus/CyaSSL/testsuite/testsuite.vcproj
new file mode 100644
index 000000000..a569b1315
--- /dev/null
+++ b/FreeRTOS-Plus/CyaSSL/testsuite/testsuite.vcproj
@@ -0,0 +1,217 @@
+
+
+	
+		
+	
+	
+	
+	
+		
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+		
+		
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+		
+	
+	
+	
+	
+		
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+		
+		
+		
+		
+		
+	
+	
+	
+
diff --git a/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/CLI-commands.c b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/CLI-commands.c
new file mode 100644
index 000000000..21025e590
--- /dev/null
+++ b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/CLI-commands.c
@@ -0,0 +1,396 @@
+/*
+    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.
+
+
+    ***************************************************************************
+     *                                                                       *
+     *    FreeRTOS tutorial books are available in pdf and paperback.        *
+     *    Complete, revised, and edited pdf reference manuals are also       *
+     *    available.                                                         *
+     *                                                                       *
+     *    Purchasing FreeRTOS documentation will not only help you, by       *
+     *    ensuring you get running as quickly as possible and with an        *
+     *    in-depth knowledge of how to use FreeRTOS, it will also help       *
+     *    the FreeRTOS project to continue with its mission of providing     *
+     *    professional grade, cross platform, de facto standard solutions    *
+     *    for microcontrollers - completely free of charge!                  *
+     *                                                                       *
+     *    >>> See http://www.FreeRTOS.org/Documentation for details. <<<     *
+     *                                                                       *
+     *    Thank you for using FreeRTOS, and thank you for your support!      *
+     *                                                                       *
+    ***************************************************************************
+
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    >>>NOTE<<< The modification to the GPL is included to allow you to
+    distribute a combined work that includes FreeRTOS without being obliged to
+    provide the source code for proprietary components outside of the FreeRTOS
+    kernel.  FreeRTOS is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+    
+    ***************************************************************************
+     *                                                                       *
+     *    Having a problem?  Start by reading the FAQ "My application does   *
+     *    not run, what could be wrong?                                      *
+     *                                                                       *
+     *    http://www.FreeRTOS.org/FAQHelp.html                               *
+     *                                                                       *
+    ***************************************************************************
+
+    
+    http://www.FreeRTOS.org - Documentation, training, latest information, 
+    license and contact details.
+    
+    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
+    including FreeRTOS+Trace - an indispensable productivity tool.
+
+    Real Time Engineers ltd license FreeRTOS to High Integrity Systems, who sell 
+    the code with commercial support, indemnification, and middleware, under 
+    the OpenRTOS brand: http://www.OpenRTOS.com.  High Integrity Systems also
+    provide a safety engineered and independently SIL3 certified version under 
+    the SafeRTOS brand: http://www.SafeRTOS.com.
+*/
+
+/* FreeRTOS includes. */
+#include "FreeRTOS.h"
+#include "task.h"
+
+/* FreeRTOS+CLI includes. */
+#include "FreeRTOS_CLI.h"
+
+/* FreeRTOS+Trace includes. */
+#include "trcUser.h"
+
+/*
+ * Defines a command that returns a table showing the state of each task at the
+ * time the command is called.
+ */
+static portBASE_TYPE prvTaskStatsCommand( int8_t *pcWriteBuffer, size_t xWriteBufferLen, const int8_t *pcCommandString );
+
+/*
+ * Defines a command that returns a table showing how much time each task has
+ * spent in the Running state.
+ */
+static portBASE_TYPE prvRunTimeStatsCommand( int8_t *pcWriteBuffer, size_t xWriteBufferLen, const int8_t *pcCommandString );
+
+/*
+ * Defines a command that expects exactly three parameters.  Each of the three
+ * parameter are echoed back one at a time.
+ */
+static portBASE_TYPE prvThreeParameterEchoCommand( int8_t *pcWriteBuffer, size_t xWriteBufferLen, const int8_t *pcCommandString );
+
+/*
+ * Defines a command that can take a variable number of parameters.  Each 
+ * parameter is echoes back one at a time.
+ */
+static portBASE_TYPE prvParameterEchoCommand( int8_t *pcWriteBuffer, size_t xWriteBufferLen, const int8_t *pcCommandString );
+
+/*
+ * Defines a command that starts/stops events being recorded for offline viewing 
+ * in FreeRTOS+Trace.
+ */
+static portBASE_TYPE prvStartStopTraceCommand( int8_t *pcWriteBuffer, size_t xWriteBufferLen, const int8_t *pcCommandString );
+
+/* Structure that defines the "run-time-stats" command line command. */
+static const CLI_Command_Definition_t xRunTimeStats =
+{
+	( const int8_t * const ) "run-time-stats", /* The command string to type. */
+	( const int8_t * const ) "run-time-stats: Displays a table showing how much processing time each FreeRTOS task has used\r\n",
+	prvRunTimeStatsCommand, /* The function to run. */
+	0 /* No parameters are expected. */
+};
+
+/* Structure that defines the "task-stats" command line command. */
+static const CLI_Command_Definition_t xTaskStats =
+{
+	( const int8_t * const ) "task-stats", /* The command string to type. */
+	( const int8_t * const ) "task-stats: Displays a table showing the state of each FreeRTOS task\r\n",
+	prvTaskStatsCommand, /* The function to run. */
+	0 /* No parameters are expected. */
+};
+
+/* Structure that defines the "echo_3_parameters" command line command.  This 
+takes exactly three parameters that the command simply echos back one at a 
+time. */
+static const CLI_Command_Definition_t xThreeParameterEcho =
+{
+	( const int8_t * const ) "echo_3_parameters",
+	( const int8_t * const ) "echo_3_parameters:    Expects three parameters, echos each in turn\r\n",
+	prvThreeParameterEchoCommand, /* The function to run. */
+	3 /* Three parameters are expected, which can take any value. */
+};
+
+/* Structure that defines the "echo_parameters" command line command.  This 
+takes a variable number of parameters that the command simply echos back one at 
+a time. */
+static const CLI_Command_Definition_t xParameterEcho =
+{
+	( const int8_t * const ) "echo_parameters",
+	( const int8_t * const ) "echo_parameters: <...> Take variable number of parameters, echos each in turn\r\n",
+	prvParameterEchoCommand, /* The function to run. */
+	-1 /* The user can enter any number of commands. */
+};
+
+/* Structure that defines the "trace" command line command.  This takes a single
+parameter, which can be either "start" or "stop". */
+static const CLI_Command_Definition_t xStartTrace =
+{
+	( const int8_t * const ) "trace",
+	( const int8_t * const ) "trace: [start | stop] Starts or stops a trace recording for viewing in FreeRTOS+Trace\r\n",
+	prvStartStopTraceCommand, /* The function to run. */
+	1 /* One parameter is expected.  Valid values are "start" and "stop". */
+};
+
+/*-----------------------------------------------------------*/
+
+void vRegisterCLICommands( void )
+{
+	/* Register all the command line commands defined immediately above. */
+	FreeRTOS_CLIRegisterCommand( &xTaskStats );
+	FreeRTOS_CLIRegisterCommand( &xRunTimeStats );
+	FreeRTOS_CLIRegisterCommand( &xThreeParameterEcho );
+	FreeRTOS_CLIRegisterCommand( &xParameterEcho );
+	FreeRTOS_CLIRegisterCommand( &xStartTrace );
+}
+/*-----------------------------------------------------------*/
+
+static portBASE_TYPE prvTaskStatsCommand( int8_t *pcWriteBuffer, size_t xWriteBufferLen, const int8_t *pcCommandString )
+{
+const int8_t *const pcHeader = ( int8_t * ) "Task          State  Priority  Stack	#\r\n************************************************\r\n";
+
+	/* Remove compile time warnings about unused parameters, and check the
+	write buffer is not NULL.  NOTE - for simplicity, this example assumes the 
+	write buffer length is adequate, so does not check for buffer overflows. */
+	( void ) pcCommandString;
+	( void ) xWriteBufferLen;
+	configASSERT( pcWriteBuffer );
+
+	/* Generate a table of task stats. */
+	strcpy( ( char * ) pcWriteBuffer, ( char * ) pcHeader );
+	vTaskList( pcWriteBuffer + strlen( ( char * ) pcHeader ) );
+
+	/* There is no more data to return after this single string, so return
+	pdFALSE. */
+	return pdFALSE;
+}
+/*-----------------------------------------------------------*/
+
+static portBASE_TYPE prvRunTimeStatsCommand( int8_t *pcWriteBuffer, size_t xWriteBufferLen, const int8_t *pcCommandString )
+{
+const int8_t * const pcHeader = ( int8_t * ) "Task            Abs Time      % Time\r\n****************************************\r\n";
+
+	/* Remove compile time warnings about unused parameters, and check the
+	write buffer is not NULL.  NOTE - for simplicity, this example assumes the 
+	write buffer length is adequate, so does not check for buffer overflows. */
+	( void ) pcCommandString;
+	( void ) xWriteBufferLen;
+	configASSERT( pcWriteBuffer );
+
+	/* Generate a table of task stats. */
+	strcpy( ( char * ) pcWriteBuffer, ( char * ) pcHeader );
+	vTaskGetRunTimeStats( pcWriteBuffer + strlen( ( char * ) pcHeader ) );
+
+	/* There is no more data to return after this single string, so return
+	pdFALSE. */
+	return pdFALSE;
+}
+/*-----------------------------------------------------------*/
+
+static portBASE_TYPE prvThreeParameterEchoCommand( int8_t *pcWriteBuffer, size_t xWriteBufferLen, const int8_t *pcCommandString )
+{
+int8_t *pcParameter;
+portBASE_TYPE lParameterStringLength, xReturn;
+static portBASE_TYPE lParameterNumber = 0;
+
+	/* Remove compile time warnings about unused parameters, and check the
+	write buffer is not NULL.  NOTE - for simplicity, this example assumes the 
+	write buffer length is adequate, so does not check for buffer overflows. */
+	( void ) pcCommandString;
+	( void ) xWriteBufferLen;
+	configASSERT( pcWriteBuffer );
+
+	if( lParameterNumber == 0 )
+	{
+		/* The first time the function is called after the command has been
+		entered just a header string is returned. */
+		sprintf( ( char * ) pcWriteBuffer, "The three parameters were:\r\n" );
+
+		/* Next time the function is called the first parameter will be echoed
+		back. */
+		lParameterNumber = 1L;
+
+		/* There is more data to be returned as no parameters have been echoed
+		back yet. */
+		xReturn = pdPASS;
+	}
+	else
+	{
+		/* Obtain the parameter string. */
+		pcParameter = ( int8_t * ) FreeRTOS_CLIGetParameter
+									( 
+										pcCommandString,		/* The command string itself. */
+										lParameterNumber,		/* Return the next parameter. */
+										&lParameterStringLength	/* Store the parameter string length. */
+									);
+
+		/* Sanity check something was returned. */
+		configASSERT( pcParameter );
+
+		/* Return the parameter string. */
+		memset( pcWriteBuffer, 0x00, xWriteBufferLen );
+		sprintf( ( char * ) pcWriteBuffer, "%d: ", lParameterNumber );
+		strncat( ( char * ) pcWriteBuffer, ( const char * ) pcParameter, lParameterStringLength );
+		strncat( ( char * ) pcWriteBuffer, "\r\n", strlen( "\r\n" ) );
+
+		/* If this is the last of the three parameters then there are no more
+		strings to return after this one. */
+		if( lParameterNumber == 3L )
+		{
+			/* If this is the last of the three parameters then there are no more
+			strings to return after this one. */
+			xReturn = pdFALSE;
+			lParameterNumber = 0L;
+		}
+		else
+		{
+			/* There are more parameters to return after this one. */
+			xReturn = pdTRUE;
+			lParameterNumber++;
+		}
+	}
+
+	return xReturn;
+}
+/*-----------------------------------------------------------*/
+
+static portBASE_TYPE prvParameterEchoCommand( int8_t *pcWriteBuffer, size_t xWriteBufferLen, const int8_t *pcCommandString )
+{
+int8_t *pcParameter;
+portBASE_TYPE lParameterStringLength, xReturn;
+static portBASE_TYPE lParameterNumber = 0;
+
+	/* Remove compile time warnings about unused parameters, and check the
+	write buffer is not NULL.  NOTE - for simplicity, this example assumes the 
+	write buffer length is adequate, so does not check for buffer overflows. */
+	( void ) pcCommandString;
+	( void ) xWriteBufferLen;
+	configASSERT( pcWriteBuffer );
+
+	if( lParameterNumber == 0 )
+	{
+		/* The first time the function is called after the command has been
+		entered just a header string is returned. */
+		sprintf( ( char * ) pcWriteBuffer, "The parameters were:\r\n" );
+
+		/* Next time the function is called the first parameter will be echoed
+		back. */
+		lParameterNumber = 1L;
+
+		/* There is more data to be returned as no parameters have been echoed
+		back yet. */
+		xReturn = pdPASS;
+	}
+	else
+	{
+		/* Obtain the parameter string. */
+		pcParameter = ( int8_t * ) FreeRTOS_CLIGetParameter
+									( 
+										pcCommandString,		/* The command string itself. */
+										lParameterNumber,		/* Return the next parameter. */
+										&lParameterStringLength	/* Store the parameter string length. */
+									);
+
+		if( pcParameter != NULL )
+		{
+			/* Return the parameter string. */
+			memset( pcWriteBuffer, 0x00, xWriteBufferLen );
+			sprintf( ( char * ) pcWriteBuffer, "%d: ", lParameterNumber );
+			strncat( ( char * ) pcWriteBuffer, ( const char * ) pcParameter, lParameterStringLength );
+			strncat( ( char * ) pcWriteBuffer, "\r\n", strlen( "\r\n" ) );
+
+			/* There might be more parameters to return after this one. */
+			xReturn = pdTRUE;
+			lParameterNumber++;
+		}
+		else
+		{
+			/* No more parameters were found.  Make sure the write buffer does
+			not contain a valid string. */
+			pcWriteBuffer[ 0 ] = 0x00;
+
+			/* No more data to return. */
+			xReturn = pdFALSE;
+
+			/* Start over the next time this command is executed. */
+			lParameterNumber = 0;
+		}
+	}
+
+	return xReturn;
+}
+/*-----------------------------------------------------------*/
+
+static portBASE_TYPE prvStartStopTraceCommand( int8_t *pcWriteBuffer, size_t xWriteBufferLen, const int8_t *pcCommandString )
+{
+int8_t *pcParameter;
+portBASE_TYPE lParameterStringLength;
+
+	/* Remove compile time warnings about unused parameters, and check the
+	write buffer is not NULL.  NOTE - for simplicity, this example assumes the 
+	write buffer length is adequate, so does not check for buffer overflows. */
+	( void ) pcCommandString;
+	( void ) xWriteBufferLen;
+	configASSERT( pcWriteBuffer );
+
+	/* Obtain the parameter string. */
+	pcParameter = ( int8_t * ) FreeRTOS_CLIGetParameter
+								( 
+									pcCommandString,		/* The command string itself. */
+									1,						/* Return the first parameter. */
+									&lParameterStringLength	/* Store the parameter string length. */
+								);
+
+	/* Sanity check something was returned. */
+	configASSERT( pcParameter );
+
+	/* There are only two valid parameter values. */
+	if( strncmp( ( const char * ) pcParameter, "start", strlen( "start" ) ) == 0 )
+	{
+		/* Start or restart the trace. */
+		vTraceStop();
+		vTraceClear();
+		vTraceStart();
+
+		sprintf( ( char * ) pcWriteBuffer, "Trace recording (re)started.\r\n" );
+	}
+	else if( strncmp( ( const char * ) pcParameter, "stop", strlen( "stop" ) ) == 0 )
+	{
+		/* End the trace, if one is running. */
+		vTraceStop();
+		sprintf( ( char * ) pcWriteBuffer, "Stopping trace recording.\r\n" );
+	}
+	else
+	{
+		sprintf( ( char * ) pcWriteBuffer, "Valid parameters are 'start' and 'stop'.\r\n" );
+	}
+
+	/* There is no more data to return after this single string, so return
+	pdFALSE. */
+	return pdFALSE;
+}
+/*-----------------------------------------------------------*/
+
+
diff --git a/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/FreeRTOSConfig.h b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/FreeRTOSConfig.h
new file mode 100644
index 000000000..92a64c417
--- /dev/null
+++ b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/FreeRTOSConfig.h
@@ -0,0 +1,155 @@
+/*
+    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.
+
+
+    ***************************************************************************
+     *                                                                       *
+     *    FreeRTOS tutorial books are available in pdf and paperback.        *
+     *    Complete, revised, and edited pdf reference manuals are also       *
+     *    available.                                                         *
+     *                                                                       *
+     *    Purchasing FreeRTOS documentation will not only help you, by       *
+     *    ensuring you get running as quickly as possible and with an        *
+     *    in-depth knowledge of how to use FreeRTOS, it will also help       *
+     *    the FreeRTOS project to continue with its mission of providing     *
+     *    professional grade, cross platform, de facto standard solutions    *
+     *    for microcontrollers - completely free of charge!                  *
+     *                                                                       *
+     *    >>> See http://www.FreeRTOS.org/Documentation for details. <<<     *
+     *                                                                       *
+     *    Thank you for using FreeRTOS, and thank you for your support!      *
+     *                                                                       *
+    ***************************************************************************
+
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    >>>NOTE<<< The modification to the GPL is included to allow you to
+    distribute a combined work that includes FreeRTOS without being obliged to
+    provide the source code for proprietary components outside of the FreeRTOS
+    kernel.  FreeRTOS is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+    
+    ***************************************************************************
+     *                                                                       *
+     *    Having a problem?  Start by reading the FAQ "My application does   *
+     *    not run, what could be wrong?                                      *
+     *                                                                       *
+     *    http://www.FreeRTOS.org/FAQHelp.html                               *
+     *                                                                       *
+    ***************************************************************************
+
+    
+    http://www.FreeRTOS.org - Documentation, training, latest information, 
+    license and contact details.
+    
+    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
+    including FreeRTOS+Trace - an indispensable productivity tool.
+
+    Real Time Engineers ltd license FreeRTOS to High Integrity Systems, who sell 
+    the code with commercial support, indemnification, and middleware, under 
+    the OpenRTOS brand: http://www.OpenRTOS.com.  High Integrity Systems also
+    provide a safety engineered and independently SIL3 certified version under 
+    the SafeRTOS brand: http://www.SafeRTOS.com.
+*/
+
+#ifndef FREERTOS_CONFIG_H
+#define FREERTOS_CONFIG_H
+
+/*-----------------------------------------------------------
+ * Application specific definitions.
+ *
+ * These definitions should be adjusted for your particular hardware and
+ * application requirements.
+ *
+ * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
+ * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
+ * http://www.freertos.org/a00110.html
+ *----------------------------------------------------------*/
+
+#define configUSE_PREEMPTION			1
+#define configUSE_IDLE_HOOK				1
+#define configUSE_TICK_HOOK				0
+#define configTICK_RATE_HZ				( 1000 ) /* In this non-real time simulated environment the tick frequency has to be at least a multiple of the Win32 tick frequency, and therefore very slow. */
+#define configMINIMAL_STACK_SIZE		( ( unsigned short ) 60 ) /* In this simulated case, the stack only has to hold one small structure as the real stack is part of the Win32 thread. */
+#define configTOTAL_HEAP_SIZE			( ( size_t ) 0 ) /* This parameter has no effect when heap_3.c is included in the project. */
+#define configMAX_TASK_NAME_LEN			( 7 )
+#define configUSE_TRACE_FACILITY		1
+#define configUSE_16_BIT_TICKS			0
+#define configIDLE_SHOULD_YIELD			1
+#define configUSE_CO_ROUTINES 			0
+#define configUSE_MUTEXES				1
+#define configCHECK_FOR_STACK_OVERFLOW	0 /* Not applicable to the Win32 port. */
+#define configUSE_RECURSIVE_MUTEXES		1
+#define configQUEUE_REGISTRY_SIZE		0
+#define configUSE_MALLOC_FAILED_HOOK	0
+#define configUSE_APPLICATION_TASK_TAG	0
+#define configUSE_COUNTING_SEMAPHORES	1
+#define configUSE_ALTERNATIVE_API		0
+
+#define configUSE_TIMERS				1
+#define configTIMER_TASK_PRIORITY		2
+#define configTIMER_QUEUE_LENGTH		20
+#define configTIMER_TASK_STACK_DEPTH	( configMINIMAL_STACK_SIZE * 2 )
+
+#define configMAX_PRIORITIES			( ( unsigned portBASE_TYPE ) 7 )
+#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
+
+
+/* Co-routine definitions. */
+#define configUSE_CO_ROUTINES 			0
+#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
+
+/* Set the following definitions to 1 to include the API function, or zero
+to exclude the API function. */
+
+#define INCLUDE_vTaskPrioritySet			1
+#define INCLUDE_uxTaskPriorityGet			1
+#define INCLUDE_vTaskDelete					1
+#define INCLUDE_vTaskCleanUpResources		0
+#define INCLUDE_vTaskSuspend				1
+#define INCLUDE_vTaskDelayUntil				1
+#define INCLUDE_vTaskDelay					1
+#define INCLUDE_uxTaskGetStackHighWaterMark	1
+#define INCLUDE_xTaskGetSchedulerState		1
+
+/* Run time stats gathering definitions. */
+unsigned long ulGetRunTimeCounterValue( void );
+void vConfigureTimerForRunTimeStats( void );
+#define configGENERATE_RUN_TIME_STATS	1
+#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() vConfigureTimerForRunTimeStats()
+#define portGET_RUN_TIME_COUNTER_VALUE() ulGetRunTimeCounterValue()
+
+extern void vAssertCalled( void );
+#define configASSERT( x ) if( ( x ) == 0 ) vAssertCalled()
+
+/* The UDP port to use for incoming command inputs.  The outgoing port is
+set to ( configUDP_CLI_PORT_NUMBER + 1 ). */
+#define configUDP_CLI_PORT_NUMBER	5001
+
+/* The size of the global output buffer that is available for use when there
+are multiple command interpreters running at once (for example, one on a UART
+and one on TCP/IP).  This is done to prevent an output buffer being defined by
+each implementation - which would waste RAM.  In this case, there is only one
+command interpreter running, and it has its own local output buffer, so the
+global buffer is just set to be one byte long as it is not used and should not
+take up unnecessary RAM. */
+#define configCOMMAND_INT_MAX_OUTPUT_SIZE 1
+
+
+/* Include the FreeRTOS+Trace FreeRTOS trace macro definitions. */
+#include "trcHooks.h"
+
+
+#endif /* FREERTOS_CONFIG_H */
diff --git a/Demo/WIN32-MSVC-lwIP/WIN32.sln b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/FreeRTOS_Plus_CLI_with_Trace.sln
similarity index 100%
rename from Demo/WIN32-MSVC-lwIP/WIN32.sln
rename to FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/FreeRTOS_Plus_CLI_with_Trace.sln
diff --git a/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/FreeRTOS_Plus_CLI_with_Trace.suo b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/FreeRTOS_Plus_CLI_with_Trace.suo
new file mode 100644
index 0000000000000000000000000000000000000000..63f5b08c21b5af0ecb5ec2a037870559877f2aa9
GIT binary patch
literal 133120
zcmeHQ2YeL8_rIVZAYwVT?{@AkB*O2%`Mk{Dwm0R?oA=(ld9(iAW4FzH
zw8>{K%hAJinCqW?^;~sK*AK&aocw)^%T){KbpikE+qX|%p28D6giHT_90WD67kNA!
zP1XcZ8^HEH0>E~y2S78s>I04hGyoh0Xb3nOa4g_>z;S>R04D+(0Zs;-1ZWI61#l`L
z32++V48ZAt7Jzs_Q$QO)b3j`_OF%2YnSj=SvjC}p1i;yVL_ilndq4`{TtE*%J3uo)
zM?eR_C4iBD0zfZ7H$WdiGGHK}6Ce$c3Frzq4?sHZj`Vy$I-oD0Ki~pDKfnM$Prx9+
z#egipg@D0;A%JrLLjl78!vPloMgT?w+<@MIQa}#C1Gp7%HNXp)1-KdD1LOko0QrE+
z0U3ZoKoP(XC4aK7os78`G=_uS$x~Aiwt4F*YM?TW?2k~SkFqWW{eStj}XT7ythx#W;wM+;Z2xa08vX;&409G+$W
z;vviL0~Pqu(mvoXKTDs`$a9*vZB
zNFKoc-x)w2AipL1KY0Opi{u030qp;004}WMajs2YcnS6l1$pgq2cuqdR^jxIm7jFT`1MUWpU+`WU(tdzm`fv8LCjjIVyiY#B
zl>MJ6c>z=Q`9Xk8{WtqRuagH1)z7CQW&bCi;Jr(bk_YhoQluWhW%}`ME75lUO1trCq+1}CF
zdA_sbhxy9N@wEc6@q8p}(Tc*S*+R;V;WBJUc$KVpL&)x1Vp^kdo29;_jo8
zQghqqcFavq&S{^Notk}whD>5SykbCsx2&YRB-fuftf0IiyD-aNkyB8TsAVC~SGNCT
zNJ&ZI@Pgu;k}>6p8QK2qAqA!7iJ1k(#o40@ecF%SWBtD3@`6zXg$4d`iJ8o4Ij(qp
zZTo8{zB0a-ndz9|nFiL>mJNU89hW#i&O9R|(4V;>_u22L7`S53xTp
zA5PEnK66f9!(#~Wl%gjQCpjN^un*i%1vlS69rzm~CC^gD&+(@=Gl7E~cN9j=Jp3^a
z!!aKCfju9;oOnOq2mjUZ5;qTCb2=K}0rCs5c*vQ|QHA!!cwq43JO|fGa4#A8O9Z&_#S%!4MfhI~>DUcPD?`g?CBD}&i2f*l
zvG0}QYy46%FoZi=f&SQ)I0~rJ-%)s0%0E{6?*pvGC`A@V`gmKjQw+F<5@lihls=o^3@re7Ig0C6MMrwZhp^;6EP7DXZ{s
zYgAYWoVloLp(|834Z4B34D=?b!mITp=1q(g)PTe_A95>th8wvhpA_Sh&dRknFPCS@6298lRegKHUKtYzJt@DUf)3
zgIn>e1A2V|o=5@j>4>v5-07uV%h39Kd)(;+p3ocD(zSb&g6Q9V{4rBvVAMFATlizT}FGH^NXc|`0I1^ssg{-5^u{}NDF1?XRV
z*<8|0;G|3vjuR%K{Ga1{)OS?Ne+C-!d(oh%|IqlQE}EhB(QIG{J`$rSznT9eqDPI<
z#twt-25H>iOm)=u>}gZzt$enwX1A$I+U%-XcdGJ>i5QK28hugg_rW3}+MB&65j>@r
zR@0RJdf}-Yl-lTd)KsfBF9z?ABp;MiCZKP#m-j|LZ>RO=1mu|Ksp$8~_{%^)7aSlN
z&nDnk64E5}`_A~^NBc|1(^;+-NA68)d(+zUAKkL#-Qyn|esq6V!`GV>?y1*&(5!ve
z?Rt0Jg5E#~dG(tUT5foxdGqsDef8O-Ge;FM8#peEhrKLLj2Pyqn~`$y5XrmXa&Q+&;0+)OMi0xvCEsd9(eueeJ{%E)-=@n^0`dpEDbnG
zSK?@l@{NHcmZ`~}WJR?3MMGUJ(C(BHM}vd02aiUrQ8HwECueOD=|CyyuN|$b}eY{#*a@=;~J@WWOtsa`=tvg(w$5k!uwB28`
zp{a!ZPS8=hD_;eDC~`ACG#rgNP#c63Fq~(h0n$-iRw>2VL{vta{Ki`38+0(xF*Mve+bzVV|m}H{8kl64C1+{lRS+Go_jp!<|o!{
z`*i!tiu{@DGxt(xGuH>t(VnCnqk`QSo!I;RTJ^@1f3uQdd^Q_mzd$O4@d2pnV&vEj
zvSqcGf`z1NZF-4k&)6&9-qomYt=oogY1jSX+IIQp_&!?Wc17AtVm{?Q5C}C!G@(#(
z?C}dqB2AHw@=y)NbEK+e?b4o@)?>xr|C#xH&Rc)>-cHfRT7!cA#8P_MES3MxHEJr`!|P{j=`${tNESS$_NJKX;C7{G=pI`vtp_
zutS+;fvzrhR!K#f*XQ;Z6u}sn=$$xmLPk>W
zHJ-$JrEccMmn-lUA0&K|YW<@x$Q`jG_0?6EmQHK+%%GL0+K{TC4TFI?=l|@^5
zgq*rDrV6QjEV}7==w<0hvyemPrclcvOYVWT#L}=-s_z8L7arF|Dg+p+`vmfzE095-
z2CT01xqrBdK_ee1$k-}Ks!mX!R=(gkHIQY+;Q
z7KVBvWsOIV$eD5VX=jW&?TQ;F9P#NpOHysBlFtjaFQgN)$3;4i?u{>!678&dG06{T
z|2aDShQkpkyBT9Ydsz->AV;J968(%abs_pdDJWj(w1(^(XbmJilLRSiOC8rdM003j
zEebmzD#Yf1{V9(8iy9)y!{(8oOO0@4n{J>Pgj&BG+$j&ZtUCTMZI(Xh^?(bUf1oNY
zNi*PPh#&E|ezkrtUE>MmpcGnDeV`y~E<$`nzs&hx;^sUj)9_D=yJr1c>LRp*lxpq9
zRxLxj2nrS!uFzj4{?@pC3P2TqQ#^aRJ^@3XNP9H(T_LGlsCEAz%64_`KWW*s*F4+d
z_I;N&>@4jY#32vbpFlcNexZb7?v7@DmhbxZsy=6oIr*VRJG!Sq|$wvvv6xOWye6_p9_67COcUQ+dgNE&A}r`X)O5%
zQ<_%I{KH%pv*b25wR!p1LnkkNu>O0!M|@Vfl{RKsDKfRQKipQ$`DgDoB%VGXUqSz+
zXk-$AU!(rT4ca_1@Y|KQy?e{^^F76P-$!euEQL&Q3C9C9nt!1dP__}XN*uwg`bPfQ
z>n=Ru?<2=7Sk`r3+LsH<$Sq_U_U#*rGV>kIb8$40{7BgK%C$0v`$zt3d@XYRcRp&J
zGi)5GvXGNvO){nJP0R>~!_9lZZz@gX_-XN@?8@aW*FIJ>LNS2XiKE$}jJ
zi#!7Bo0zG
z$WCY#6|eultD5_-nSVN&M@nC~tovi*%4c_*`(x9ikG;B{oq1%uS5ub5SAX!-aTWyH
zeyA`v4OQ_LDh#L~had32i$f)AK3=3HhsU+st?-||i#!H_F8t{CMt*mHoClg#XZ9WexQvVg7vffAi~b|5lMd8oy>Cw@KWjCFk)=Z^n&>y2#+
z+Cii=4+R=IIO*i~R7?L0RJ5i2P-=Yk)#QpV4OdKecyUGb*3nh1Md5
z)(utkwgvx+@`pBb((dDR?VZ2ijzu?@Uh%lkHDukgXRbKLrXHxT80G`v8FM|jOL)JS
zDK$|3z??R8T{mh|{I!>yS!%x_pFWuYvz1ndPoV#pu>yGuQ{#hwm
z;|CG`dq6M$fwf;m(to{>BWOsYy^kfIQfufllb6*RzGKH#9Zq_nuI8;&6(tuHCHa?O
ze;liMW_SX;vpA|q->gosJ!W7{fg2h>eK=H}jHLXMI@oW|-*Z(1|J%#1zwOp5b~SzU
zhgZ)CYV~mAFKrU!c;Sv{#vgk0tkXa0gkPU#4w(hu*Ypo*O%C~>=>}zrh5BzN{InH@
zJ0yP2W@-aoxQF$71Cg%Q&zesGA
zIvemGzzo0*fExif0r<|%NGU?yqW`{CPuZ@#PjmGh`uSaY+6NYsd-d}Vkg^RH0OkSa
z1Nh#9dis!_E=IZpuvGuO4C!+HdtpPf%HxNI^TT<=PzKCpd0vmINtzxU%&q=(q90Z0CjNx
zL!?^(eD7nVUjw!RKGm;%hV*m&{7a-?>F0d@Tb%z4_#W_se*H(JKk4Uuh7JU~@cTEw
z@A~zfNdMH&`OJ}c=5PGo1K6uyr=U*3ecwK(5jqQ;$~=P>Xn)2hwDnzM(!02OyEA;1
z?mlHc-{2vGvfM+;3bG5`X>i}I^zFau$txdPz}Hc5zOYudEV&^(CV&2YOeXZp9Uag*|wR
z#T&>-W?4yIS$0u;pMpYPxqCpC_>$qUoL*Y$u56c>;D9emq9zR$;bvRF)gk4eVwLJwn?IuZWVXLr
z)k{qb_`27PE#El3f47nOxg&45HY>}C|D+)I;SS0FTHztqLAYn-y%9KhM*rc2zk_@!
zL`wXp;ht=U5RV01o{nF&NVqth@OKoCh5RqePklJ~2ORp8qwTqWrXV!}0>`lEV%K=nCpZ7{YIS!w@ezm3I@O=
z;ek~)6I?U}b53LNXS@@r=Pdo$sO5)!$Vn^<>Ro^AGZr=K`C;GknT`gz+lgz3JdC2t_
zv}v(dgnZC+BOB+B>A#)vw==yNd@AwF9vS>Z@Rb}~TBBcf#-AGe0n-)YKOMi@094DL
zhiC8Czu}BO{0JOP`HO*@GA$1${Ir#ZJ23ufYxECBAnqK(+lR;n{Tn9v49XEd*y1vryUEOos5kS6O{!l%GBos`#(M
zvk7F~IGoELUIIh;HN273|MkF2U5$q`{_qkQ>;G(g=Ny1)`CrGgs`__|g8W4Zja)(%
z|4Vpw0Dy;c`NQ{sXzKqH;HAFJ<1t&8nmvs7Rn*%Po|+Y)e1d)+ExGkalmaOH_6b2iyk;Bsg4)xJnOpm@^U5F2
zt$JL|ME(u+ms2$yjD5(1ABu+G>RNUE%f>jB
z3N#Z?ApfltuSZS(<5kdyvOj_Ul*RIXVEbF`R|Y+J&MLd2K@6RXtk2zN#v^f{~P2TwIS;;{zH?@Q}7
z)l)>S6jKY08q!UKYJ
zOGXh7hGJfN%JD!>szTGUz1Va?Tl`(_q_;O6cjfjc?b?g$S16e!;-AVeYAXe(yclNu)J}sr~J-INlMa;ZWk)fDYh*f(>F6j4XE-1F0EgaWc)StmVjp5EP
zF|))^uADvlw<$9cu9=m!;`!$3of7Rz%u&+1qLD2uS9=C)*@{IBIc*y23VLVzLwE}y
z?Jo(Ys=%q^u?8xU`Zo4fm|P_XSQ==O0thqT!Bc>@SZ*gx}fz
z%o?JVPPP2snef+y|DAbZkk>V(+rqimK2fjb&h>j=?|O8z7jDx_!qUj&MqJ~;l>Mo@
zp2BA(&f0+k<(BB>*TC;M$v4m9J%%^!xY>n+7*gx}X3GfPLY*fbe6mnm
z5W!EB;g1p8U?3F3&w=M3WYm73SZat-#d#thUpL=RlxD&?r`nZ$(N2)Fp+zh^m}$u@ljd9*ABiLN1~!Rp59?wa4sG
zXO>&?QI{71LVNa^$6vGN7U(}2XiXPn^L_uG;!vORZWo%cb
zgt|Dd2dJ-KYl^fHpdsKy{o1iekJHaj&{Mw4RTPZ@tpQB{rvOd`!~;mGX8`!zZAg;<
z%>icuS^`=DcyFzqwn5rfKTkkPefb>yH=j$v`AIO`Oh?)t&;ig9&>6ruw|u56(r$q6
z`tNg*_5`E>dg<3PkoE@j(SM(hv@hTS{da$)0{{c{-DMMA9R?TIRGiT&iEY3~4rC6u_%r^C8UzDNk-jssi)DATX`kyhyE
zV~~#3&&MO3pr21dI$1xTg4AjJONH-MxP#+g8Xo8kKrxlZzhQWGw*FCP{8c~xGq01B
z@jH+I>G)PpfNJ@vd)^M<;avWzAOC5MouFZ7e0h5dLUoP-Rz7RQaiN`2O!^24TOB2r
ztC~_8R&TSnf{f(nfi;VEPTI$12}J(IY=qdSV@|{+h-SRVzzAsP7!VxqfOSthq_pT-
zWdWyo)ar>}6MkHl7FcO_reXieU#Fhcso%VAlgmCBJ@?gB_tW2o{nLD~3yAWEvS=F<
zcVbFf?=*TsSxU?zGg7Pgk|#)-vWq?yES;ERUZ%s>wJ+@CV>E%4QOGGjh)HSl+)E<*
zZmjVWg)k{1E&mQ_hpROyJqby~ZZ3e94!M?*d14(29+Im`a+HomOgO#G=^ShT^4bIv+2V4sLcMm&_>69AmpC!L6$f;L3lD+6cY
zt-Yo?xhLyQNYJHP1i4&IJrFwtZFDRbTQ3*&Bjk3@(+U~9xC{tc|Tn(#jhwNBE}L%6$?3_E)I%>^A-|Gl^SvbAgOj<=eR
ztua2E9=>2~(NU-T+3LZS9bRa&c(Lt*0?7}z%EKAIqyDY!PuL&dQmy|i
zJbN>dT)^-#e_C>c`Xy%ylt`HK_%amSEw2m3!cL>GW6{c*j-T>YcY_?`U^WZzT8
z&lz=9{Hf0CKeW9MrE{`gtgy-1xOj2m5zh@x50dS-Kd#0YwLV6qEKY&~HYqRx~-)VE0%XKGy-wU`~zdjG?eSrG`
z4*=!@9tQCFmykXPSO|DXzqT0Z62MaZ_v1*H10Dga1Uw3O48ZpZPvHC=z>|Qd08ay+
z0r1{xq|X89%TO`~d0ufWvTp
z0$?M~Hvu*SJ_PXHkC1)__yn*O@F`#$fcHK}`h|Y}71FN(-vGYVuYJ!HupRIt;3xjZ
zd%qz46|e*Fn||#Nq&oqB0(R-wb|d{8um`{x`+RpFQf?~bOn+7H|8gEstJ+`NDbhc`
z$zthb9X46SyBLFcIF+9si{TFPKjJOHL#p^6#fHVs-bm_yGw`eHACwkCA1r@&+>QkQM|gg@{z<3$=WcG{4z|C(^B<(Q>gThO&H+3JxI@2o7t*`+^Lvrr
z2e@DVJs0Ubz34wJ^|6p;coDx}0=x|1?^lt&26$cny&maXfVTnf0Nw@gx%ZH6(9b_c
z`d`3Cz$X3Lhe)>oKGJ`Gf^;k3Q~md6NIwUB0r*nC_BGOP0N?7r4@W+K!1;E-kAR=_
z>whEt6|h79{X5b>06X>HyO90`*scHGgLJQcUYp}TAn)1t);Gf`iV|=%#5EO7C|5;w
z3}u7~G{jn!7a69JN=w#&9xMNv(YAx<=QC!$+;-DxQrtD?8TKGKixvLE=D-*ms#y1}
zPHoSy{EPisXvwD@+x3eL@l8&A<uE=%T>zZ{UG-~sAngw5
zq5tlQG)+HGN1CCZ_d$9d;C%h}1xWh=1_K5F1_A~Fm>4c(lLMu
zfN_BF0Qt^MIG+r-5-dRPKra7^V?K1z1%L+u3jq%SNVAKPE&(hBJgi^)
zS7i7Q$%K>q*2uZSoP-V?5Dxn$+O
z2~)cKykyy#-Dm?1#>Uam?K1n<(q2vr&{iFvu~0A*sLHLMz}r^)fB4ZN7a8R~<~8Lr
zLmpcTe6G
zrvOd`oTgvncj9s0O#j^)X$wG0Kr6tR06udT(jq`xz}bKlKqBBAKoTGsz~@qtwgXHA
zbOUq*bOLk+bOCe)@VV|tdjK*3JppNeUVwA}@AuZzN~Grl`T{Nh^aJz<@R@-~2LUnx
z7Xk(YvH-j{6zMR)aKJ_SwGl`!0k{FVfJ*@$z-54J0N?W>%>nrI-+6jkfb?>}Xh5NU
ztr%$upcHTgpbStB@B=CU;{js;V*%p;{Qd+zorH8U;7a|spuWNS8u#j+x%0TH({qk~
z4uX$(w0*#Z{=`1dIeW4Y=_SH7amLPfZjGIIwUx~5r$Sm>2d*#$T#2*vLZdWxzagU&
zyV!FzaPUI*a>(7>Xi@s9$=DZ0^oVTSvr4VPr>z|Mum7qq)xguI8}Wg)aDL^M8g
z8#flT|8ee}@3h%jwl+OMTYT-+tduffCh`QWCfJRr$|FMi%e89%I`ydt|WKFeQ`Q&1A0oP;RQ2rca`^SjH-yzYWxzpv0;j_($gCT5q@
zs=hxAD9>FNTS`?HebtBFmXT`@xg8EgeukSOiIN&Ivv^&_(b+4&&F;&~M4Q$!hNEZ`|6KB4XnW{eiWQjeYAxLL3DKmwQBq+9FG%!vh;
zn~&Vji#Yeu*bOq!)$BaytzFVCq+a08-iD;8zR!pHlYtgaH4B39aXA`wxhmqijJ;1g
z(MRGlZO@Le+{=Bl8NZvMg;O7mT>=Oi4xdPB3L+gy{D@%y+b(@#QU
z2MpNw0UyeN`sxMQpH;?h`K;N0U2xXWJt?lmhAn%_hVII*u#W#$nbSN8gIPgj`(Ty_
ztfiAu0i!+9_gsuN7oe2)M9d*$8*K~;Ab2bd9uGM?H$%@Mg~LinH6{2f)N~4tRo2j1
zp`z(I*`GQn`oBnGM#dbEvtawWL4V2#e|rW0m!bI9Z~*h*h#U{JhyZ^F=lOTd{&qWF6ke=a^I{clQOEaQG3-13nz7t`^dw8I#W(i5M(hSE%6e12qkk4)pQlnr^y4jI*x0Sa!he3XnEk;E!r@I
z95Dl>I3|KomDUZ)B3!4(FBHTj|5fq*9|QY7+3lN`=ErqU!1rYDmZ>2lFN^?_P-bIq
zb#r~qj1hlLufK{#ehNLB8SAFEz4&JTHwvaKZk-pOu_L9|s-G;axhux{BSkpdo~l-U
zGq-;<^(Xm+VSf{AMy>TJ*P%)2z`Qao-}S2JhJH7_apCfz_icUh^vC-w!en|-KjAty
z&L~*FEOU?zUmg_!^x&*NDP5UY!Owf-(dOxS=dEkLtkLA-zv=k7-P%bJ(noEd%y$mL
z`jg|TRU0Jt?Rf8VNt@et{_3lYQ7^8#@W`8|+fbERHvJ&R^2?Qr;kmM5>GA0Cj@e^k
zUD0E;`
z&no)!f#Sc6p&+J)U;L`hUzZi_9aGt*>5LV%UVfjRIa2nJDcji%U()L5pJw|(FmDf>
zJx-hRMMkSnllx`9SGwu?S3enjs!d5YuN@nI;`f-4vn^x3CW%{DM(4ZkZ1s2HlSh1C
z1Lcpk{U!gij*65(E3w|xh@T>Am+~!paY>tVhh6qv=J|)!y0G4kcW1q77u7LvKGS(#
zB3AnO^<{Iv2@Lx1ssvoc&hqgFCv4{P+I$F6Vi&F8!SY?-7Ve!%$+uMw%rIsDIUH@fI1+_QQ~ZXD*oMgmTTa6_=WhKg9eO#5<$g?oD1edM@M##k6wQ3
z*8glisra&AzW@H0ADVDIM-c1La>rWYR2f&;q0+R2sXT{YgNpbcYW^;iAZwlMr=nh=
z8NnImh1>RcT_f+fHS^-9FMjaL=UT71Yv@~#H9@w_gb>gej1*^o6vvYP@QR2O^W?-J
z8Cc6dYu$dy3(5Dj?9lQ3B|lC0@PewepIKx7%JoR~=YHN}#pgrneV4Pa!KRbkZ!!LX
zwW=7iE!6uB|MH#q_sD)7hmIfcYtxTb-fn(B*70{ooRF$$r4yYXvY2<5AGr1lbX3ZB
z{rN(}7k7^wFz?r;DU&Z*{N*xj@M$dkpEXFTDB0
zyBkS<)=EbtJiDvoP#3CQqblhq^!PiD_IcKvSpvZWK=d|=H@9}aA7lS}#=MH4%lI2OgJ5MXHg
zvCy#P?4FPj>AA|>bDJ!BKytmnECpG{S=%w5oZ
zXPjWiiR|`}qs=|m{XeU#{Av;JICct~#emKaj(n)&#>q{K?(uk%1}#4xbZ4dxo|7`4
ziLw2^jPd>0>QBzfN6){_a~G1vI3sWNQOA9a#<0ki1HI0C>R9N*VYqpX|P1-y@z)b!J^t+2Vx8Hg(C(U88BgSm*x&si+Lp
zLn+*_z$ai#NQ4bQ_y+}B?q}6N{|g-70{e>Bb?uN&>sCE`)6Jb8A92+~j~$aiOH5!X
z_w8dGQF_HUj5&UBP12t+f6V^P&21=g?r66AjCB8v_pY3g_2x$-PQ8}Vp{(WS^CIfI
zll`T$!u}7}m@wef@wf*AA&|0RQ0}q;aU=
z4;O(6_~Wj|ccubV@jnRMzY{qQ75w2=Koh^Yb;Vc1|6gpve=z$$8T2nl&fwKO&z#-9
zytL=i^wu4FPn>r156xtpN^_kVvam`tia<|^cWQwDNxj6nZL8IO;>5*SfBcsHjEPwb
z2`qC>@H{E8Sm!LoykaKw7D}jGi76uf3;te=j__^7I@iCqw35#4v=FRCMrjXb9~YxP
zo5wR@+m1Xg%Ykb}t9dvVGd+~vIQojnesW!K;9PAy>;}fVU^_2;=lSw9(0E^r-e$c)
z^a1m>=2$cfh3Mn`e-I_bJ9Gq)TLUAm+T@Day0Hu6DiBmaSv(iD0
zk?*7;WqavqCepyT`}ZK1ZS-8y)>WkOTtR=rhgOza^o0}fe11%&3Y7K97tE9|{Uijp
zXHd9UeBr1G$42w9)x5#~a!^j``@xyj>e>y!&KgWhCV88*2H%MM*!!X!DE>A;TPsWt
zI6-rwwP{HoQH8W6X-U?5Jih;>()SMzNy#c5irG0Q{iB`2{4-_gfv7E}NF0v=c;Y7g
zDJT5xq5p+D7=M*B0fPXl_{qi2(?9Bjzn$~?GYv0s^UyyVHkpRIs`LNto#X#%`X6OK
zRs2Uo|Kp504@xYI9V}N9_683OtrJ8#_C&XWX_l5B71C|9b$xHc5o{oXX$Px&LF9PVAVh+W*r{_MgCc1`$Vo+aXEoLY@_}11**Z
zV;l*|$*fioW95Vkv$Kf!tlWZ5^w&wj|4-7sD*c@Y`lAmT4=4N`!&-k4D-Pp7$1s@(
z?V}F=IsyOb03Ocx!&zSieu-PP{Qm&2D*x%EQ2s)EZ#+O1|4@{@kz)BfDXxE)b%1O*
z9wUIejxzpm)^}0=j0(fq9M$rBfLk^GCjBD99i%^5c2)d2z^_h!oWBZvL^J*s0RM4{
z_21E1{*9xRl~x+n@)t)`erNyR9>AR!0scY2<2kocn)A@nDGmvi%u5K(+i=0ry<}
zd(QZs4fm@YxL9!@zw@}mHqN=}m1TRj
z7slN*d)u*evo&`{g$6m8=f6VB^+q(Cj
zIb;3Qtdj{Pv8o%xSr{ON%92~8=+omB9j$Mv61_&X`AzsSM2
zDgX-IUBh}K@T-si&f^d9mPdg97T}++<-~dX>2v_}@4tXs`d^s)mY$`ElF8M{|HnYg
zpkdqyfP38GD{g97|NbX_82!b@iW9y_M9l_}qa#W93yOSY<+cH23oW5uLxsxoWENJG
zdxjSjr>1x^d_^Vh;U#6G3ySm7OG?MN`;_^7gNF>tO5j88UKIs}Iqu5cv}c_eM+c
zLvZ%Ozn^n?ayNw~sDXtM*FZR*{v6Gxi1FgW`LxRZZnnyEMtJ~oNAE<&FlN|mMoFa)
zDy=*X0AuyM3M|paJycn;Xt(mYW^JQ(bT9aU)u)2>=Db6_@Yl~lEpzr$)G;L~Ip18<
zvq9wNw*WRrOrHnN`zLySEMoVVz3j1114`F8MjggFA{`k1Be_4n&IlBjqjxfv0BzCX
zau9z1b#XTVUlKkmBEF%VgMSXSGqVQT-mGD=e-&uH2cmz_+t;s@C+Bf2&|kzlj*`O}
zVgE%;f#nATvnowXo^73fu)Z%>{)%<}|53`b`uM6MjRv-$b&Y_q7atnFLR|ABmZW2s
zLC|JZ&r}~6ZeryaM(no)P)mPE@pfEA+!6io6_j=GLC!g=cmJEA@a)J$?V34l7O1BT
z9^gj&*cVW*>hp&Ov;Jro6$iUIq5P7|8a|Ghs5Q>Aj)gRO9_lb1X%>DL!SYn7acQmy
z_F%Vku9V`6DYv#?kn=lsbZ%gCyV8Jn93)~d`oti7HSo9S3r8T&D$!;bhl}|fjhxFB
zK&AM)(|W-`{z<8f{zKBgn0}K&8jmb?LN0PrRePUVwe&!Ff_K@LWsr%9Q=ALU{RWhz
z%m4Ec&~7GZr~=f+y|BoEJ&;amKgh=!N9SzNAlup;-+)x$a($0Cs?yWkoEO8pxT@og
z8hfj%=%A^(ezX|nRf{`NwGxe#zs%bU;DsW{GMx6xo&A#|=
z^bAT*V#hD~Hj3RJ3ecB}bk3fOUOWcHF!AV
zcl7^@^W!^}07qj#5#qQHutz&{#^2f5|6_mIRq?+I+;urqfy1f%ot^#v;;z7V#sXCF
zbMC9Lj(;y+;s`hua4+Cm0OzKz16&W74&aUgcLC`6&-qx|OsQ$mGDAP^{{Sup+y3&5
zQ8E;K(3me5B^!y7eSAoitQ_*LSesRZ(O?vO_(TaOp@dBk!H2S%AGMGjWVutZtyGmf
zV6;Rj@>rq87xucEbZU6gJ14K(>`Hn1iI=CX9o8LrCTBArlO}3&sEL){nvI`RRg`E%
zzLvYNEIs+GM|wQ``0eliHY>4UpnG>On_6(EdHwIisJS?eKgk$>Qh__v!T19lA8rP)
zg+e`NzWyip4tW(175weQqqhHL{DWDztBU_;;3rSyp@P4oc+~d4#Lux%75_fqm;QGu
z_&eBQ78i-1WAK~^@V^5591D0@?Qk{I|H+BQXgunZ#+z!nu5R1q<;pp0?=P;`@+9Pu
z^=dxM@d^JO`Ij?0v@?*?zO(%JlWSkw=Cj}aYLxKO_cPxZZBq*FvsL0+5o7e`@+^;zM7x|DxyLS+je+ICtEsSB|>Wrbfcey9Zjz%>AlDv*K~LBkt5C
ztYgjb^}rpY1LK9n8h@%P>(4q1<>Vo4~VEr-{cM|zxjvI>eS3bXwsW&54b
zgr{11|Gu6v1^#@`kg{yA&po)JIDuYp3FZE5e|bWMzo5|GBQ4!)6V@$oc69BAH474w
z+ijTEu*IfF-)dcSf=#{A-Yw=eDI=iK#Sf3HBf$Y{|(+h$goP%3nJe&sMb&8
zTHe*_+@Bs#9AEFaH{ZAGQ;|e`v{mMs89qU>bCu-$jp2NB3>pz=s|Fb0Pj(Ksb
z|2w+NQMGMopd9T!8Y7!qo73PPnvC6B4w_KwF_h|-EdTAFmmeFy;mP5Typuko*RUgO
z@W`ESDlwLnL#O3P8jmwS&c(iV=KWSHU1cg0C$X~+^OVh1&$ga*>&9k{2J|@j!AAz$
z2{i@Th14wzDt-Hh4(I*A{oc}oQd>vrVPSCG-+E^Yn`*?!pcsiVvOLn;I|n}6`}3(5
zzcTg)2=>Xg^V=hpZT7TEowO%mYW&4Br_btJXLm!J>M{E7G`;@@ay8PqoCo0if~3me
zU7*b&<6WAjUw!_SW6;W+UzDDxC!?g#W7Mk3nZ(HSS#^CTxINi+!tQ+_z0bu$yUVpv
zOvG9yAMXNi#Z_(1RnHu(;rA2l2VvX`-1Cu^OE2QTbJmbtg1QRpp7R4$9qsSH)Iu+e
z28;xkgMMnzoM(SrlHj_aELW_>pO>*~Ia9JH=HB9Le@Y6w0+{xv>yVQh0n{atI391p
z{!|~pLj}K+{p)&sN9wWKM;-n(18&aA@KC|uNjz%%ALZYVTebWj0KdBZGb!u}FxEe<
z`kX^k#lIQ&Ifuo=sr;S8T7Sj*`*HYAB=vtb@N;g8hco^Z@nDGm(X4+T0{k!O-*d*_
zJ_KfQnd`sD;B+!Twf?UJe$LnNaKg{{$13*kYw;~r{C5KXDh;~}98^gDGTz(`&s}oW
z=3STkRJqALE$3oyqrUogW&2ujyi>)aPGsY?)NrHoN1^>ydPL;FKFLw!nJ!JcH~ezv
z=J#B09QoiA=l>_&q5QF~KaR%!Q8NK*3>BfH)LnS
zYHFuf+g;PR{nDQ^kE?Uiz76kOeeuuRcV5-lp|qmS&HuBU4I{bbIobZ~{T7FA#TA8x
zJ;XOM>`dxvCh>BAS)s2u(F@NnsS}EQ5zmjPMPeI&BCCJ;Hkeo6eo=8*(;da0`JT=N
zmt6SiH{0#(cATxsgN|hQ>ayM9T5Q;|r)=o1{ECkwDs3UY6Sy+)(CELk{^V-%%WVTI
zzA3Exa-BP$|GX@IQ*mWI2a2u<`+uPQn>2xWAXrL;WjeCxoa>JqyRhwLSAKJGqr};NJah%rvXJHf31W3@vYtv&iE+-hCZUfzYX|RHqV!Za?k~+M`}^sO|-F_tZNx
z+}|x~y6T&x9{KmRxZiftA#{_4ymKh{9~!%I9vEwP}Q*_s=IaUS|BiX$QqO~b{jNx(1V8trMJAGL9R`BKw+G%
z>b-Fd8<4#WZl3UUfwvnoBgT3nmc)5|>Va6(YUK!?fY}^F);DBAvF6sirq+0hW%WXW
z;`%MlhS6g3QWdvJ_4K_!Zz{2p<$9DY*l$IBhS$#TU>ItL{-xVv$uZ4S%
zL3ya)SMk5U2j5bazmtLcEe*RG{%{spmj4cX>&^)9x52Zj>;EYIch>W2mr(w{3pW-5
zRLg$}>R;Nw&27io+h+JqBy!7rRn&iDqkpR>ZxOf_=gGaUH(za-_T=t|D)X{-J>0Ok
z&D&h7VlMN;HJX2^yBmIKVizr|C$o&F^WoLM{qgn>Wv@*BZ9#)+51uu-Z?>`|0O&1|A6{Lh8&MK(EqmSPdWGhVHShFlT|a2vmw4j~_q1z2wa4^VAMOAB#Um&5pq$TdsK_4<
z^DlA#!MASJzlX%}s0;l=UH(c5>wy@J{&^JeKd$FerTpPM5Q+abeCu`q>(jCDc;I`;
zUy|3wCe%L&Jn(ta({N|{317Cjq
z&aRC|e|FoT@kgP=tR?fIRYTPO)a+NG`Byac7dTo4?pr&0=;uH6>oml-{W{l0C!AAn
zG547=mzL+|!qWRw+QDe+awH;){BTH^uH0;aul>Lwj`~)
z9G^v74nkW7&z8ycr_tG8LfJ2ZcV_UqIyXP|s1_H$w&3*!6Q7@c|I`UW@3~%S{0=3z
zWw;In|3hKDGVio*wOY+V+gW?Du-^n;4K;rsy8cwgzp7sUa5BapX@7LaPm5USgX7N)#o2moz~w)%zv)}
z{&jjTRmMN3`NswL)`I}m@#k9Le?!NAX!d_v%IOcC@5*X0IP~
z2=D*tod3X)P<{NC{4?M6_OVlMzvGBO^+z0^vGA8Z{v>iYb1U(jqhDY&D$a#)OIWMt
z^c~NRyR6>N=l$jVro7FQqkr$P+U9E|(0pb62j<^8|7z&S36KUE-JenZsV~>8{n3tU
zL|(1?L4}GCWR3-0RWYR_^OmGV{UpHWRcvRd4ohw*{a0F4c%M`z?J0v%&K7z(joBD#
z>LRv&BE;jd0GFoo%nEw41E`O5XSEs))ApSpW%6#IeMsgp*q1I1kzfa4bn_tEKlcTp
zrFAU+LVMO7gPg6d;&yVj2U$yN_y{wOl~W{zKu<`HlWO}BIrBWb-si-#gKe8)4vXI2_|ffommT+V{kq7XRU*G9u6pz9yjPX6TVuYf+trCT{5+xdvajlVc>d3+
z`CBPxT1$XSF&qp2b>)|v|*
zUh-ti8=uPk@#y8Jcs8^d^Hnd+kWw|}mL$VSWL!xRn&(<0`Exa?H4hyigPUXX(VJ4P
z+vtRQ8LkU}C6I>-ZnH{>{z8xLD)y(UUjI8iLi?A){8QXK)aXNct;%)@m$nA}FZBnU
z%im7(_X_nr&Ogn?%_jhC)lkowuipav%k>M+_){JI|IO57#uMs13HZO&Z^mZ-DBW*A
z5)%1=+$T%Qbd=)7?6z0i<3z4NI{fLllU}{RbJSl?ZNBDLf8|~l&|EY2ts`O&sE^oQ
z^mTHUC3#D)>bs}i@pZR!|1)>m)Y!RtOvIqA-$%B`z
zv9DKGNB`;Ih!$2kJiLA#Jf2D^#;_L*K;DXADG1(|UCPWED8YtmmR!ucKrj-!*%MAx
zVw2jd!N1LskX&eMO3W$}PACo=$g{1IptY`r{F?@>AM02RO{JmS-V&c820eisAmdl+t5jt<~I^q1q|%>UX|`TCQw5%J%4PU}zNmZBUh0jlM%0DkrL
zAMG8-AC4uDM}U6?@IQ~|d6=USbq$WwJiMfAG&U7TFDV`8&OqE`x3=$6!hoz{=?R5n
z`ewR|vI~lBLmPEa`&ew_PjLTb52KR-Z96-f?LH&jf8)I?XJozk(TG#8Js0J*@@R?Q
z$(Cp3s^mAcZltDYl@Yog%7g1+NLg%N*S#tV3UfqDc-Rtd?C6l-Eh#F>F3z#vxo>2
zS^rbwyxQt$xgM96^deV0T88m;eUKEmU#-{?(;Nv~#)FS_{fwla*v230xFF{bxK2gx
zjH==ZVrUJ4QRb5AOQKhWI8YzH;f#RVyC&xLt>j
zxkks@gYC*@)Su9T#khJc-nOo7weK&36gzF(LN)zM-IiuZYr$4T^Sp;q^9JXNBz|;S
ziyPN0d~DKtWv~&mkI;fDVkpp#%>81y>Yg+scS?wNU4&U8cYvN6udVx&nrb{|q1>+C
zu<<5qD@(KRE0F5sJlI)iiJ7{Dlc~*4=V^0b?74mLj_kPu@O|?PPjD_1@fGeY<%U!v
zXJtb_WqgY>ZM4JDLQI!5mnMam>3KS^)@k#)4411VaF2)yZ=j56Uads=wFRK6qoP-*
zJv)$s+@MId7*|AFSMhNsc_`p&rP?(2$!O-90&87bok-!Vb?SW!BhE+cvj~B?vesR&
zZSan`ShO313&l46dBJnck!V?m)<~oYs8K8LclW8==JQutK9qTdy}TeT>*W0Q`~Oge
z4I|{bLu_f%C)5DZ$CvG|DD&kcaF-GMtMnC?lot7l{U-6*?awYBtq(lAmFnM2tKn(H
z7(YBFI|40;Qc?*V%T@HRj;Os*2kc(~trF@v^Y!LvEV=&38Gm~x|LchHX92%l|E_{R
z)tq_Dc{Jtk5BwYS?>OUcSLODwciU7Zp
z|0!vC89-J49|8R8_TP44BY@NXyac#cM1a2~@E;S07jQVYe|ty!5BFW+dIHt*w*dY%
zc%Fv}ey93>1mAfQpo+gY@V`UkI8^XE_}@lM|9ye~C4pWEzXSh`dkWur7NA=G;imFa
zX1X3=)r(?{0~+Z#MEODN$!N8-n6;kJ_v~U7W@=J}um!nXYf;Lo-nah1l+w^rLhTL|
z=+m|kCA*-8-_6)1NMf|3Jd=C1Xu!0THYFuc2ISS(seU3vP
zls`D`JcmbA$Dc(Qf7a=rbRK^@ILRLokH7PQpFER?3VsLqGmdKu-UXZ(!NXgu+ahUg13Z$AWZQKa-
z?mrcIn5gF=2c`6^?dD9FJEZe{R#CQo&!<_P67Jf0vG5)QDJzL2eSS
z`#EOoYloZ)(+v90v3TeNfNJ^Q2L8JGhgHh&WdB=(Z&99C#lH&p;~}N+$bwvwiTU;l
z%?rS}Z$v8Bai0P5G3$C{xpuwHMdvm+{`E^Pd+3{atxiOKSO)Xq!$?YBgh1|NSX8R2
z&zs9N=7F?HYsaKq75C%eWnaWM`O!XKBL0$IjVL4aD0+|Darb86k3|1>i2oG#3_eSLPF4I1fM3pk=q`W4nKPu{pN&71
zPL`j?I0DwR{%##NBb7P6kFor*;#cE;RxHK}f3uf=7JR$XF&@x=%5K-qrq56Ads+Vz
zJsWRsH1wWRDhGGcX^wO!k4X97j9Mysk-8)sY5RSBP_&=(xNL1<(uG++Yc%7+*-1Me
zu6k`YIW
zcK@ju>34IC?_2X|ZatNG587izZ}$Y1*Mpj7&_2daVC_+639c10#_;qq7+)#|f06c!
z1mLFM9Q`j7aF5qTtQ6WbUIh4cdqQ|UHO>^_8s
zR4aGFHF^ivn9_3B{g1Q#|j<)NLVqg@~vUHCa2@F)T8XzaeZm|3Qh>db)Fo
zW$vQuL0*l!a%?p0$zq0_yzqX&MAQQ<$iiX~%3t2<#m~_)1G_8I$3M`Y-RqLzD8jjpYD7e2_$4p_R=PJHml=_-_39G|;
zEJqEtu$Z3`dx(YN$%3=Vl^A_cYB@KN0c|`T9`pk+OEDR<{%)*D<{F7I*u}~~mu^Tu
zd?F2Lmj1*LZA9Ywi^-7R$`L`V51<36Mn*Eb6d2S-sp_d$q1{lf;oPzt`Q$ly31w4S
zbp&r1hkTD$qK8O%gEa>n?FE+;c@g-}2L8gB@Q3I9+<(3Z{V5+M7d_w{V2o`RDG;Ni
zOtX$joC8qv)Gryc(TDR=jC-kit)GTGEKn-7I<*)QYOwTbwtm{li{>>|fl}fEOt-R2<7wElV9UuIl8n5eo&~1r63q;9|p12=ZaqC6KL+#`adkb`=GKT1t
z(@;V+87Uh23^ivTio=9%y^j6?Z89+32;LFPEb;eajmB
zk8?4@CyhLeD=BJLI}Js-cDt&GnUp)ws%&ve?v!Hay`PKL_Ti6va&qN6r9)b9Pt$bC)$6P0_w5h1WmjE>e_{
zO&pW4h$yj8c^t!#KY2uKg;Gi>@E`;n2j77PWn;@yb!ht}j2`
zru7T(CGM83j?t_EsCWrja~%ABti9*0gS`Et-#Ijzbw5t>Q>a-o$uF1&dMfYw|N4)h
z{}{d30~wWTzbKJVVxjGuyhKW~firfr(oo;b)Sef1`8rEimOk?LncgNBJiX`Ak-M&H
zXw$=8urjz1w$)Q=-5O(apq4IbNocmhE4J%dudeHKTj_b}
zTkn2t*fT$$*utikC^cF!8084QXJB``*8h*w|BkrOv^5x`6~~vr)eJRZ6A$e_;Ou|Z
zNooDp2RdCLaXh|+^FgaP@t6vJ2mdEcs#}lGkvlsg#{+SPMY8_A6ZD-g3u5#T==_+|b7TPW1Zf6P24^u0jtXK$l4j~OCP!TK=cK{S0f
zG7BX~xgu?zA)1+XF=CQq3vE>Bc~_wI$76h?4M6Dss%v_L{m+fjSlu_{!XFpU8rx{e
zO^sHqO{*)BWHYMi@Ina?+P$e^r*%)*LtcTmhiEpViF;<|%^e_AP!7Ucq10Vs*U
zGLp2R;eDHWp1E&+len+X@h?6>?~CLI^3baxpi&Zslx0Vzf2gcX*!*_o*R5xzebDfz
zUt1Txx1*9Xw=x$pC00STVtr*6N@7HD;~qm|Cn4H~gXd3K_99Iqle36-1Bco^Ba{HC
zcX8$|8jl&NNt=Co7~wG+UoF;JLu~C=>!747RjwyA-(bm1YRrNwJb_l(sdI%;mO<7T
zeJ!v%+_cOe&w07s(AySuzVnolC$GZGL3GnOpp(k5>kJ#mC^$nqgag~wEkku3{rk3SL57lXe(weaG33#3H!ekj79ApEeoXe
z;P*ZH9opP0Yv+B}?8WjsZ{7P*)7yXDdF2r{^~Sn{m!i8jqJUNI=ZtOyf;EK&6M
zy?Z4mWMuSipVBF*cXE2~UXvzjVSE!Sy~pxSo(3!$G-
znu**eN0rZUw2;<5XX!5I-F8iGJH6kJUDmz-=W8SCq}a(NLf$p-PdO;`SF8MCcrd)fsH{@8KB$!J+KRq))3-m>kdO#f`yh-6;N67!3*5AI0(sDm%)$;!Z{3&|*
ztv%bY`&H%qmlcb_qk?&paW7E27q-oQnyr{#>4loKf7OwLp8WQ~Mf30K?mO%4lh^-X
zw^lP8G1T<>qv-gDQAg_aXFq*sL>k_>G9K9
z{;+t!4NRK);p^E?{WfslOH2K)bf~TON;5Av>W*j8wZAd`s{2+pdUwvkvmWgI&k*lh
zBd0F??oyFAXa3v4QT~4s<#-#Q%74BC|7jQj|5dU7${J>!IvpE;KN9`J$^OcCfo}p-
z%U>57TayUN?+|~@^#X9e9|8WOfZwI#m-Qx6>d(>w8ji;p^mlNse+^eQY))5=d
zIR4Y+@9sRe*T*dnw`nS6Hv}w#6eK+6m
zQ@!OAJg5&dZSy?z&QQIw%L}|&CEn3Kf4bP4D9cw?=_|9fYz+yHdttjvQd@1)DN{%c
zYkutcSLpszRsAoVFH$4_XS=c|+Xq)gU-wB_HwyI8=?h-MY_WFl`q
zufNbbodE^tGtb(G7!fby@87!$Y|HtJ|(y#QHVV}J%;n6>@NWb{1#SOMMy?w`m
z{`F0?CfmxG->HOu0@qy&KVDKu9%hEbnrxrGlTW8AkH7jJ3M|{z
z9P&@Q2=F__Un1_!dOfS)9|`=8Bf#%qe~9}pkbW2e{!zgHt)5Zqd`?PwN?Jx=dK*S`q
zU~Sk(&oidLpYOrMtk);@^z%-fI3WYmCTZ={J0$ciDaS
z{o#9uxklXE>WDi}D(|U27;r{ER1dW3B!*`G?^%&D?Vyl9shQGyg4X@O^*hoJ!&=uh
zu*gfzw}WBe3#Nn7vMi1QeGT}rw$duti-VC>gr%gCUN4&cXMDKuESRe17l
zj!rL?C}Z`+Yw)5c(OZ&ntJtqZ9aGY)6?ZUN)2h-NO6PK-ByLKtg&aP
zXsfwstESdW48~Bh|I#3w#Lo@n(9zHO<+0vz@PF2VW<=>1&rQ-pux;`1CiE
za&vRNsgsDE$0$H0VjRf`@8%gV`PD8pxeBH)d(skmLhrFkLQsw~jx^dv5iv{x&#y?5mH(4t7&O@iiqw3Yr}TDhRi}
zS$cDXwz33jmF9I#E>|;r{b1&Y)YP~t#E4(Z2&*#QpN!&?hf*HO+A%rrSb&dbsi#?^c6Ah(}YF9!=Z%l`00`CJ*#%{WWihUBnY>3Wk~(>}E&^PIfPH6Oh%a$9CJ
za*x#aMD#bqc4F1pWXw@9=YQa1zgt@{xQ?Dj9sU1N-8JAm|JNC-fkPiM{=uhsM0Nh@
zyu)0sGF=T-!SA&GZ3A#Ohyecp;J+^d{0{36F<4AmXAU{I-cksW882>!rFOH!9Iru-s
zeS|U{qxT<`@-G7Z`Z|7<=bfH0Q>)Xn*87KI{Hsh&>l3j#eq7z}w5Q`gNcyqCqAA(a
aud6s76=1F}o?GiAlHY-==?^|>> See http://www.FreeRTOS.org/Documentation for details. <<<     *
+     *                                                                       *
+     *    Thank you for using FreeRTOS, and thank you for your support!      *
+     *                                                                       *
+    ***************************************************************************
+
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    >>>NOTE<<< The modification to the GPL is included to allow you to
+    distribute a combined work that includes FreeRTOS without being obliged to
+    provide the source code for proprietary components outside of the FreeRTOS
+    kernel.  FreeRTOS is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+    
+    ***************************************************************************
+     *                                                                       *
+     *    Having a problem?  Start by reading the FAQ "My application does   *
+     *    not run, what could be wrong?                                      *
+     *                                                                       *
+     *    http://www.FreeRTOS.org/FAQHelp.html                               *
+     *                                                                       *
+    ***************************************************************************
+
+    
+    http://www.FreeRTOS.org - Documentation, training, latest information, 
+    license and contact details.
+    
+    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
+    including FreeRTOS+Trace - an indispensable productivity tool.
+
+    Real Time Engineers ltd license FreeRTOS to High Integrity Systems, who sell 
+    the code with commercial support, indemnification, and middleware, under 
+    the OpenRTOS brand: http://www.OpenRTOS.com.  High Integrity Systems also
+    provide a safety engineered and independently SIL3 certified version under 
+    the SafeRTOS brand: http://www.SafeRTOS.com.
+*/
+
+/*
+ * Utility functions required to gather run time statistics.  See:
+ * http://www.freertos.org/rtos-run-time-stats.html
+ *
+ * Note that this is a simulated port, where simulated time is a lot slower than
+ * real time, therefore the run time counter values have no real meaningful
+ * units.
+ *
+ * Also note that it is assumed this demo is going to be used for short periods
+ * of time only, and therefore timer overflows are not handled.
+*/
+
+/* FreeRTOS includes. */
+#include 
+
+/* FreeRTOS+Trace includes. */
+#include "trcUser.h"
+
+/* Variables used in the creation of the run time stats time base.  Run time 
+stats record how much time each task spends in the Running state. */
+static long long llInitialRunTimeCounterValue = 0LL, llTicksPerHundedthMillisecond = 0LL;
+
+/*-----------------------------------------------------------*/
+
+void vConfigureTimerForRunTimeStats( void )
+{
+LARGE_INTEGER liPerformanceCounterFrequency, liInitialRunTimeValue;
+
+	/* Initialise the variables used to create the run time stats time base.
+	Run time stats record how much time each task spends in the Running 
+	state. */
+
+	if( QueryPerformanceFrequency( &liPerformanceCounterFrequency ) == 0 )
+	{
+		llTicksPerHundedthMillisecond = 1;
+	}
+	else
+	{
+		/* How many times does the performance counter increment in 1/100th
+		millisecond. */
+		llTicksPerHundedthMillisecond = liPerformanceCounterFrequency.QuadPart / 100000LL;
+
+		/* What is the performance counter value now, this will be subtracted
+		from readings taken at run time. */
+		QueryPerformanceCounter( &liInitialRunTimeValue );
+		llInitialRunTimeCounterValue = liInitialRunTimeValue.QuadPart;
+	}
+}
+/*-----------------------------------------------------------*/
+
+unsigned long ulGetRunTimeCounterValue( void )
+{
+LARGE_INTEGER liCurrentCount;
+unsigned long ulReturn;
+
+	/* What is the performance counter value now? */
+	QueryPerformanceCounter( &liCurrentCount );
+
+	/* Subtract the performance counter value reading taken when the 
+	application started to get a count from that reference point, then
+	scale to (simulated) 1/100ths of a millisecond. */
+	ulReturn = ( unsigned long ) ( ( liCurrentCount.QuadPart - llInitialRunTimeCounterValue ) / llTicksPerHundedthMillisecond );
+
+	return ulReturn;
+}
+/*-----------------------------------------------------------*/
diff --git a/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/Trace_Recorder_Configuration/trcConfig.h b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/Trace_Recorder_Configuration/trcConfig.h
new file mode 100644
index 000000000..edc7d33fd
--- /dev/null
+++ b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/Trace_Recorder_Configuration/trcConfig.h
@@ -0,0 +1,415 @@
+/*******************************************************************************
+ * FreeRTOS+Trace v2.2.2 Recorder Library
+ * Percepio AB, www.percepio.se
+ *
+ * trcConfig.h
+ *
+ * Configuration parameters for the trace recorder library. Before using the 
+ * trace recorder library, please check that the default settings are 
+ * appropriate for your system, and if necessary adjust these. Most likely, you 
+ * will need to adjust the NTask, NISR, NQueue, NMutex and NSemaphore values to 
+ * reflect the number of such objects in your system. These may be 
+ * overapproximated, although larger values values implies more RAM usage.
+ *
+ * Terms of Use
+ * This software is copyright Percepio AB. The recorder library is free for
+ * use together with Percepio products. You may distribute the recorder library
+ * in its original form, including modifications in trcPort.c and trcPort.h
+ * given that these modification are clearly marked as your own modifications
+ * and documented in the initial comment section of these source files. 
+ * This software is the intellectual property of Percepio AB and may not be 
+ * sold or in other ways commercially redistributed without explicit written 
+ * permission by Percepio AB.
+ *
+ * Disclaimer 
+ * The trace tool and recorder library is being delivered to you AS IS and 
+ * Percepio AB makes no warranty as to its use or performance. Percepio AB does 
+ * not and cannot warrant the performance or results you may obtain by using the 
+ * software or documentation. Percepio AB make no warranties, express or 
+ * implied, as to noninfringement of third party rights, merchantability, or 
+ * fitness for any particular purpose. In no event will Percepio AB, its 
+ * technology partners, or distributors be liable to you for any consequential, 
+ * incidental or special damages, including any lost profits or lost savings, 
+ * even if a representative of Percepio AB has been advised of the possibility 
+ * of such damages, or for any claim by any third party. Some jurisdictions do 
+ * not allow the exclusion or limitation of incidental, consequential or special 
+ * damages, or the exclusion of implied warranties or limitations on how long an 
+ * implied warranty may last, so the above limitations may not apply to you.
+ *
+ * FreeRTOS+Trace is available as Free Edition and in two premium editions.
+ * You may use the premium features during 30 days for evaluation.
+ * Download FreeRTOS+Trace at http://www.percepio.se/index.php?page=downloads
+ *
+ * Copyright Percepio AB, 2012.
+ * www.percepio.se
+ ******************************************************************************/
+
+#ifndef TRCCONFIG_H
+#define TRCCONFIG_H
+
+/*******************************************************************************
+ * CONFIGURATION RELATED TO CAPACITY AND ALLOCATION 
+ ******************************************************************************/
+
+/*******************************************************************************
+ * EVENT_BUFFER_SIZE
+ *
+ * Macro which should be defined as an integer value.
+ *
+ * This defines the capacity of the event buffer, i.e., the number of records
+ * it may store. Each registered event typically use one record (4 byte), but
+ * vTracePrintF may use multiple records depending on the number of data args.
+ ******************************************************************************/
+
+#if WIN32
+    #define EVENT_BUFFER_SIZE 3000
+#else
+    #define EVENT_BUFFER_SIZE 1000 /* Adjust wrt. to available RAM */
+#endif
+
+/*******************************************************************************
+ * SYMBOL_TABLE_SIZE
+ *
+ * Macro which should be defined as an integer value.
+ *
+ * This defines the capacity of the symbol table, in bytes. This symbol table 
+ * stores User Events labels and names of deleted tasks, queues, or other kernel
+ * objects. Note that the names of active objects not stored here but in the 
+ * Object Table. Thus, if you don't use User Events or delete any kernel 
+ * objects you set this to zero (0) to minimize RAM usage.
+ ******************************************************************************/
+#define SYMBOL_TABLE_SIZE 1000
+
+/*******************************************************************************
+ * NTask, NISR, NQueue, NSemaphore, NMutex
+ *
+ * A group of Macros which should be defined as an integer value of zero (0) 
+ * or larger.
+ *
+ * This defines the capacity of the Object Property Table - the maximum number
+ * of objects active at any given point within each object class.
+ * 
+ * NOTE: In case objects are deleted and created during runtime, this setting
+ * does not limit the total amount of objects, only the number of concurrently
+ * active objects. 
+ *
+ * Using too small values will give an error message through the vTraceError
+ * routine, which makes the error message appear when opening the trace data
+ * in FreeRTOS+Trace. If you are using the recorder status monitor task,
+ * any error messages are displayed in console prints, assuming that the
+ * print macro has been defined properly (vConsolePrintMessage).
+ * 
+ * NOTE 2: If you include the monitor task (USE_TRACE_PROGRESS_MONITOR_TASK)
+ * make sure to dimension NTask with this task accounted for.
+ *
+ * Also remember to account for all tasks created by FreeRTOS, such as the 
+ * IDLE task, the FreeRTOS timer task, and any tasks created by other 3rd party 
+ * software components, such as communication stacks.
+ * Moreover, one task slot is used to indicate "(startup)", i.e., a "task" that 
+ * represent the time before the first task starts. NTask should thus be at 
+ * least 2-3 slots larger than your application task count.
+ *
+ * NOTE 3: The FreeRTOS timer task creates a Queue, that should be accounted 
+ * for in NQueue.
+ ******************************************************************************/
+#define NTask             15
+#define NISR              4
+#define NQueue            3
+#define NSemaphore        4
+#define NMutex            2
+
+/* Maximum object name length for each class (includes zero termination) */
+#define NameLenTask       configMAX_TASK_NAME_LEN
+#define NameLenISR        10
+#define NameLenQueue      15
+#define NameLenSemaphore  15
+#define NameLenMutex      15
+
+/******************************************************************************
+ * TRACE_DESCRIPTION
+ *
+ * Macro which should be defined as a string.
+ *
+ * This string is stored in the trace and displayed in FreeRTOS+Trace. Can be
+ * used to store, e.g., system version or build date. This is also used to store
+ * internal error messages from the recorder, which if occurs overwrites the
+ * value defined here. This may be maximum 256 chars.
+ *****************************************************************************/
+#define TRACE_DESCRIPTION "FreeRTOS+Trace Demo"
+
+/******************************************************************************
+ * TRACE_DESCRIPTION_MAX_LENGTH
+ *
+ * The maximum length (including zero termination) for the TRACE_DESCRIPTION
+ * string. Since this string also is used for internal error messages from the 
+ * recorder do not make it too short, as this may truncate the error messages.
+ * Default is 80. 
+ * Maximum allowed length is 256 - the trace will fail to load if longer.
+ *****************************************************************************/
+#define TRACE_DESCRIPTION_MAX_LENGTH 80
+
+
+/******************************************************************************
+ * TRACE_DATA_ALLOCATION
+ *
+ * This defines how to allocate the recorder data structure, i.e., using a 
+ * static declaration or using a dynamic allocation in runtime (malloc).
+ *
+ * Should be one of these two options:
+ * - TRACE_DATA_ALLOCATION_STATIC (default)
+ * - TRACE_DATA_ALLOCATION_DYNAMIC
+ *
+ * Using static allocation has the benefits of compile-time errors if the buffer 
+ * is too large (too large constants in trcConfig.h) and no need to call the 
+ * initialization routine (xTraceInitTraceData).
+ *
+ * Using dynamic allocation may give more flexibility in some cases.
+ *****************************************************************************/
+
+#define TRACE_DATA_ALLOCATION TRACE_DATA_ALLOCATION_STATIC
+
+
+/******************************************************************************
+ * CONFIGURATION REGARDING WHAT CODE/FEATURES TO INCLUDE
+ *****************************************************************************/
+
+/******************************************************************************
+ * INCLUDE_USER_EVENTS
+ *
+ * Macro which should be defined as either zero (0) or one (1). 
+ * Default is 1.
+ *
+ * If this is zero (0) the code for creating User Events is excluded to
+ * reduce code size. User Events are application-generated events, like 
+ * "printf" but for the trace log instead of console output. User Events are 
+ * much faster than a printf and can therefore be used in timing critical code.
+ * See vTraceUserEvent() and vTracePrintF() in trcUser.h
+ * 
+ * Note that FreeRTOS+Trace Standard Edition or Professional Edition is required
+ * for User Events, they are not displayed in FreeRTOS+Trace Free Edition.
+ *****************************************************************************/
+#define INCLUDE_USER_EVENTS 1
+
+/*****************************************************************************
+ * INCLUDE_ISR_TRACING
+ *
+ * Macro which should be defined as either zero (0) or one (1). 
+ * Default is 1.
+ *
+ * If this is zero (0), the code for recording Interrupt Service Routines is 
+ * excluded to reduce code size. Note, recording ISRs require that you insert
+ * calls to vTraceStoreISRBegin and vTraceStoreISREnd in your interrupt handlers.
+ * There is no automatic recording of ISRs like for task scheduling, since 
+ * FreeRTOS does not have a central interrupt dispatcher.
+ *****************************************************************************/
+#define INCLUDE_ISR_TRACING 1
+
+/******************************************************************************
+ * INCLUDE_OBJECT_DELETE
+ * 
+ * Macro which should be defined as either zero (0) or one (1). 
+ * Default is 1.
+ *
+ * This must be enabled (1) if tasks, queues or other 
+ * traced kernel objects are deleted at runtime, e.g., using vTaskDelete or 
+ * vQueueDelete. If no deletes are made, this can be set to 0 in order to
+ * exclude the delete-handling code. 
+ *****************************************************************************/
+#define INCLUDE_OBJECT_DELETE 1
+
+/******************************************************************************
+ * CONFIGURATION RELATED TO BEHAVIOR
+ *****************************************************************************/
+
+/******************************************************************************
+ * RECORDER_STORE_MODE
+ *
+ * Macro which should be defined as one of:
+ * - STORE_MODE_RING_BUFFER
+ * - STORE_MODE_STOP_WHEN_FULL
+ * Default is STORE_MODE_RING_BUFFER.
+ *
+ * With RECORDER_STORE_MODE set to STORE_MODE_RING_BUFFER, the events are stored
+ * in a ring buffer, i.e., where the oldest events are overwritten when the
+ * buffer becomes full. This allows you to get the last events leading up to an
+ * interesting state, e.g., an error, without having a large trace buffer for
+ * string the whole run since startup. In this mode, the recorder can run
+ * "forever" as the buffer never gets full, i.e., in the sense that it always
+ * has room for more events.
+ *
+ * To fetch the trace in mode STORE_MODE_RING_BUFFER, you need to first halt the
+ * system using your debugger and then do a RAM dump, or to explicitly stop the
+ * recorder using vTraceStop() and then store/upload the trace data using a
+ * FreeRTOS task that you need to provide yourself. The trace data is found in
+ * the struct RecorderData, initialized in trcBase.c.
+ *
+ * Note that, if you upload the trace using a RAM dump, i.e., when the system is 
+ * halted on a breakpoint or by a debugger command, there is no need to stop the 
+ * recorder first.
+ *
+ * When RECORDER_STORE_MODE is STORE_MODE_STOP_WHEN_FULL, the recording is
+ * stopped when the buffer becomes full. When the recorder stops itself this way
+ * vTracePortEnd() is called which allows for custom actions, such as triggering
+ * a task that stores the trace buffer, i.e., in case taking a RAM dump
+ * using an on-chip debugger is not possible. In the Windows port, vTracePortEnd
+ * saves the trace to file directly, but this is not recommended in a real-time
+ * system since the scheduler is blocked during the processing of vTracePortEnd.
+ *****************************************************************************/
+#ifndef WIN32
+#define RECORDER_STORE_MODE STORE_MODE_RING_BUFFER
+#else
+/* Default in the Win32 demo */
+#define RECORDER_STORE_MODE STORE_MODE_STOP_WHEN_FULL
+#endif
+
+/******************************************************************************
+ * STOP_AFTER_N_EVENTS
+ *
+ * Macro which should be defined as an integer value, or not defined.
+ * Default is -1
+ *
+ * STOP_AFTER_N_EVENTS is intended for tests of the ring buffer mode (when
+ * RECORDER_STORE_MODE is STORE_MODE_RING_BUFFER). It stops the recording when
+ * the specified number of events has been observed. This value can be larger
+ * than the buffer size, to allow for test of the "wrapping around" that occurs
+ * in ring buffer mode . A negative value (or no definition of this macro)
+ * disables this feature.
+ *****************************************************************************/
+#define STOP_AFTER_N_EVENTS -1
+
+/******************************************************************************
+ * USE_IMPLICIT_IFE_RULES
+ *
+ * Macro which should be defined as either zero (0) or one (1). 
+ * Default is 1.
+ *
+ * ### Instance Finish Events (IFE) ###
+ *
+ * For tasks with "infinite" main loops (non-terminating tasks), the concept
+ * of a task instance has no clear definition, it is an application-specific
+ * thing. FreeRTOS+Trace allows you to define Instance Finish Events (IFEs),
+ * which marks the point in a cyclic task when the "task instance" ends.
+ * The IFE is a blocking kernel call, typically in the main loop of a task
+ * which typically reads a message queue, waits for a semaphore or performs
+ * an explicit delay.
+ *
+ * If USE_IMPLICIT_IFE_RULES is one (1), the following FreeRTOS kernel calls
+ * are considered by default to be IFEs (Implicit IFEs):
+ *  - vTaskDelay
+ *  - vTaskDelayUntil
+ *  - vTaskSuspend
+ *  - xQueueReceive (blocking cases only)
+ *  - xSemaphoreTake (blocking cases only)
+ *
+ * However, Implicit IFEs only applies to blocking kernel calls. If an
+ * xQueueReceive reads a message without blocking, it does not create a new
+ * instance since no blocking occurred.
+ *
+ * Moreover, the actual IFE might sometimes be another blocking call such as
+ * xQueueSend or xSemaphoreGive. We therefore allow for user-defined
+ * Explicit IFEs by calling
+ *
+ *     vTraceTaskInstanceIsFinished()
+ *
+ * right before the kernel call considered as IFE. This does not create an
+ * additional event but instead stores the service code and object handle
+ * of the IFE call as properties of the task.
+ *
+ * If using Explicit IFEs and the task also calls an Implicit IFE like
+ * vTaskDelay, this may result in additional incorrect task instances.
+ * This is solved by disabling the Implicit IFEs for the task, by adding
+ * a call to
+ * 
+ *     vTraceTaskSkipDefaultInstanceFinishedEvents()
+ * 
+ * in the very beginning of that task. This allows you to combine Explicit IFEs
+ * for some tasks with Implicit IFEs for the rest of the tasks, if
+ * USE_IMPLICIT_IFE_RULES is 1.
+ *
+ * By setting USE_IMPLICIT_IFE_RULES to zero (0), the implicit IFEs are disabled
+ * for all tasks. Tasks will then be considered to have a single instance only, 
+ * covering all execution fragments, unless you define an explicit IFE in each
+ * task by calling vTraceTaskInstanceIsFinished before the blocking call.
+ *****************************************************************************/
+#define USE_IMPLICIT_IFE_RULES 1
+
+/******************************************************************************
+ * INCLUDE_SAVE_TO_FILE
+ *
+ * Macro which should be defined as either zero (0) or one (1).
+ * Default is 0.
+ *
+ * If enabled (1), the recorder will include code for saving the trace
+ * to a local file system.
+ ******************************************************************************/
+#ifdef WIN32
+    #define INCLUDE_SAVE_TO_FILE 1
+#else
+    #define INCLUDE_SAVE_TO_FILE 0
+#endif
+
+/******************************************************************************
+ * TRACE_PROGRESS_MONITOR_TASK_PRIORITY
+ *
+ * Macro which sets the priority of the "recorder status monitor" task.
+ *
+ * This task, vTraceMonitorTask in trcUser.c, periodically writes
+ * the recorder status using the vTraceConsoleMessage macro, which is to
+ * be mapped to your console "printf" routine. The task is named TraceMon but 
+ * is intentionally excluded from the demo trace.
+ *
+ * Default is tskIDLE_PRIORITY + 1
+ * Note that if your system constantly has a high CPU load from high-priority 
+ * tasks, this might not be get a chance to execute.
+ * 
+ * See vTraceMonitorTask in trcUser.c
+ *****************************************************************************/
+#define TRACE_PROGRESS_MONITOR_TASK_PRIORITY (tskIDLE_PRIORITY + 1)
+
+/******************************************************************************
+ * TRACE_PROGRESS_MONITOR_TASK_STACKSIZE
+ *
+ * Macro which sets the stack size of the "recorder status monitor" task.
+ *
+ * This task, vTraceMonitorTask in trcUser.c, periodically writes
+ * the recorder status using the vTraceConsoleMessage macro, which is to
+ * be mapped to your console "printf" routine. The task is intentionally 
+ * excluded from the demo trace.
+ *
+ * See vTraceMonitorTask in trcUser.c
+ *****************************************************************************/
+#define TRACE_PROGRESS_MONITOR_TASK_STACKSIZE 500
+
+/******************************************************************************
+ * TRACE_PROGRESS_MONITOR_TASK_PERIOD
+ *
+ * Macro which sets the period of the "recorder status monitor" task.
+ *
+ * This task, vTraceMonitorTask in trcUser.c, periodically writes
+ * the recorder status using the vTraceConsoleMessage macro, which is to
+ * be mapped to your console "printf" routine. The task is named TraceMon but 
+ * is intentionally excluded from the demo trace.
+ *
+ * Default is 1000 FreeRTOS ticks (typically 1 second). On the Windows port, a 
+ * lower value is suggested since the Windows port runs very slowly, often 20-40
+ * times slower than the simulated FreeRTOS time.
+ *
+ * See vTraceMonitorTask in trcUser.c
+ *****************************************************************************/
+#if WIN32
+    #define TRACE_PROGRESS_MONITOR_TASK_PERIOD 100
+#else
+    #define TRACE_PROGRESS_MONITOR_TASK_PERIOD 1000
+#endif
+
+/******************************************************************************
+ * TEAM_LICENSE_CODE
+ *
+ * Macro which defines a string - the team license code.
+ * If no team license is available, this should be an empty string "".
+ * This should be maximum 32 chars, including zero-termination.
+ *****************************************************************************/
+#define TEAM_LICENSE_CODE ""
+
+#endif
+
diff --git a/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/Trace_Recorder_Configuration/trcPort.h b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/Trace_Recorder_Configuration/trcPort.h
new file mode 100644
index 000000000..828699eb4
--- /dev/null
+++ b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/Trace_Recorder_Configuration/trcPort.h
@@ -0,0 +1,419 @@
+/******************************************************************************* 
+ * FreeRTOS+Trace v2.2.2 Recorder Library
+ * Percepio AB, www.percepio.se
+ *
+ * trcPort.h
+ *
+ * Contains together with trcPort.c all portability issues of the trace recorder 
+ * library.
+ *
+ * Terms of Use
+ * This software is copyright Percepio AB. The recorder library is free for
+ * use together with Percepio products. You may distribute the recorder library
+ * in its original form, including modifications in trcPort.c and trcPort.h
+ * given that these modification are clearly marked as your own modifications
+ * and documented in the initial comment section of these source files. 
+ * This software is the intellectual property of Percepio AB and may not be 
+ * sold or in other ways commercially redistributed without explicit written 
+ * permission by Percepio AB.
+ *
+ * Disclaimer 
+ * The trace tool and recorder library is being delivered to you AS IS and 
+ * Percepio AB makes no warranty as to its use or performance. Percepio AB does 
+ * not and cannot warrant the performance or results you may obtain by using the 
+ * software or documentation. Percepio AB make no warranties, express or 
+ * implied, as to noninfringement of third party rights, merchantability, or 
+ * fitness for any particular purpose. In no event will Percepio AB, its 
+ * technology partners, or distributors be liable to you for any consequential, 
+ * incidental or special damages, including any lost profits or lost savings, 
+ * even if a representative of Percepio AB has been advised of the possibility 
+ * of such damages, or for any claim by any third party. Some jurisdictions do 
+ * not allow the exclusion or limitation of incidental, consequential or special 
+ * damages, or the exclusion of implied warranties or limitations on how long an 
+ * implied warranty may last, so the above limitations may not apply to you.
+ *
+ * FreeRTOS+Trace is available as Free Edition and in two premium editions.
+ * You may use the premium features during 30 days for evaluation.
+ * Download FreeRTOS+Trace at http://www.percepio.se/index.php?page=downloads
+ *
+ * Copyright Percepio AB, 2012.
+ * www.percepio.se
+ ******************************************************************************/
+
+#ifndef TRCPORT_H
+#define TRCPORT_H
+
+#include "trcBase.h"
+
+/* If FreeRTOS Win32 port */
+#ifdef WIN32
+
+   #undef _WIN32_WINNT
+   #define _WIN32_WINNT 0x0600
+
+   /* Standard includes. */
+   #include 
+   #include 
+   #include 
+
+/*******************************************************************************
+ * The Win32 port by default saves the trace to file and then kills the
+ * program when the recorder is stopped, to facilitate quick, simple tests
+ * of the recorder.
+ ******************************************************************************/
+   #define WIN32_PORT_SAVE_WHEN_STOPPED 1
+   #define WIN32_PORT_EXIT_WHEN_STOPPED 1
+
+#endif
+
+#define DIRECTION_INCREMENTING 1
+#define DIRECTION_DECREMENTING 2
+
+/******************************************************************************
+ * Supported ports
+ * 
+ * PORT_HWIndependent
+ * A hardware independent fallback option for event timestamping. Provides low 
+ * resolution timestamps based on the OS tick.
+ * This may be used on the Win32 port, but may also be used on embedded hardware 
+ * platforms. Note that this gives suboptimal display in FreeRTOS+Trace. All 
+ * time durations will be truncated to the OS tick frequency, typically 1 KHz. 
+ * This means that a task or ISR that executes in less than 1 ms get an exection 
+ * time of zero. They are however still visible in FreeRTOS+Trace. 
+ *
+ * PORT_Win32
+ * "Accurate" timestamping based on the Windows permance counter. Note that
+ * this gives the host machine time, not the simulated FreeRTOS time (tick 
+ * count). The timing of the Win32 FreeRTOS build is not real-time, since it 
+ * depends on the scheduling and tick rate of Windows, which is very slow.
+ *
+ * Officially supported hardware specific ports included are:
+ * - PORT_Atmel_AT91SAM7
+ * - PORT_ARM_CortexM 
+ * - PORT_Renesas_RX600
+ *
+ * We also provide several "unofficial" hardware-specific ports. There have 
+ * been developed by external contributors, and have not yet been verified 
+ * by Percepio AB. Let us know if you have problems getting these to work.
+ * 
+ * Unoffical hardware specific ports provided are:
+ * - PORT_TEXAS_INSTRUMENTS_TMS570
+ * - PORT_TEXAS_INSTRUMENTS_MSP430
+ * - PORT_MICROCHIP_PIC32
+ * - PORT_MICROCHIP_dsPIC_AND_PIC24
+ * - PORT_XILINX_PPC405
+ * - PORT_XILINX_PPC440
+ *
+ ******************************************************************************/
+
+#define PORT_NOT_SET                        -1
+
+/* Officially supported ports */
+#define PORT_HWIndependent 					0
+#define PORT_Win32 							1
+#define PORT_Atmel_AT91SAM7 				2
+#define PORT_ARM_CortexM 					3
+#define PORT_Renesas_RX600 					4
+
+/* Unofficial ports, provided by external developers and not yet verified */
+#define PORT_TEXAS_INSTRUMENTS_TMS570 		6
+#define PORT_TEXAS_INSTRUMENTS_MSP430		7
+#define PORT_MICROCHIP_PIC32				8
+#define PORT_MICROCHIP_dsPIC_AND_PIC24		9
+#define PORT_XILINX_PPC405					10
+#define PORT_XILINX_PPC440					11
+
+/*** Select your port here! **************************************************/
+#define SELECTED_PORT PORT_Win32
+/*****************************************************************************/
+
+/*******************************************************************************
+ * IRQ_PRIORITY_ORDER
+ *
+ * Macro which should be defined as an integer of 0 or 1.
+ *
+ * This should be 0 if lower irq priority values implies higher priority 
+ * levels, such as on ARM Cortex M. If the opposite scheme is used, i.e., 
+ * if higher irq priority values means higher priority, this should be 1.
+ *
+ * This setting is not critical. It is used only to sort and colorize the 
+ * interrupts in priority order, in case you record interrupts using
+ * the vTraceStoreISRBegin and vTraceStoreISREnd routines.
+ *
+ * We provide this setting for some hardware architectures below:
+ * - ARM Cortex M:      0  (lower irq priority values are more significant)
+ * - Atmel AT91SAM7x:   1  (higher irq priority values are more significant)
+ * - Renesas RX62N:     1  (higher irq priority values are more significant)
+ * - Microchip PIC24:   0  (lower irq priority values are more significant)
+ * - Microchip dsPIC:   0  (lower irq priority values are more significant)
+ * - TI TMS570 (ARM Cortex R4F): 0  (lower irq priority values are more significant)
+ * - Freescale HCS08:   0  (lower irq priority values are more significant)
+ * - Freescale HCS12:   0  (lower irq priority values are more significant)
+ * - Freescale ColdFire:   1  (higher irq priority values are more significant)
+ *
+ * If your chip is not on the above list, and you perhaps know this detail by 
+ * heart, please inform us by e-mail to support@percepio.se.
+ ******************************************************************************/
+#define IRQ_PRIORITY_ORDER 0
+
+/*******************************************************************************
+ * HWTC macros
+ * 
+ * These four macros provides a hardware isolation layer, representing a 
+ * generic hardware timer/counter used for driving the operating system tick, 
+ * such as the SysTick feature of ARM Cortex M3/M4, or the PIT of the Atmel 
+ * AT91SAM7X.
+ *
+ * HWTC_COUNT: The current value of the counter. This is expected to be reset 
+ * a each tick interrupt. Thus, when the tick handler starts, the counter has 
+ * already wrapped.
+ *
+ * HWTC_COUNT_DIRECTION: Should be one of:
+ * - DIRECTION_INCREMENTING - for hardware timer/counters of incrementing type
+ *   such as the PIT on Atmel AT91SAM7X.
+ *   When the counter value reach HWTC_PERIOD, it is reset to zero and the
+ *   interrupt is signaled.
+ * - DIRECTION_DECREMENTING - for hardware timer/counters of decrementing type
+ *   such as the SysTick on ARM Cortex M3/M4 chips.
+ *   When the counter value reach 0, it is reset to HWTC_PERIOD and the
+ *   interrupt is signaled.
+ *
+ * HWTC_PERIOD: The number of increments or decrements of HWTC_COUNT between
+ * two tick interrupts. This should preferably be mapped to the reload
+ * register of the hardware timer, to make it more portable between chips in the 
+ * same family. The macro should in most cases be (reload register + 1).
+ *
+ * HWTC_DIVISOR: If the timer frequency is very high, like on the Cortex M chips
+ * (where the SysTick runs at the core clock frequency), the "differential 
+ * timestamping" used in the recorder will more frequently insert extra XTS 
+ * events to store the timestamps, which increases the event buffer usage. 
+ * In such cases, to reduce the number of XTS events and thereby get a longer 
+ * traces, you use HWTC_DIVISOR to scale down the timestamps and frequency.
+ * Assuming a OS tick rate of 1 KHz, it is suggested to keep the effective timer
+ * frequency below 65 MHz to avoid an excessive amount of XTS events. Thus, a
+ * Cortex M chip running at 72 MHZ should use a HWTC_DIVISOR of 2, while a 
+ * faster chip require a higher HWTC_DIVISOR value. 
+ *
+ * The HWTC macros and uiTracePortGetTimeStamp is the main porting issue
+ * or the trace recorder library. Typically you should not need to change
+ * the code of uiTracePortGetTimeStamp if using the HWTC macros.
+ *
+ * OFFER FROM PERCEPIO:
+ * For silicon companies and non-corporate FreeRTOS users (researchers, students,
+ * hobbyists or early-phase startups) we have an attractive offer: 
+ * Provide a hardware timer port and get a FREE single-user licence for
+ * FreeRTOS+Trace Professional Edition. Read more about this offer at 
+ * www.percepio.se or contact us directly at support@percepio.se.
+ *
+ ******************************************************************************/
+
+#if (SELECTED_PORT == PORT_Win32)
+    
+	#define HWTC_COUNT_DIRECTION DIRECTION_INCREMENTING
+    #define HWTC_COUNT (ulGetRunTimeCounterValue())
+    #define HWTC_PERIOD 0
+    #define HWTC_DIVISOR 1
+	
+#elif (SELECTED_PORT == PORT_HWIndependent)
+    
+	#define HWTC_COUNT_DIRECTION DIRECTION_INCREMENTING
+    #define HWTC_COUNT 0
+    #define HWTC_PERIOD 1
+    #define HWTC_DIVISOR 1
+	
+#elif (SELECTED_PORT == PORT_Atmel_AT91SAM7)
+
+    /* HWTC_PERIOD is hardcoded for AT91SAM7X256-EK Board (48 MHz)
+	A more generic solution is to get the period from pxPIT->PITC_PIMR */
+	
+    #define HWTC_COUNT_DIRECTION DIRECTION_INCREMENTING
+    #define HWTC_COUNT (AT91C_BASE_PITC->PITC_PIIR & 0xFFFFF)
+    #define HWTC_PERIOD 2995 
+    #define HWTC_DIVISOR 1
+
+#elif (SELECTED_PORT == PORT_ARM_CortexM)
+
+	/* For all chips using ARM Cortex M cores */
+
+    #define HWTC_COUNT_DIRECTION DIRECTION_DECREMENTING
+    #define HWTC_COUNT (*((uint32_t*)0xE000E018))
+    #define HWTC_PERIOD ((*(uint32_t*)0xE000E014) + 1)
+    #define HWTC_DIVISOR 2
+
+#elif (SELECTED_PORT == PORT_Renesas_RX600)	
+
+    #include "iodefine.h"
+
+    #define HWTC_COUNT_DIRECTION DIRECTION_INCREMENTING
+    #define HWTC_COUNT (CMT0.CMCNT)
+    #define HWTC_PERIOD ((((configPERIPHERAL_CLOCK_HZ/configTICK_RATE_HZ)-1)/8))
+    #define HWTC_DIVISOR 1
+
+#elif (SELECTED_PORT == PORT_TEXAS_INSTRUMENTS_TMS570)	/* UNOFFICIAL PORT - NOT YET VERIFIED BY PERCEPIO */
+
+    #define RTIFRC0 *((uint32_t *)0xFFFFFC10)
+    #define RTICOMP0 *((uint32_t *)0xFFFFFC50)
+    #define RTIUDCP0 *((uint32_t *)0xFFFFFC54)
+    #define HWTC_COUNT_DIRECTION DIRECTION_INCREMENTING
+    #define HWTC_COUNT (RTIFRC0 - (RTICOMP0 - RTIUDCP0))
+    #define HWTC_PERIOD (RTIUDCP0)
+    #define HWTC_DIVISOR 1
+
+#elif (SELECTED_PORT == PORT_TEXAS_INSTRUMENTS_MSP430) 
+	/* UNOFFICIAL PORT - NOT YET VERIFIED BY PERCEPIO */
+
+    #define HWTC_COUNT_DIRECTION DIRECTION_INCREMENTING
+    #define HWTC_COUNT (TA0R)
+    #define HWTC_PERIOD configCPU_CLOCKS_PER_TICK      
+    #define HWTC_DIVISOR 1
+
+#elif (SELECTED_PORT == PORT_MICROCHIP_PIC32) 	
+	/* UNOFFICIAL PORT - NOT YET VERIFIED BY PERCEPIO */
+
+    #define HWTC_COUNT_DIRECTION DIRECTION_INCREMENTING
+    #define HWTC_COUNT (ReadTimer1())	 		/* Should be available in BSP */
+    #define HWTC_PERIOD (ReadPeriod1()+1)		/* Should be available in BSP */
+    #define HWTC_DIVISOR 1
+
+#elif (SELECTED_PORT == PORT_MICROCHIP_dsPIC_AND_PIC24) 
+	/* UNOFFICIAL PORT - NOT YET VERIFIED BY PERCEPIO */
+
+    #define HWTC_COUNT_DIRECTION DIRECTION_INCREMENTING
+    #define HWTC_COUNT (PR1)
+    #define HWTC_PERIOD ((configCPU_CLOCK_HZ/portTIMER_PRESCALE)/configTICK_RATE_HZ)
+    #define HWTC_DIVISOR 1
+
+#elif (SELECTED_PORT == PORT_XILINX_PPC405) 
+	/* UNOFFICIAL PORT - NOT YET VERIFIED BY PERCEPIO */
+
+    #define HWTC_COUNT_DIRECTION DIRECTION_DECREMENTING
+    #define HWTC_COUNT  mfspr( 0x3db)
+    #define HWTC_PERIOD ( configCPU_CLOCK_HZ / configTICK_RATE_HZ )
+    #define HWTC_DIVISOR 1    
+
+#elif (SELECTED_PORT == PORT_XILINX_PPC440) 
+	/* UNOFFICIAL PORT - NOT YET VERIFIED BY PERCEPIO */
+
+	/* This should work with most PowerPC chips */
+	
+    #define HWTC_COUNT_DIRECTION DIRECTION_DECREMENTING
+    #define HWTC_COUNT  mfspr( 0x016 )
+    #define HWTC_PERIOD ( configCPU_CLOCK_HZ / configTICK_RATE_HZ )
+    #define HWTC_DIVISOR 1    
+
+#else
+    SELECTED_PORT is not set, or had unsupported value!
+    (This is to intentionally cause a compiler error.)    
+#endif
+
+#ifndef HWTC_COUNT_DIRECTION
+    HWTC_COUNT_DIRECTION is not set!
+    (This is to intentionally cause a compiler error.)    
+#endif 
+
+#ifndef HWTC_COUNT
+    HWTC_COUNT is not set!
+    (This is to intentionally cause a compiler error.)    
+#endif 
+
+#ifndef HWTC_PERIOD
+    HWTC_PERIOD is not set!
+    (This is to intentionally cause a compiler error.)    
+#endif 
+
+#ifndef HWTC_DIVISOR
+    HWTC_DIVISOR is not set!
+    (This is to intentionally cause a compiler error.)    
+#endif 
+
+#ifndef IRQ_PRIORITY_ORDER
+    IRQ_PRIORITY_ORDER is not set!
+    (This is to intentionally cause a compiler error.)    
+#endif 
+
+#if (IRQ_PRIORITY_ORDER != 0) && (IRQ_PRIORITY_ORDER != 1)
+    IRQ_PRIORITY_ORDER has bad value!
+    (This is to intentionally cause a compiler error.)    
+#endif 
+
+#if (HWTC_DIVISOR < 1)
+    HWTC_DIVISOR must be a non-zero positive value!
+    (This is to intentionally cause a compiler error.)    
+#endif 
+
+#if ((IRQ_PRIORITY_ORDER != 0) && (IRQ_PRIORITY_ORDER != 1))
+IRQ_PRIORITY_ORDER not set!
+(This is to intentionally cause a compiler error.)
+#endif
+
+/*******************************************************************************
+ * vTraceConsoleMessage
+ *
+ * A wrapper for your system-specific console "printf" console output function.
+ * This needs to be correctly defined to see status reports from the trace 
+ * status monitor task (this is defined in trcUser.c).
+ ******************************************************************************/         
+#define vTraceConsoleMessage printf
+
+/*******************************************************************************
+ * uiTracePortGetTimeStamp
+ *
+ * Returns the current time based on the HWTC macros which provide a hardware
+ * isolation layer towards the hardware timer/counter.
+ *
+ * The HWTC macros and uiTracePortGetTimeStamp is the main porting issue
+ * or the trace recorder library. Typically you should not need to change
+ * the code of uiTracePortGetTimeStamp if using the HWTC macros.
+ *
+ * OFFER FROM PERCEPIO:
+ * For silicon companies and non-corporate FreeRTOS users (researchers, 
+ * students, hobbyists or early-phase startups) we have an attractive offer: 
+ * Provide a hardware timer port and get a FREE single-user licence for
+ * FreeRTOS+Trace Professional Edition. Read more about this offer at 
+ * www.percepio.se or contact us directly at support@percepio.se.
+ ******************************************************************************/
+uint32_t uiTracePortGetTimeStamp(void);
+
+/*******************************************************************************
+ * vTracePortSetFrequency
+ *
+ * Registers the frequency of the timer used. This is normally calculated 
+ * automatically from the HWTC macros, but the Win32 port requires a special 
+ * solution where the frequency can be set independently of the HWTC macros.
+ * This is called from main in the Win32 demo program.
+ ******************************************************************************/
+void vTracePortSetFrequency(uint32_t freq);
+
+/*******************************************************************************
+ * vTracePortEnd
+ * 
+ * This function is called when the recorder is stopped due to full buffer.
+ * Mainly intended to show a message in the console.
+ * This is used by the Win32 port to store the trace to a file. The file path is
+ * set using vTracePortSetFileName.
+ ******************************************************************************/
+void vTracePortEnd(void);
+
+#if (INCLUDE_SAVE_TO_FILE == 1)
+
+/*******************************************************************************
+ * vTracePortSetOutFile
+ *
+ * Sets the filename/path used in vTracePortSave.
+ * This is set in a separate function, since the Win32 port calls vTracePortSave
+ * in vTracePortEnd if WIN32_PORT_SAVE_WHEN_STOPPED is set.
+ ******************************************************************************/
+void vTracePortSetOutFile(char* path);
+
+/******************************************************************************
+ * vTracePortSave
+ *
+ * Saves the trace to a file on a target-side file system. The path is set in a 
+ * separate function, vTracePortSetOutFile, since the Win32 port may call
+ * vTracePortSave in vTracePortEnd, if using WIN32_PORT_SAVE_WHEN_STOPPED.
+ ******************************************************************************/
+void vTracePortSave(void);
+
+#endif
+
+#endif
diff --git a/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/UDPCommandServer.c b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/UDPCommandServer.c
new file mode 100644
index 000000000..b4b83369d
--- /dev/null
+++ b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/UDPCommandServer.c
@@ -0,0 +1,259 @@
+/*
+    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.
+
+
+    ***************************************************************************
+     *                                                                       *
+     *    FreeRTOS tutorial books are available in pdf and paperback.        *
+     *    Complete, revised, and edited pdf reference manuals are also       *
+     *    available.                                                         *
+     *                                                                       *
+     *    Purchasing FreeRTOS documentation will not only help you, by       *
+     *    ensuring you get running as quickly as possible and with an        *
+     *    in-depth knowledge of how to use FreeRTOS, it will also help       *
+     *    the FreeRTOS project to continue with its mission of providing     *
+     *    professional grade, cross platform, de facto standard solutions    *
+     *    for microcontrollers - completely free of charge!                  *
+     *                                                                       *
+     *    >>> See http://www.FreeRTOS.org/Documentation for details. <<<     *
+     *                                                                       *
+     *    Thank you for using FreeRTOS, and thank you for your support!      *
+     *                                                                       *
+    ***************************************************************************
+
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    >>>NOTE<<< The modification to the GPL is included to allow you to
+    distribute a combined work that includes FreeRTOS without being obliged to
+    provide the source code for proprietary components outside of the FreeRTOS
+    kernel.  FreeRTOS is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+    
+    ***************************************************************************
+     *                                                                       *
+     *    Having a problem?  Start by reading the FAQ "My application does   *
+     *    not run, what could be wrong?                                      *
+     *                                                                       *
+     *    http://www.FreeRTOS.org/FAQHelp.html                               *
+     *                                                                       *
+    ***************************************************************************
+
+    
+    http://www.FreeRTOS.org - Documentation, training, latest information, 
+    license and contact details.
+    
+    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
+    including FreeRTOS+Trace - an indispensable productivity tool.
+
+    Real Time Engineers ltd license FreeRTOS to High Integrity Systems, who sell 
+    the code with commercial support, indemnification, and middleware, under 
+    the OpenRTOS brand: http://www.OpenRTOS.com.  High Integrity Systems also
+    provide a safety engineered and independently SIL3 certified version under 
+    the SafeRTOS brand: http://www.SafeRTOS.com.
+*/
+
+#pragma comment( lib, "ws2_32.lib" )
+
+/* Win32 includes. */
+#include 
+
+/* FreeRTOS includes. */
+#include "FreeRTOS.h"
+#include "task.h"
+
+/* FreeRTOS+CLI includes. */
+#include "FreeRTOS_CLI.h"
+
+/* Dimensions the buffer into which input characters are placed. */
+#define cmdMAX_INPUT_SIZE	60
+
+/* Dimensions the buffer into which string outputs can be placed. */
+#define cmdMAX_OUTPUT_SIZE	1024
+
+/* Dimensions the buffer passed to the recvfrom() call. */
+#define cmdSOCKET_INPUT_BUFFER_SIZE 60
+
+/*
+ * Open and configure the UDP socket.
+ */
+static SOCKET prvOpenUDPSocket( void );
+
+/*-----------------------------------------------------------*/
+
+/* 
+ * Task that provides the input and output for the FreeRTOS+CLI command
+ * interpreter.  In this case a UDP port is used.  See the URL in the comments
+ * within main.c for the location of the online documentation.
+ */
+void vUDPCommandInterpreterTask( void *pvParameters )
+{
+long lBytes, lByte;
+signed char cInChar, cInputIndex = 0;
+static signed char cInputString[ cmdMAX_INPUT_SIZE ], cOutputString[ cmdMAX_OUTPUT_SIZE ], cLocalBuffer[ cmdSOCKET_INPUT_BUFFER_SIZE ];
+portBASE_TYPE xMoreDataToFollow;
+volatile int iErrorCode = 0;
+struct sockaddr_in xClient;
+int xClientAddressLength = sizeof( struct sockaddr_in );
+SOCKET xSocket;
+
+	/* Just to prevent compiler warnings. */
+	( void ) pvParameters;
+
+	/* Attempt to open the socket. */
+	xSocket = prvOpenUDPSocket();
+
+	if( xSocket != INVALID_SOCKET )
+	{
+		for( ;; )
+		{
+			/* Wait for incoming data on the opened socket. */
+			lBytes = recvfrom( xSocket, cLocalBuffer, sizeof( cLocalBuffer ), 0, ( struct sockaddr * ) &xClient, &xClientAddressLength );
+
+			if( lBytes == SOCKET_ERROR )
+			{
+				/* Something went wrong, but it is not handled by this simple
+				example. */
+				iErrorCode = WSAGetLastError();
+			}
+			else
+			{				
+				/* Process each received byte in turn. */
+				lByte = 0;
+				while( lByte < lBytes )
+				{
+					/* The next character in the input buffer. */
+					cInChar = cLocalBuffer[ lByte ];
+					lByte++;
+
+					/* Newline characters are taken as the end of the command
+					string. */
+					if( cInChar == '\n' )
+					{
+						/* Process the input string received prior to the 
+						newline. */
+						do
+						{
+							/* Pass the string to FreeRTOS+CLI. */
+							xMoreDataToFollow = FreeRTOS_CLIProcessCommand( cInputString, cOutputString, cmdMAX_OUTPUT_SIZE );
+							
+							/* Send the output generated by the command's
+							implementation. */
+							sendto( xSocket, cOutputString,  strlen( cOutputString ), 0, ( SOCKADDR * ) &xClient, xClientAddressLength );
+
+						} while( xMoreDataToFollow != pdFALSE ); /* Until the command does not generate any more output. */
+
+						/* All the strings generated by the command processing 
+						have been sent.  Clear the input string ready to receive 
+						the next command. */
+						cInputIndex = 0;
+						memset( cInputString, 0x00, cmdMAX_INPUT_SIZE );
+						
+						/* Transmit a spacer, just to make the command console
+						easier to read. */
+						sendto( xSocket, "\r\n",  strlen( "\r\n" ), 0, ( SOCKADDR * ) &xClient, xClientAddressLength );
+					}
+					else
+					{
+						if( cInChar == '\r' )
+						{
+							/* Ignore the character.  Newlines are used to 
+							detect the end of the input string. */
+						}
+						else if( cInChar == '\b' )
+						{
+							/* Backspace was pressed.  Erase the last character 
+							in the string - if any. */
+							if( cInputIndex > 0 )
+							{
+								cInputIndex--;
+								cInputString[ cInputIndex ] = '\0';
+							}
+						}
+						else
+						{
+							/* A character was entered.  Add it to the string
+							entered so far.  When a \n is entered the complete
+							string will be passed to the command interpreter. */
+							if( cInputIndex < cmdMAX_INPUT_SIZE )
+							{
+								cInputString[ cInputIndex ] = cInChar;
+								cInputIndex++;
+							}
+						}
+					}
+				}
+			}
+		} 
+	}
+	else
+	{
+		/* The socket could not be opened. */
+		vTaskDelete( NULL );
+	}
+}
+/*-----------------------------------------------------------*/
+
+static SOCKET prvOpenUDPSocket( void )
+{
+WSADATA xWSAData;
+WORD wVersionRequested;
+struct sockaddr_in xServer;
+SOCKET xSocket = INVALID_SOCKET;
+
+	wVersionRequested = MAKEWORD( 2, 2 );
+
+	/* Prepare to use WinSock. */
+	if( WSAStartup( wVersionRequested, &xWSAData ) != 0 )
+	{
+		fprintf( stderr, "Could not open Windows connection.\n" );
+	}
+	else
+	{
+		xSocket = socket( AF_INET, SOCK_DGRAM, 0 );
+		if( xSocket == INVALID_SOCKET)
+		{
+			fprintf( stderr, "Could not create socket.\n" );
+			WSACleanup();
+		}
+		else
+		{
+			/* Zero out the server structure. */
+			memset( ( void * ) &xServer, 0x00, sizeof( struct sockaddr_in ) );
+
+			/* Set family and port. */
+			xServer.sin_family = AF_INET;
+			xServer.sin_port = htons( configUDP_CLI_PORT_NUMBER );
+
+			/* Assign the loopback address */
+			xServer.sin_addr.S_un.S_un_b.s_b1 = 127;
+			xServer.sin_addr.S_un.S_un_b.s_b2 = 0;
+			xServer.sin_addr.S_un.S_un_b.s_b3 = 0;
+			xServer.sin_addr.S_un.S_un_b.s_b4 = 1;
+
+			/* Bind the address to the socket. */
+			if( bind( xSocket, ( struct sockaddr * ) &xServer, sizeof( struct sockaddr_in ) ) == -1 )
+			{
+				fprintf( stderr, "Could not socket to port %d.\n", configUDP_CLI_PORT_NUMBER );
+				closesocket( xSocket );
+				xSocket = INVALID_SOCKET;
+				WSACleanup();
+			}
+		}
+	}
+
+	return xSocket;
+}
+
+
diff --git a/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/WIN32.vcxproj b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/WIN32.vcxproj
new file mode 100644
index 000000000..cef710848
--- /dev/null
+++ b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/WIN32.vcxproj
@@ -0,0 +1,166 @@
+
+
+  
+    
+      Debug
+      Win32
+    
+    
+      Release
+      Win32
+    
+  
+  
+    {C686325E-3261-42F7-AEB1-DDE5280E1CEB}
+    RTOSDemo
+  
+  
+  
+    Application
+    false
+    MultiByte
+  
+  
+    Application
+    false
+    MultiByte
+  
+  
+  
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+  
+    <_ProjectFileVersion>10.0.30319.1
+    .\Debug\
+    .\Debug\
+    true
+    .\Release\
+    .\Release\
+    false
+  
+  
+    
+      .\Debug/WIN32.tlb
+      
+      
+    
+    
+      Disabled
+      ..\..\FreeRTOS-Plus-Trace\Include;..\..\..\FreeRTOS\Source\include;..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\FreeRTOS-Plus-CLI;.\Trace_Recorder_Configuration;.;%(AdditionalIncludeDirectories)
+      WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+      true
+      EnableFastChecks
+      MultiThreadedDebug
+      .\Debug/WIN32.pch
+      .\Debug/
+      .\Debug/
+      .\Debug/
+      Level4
+      true
+      false
+      EditAndContinue
+    
+    
+      _DEBUG;%(PreprocessorDefinitions)
+      0x0c09
+    
+    
+      .\Debug/RTOSDemo.exe
+      true
+      true
+      .\Debug/WIN32.pdb
+      Console
+      MachineX86
+      %(AdditionalDependencies)
+      
+      
+    
+    
+      true
+      .\Debug/WIN32.bsc
+    
+  
+  
+    
+      .\Release/WIN32.tlb
+      
+      
+    
+    
+      MaxSpeed
+      OnlyExplicitInline
+      _WINSOCKAPI_;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+      true
+      MultiThreaded
+      true
+      .\Release/WIN32.pch
+      .\Release/
+      .\Release/
+      .\Release/
+      Level3
+      true
+      ..\Common\Utils;..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap;..\Common\ethernet\lwip-1.4.0\src\include\ipv4;..\Common\ethernet\lwip-1.4.0\src\include;..\..\Source\include;..\..\Source\portable\MSVC-MingW;..\Common\ethernet\lwip-1.4.0\ports\win32\include;..\Common\Include;.\lwIP_Apps;.;%(AdditionalIncludeDirectories)
+    
+    
+      NDEBUG;%(PreprocessorDefinitions)
+      0x0c09
+    
+    
+      .\Release/RTOSDemo.exe
+      true
+      .\Release/WIN32.pdb
+      Console
+      MachineX86
+      ..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap
+      wpcap.lib;%(AdditionalDependencies)
+    
+    
+      true
+      .\Release/WIN32.bsc
+    
+  
+  
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+      %(AdditionalIncludeDirectories)
+      %(PreprocessorDefinitions)
+      %(PreprocessorDefinitions)
+    
+    
+    
+  
+  
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+  
+  
+  
+  
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/WIN32.vcxproj.filters b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/WIN32.vcxproj.filters
new file mode 100644
index 000000000..39ba0b2a0
--- /dev/null
+++ b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/WIN32.vcxproj.filters
@@ -0,0 +1,124 @@
+
+
+  
+    
+      {38712199-cebf-4124-bf15-398f7c3419ea}
+      ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe
+    
+    
+      {34567deb-d5ab-4a56-8640-0aaec609521a}
+      cpp;c;cxx;rc;def;r;odl;idl;hpj;bat
+    
+    
+      {af3445a1-4908-4170-89ed-39345d90d30c}
+    
+    
+      {f32be356-4763-4cae-9020-974a2638cb08}
+      *.c
+    
+    
+      {88f409e6-d396-4ac5-94bd-7a99c914be46}
+    
+    
+      {e5ad4ec7-23dc-4295-8add-2acaee488f5a}
+    
+    
+      {629e761f-e8a8-430e-b44e-f38d83292b54}
+    
+    
+      {e17028e8-51ed-45af-8aa4-22ade709b3fb}
+    
+    
+      {c0e94729-2842-4a9f-8549-a84a12f6f755}
+    
+    
+      {19ff1a34-36de-4c48-9d10-3fb1fa0d1fa4}
+      h;hpp;hxx;hm;inl
+    
+    
+      {fd43c0ed-fdbc-437f-a5a3-c50399690bd7}
+    
+    
+      {91dffc7b-279b-44f6-a2b2-f5d2e132a85d}
+    
+  
+  
+    
+      Demo App Source
+    
+    
+      FreeRTOS\Source\Portable
+    
+    
+      FreeRTOS\Source\Portable
+    
+    
+      FreeRTOS\Source
+    
+    
+      FreeRTOS\Source
+    
+    
+      FreeRTOS\Source
+    
+    
+      FreeRTOS\Source
+    
+    
+      FreeRTOS+\FreeRTOS+Trace
+    
+    
+      FreeRTOS+\FreeRTOS+Trace
+    
+    
+      FreeRTOS+\FreeRTOS+Trace
+    
+    
+      FreeRTOS+\FreeRTOS+Trace
+    
+    
+      FreeRTOS+\FreeRTOS+CLI
+    
+    
+      Demo App Source
+    
+    
+      Demo App Source
+    
+    
+      Demo App Source
+    
+  
+  
+    
+      FreeRTOS\Configuration Files
+    
+    
+      FreeRTOS+\FreeRTOS+Trace\Include
+    
+    
+      FreeRTOS+\FreeRTOS+Trace\Include
+    
+    
+      FreeRTOS+\FreeRTOS+Trace\Include
+    
+    
+      FreeRTOS+\FreeRTOS+Trace\Include
+    
+    
+      FreeRTOS+\FreeRTOS+Trace\Include
+    
+    
+      FreeRTOS+\FreeRTOS+Trace\Configuration Files
+    
+    
+      FreeRTOS+\FreeRTOS+Trace\Configuration Files
+    
+    
+      Demo App Source\Trace Recorder Configuration
+    
+    
+      Demo App Source\Trace Recorder Configuration
+    
+  
+
\ No newline at end of file
diff --git a/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.vcxproj.user b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/WIN32.vcxproj.user
similarity index 100%
rename from Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.vcxproj.user
rename to FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/WIN32.vcxproj.user
diff --git a/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/main.c b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/main.c
new file mode 100644
index 000000000..1d5af92a4
--- /dev/null
+++ b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/main.c
@@ -0,0 +1,288 @@
+/*
+    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.
+
+
+    ***************************************************************************
+     *                                                                       *
+     *    FreeRTOS tutorial books are available in pdf and paperback.        *
+     *    Complete, revised, and edited pdf reference manuals are also       *
+     *    available.                                                         *
+     *                                                                       *
+     *    Purchasing FreeRTOS documentation will not only help you, by       *
+     *    ensuring you get running as quickly as possible and with an        *
+     *    in-depth knowledge of how to use FreeRTOS, it will also help       *
+     *    the FreeRTOS project to continue with its mission of providing     *
+     *    professional grade, cross platform, de facto standard solutions    *
+     *    for microcontrollers - completely free of charge!                  *
+     *                                                                       *
+     *    >>> See http://www.FreeRTOS.org/Documentation for details. <<<     *
+     *                                                                       *
+     *    Thank you for using FreeRTOS, and thank you for your support!      *
+     *                                                                       *
+    ***************************************************************************
+
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    >>>NOTE<<< The modification to the GPL is included to allow you to
+    distribute a combined work that includes FreeRTOS without being obliged to
+    provide the source code for proprietary components outside of the FreeRTOS
+    kernel.  FreeRTOS is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+    
+    ***************************************************************************
+     *                                                                       *
+     *    Having a problem?  Start by reading the FAQ "My application does   *
+     *    not run, what could be wrong?                                      *
+     *                                                                       *
+     *    http://www.FreeRTOS.org/FAQHelp.html                               *
+     *                                                                       *
+    ***************************************************************************
+
+    
+    http://www.FreeRTOS.org - Documentation, training, latest information, 
+    license and contact details.
+    
+    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
+    including FreeRTOS+Trace - an indispensable productivity tool.
+
+    Real Time Engineers ltd license FreeRTOS to High Integrity Systems, who sell 
+    the code with commercial support, indemnification, and middleware, under 
+    the OpenRTOS brand: http://www.OpenRTOS.com.  High Integrity Systems also
+    provide a safety engineered and independently SIL3 certified version under 
+    the SafeRTOS brand: http://www.SafeRTOS.com.
+*/
+
+/*
+ ******************************************************************************
+ * -NOTE- The Win32 port is a simulation (or is that emulation?) only!  Do not
+ * expect to get real time behaviour from the Win32 port or this demo
+ * application.  It is provided as a convenient development and demonstration
+ * test bed only.  This was tested using Windows XP on a dual core laptop.
+ *
+ * In this example, one simulated millisecond will take approximately 40ms to
+ * execute, and the timing information in the FreeRTOS+Trace logs have no
+ * meaningful units.  See the documentation page for the Windows simulator for
+ * an explanation of the slow timing:
+ * http://www.freertos.org/FreeRTOS-Windows-Simulator-Emulator-for-Visual-Studio-and-Eclipse-MingW.html
+ ******************************************************************************
+ *
+ * This is a simple FreeRTOS Windows simulator project that makes it easy to 
+ * evaluate FreeRTOS+CLI and FreeRTOS+Trace on a standard desktop PC, without
+ * any external hardware or interfaces being required.
+ *
+ * To keep everything as simple as possible, the command line interface is 
+ * accessed through a UDP socket on the default Windows loopback IP address of
+ * 127.0.0.1.  Full instructions are provided on the documentation page
+ * referenced above.
+ *
+ * Commands are provided to both start and stop a FreeRTOS+Trace recording.  
+ * Stopping a recording will result in the recorded data being saved to the
+ * hard disk, ready for viewing in the FreeRTOS+Trace graphical user interface.
+ * Again, full instructions are provided on the documentation page referenced
+ * above.
+ *
+ * A queue send task and a queue receive task are defined in this file.  The
+ * queue receive task spends most of its time blocked on the queue waiting for
+ * messages to arrive.  The queue send task periodically sends a message to the
+ * queue, causing the queue receive task to exit the Blocked state.  The
+ * priority of the queue receive task is above that of the queue send task, so
+ * it pre-empts the queue send task as soon as it leaves the Blocked state.  It
+ * then consumes the message from the queue and prints "message received" to
+ * the screen before returning to block on the queue once again.  This 
+ * sequencing is clearly visible in the recorded FreeRTOS+Trace data.
+ *
+ * Finally, a trace monitoring task is also created that prints out a message
+ * when it determines that the status of the trace has changed since it last
+ * executed.  It prints out a message when the trace has started, when the
+ * trace has stopped, and periodically when the trace is executing.
+ *
+ */
+
+/* Standard includes. */
+#include 
+#include 
+
+/* FreeRTOS includes. */
+#include 
+#include "task.h"
+#include "queue.h"
+
+/* FreeRTOS+Trace includes. */
+#include "trcUser.h"
+
+/* Priorities at which the tasks are created. */
+#define mainQUEUE_RECEIVE_TASK_PRIORITY		( tskIDLE_PRIORITY + 2 )
+#define	mainQUEUE_SEND_TASK_PRIORITY		( tskIDLE_PRIORITY + 1 )
+#define mainUDP_CLI_TASK_PRIORITY			( tskIDLE_PRIORITY )
+
+/* The rate at which data is sent to the queue.  The (simulated) 50ms value is 
+converted to ticks using the portTICK_RATE_MS constant. */
+#define mainQUEUE_SEND_FREQUENCY_MS			( 50 / portTICK_RATE_MS )
+
+/* The number of items the queue can hold.  This is 1 as the receive task
+will remove items as they are added, meaning the send task should always find
+the queue empty. */
+#define mainQUEUE_LENGTH					( 1 )
+
+/*-----------------------------------------------------------*/
+
+/*
+ * The queue send and receive tasks as described in the comments at the top of
+ * this file. 
+ */
+static void prvQueueReceiveTask( void *pvParameters );
+static void prvQueueSendTask( void *pvParameters );
+
+/*
+ * The task that implements the UDP command interpreter using FreeRTOS+CLI.
+ */
+extern void vUDPCommandInterpreterTask( void *pvParameters );
+
+/*
+ * Register commands that can be used with FreeRTOS+CLI through the UDP socket.
+ * The commands are defined in CLI-commands.c.
+ */
+extern void vRegisterCLICommands( void );
+
+/* The queue used by both tasks. */
+static xQueueHandle xQueue = NULL;
+
+/*-----------------------------------------------------------*/
+
+int main( void )
+{
+const uint32_t ulLongTime_ms = 250UL;
+
+	/* Create the queue used to pass messages from the queue send task to the
+	queue receive task. */
+	xQueue = xQueueCreate( mainQUEUE_LENGTH, sizeof( unsigned long ) );
+	
+	/* Give the queue a name for the FreeRTOS+Trace log. */
+	vTraceSetQueueName( xQueue, "DemoQ" );
+
+	/* Start the two tasks as described in the comments at the top of this
+	file. */
+	xTaskCreate( prvQueueReceiveTask,				/* The function that implements the task. */
+				( signed char * ) "Rx", 			/* The text name assigned to the task - for debug only as it is not used by the kernel. */
+				configMINIMAL_STACK_SIZE, 			/* The size of the stack to allocate to the task.  Not actually used as a stack in the Win32 simulator port. */
+				NULL,								/* The parameter passed to the task - not used in this example. */
+				mainQUEUE_RECEIVE_TASK_PRIORITY, 	/* The priority assigned to the task. */
+				NULL );								/* The task handle is not required, so NULL is passed. */
+
+	xTaskCreate( prvQueueSendTask, ( signed char * ) "TX", configMINIMAL_STACK_SIZE, NULL, mainQUEUE_SEND_TASK_PRIORITY, NULL );
+
+	/* Create the task that handles the CLI on a UDP port.  The port number
+	is set using the configUDP_CLI_PORT_NUMBER setting in FreeRTOSConfig.h. */
+	xTaskCreate( vUDPCommandInterpreterTask, ( signed char * ) "CLI", configMINIMAL_STACK_SIZE, NULL, mainUDP_CLI_TASK_PRIORITY, NULL );
+
+	/* Create the task that monitors the trace recording status, printing
+	periodic information to the display. */
+	vTraceStartStatusMonitor();
+
+	/* Register commands with the FreeRTOS+CLI command interpreter. */
+	vRegisterCLICommands();
+
+	/* Start the tasks and timer running. */
+	vTaskStartScheduler();
+
+	/* If all is well, the scheduler will now be running, and the following
+	line will never be reached.  If the following line does execute, then
+	there was insufficient FreeRTOS heap memory available for the idle and/or
+	timer tasks	to be created.  See the memory management section on the
+	FreeRTOS web site for more details (this is standard text that is not not 
+	really applicable to the Win32 simulator port). */
+	for( ;; )
+	{
+		Sleep( ulLongTime_ms );
+	}
+}
+/*-----------------------------------------------------------*/
+
+static void prvQueueSendTask( void *pvParameters )
+{
+portTickType xNextWakeTime;
+const unsigned long ulValueToSend = 100UL;
+
+	/* Remove warning about unused parameters. */
+	( void ) pvParameters;
+
+	/* Initialise xNextWakeTime - this only needs to be done once. */
+	xNextWakeTime = xTaskGetTickCount();
+
+	for( ;; )
+	{
+		/* Place this task in the blocked state until it is time to run again.
+		While in the Blocked state this task will not consume any CPU time. */
+		vTaskDelayUntil( &xNextWakeTime, mainQUEUE_SEND_FREQUENCY_MS );
+
+		/* Send to the queue - causing the queue receive task to unblock and
+		write a message to the display.  0 is used as the block time so the 
+		sending operation will not block - it shouldn't need to block as the 
+		queue should always	be empty at this point in the code, and it is an
+		error if it is not. */
+		xQueueSend( xQueue, &ulValueToSend, 0U );
+	}
+}
+/*-----------------------------------------------------------*/
+
+static void prvQueueReceiveTask( void *pvParameters )
+{
+unsigned long ulReceivedValue;
+
+	/* Remove warning about unused parameters. */
+	( void ) pvParameters;
+
+	for( ;; )
+	{
+		/* Wait until something arrives in the queue - this task will block
+		indefinitely provided INCLUDE_vTaskSuspend is set to 1 in
+		FreeRTOSConfig.h. */
+		xQueueReceive( xQueue, &ulReceivedValue, portMAX_DELAY );
+
+		/*  To get here something must have been received from the queue, but
+		is it the expected value?  If it is, write the message to the 
+		display before looping back to block on the queue again. */
+		if( ulReceivedValue == 100UL )
+		{
+			printf( "Message received!\r\n" );
+			ulReceivedValue = 0U;
+		}
+	}
+}
+/*-----------------------------------------------------------*/
+
+void vApplicationIdleHook( void )
+{
+const unsigned long ulMSToSleep = 5;
+
+	/* This function is called on each cycle of the idle task if
+	configUSE_IDLE_HOOK is set to 1 in FreeRTOSConfig.h.  Sleep to reduce CPU 
+	load. */
+	Sleep( ulMSToSleep );
+}
+/*-----------------------------------------------------------*/
+
+void vAssertCalled( void )
+{
+const unsigned long ulLongSleep = 1000UL;
+
+	taskDISABLE_INTERRUPTS();
+	for( ;; )
+	{
+		Sleep( ulLongSleep );
+	}
+}
+/*-----------------------------------------------------------*/
+
diff --git a/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/FreeRTOSConfig.h b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/FreeRTOSConfig.h
new file mode 100644
index 000000000..3655007a9
--- /dev/null
+++ b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/FreeRTOSConfig.h
@@ -0,0 +1,136 @@
+/*
+    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.
+
+
+    ***************************************************************************
+     *                                                                       *
+     *    FreeRTOS tutorial books are available in pdf and paperback.        *
+     *    Complete, revised, and edited pdf reference manuals are also       *
+     *    available.                                                         *
+     *                                                                       *
+     *    Purchasing FreeRTOS documentation will not only help you, by       *
+     *    ensuring you get running as quickly as possible and with an        *
+     *    in-depth knowledge of how to use FreeRTOS, it will also help       *
+     *    the FreeRTOS project to continue with its mission of providing     *
+     *    professional grade, cross platform, de facto standard solutions    *
+     *    for microcontrollers - completely free of charge!                  *
+     *                                                                       *
+     *    >>> See http://www.FreeRTOS.org/Documentation for details. <<<     *
+     *                                                                       *
+     *    Thank you for using FreeRTOS, and thank you for your support!      *
+     *                                                                       *
+    ***************************************************************************
+
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    >>>NOTE<<< The modification to the GPL is included to allow you to
+    distribute a combined work that includes FreeRTOS without being obliged to
+    provide the source code for proprietary components outside of the FreeRTOS
+    kernel.  FreeRTOS is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+    
+    ***************************************************************************
+     *                                                                       *
+     *    Having a problem?  Start by reading the FAQ "My application does   *
+     *    not run, what could be wrong?                                      *
+     *                                                                       *
+     *    http://www.FreeRTOS.org/FAQHelp.html                               *
+     *                                                                       *
+    ***************************************************************************
+
+    
+    http://www.FreeRTOS.org - Documentation, training, latest information, 
+    license and contact details.
+    
+    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
+    including FreeRTOS+Trace - an indispensable productivity tool.
+
+    Real Time Engineers ltd license FreeRTOS to High Integrity Systems, who sell 
+    the code with commercial support, indemnification, and middleware, under 
+    the OpenRTOS brand: http://www.OpenRTOS.com.  High Integrity Systems also
+    provide a safety engineered and independently SIL3 certified version under 
+    the SafeRTOS brand: http://www.SafeRTOS.com.
+*/
+
+#ifndef FREERTOS_CONFIG_H
+#define FREERTOS_CONFIG_H
+
+/*-----------------------------------------------------------
+ * Application specific definitions.
+ *
+ * These definitions should be adjusted for your particular hardware and
+ * application requirements.
+ *
+ * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
+ * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
+ * http://www.freertos.org/a00110.html
+ *----------------------------------------------------------*/
+
+#define configUSE_PREEMPTION			1
+#define configUSE_IDLE_HOOK				1
+#define configUSE_TICK_HOOK				0
+#define configTICK_RATE_HZ				( 1000 ) /* In this non-real time simulated environment the tick frequency has to be at least a multiple of the Win32 tick frequency, and therefore very slow. */
+#define configMINIMAL_STACK_SIZE		( ( unsigned short ) 60 ) /* In this simulated case, the stack only has to hold one small structure as the real stack is part of the Win32 thread. */
+#define configTOTAL_HEAP_SIZE			( ( size_t ) 0 ) /* This parameter has no effect when heap_3.c is included in the project. */
+#define configMAX_TASK_NAME_LEN			( 7 )
+#define configUSE_TRACE_FACILITY		1
+#define configUSE_16_BIT_TICKS			0
+#define configIDLE_SHOULD_YIELD			1
+#define configUSE_CO_ROUTINES 			0
+#define configUSE_MUTEXES				1
+#define configCHECK_FOR_STACK_OVERFLOW	0 /* Not applicable to the Win32 port. */
+#define configUSE_RECURSIVE_MUTEXES		1
+#define configQUEUE_REGISTRY_SIZE		0
+#define configUSE_MALLOC_FAILED_HOOK	0
+#define configUSE_APPLICATION_TASK_TAG	0
+#define configUSE_COUNTING_SEMAPHORES	1
+#define configUSE_ALTERNATIVE_API		0
+
+#define configUSE_TIMERS				1
+#define configTIMER_TASK_PRIORITY		2
+#define configTIMER_QUEUE_LENGTH		20
+#define configTIMER_TASK_STACK_DEPTH	( configMINIMAL_STACK_SIZE * 2 )
+
+#define configMAX_PRIORITIES			( ( unsigned portBASE_TYPE ) 7 )
+#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
+
+
+/* Co-routine definitions. */
+#define configUSE_CO_ROUTINES 			0
+#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
+
+/* Set the following definitions to 1 to include the API function, or zero
+to exclude the API function. */
+
+#define INCLUDE_vTaskPrioritySet			1
+#define INCLUDE_uxTaskPriorityGet			1
+#define INCLUDE_vTaskDelete					1
+#define INCLUDE_vTaskCleanUpResources		0
+#define INCLUDE_vTaskSuspend				1
+#define INCLUDE_vTaskDelayUntil				1
+#define INCLUDE_vTaskDelay					1
+#define INCLUDE_uxTaskGetStackHighWaterMark	1
+#define INCLUDE_xTaskGetSchedulerState		1
+
+/* Run time stats gathering definitions. */
+#define configGENERATE_RUN_TIME_STATS	0
+
+extern void vAssertCalled( void );
+#define configASSERT( x ) if( ( x ) == 0 ) vAssertCalled()
+
+/* The TCP port used by both the secure client and the secure server. */
+#define configTCP_PORT_NUMBER	5001
+
+#endif /* FREERTOS_CONFIG_H */
diff --git a/Demo/WIN32-MSVC/WIN32.sln b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/FreeRTOS_Plus_CyaSSL.sln
similarity index 100%
rename from Demo/WIN32-MSVC/WIN32.sln
rename to FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/FreeRTOS_Plus_CyaSSL.sln
diff --git a/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/FreeRTOS_Plus_CyaSSL.suo b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/FreeRTOS_Plus_CyaSSL.suo
new file mode 100644
index 0000000000000000000000000000000000000000..eb8c62590a84eaf30a6c4a611998f5d7cd571cc3
GIT binary patch
literal 147456
zcmeHQ2YeL8_rIVZAObcNYyklgO-!LT2?;1tC3H_?xLk^)nMM&15K&PP6|hSYu^@8vA1yKPN5wRmSR8U0tf4@6B?B3qq?OX`~e*ewqWwzbEDR17q_vX!;bsrqRb>35r
zzH(WPF0P|o`}Wsz)iB*Z3gRk
z(gBwO1^@;EE&vPy3lFUg*!H%vIryP4{m-k}GM^^nK-s}&IMJQ!YV9&-`cP-b!zT*3=
z0l1LF&(!y6;H&!jqk*WkQnXNSP)aGvKM4Q5$dkO!x(#+TbybTw5iiI*1bbILi@^!|
z7Y|u}FQ}jlE$s#VJhXnHmJ9Jtu>Y~Z&wk6kr&@k9zvj6FwjaM`9+jXXepOZNYUxJTY1`2cwU`~O*hyQ+!))&%Eg1KtBP1MnNKppxXbUdBE0
zhOPke0rCJoV?SqqCLiE6c>wtW&)e$hg-FRS-UW~c+y@}P;5#Wu*{{3l*X(D{0LUl!
zoP2;O`#)3i0;cTq{Q&*-YxaNMCl45;pHD%`{y$8=z6>dO0N=X;X$Ig*{dxpakA5!u
zKi^~jC;#F(d5Gizyk`F|2C)D0nsiFuz;ko|=e4>2^Lhf_yB07J@Je6TrY8se)&1uC
zGcOo0Vm#SaNXKufwL*G7>Myf1p-lUk@~Be{|E?HZn&ur*p3}d?Tk0(=%Ph+)D(s)>
z8JU^mJwJA^x1$M!EDk)P-3E{h+WS6ZH#pI%m;l~)w6Wg*8~
za^PfOQBnSoyuz%aQKj)|nPr&+^NLI3`{xxFW{$}BY8Tx{mw5|I^G4+5=ar3#@6Vi;
z;*Q6AUT^KhTf*O^mlc(GSN}i>PA1usOoteNvjynRQ
zW)A+Changb%78r=S5Ca2zX$)-@Deu<-g7$Y;DyQhOIG~dkOwdFFcP&=g!h&y>`+kEXQTbUeN94yO3fcQ=puvXwHWwU%>bwl=Kf26Eb3dqK@
zSjd^|FXh@7V}YRz=UH0rV=*o!V4O_AFH`Y;0sdH~wz%$z95SC3_+DE-`ltNGzE_N|
ziFyb|eXNseF&vvY3aHZGad=nCKUVth0jz~6MLP0Zj`BM30pcfK$|$P%>*C$t*zh<4
z;~#@MBS++@8~6bJko!N!VEIKW{ywOCwiV^@A$naDL7ETL3g-j=FZdW`G1c;)h<7Qg
z@NjEXm=B!UsB57s9BdkN19J)JO;CkL>q*R;7%8X$iF;n;R`d)va!Wob#wVSXYrl~H
zBDohzAJWN4&%ea3o>G4914_@=`WyRjruMCJZB!Jx5v63o>pE(B?ltJsZJ@!nfo7Zp
ziMKnXVxF}@uaCnUN#H$gah8H7-L!jYTAy!?C+)x!y5nA|_H4W#{o9W}W=ixeTPyTG
z>H_T3s`N))MfQL48}ir^^m=ke_Wyibms&IWyG_8+jYWcPPiwFK=ag#hv6~CGP
z#G^-z(#8&h?)qum-%NFEVSCyXdMn?pso8C!Nt+!t>rOPk7?07|tI-#=elIK{qP^LB
z;=xn8X*EshuN&UVLaB|ON6S!j^J4J+Q1a1A%SVdV%e$kWx6=A^9CFO_Wc2$){H39v
z3l5M7J`jhi1f&V*_wDh&hxV6>x6@rskNq#@yjxda{M2WUe{kZ%L+bT*)qSf`{@z+=
z_nWc*hQB{pv!FW=!anl-NzK+jdG^^Ct@!q<@#l;vU^Z}E8Vg%mj2JQ0rJoe^Irgdw
zw1K~*l!3mVk3Lxn8O&&(42@TDY;@x;N63-d_?V+fIK>z*{l64<;7dX-1T+ZJ_C|4Azt{(V)pZ+_~^b;mDhCwcHotJFt0~%@QsPK(F!tb)s5MH4Z0|%(0;Gk6qYVCgL+YevXh@yR`?iYjN7Qk;!P)Aw5Z*aNLo^IytN`u6+IwO;@9Bvc$3w)s$QzaA(7
zwTE)ogh=uaA$wdTzjrFXRRt1*csA-J2X&I`dTDvqZO^RQ`sI#g<+;<>_5Y7To4G!C
zj`k#vFe=!sX~vWnS-lbE->hU9pUs5WFOUjhybsV6BFApcD3A&C8E9#?>17#vM_>Ei
z-wk?Jn>pmOR-K=qBI%cZ$`>OwZdaiFNX(}^sP`B&p-^({@e4{KO_7drPz}a=%)#PT
zDbGypvh?3Orf<)BcX#(46m6_I5cD_pyffP7_uJWaNn%NlX`juWN5Kr#-Z&>H4W6alL#BBN7Df8q%dt1BQ+)bnQaq
zmGnhjog)?H!xByVAm?D!chX9j?rN8P(wcp1&g{M5fvhEWo%w6~(8fil(M>NxFH1$5jvO*K`C1NH@(gH8EDcMg`Wt`wBEvN_5(4z)KUX7zUJY1X
zsq_AsKJwS=pM3N0?p;St%%5?WO?9DNqKKcWC#S+nQ7Il*N=oxPf0;e{_S3HaY}DwQ
zzq}ZWLEhS2=)r@dSN?o763xHFe#X*eZx#I4;<;0gS^e&%Z@lBN9W5#OdC;b`dXefV
zQ;}NT+Gj|MEK08HsbjLHO+MqS5ocU|^EJnO`Tpa{HdV>O3%1W+h_BR}yEGsq=AFjC(>`He_F4Yar>FB*+?+I<9$$
z=Fr4i6m~#Vip>H0lV*RDq+#=l->n9?vsE|H^h2#*1@4psTvi=_ur^EY_j8{coPVGy
z9SZ(fygyn0N-9cEvM<%Fsa{Z!H5dAe0TRyt5;x~LnFe^x=eAk@mbwV-AjMj{u~kdZ
zE~H3uwcrQwx40aWof#=EcS^-rG2F^>AKkW?Fe(?*}z0l^a{a4g&
zFYOz|ArIQ0Ksr)>;c#H?j%I$A>-u3*kF!QK{O9yMH`DgDoB%U51UqS!H
zXk-$A7=9kB)AGr_KP;R1!R;?Ulu>x!gS1x4QpgmyaLldJ{0p_fkW@K>S@n(F^VeK@
z(!a-!TClj|{FHANmXKS>GVI?!2xaDPGPO}8%f~iiwzF!5wfRT>YkVzq{&z8IJxjw~
z2%eXZ+)y&5?TuWp)CQyPE#NnmCUpF?_)&J{_`?||&OPm!)mRpug``JblvF>Q-H
zB>xw7RF3nsdzBsVhbjTJ1{;H6e~zg9qV2-Bf8CKJ}?|j4$Qd
zoh*zs{&Sh}7#~*ieI_1^V4HWXLXwQbK`o)Pp)NW9vSP=l;z;n?>}{%4uQ58
zD$GqoRjh>yeJaS|0{(X~sASE@i?rnMy7ss^{?m7nM?cU-8TvbUFCoVy`J~~Fd{4aX
z{~z*C$n@V9pP6x=_?Fdrsw#KMoSYs8e(BrFZwy3#G5a5;L(rgpN*@%~j1vb8r~DiN
zIHGBXFtBFx)HhbE))eb
z{s-0#eQoacdfS3SqWpmkowWOST>m|^;O<9nE53TU*EMj>;^(iH-Udc3?BCD&G|UIW
z!|O(Hm*9Re6RV*7zB#Syx?#k|*y}Glr`puAldqc4=oFhVgG!FQuDviuFyP?U$};?3
zdj4eNOB~Syf74%oF9pRKik3h98kSYVJWRPkcnq<#E?n0CwFg>!SUqO$g^M?}Xj>b7
z)sK<|LkR8vT)q6kY$PiEAh`V^l>X}h$DtvO_CA(;VzoifPgq=S$j+UU+MF`CW{lk^
z8d{mnZ%h7V*dIr0o*5ZF-dP+~q;FO`*dEicroau2pFSKaZ-!ESNgeFB7w?@^r|iAO
zH_p8C>c1O5_0tqv?d39
z(e!{a#X|ks2|p|xK@W-lY`n#q4f?YFurJaV^>ZiuV)i!hSBd`wJdOpZ;va%{p8)Wn
zEow5->i{zW*X#FgKspO>2VffDX230gTLJvdZAfPTZr88x)Kj)ApVM4@w|;)Fp7Q*p(wuGG(;L;4cn
z1pw=uI0$dxd=+4|e(zPJuLIWV*PkGL6L4uYm+Nh$@96jW+xKza<0!0?!btHU&esDz
z(x3m1^f$mpKn*U+VY1Lb^>q{|4!|`Z?eK0q4I0wgZ0B@BfVS
z7yX>?(1GA@T>k<1Q@_6p>2Cd;?;MMF{>AlPz<>IE5-J7v{rjCp=yY(Z!1iZ+Li3#+
zmD<7G-JRyGaQ7(jdIt>bm+l@|l9!q9PJ#Pwh4;YSjQ;uMr5SL7Pfp56^A;4jhZL2J
z%qz@EEh-*!;H5ae_T@KUpPuf-f0B^IdZuU|Of
zZzF#cASM1Y@Ju#CfY*F(--N4bBwQR$_}hxt0{)lfr#_`x{^@v^JcEZ5e)@3-JLv!1
z7%wyhsN%mI?~>Q?n6As;hWtV=(gbt~EBOr8W=w@oksDfiktUID_WS+8oqsj3`R6zT
zCJy0QN{QN#j19d{%nzIAe~q^&KW$mRZo%^z#bZ02dET~_-9~-f12x84HXm9whW+n}
zL#X~zpudgLRQ{fzOZu#tuUQ|*CcgO4+6Q)ZnzEc)q~9v>Gy`Opis*5!R&ZOr)N9C9cZZed8!Mv3^c
z%#s{$St%P-jw{KzWo5-3F1Vo7lj|+WER8QXu-wa2Wb=7B9c}GE9zw|#Pey+`F2~fqKg?Cp0csS!v7B2?)ACCP$2j7~b
zf6p0z@DW(ne{+0Kwfu#6mohC6C;aWjYXSdb{L|Lx6E}~5FPa{ds~
z<@hVGtKlDm56SV*34fx41}y9ULVQ!T{NwTN8oe+>A%NzCvx!-#Ol>AZ_}{CnzT&uF
zO|xjwr$QC~B)q$~w#a~U`GZSf;n4q$KuukZhco`*5*X|Me0=8ufNJ^Q!n>;acannq
zMG1{uLKXjOc()ILhjaOZ_keKf{|n%yzRlxlUH(wF-xK}N@`7SkJ_L->k?4Q$|4`Cj?c4&|b^7tS4P{#o3Vu6x(3F!dNNxD^Cp8K>?Ap@x
zm(*)*{ec3no0Zn{8+H1nkQ1#Hv%+~_tVyIVAsw8Aw=1h)YxA6R&&WB%7{)TU2(B20RGxB{h{H+(aU0=Jj{L!t*
zhJT%Lv^KB0=IUxeGiH~#QhYjJ6U0Ttle=9TVpJ;7OhCT;w?h0pZ1Nwgfw4js7ni>9{F2opKg$?d@#lsf()44dW3&ca+gCRf
ztJLrI=>bao)5rv+wRUpC#28Ox4m6hB
z2X~<8qxnLO(MXwuL~_1w*Sk{_9?bsY_4*sWT2nr3_B&wKRx&dCEczO!rT=8~+s~H{
zgpG`C&sH?#HaA+4>omozD^rr^$p1#PY~J$wi`LcacyZ17lLz#)A$
zKlk(aZ@tI20Zayddl%YPO678^j>z`rqsBPllE=heEp8c+ia;PRcCX%
zBhOOq^JTok(`}(?3@Jt(_>VOwU7dPv>z;)_W{-bw;|bU9SZUW@T)z_O3TS=&53ari
z8NZdrKQ_BmzYCHQ5;UXRrHXTk=jD&;+23a(QOqoI<}gm1IV{M`E3}<09MeL`
zF9!QGhC9Q=%o49$Hfz=&6Q{*pHzR%N%V(#yi?=H=M@j37M#|oDwWohGDHbu{v?-g0
zbR<_>TJ>3{74XjXhu{`K+F#;KRe@8-V=LZRsK4ceKM7-eu!H#7acL!G8th&9>}#B;
z&OauhMS~sT*k7Iu3BRNLIfgYvE1hcje>CB*3jaIv!XS@pVyA`ku79Rhvt8@{d#hu;
zCa=uYOTyB~;}+cG!Ib@}v!23dCC1u;edU($Wja)u+gux
znif4fHn|4!E6XBNQ4+&b;N0%@TpdO}Q~1FLvv+tiZvO{A@%xSc+CFLj@aHV%$YX&9
z0AB@6j%3CxoLq@(zW|*Q%Ar{Qxvs|>_x$+oEo<*<)%m0Uev7Y@Wmo^gZ&%lU{pAn;
z!L@KZb&`;_6DOqs(7=1QLoKs*)+I`(gnSc`pt*o
z;o0)X;mId?_l;WhS<#3q&#pd*_8v)VGWCy8=gfbd?eFHH(44nG=R5FVj{eXYfAr@c
zi2FWe{J}jSIsUMQ_!etf|7_4?C!VU~cbxz9Y2~1Z^@o2UeLz1q9H-j)iy~&<&;rm1a2nur
zKrDcydKQ51%|x02I2&*dpc$Y!fX`OzX-lN%>F04s;{g}w*L*Jt=cmAMa}(0mfHr`(
zfcAh60KU@^X(vEu{rW&Y8Zu-46q}>5M^y`a}_5@s_U-w4Z2hdl)?vM0RzyLtH
zes3Jo!GIxvp@3lk;=c^38*n+`3jN-dNHYN=03Q9G7il&i2av1Zy9((@Kt7;AzgL8G
z4B%=&iGHsPX}Nwr3h8M5d@Ryy^z-pZC+O!BkvfgP$?&}jc5wVl!3*61D5lc*HyH2E
z(m(2qKlH5zu}r=?%U+w-5#H=f05
zUf^PC%ztSh^&bSS(RivcQ}1#;2RwnjpUpaonJe0_l_SRv9OJ}Sm+{px#Xco-t6+Ljl{OoXg;22vri=?-^@U*pf2*d^+snCrL^N#rD6Zt
z->010uGjod6G}cFIq!`XbLelw{%JmNOD{7e6%nnh6laD-+nD$hQ_}o}aZr|uto980
zH@8wMl*CN*%XIj>n&(>LAt!lYGnbB?l;|RjpBQd5O|uMP%E$|IxEnho5)ce3@sm7iBj09iCHvTNe|V#9I~qXTIFT$~`zoP5q}2
z`XDtw|FDk_%zOUvq!o(>ztuD5%YRC4NUm;EH>#uAmI&+5+7CnP1*tBZ6;!Q5F$9D|
zgR;iiyGCgoSj?MnwE@Q>QXymIl2^1p`}pIU4tsOKTXn|0eAApM*PLrp*Vd?k);h6D
zC1>82*Y?GK|LeSX^{V?~t>$BH{9%sq+4$%MqYI8ZZFlpBm$iANc4Vg%?sbDU^z&I#NQJmAV)>U;?3~UxycP#Q$mL33Wo6d
zyt&Pt=#M*w1UuOO$ssxbROyfFCFbcLb;j@Pe<1swDt^wWtKv^~UjL!(eJGui^V>kz|#QcoA5r)o8Y@Ekv_!;mEukpLzkp2$X3HU?5_ZQM#fZc$<^?Q4e
z{tMU(V2pkKc0W>XD&$Om(f5D32&h%{sFj8o4#uK&p_R)
z+P_;Xj6VZ)+^YCz|p!Lva90%9v_tW?*c7M23!Z=xNtqvsel^*H|qDM=_&V2ycIAV
za2sF-fWNr|>7DxdETppmF9Gh>@7;^^KK=Xwqz?k-=-2a*&IddMSfJlqi1ZP_qx$vZ
zNEZQ~(65&ueG;%#zkV9&GQe{EdIi#zfM@mV=aIeucu~K88R?Ju`SlnBS%z0}{Tg7c
ze*X=mZvx)Zuh$`c7w{h7eZU6*{_aDh>-F=^NIwB=0BqFneTwumz~}n)7f81NzSOV3
zLb?s`HQ*cl-gij92mGL4AC0m4C!Fs9{0#U-zyB}N-vK-I>pzkH1=yuu|Bdt?z#jd2
zFVg??^XeS`0XZ*xxULCKQ52t}F7Byl7uhQ6n40^cRSA?~8fjcf@6%=3Khw@@lkw|W
z)7PH2@eC>Mn)3{6yqv}HweVU$Eay*Xqgfwieez&x&78FoYpuk7EwtoQH|+TJ`q)M%
zzkbE86-(!CZq;UUf1CD|yJj$WKsCTo0Mc`Pq%{D?=+_K7TpMsKppJg8F4B7X`B_N&
z16~E31UMPc0KjjZs;7;Ro(4EwzdjRbV?ZpRiGHsg()$7T0-6KP0ki^~3up;A55RB6
zA&m!IpkF5
z7hnLO51=ogAAtF}2kC76d?3<6fWi9pP^7~E8GsQ0H{f!>6#)L0kcsm`Kmi~N;00s@
zasYguhx97INI<@RPyTisuCE4^07?O606wcgItp+NU<_a^K>p@doKFB;3z!HX{TQ>5
zRYSef+QVg@a;GIZ-F1@u!-m~wAc!+U_>yd7lYV|lq)*?7bBIz
z#>>re-T0LeHd^D;7-6yz$^f1?JlHu1MUIb
ztKYjH=>vcV0dw?w^N`L5JOo&v-&=_E5&irzq>t<8Pw43qq)!5t>eo*rT?SaLUju!W
z9iJc%8vq*tn;i1970yQz-*h@s@j@Nsfrm4G$N7(t_uqIHcxC*XgSP&GivY<|
z3-Mp9pTF+b>Aij#^HM>z
zfvVK{3H;j1iG$CaX6qv`SCI01Vgweun2o|6!#|tSo^?k>-V5CaM9yAv>>{tO27Xfm
za5SJgfcK6;dLp0}pf=!GKpg;|)kRtlP+z}30qL3g`N>Ed15N>)s^4pb^fbWffHU-a
zXCaLRw9v2l-KIEi251gAN56kA(w2bp09^n{fOx-?{!5w8E~O~or1I*AQg}X=m)qIa1r2QKu^FWfL?&!0Dhydp7z(%0Z7vU0|A2o
z#egAzp@3n4;eg8k{B1VUD*zdQD*>4R-uEEQ0(kZ79HhB`Jit}@y?mqvfI>i#e(!3e
zC4f>u8K4|64loKZ8ZZVh7H|!Kc*g7LwMZudaO?k%|KS=i``?IjuGFUkjM&AKKDXp~
zaR3Ixp~SjjLtg8j=iT#u%Uva_Q{%M7*B;GEDFbGbx4P0i9o$&kT~<_-j~L7{WM=H(
zywdW_{Mhue@~pg~*u(@xVMb_YPf3}(w8Z1iD=hQoyGzSTJO#z^nWeO99|*(AbJs9`
z=Oo)W)6Q$c)4U_fbL76Nc9Enz`lIq+5LFV1{UZ&PYPZmaYY)vE&~jMfmJz}w>aB^Z
zUi#~(Z{HeIQF_!0*F|0HpjxaHtc@Hh@o$VQ82&dIkdEXQ*4ELC11*PexrMWsNsyys
zwAQ_ZriU6ick<;VT??2&t4y?GNRR4!f2hCdlv|^p7#?;akM)qp`61VDIDT~ozwxCOE6cMB
zStxc+ZxExxa>KEdWSC-IRhCADG{UaIV#U%byzWuMhJy&-6{+JHvUkhWP+J#P!T4=%
z9CO+}@KVC2^V)y=ZQ6)eS6q7RZ8zCam07<1IKuMVMP!aF&>3l+W2kSOd?U`C*b%Qu
zg!#70*_ETI$dQI$7n>>*R~RyTY}4?h3&mCmfZ-FNmlW%k!;&A&|S
z)&IldjW@pW#mLibO0sG7=-89DV=~URjJYVK|H|lG*FDYu&0l%U_9`g9>=lM29bP0Y
zYt2!MsK9ztBj$n_IXSLVmMLm^;ovKO?0@l5)h?~I^Me_0*hO{p^=EUIJR+r^-wwn2
zm(qv2{KJryC7AVLE6nbD>Z-{dx(r;_FuQzeO3rcpC#b>5vlb;>Ne5lF~xToaYAAiGsH{W;lR+bG0;
z7>2TXb?QOlcoc)wxCV}gGk)jz3s>MfR{|&*B5^!QfnRm~R~yCsAEi|4h#W6e0Ke+`
z!#2+A-(oJuH!}gM<==yMxdx6$nGm0?X2IyIh1p;}Tx!7X@%h?!@4REvDTP=5wtf3=
zKQ-cd4nNkT<&L$)sWPsxL#1g4Q+W;_Hx=6%ckskL+$;kG><*X4KL
z*?-t`!yf+Tr53C19rW(gjgT!#1TqyF#(zeNvp)(W$$xM~M2dNGVvr21+3sq0UG_@i
zgU#Bs{pj&uuKDzmaO{ur!&dpxYJZdKk!sJ|)@A9ofwg|jT3Bb}DeiX}|3FreOgZZr
z==XL1@t*we<-OVt8r$dh#-A^{%l!LD$KRbXLaL&bPILmh{ckvO${0_XXnZ4r##NQq
ze!h!ga$UP$sr%}l%lpj#eNobc%O3k?u{QXeD*T_BL1v8oOZYpV{_6H`XJ5Q??V=9L
zUwP-54>pkeWM#_~UVV0V$Dl4$yGAtWC-C??!bX0%E9?HXe~lWl=h^i)EqnXemj;k0
z$b!k#c?Yw|=*O7(HG7_!3SznLFs1RUa
z`>~8@C3P3>=fyaOWELVy(GCSE##zrceB>&}QfF<)z&-`i`pVi9bA5&AIx;flT9o=v
zbR^Dcgv%4;P*+tx{h|2u&a4(0{kUt_IA>;W8U04~JEjK54CW`cCPMnPwtHyyOZ)!I
zzR(jEU%M!vcDm{3^>4bU$K|igK5z9=9p`*?)=74p$Ziig&USA&OvQL&59Rpy{+By;gcSDx_%lhF}|hT
zzdr}%p?p&};`qf?$v>!;ivG*?V8lT7+?`GKoRwO3%LB`%rN8s}@YAnnbSP{2`M%gS
z(8>PNUSa=->r5DM>Ui9b0dklAmJ|L&&|PwnFSbAslWXz(8URZfXl943>jjhT
zg+0YT5_F*a_ki?~k3SKMgFH%bG%Zk3fcdXjthYAebkJ~T-89&F4l)H8djgwzXAUu6
znF{{O4f~i6ju-1Sh)iQTG)9bK*9g?Mh!=#_#3!mgd!a^rM*xIGk6;v3BUED^f8pN(qK#n*^AK
zGx9Le-xxelI~Y>n5+eFrK19?ttI8d4m4megXzjOGtjKpTOi6IJO-+E%QyV^T)7vmheo
z2wL$6osV}%e_<}{Jz1jL6P)yqRtodal%@M3|4flM9)0k}t@>L|_**NiKVyIG2T;X-
zKi<7a5q~S^^=BGh;^v`$HfS;xPgUptTRX@9)$~8ok1GCp(Em82&ZDxZUC7V<(SIqm
zP@)%6MT8t(2+Xfl0ks>YwUbiqWz*pOHV-9{5d?ib^D0*}>843sobILcaSmW>SiI7y
z|FvyTUNf8vbaasP*q@wWo~tJ;6sD)65Slt=6Qiv7O}@N1Jq_?=Vv+dB7u
zXmVm#W!3(l3jEUkR5=n$q+_MOzdPl!ivd-s>rj5B)FpMDTacg1UY}vae@lgAE#ki!
zT#WZ3i@4%Mf9(|f|0M0J(%(g(Kl-5YaKhge*4gHZMcisf&oxc*(%0kYwE3-$ng1
z!VX74)$(Tmw`%;&b_)DomR%Kp7VxXnALp+EAK|S3&jbDw6zjjOv-}%FX^wJ`YWWL8
zD!;S;Zx`Us2?2jU;Aae49?t#0t#~oOfASxen``V<%RdRY=jq>b#_t?|){So!hk$FPC9omnq1SVuia9?PyfcM6N@1=0A?{r+wN-g=Uh$
zf0pYnI^l1pu>K+o-zwMXL<+b!UBN!olSK!m+g!BaPfV;e?}?-deZzoM(O-`SphKlfI5e&H7Y_W3k*Rp0d0O
zue(Qy@MLq28=GC4m06Z)>&_Ng$lH8xp>4?9G=$y@7)V#fj5GV68*`&6=>1&z$Jv%k
ze`zz|yXQV`ShM}M^HLs3r_z9`68=M37)j(>Q?BI7Rk9@onnN=4XaCqIa&4=yTy+Ar
zmO3`h3{k_DtA%}I;fWcelkooBh;nC0FOg}_!DeM?Vg5!bm(jK6M_RT(a~D>7j$GM;
z*ybqdaHW!}QH!JwNsY1izWvJQ%CfKa(V`!7Cwf7Tf=*i?AKxjJ^U!M1K(c}%EBg9R
zQjg|5zO=IipNmp!Q%O~FAsYP>M0{!cxVhH&Wi7S*sK|MN@)M|EgclWV2J*A#Fr)?9
z4%V4Ts~%yj8~3-vl0LZC`{C$M6R7+~+!^fQfU<=*lTx*obmx99#w)?iu0tu$j8Jp3
zYJQdDr6YT8v?DNCb5B{oH?I9ls3UWvE#}02Mm|)oV;xOZ{51Xjys^I)a#*ayhXUm=
zxTI#SBSAZ~AgKB51i~uYlyaWG{OaT@C`T@_PLXl~dD1Mv*of-F$d#{LX!X8fOZa;-
zH3$Bx&bS$btAx=rSq!-|c`UO7!N;mBXty
z*-Na_rM2D--H|b1$|@z#R-R2>Wo)2>oxy;4x)SE-(x&ft>+8GARYZ4Gd7gZ=LH1)(
z*WvEvAfzX*jupXMupci<^}nIR*~R|Cp3Nw~^f#q{wiwMri+z#}uFsG@GR{E;MnLW>
zU5atgh(W*=8m#vsU>Sw~hDVDBSHh#k`lYx7U-Hk9`I)b0zVB5j^1-MMq~8w#(H@Hq
z&S>m!KNTT}icu~x35vbwQ99{O8ERWP&p$Z(ACv&UoJYW^2b0_@mo&7%!lwB1++p8vLDsVXCr@j^Vp#QInr09+4v2yg@7MgZeaa~Fhr0rYp{d@OY>@=wYf^y9t*z!+>Z0kZ+u0j>m4
zKjj!d2SAJXLICT2KHy=%T)+YV{h{vz%mX|Dcm(hm;86gj$Yp>_LU@PDkz*m4@0e=8~
z27Cwj7VtgbN5Bt&?SL(Sp8z`m+W{%?;BUacfPVmc0HpWY
zX!HM&9)*;XeKAPodKD`N7Ls;&`_NkLiRAP2QWSBn`IMG*&P;Rs5a)tVlM+>;Cem_X
z9!V&%ijl-u!m{SXSGvgsw$1=4HyiU${qa3o1xI5fy9hE_D$;aZbNy1jCP@-|hN}(6
zmjnP~7OVZne}7<(BNCh2l>)qDP(vPAM*88azSlyxJO+8L5hEsEL*@6@_O@zxRij~<
zSEDv+SND|n8?M>pN_y^@wNqCQW($$CnUC?~v?wF-6`rb%pA(*@ByF|q7eX>MB46{2
zt-Pq=xleX^V)h13J*Ti%vr~{q)~oq2
z$0s~A@-Hn!9B){P_m`a5u=@2azxv~!263-#pZ@kpn^JH;yCT=p2>Wl<`Y%?#&3W{)
zUq4&iu)KI^wPP>rSZgaqA3u5+gnJW}EGPa_LlD=R;Coc(=V#?r#Aim6{;XCjLt2p<
zG-)gTk#Adn-Syw}S>0ZpH|F$fM_gf3Bb0{JVu6|am5c>h3JFJQ&S&H6cL%B4NaIgM
zv;M4>MyGi-s|OG5aU-<;8-mmH{CEj@6mHE8qoe?+dAg{7q>*%f5R!ikBsZT
zCHa9ZUEO7#;=E#8Pqo1TwsQ^L9S)R|2bonwYFWL0)q=RhR_mwMZMyNPcUu&kWK(aH
zfQ2=d``U^P*t5I^MYj2L+=G3pQvLh)d%2S8-UxrcJ;L8h%a|P}b(#q^=JCYL3u7*j
zHs~D5z96Mj|NVvB`dm$(>t&_<2bLehq2Dy*&TiZL&}Tk8u5`}LQ`
zl-GUgSR0BHRt=8P{!voqRzdlF`Y(DxPeat%-?_9w}|WRbe-{?z`P*@7P_Ge)s&C7e5)<;kfEH
zG{Bkck*HDHpjqQ`CmPir!;$y#C4cN&`}ElLD~CM!e(JPtgQ7m-VuhgGR8?C*XJTP2ZW*Vpmg}Y6SJGMWPg5+iqkTR
zQ}zB!-eKO?RWiIobGf{GeU&Rk5S(BrM9lv&z$Joj#uarvo^=R((XlA`)jzUIRH0;ggpoo5u
z-Qr;N?TP;)dJ5M+&>M$VLXPm%4;kGs53)i5t|>=k4`==RK;VB(|DH4c)&Ve!+nj$Lh0_TD)$(5p{G6}j
z;e?;EqKf_ddVEV2|2@FJLc{LT`G&Fn>*kj(o3!cg%YLcY=$@K2%+sK!{#|}s9{NwU
z(Z
z++XYe2l_tg!%Q22&KHCJcIgkD@RR-%0(}Vg!{NVA0l(_}PkV*VZek
z0KY2#Z;v_VU`IIo?>XS79{~>`Hwe!-(F5*(@cX!izkG7~M=w6q_V|Bp9N7_X$(}D$
z?WfwmBfW@_Rer^FAE(v2)XQ&9&;2LCfWBX3w(
zeZVWdE+3QNIj+u%MV}w82I;{)ATl^ldP&+WETt%EmhjGakxlpLf}%Uw*&C&TdCrT@Lck2$Dh%
zV*iY3y8g4hC4>IXE#Dj={T&(om)0K<%YA0w^6&F&uB~y;%iBs~Hx^dZa-is{u>bqo
zzh%3ctqSU^gV!B9df|CjUi{#pb1
zgT9SCobgiv419!xe=G2-#($yzQ(|EBls{u`!gG2q8d5=!AMjn^SC@YigGS&Br~H2a
zzx4n4PPZR-2kmjhuwUV-Zi_q^`kSP9V>U-b3K3Sb{ul$<+k9gV-#6u+H205>HeT_4
zLYLeJo6fPFbO_#Twoeat|HE?44#+VTF(CotP<#Hfq^xOaeWdMB&Tjj+oIIaV2-`EG&j
z(rnk286iQ0y}Sz6L(1QBPO<}XRVPBd#449o)|{6*za~Fo&2xV)?$SkXh6=QUh=%=O
zou|)z^OpF8haY*qV#)63-$E7mS&fK`9xg_F8INnaQaw5IT02U1@}H6%)vS}Am2*MQ
z&YyiaweN59ublMxIkoL{Qc{}?c&fJlwsZb{N2}uSxp=7H4`zX7
z`R~Se?g6OcZ;5wR*Z)!aZ;$r_9hCp?#lwXFRs5Hs{-yof+;+5SHoicO!##2AAh~~
zQ_1TS{#a0F>cbZfj<=MCC8HmKTZ_(-2Tn_FZT7e2PF-;tAExy$PJ#Xto%+8|eIi4S
z$J^+CTlKe``(I+v8JKYN-;aR5nlk@Mbn1UG(@_>lQ;vnl3*Q2_)W4m}pX6wNkhqzu
z;NJ)Q8}t_=l{37MzQo@4W(g$~YZx;@hw0c4&J9eg?0R~tSGc(H|
z+!A&Jf2?bx^c3%3O`iC^MzhoZ8GJ5kg0)~is7F&P^6jgXo@g&L?-d>$`6G0nCv*E+
zX^6bsHr)s6(6#*c)Xn%-k0YU#<+(Zd-vU(pr~l(U|;K6&t^^i_|m-
z<0GvILW_C?H4yEc_9~|ax}jfiw_on^YDoMU2jYqP*MmPTK7rD@ltz7Zi%I2_HauFe
zYwuoKYt#O~bzP+TrvOb*3#A3DjvAc`%k%ST`@%6mab{8rl|8dsWWKEHBW#J!BK*Cz
zjt_?YTGjS7f83@iH|{-ddQL)Y@3D^!>G%a2$2>~#+`Rvj)y8SwCv?Lr_qS?2rOQok
zJk@*qu*VX)J{&^hmFV}OaQvP5b
zh{Qh=-?|IH`gANjUf2#1C=~tA$^UN_zIk5=_%B5HH7{viCP=)V&OZItnD#QL>B
z_6z^G;T~7}vyVTn>998!yj5r1%QwxLa*fb?Zd4k-14+wit|P(!P*|@rK;?m~R{r=O}T-MCVJ26c*;ggn+PWoc8
zJ^xW(30}4FPr~DxQvUa^BCbuQ=ZZ1IfA&>xz5e4rxkt77YV?>pC$)aImWkFxpI4*#
zK-6$#)}P?0ob~$t%ZG10Z}r8QJrd76WpC-8a~emv{x~Bl>?j?--*@Wlt$Q+ibsTkf
z(-qVHJIw}D7FPH9M!y?!@=vaRo8>M2+%|9lzimh(Q*Zz9n_U~GH26NgW&5kg-IT*M
z2Ws&PBH{nZQP;nUL*#!>`p*NXhlljqM&fvk2Y&VW$7HAVcOmoNNx;8G&!x)v=QRJg
z0N;8TpgR6s5BzWI_>au~PfI!dp>tj7b*Almv)^Y)T`t=8L5Jk&u_x;FBzdQ5o$1x(
zm#F#w1@3=x{Ik=9o%|Qnbm9!u1ofr@Xi!EJ0uleB&~;;s5CDSffX?~%9SPOPZ^=J%
zUGE(~<*vJr=~sLBiD?Ue>rs|K?q+T!o^$l`jYh?}5N-);^_;%@g)vvw`t_oJJl~hL
zTsiX3HZR(ItqAoY>)$v3s`^i*)ul2H0Lk1T7K0SkA_o-KiTysQR<1N}P=m|`ZU&i0%*mgMXl;|wOGbS4MoRD6DTp@my5`_lhw!U^h
ztM+g;=El4lh?=F=xJAczNZ(WEu9sS)3LbExBI~sBqAU8A|
zj-T{dvhG98na5#(8}Z)3S!KXpLh85oTIFg3#(s}%4%44Q_6I((4@Tw9{?p@`zPF5O
zCVIo8D9fSfWkEiF3gCZZzm*Z_$K?Gbpa90P65O~S%HPzF8=HMm%HT&|hPP<#+!keu
z4BY#J&3^1|JMy{fCUp2}z*9SNt~_CF?V8A$RU*GXCc1qma8AjSRAT%a(p0Xi)8zP@
zf4!#q;%{qwdhxHxxm!qu))L@W1jm9yuKadu63)$BxAMDlHr8Fbr}1g`rS>bJ0VF#0
zaOkzai)ksg=qhBn170y
zj~b;98*5dzOR%&B@PDJf;B0?u<+T1dW*)xv3_unC?ZCf88Go{q|FI7>>7NanBmn;p
z`WuniKZ+07kA!b(W$p%QmgL0v%3WC5$HWSxqo0d8<&8@+j{E1?P1pTiR`DMTXzgeI
z)go*N)|JFo-O9XT2@%-ASsu?>G^yv_Rwvf{tn=>dsZ(ZA6R~1zys^=zcJTxV>+
z;H04$r1^GBT&Rz!=Tb(DsnqpLR36mTPH?@5Jpo`ZYF
zsA_l|geUz6@&%BqtoWQ3H>nQ~0QMPv5>Xq>wlXrVRi+-S?X^SS13tCmge<>^ZS2%jqT-~Tt|ABd`>{E8uIkQdIT1M8puirGi>NY6l
zCR`6A75?Wm|4zN*F@P%nYXkm6e>om1__-=P&=Jo1kI^CV-&RiRPhu7!bF@FImcJbM
z_v!_5E`Mvs@rPr{@(}PZ1^$o;t#j4
z`g1C?)!26(486-d;LlvyF%Z3)-e=TSyqb+-psvkRW<2%OzY=cCnpf@W`fI$Ow0(V;
zo#sVepXu7FB>x5G4!a`!y|vZNrB|_i8eAW^^Z
zlzWZJ)kcz6PK*(jB)J}!YrqR!u^8RBPQZ)N#*J$cH`g4wLdJuS&iWZQTGH%^tv-Jw
z^arcFA;-*6Jwfc_Z&ZMy?Di4m>OeL9&3UYgto%m*HEf6M2OYm&AKU2U*RR;MV(Hw?
zt=ep+?a;6(YzAR+5^qK%z3?;uOBwOa2||u
z38HHe6+8MGdtu)l)V+QqQ(CMMNdK$tfg)(&02hL>?-n?v;NU4>i%zMqp{@rBWL`ro&2wTr~*Xdc%%dW2K_A+{K-MS7>@qg
z8~E2N<8Kvp`(HQUr@qL;x%{o7UjOF<|LX$168>n{e<$Ey5dwZE|5MWPVgR|5{@I|(
zaNt+B|F#Mm0i5d}9tXCiA>eNY{Pk&a#Npijj4mAbAbzeTej1=!{-(gcO8=w^ey93>
z65m=G0{-s6|9%MgwP_>$eQOd<|L+O>uZ4iWtre;1n)UxIu3rGC*8dPw`6G$FVQAwj
zGD;vRJXBrT&=vjX+FXz@8N*1(G=|qxE;Iv5!Wppt3RyEA@5#7z(e-_`uELh{7CFd+
zjJVJk*w#RZuRc`G7vC`vS}aa3{zkr#tc@mMu$=|PDi*W^fYjZ%Q!iLtvWJBwNITy1wL@F14oYd{P3spS6LJg0*
z8n)8sX#&4xd@EkFW0s&@$O%f3AKIfg>v=Nzuf>s~hsoTFKIMQvaON
zvcg)FJ4MF2hQea&_L--T)#lxd7>aH1ygT?xq83?;akzZjLC$?~?Q5|TwFT0=d@0@+
zi!r+;XT*dLQVOt^Sg<;eznqZ^d~p2XxbqTTQ5}CC#rU&E|D+0j2l+$8OWZsH=hS%e
z5b!Sy0l$O%8N;;&9{^PGF9!b2A>enCe~9`4VzyuJ4krX?7a5Pk%v~t
zZ|^>;=PTEib#1n2=|>eOcGAnh^2mcdHQ4^CRjofC?E32ut|eDJbh+or$LCj?{lMS0
zV781IiQ)=wo>lZrx%HDZp3XQq9z(sH;`
z>D9)1^EwaCR5S%FRQkSp?W*W=P7;Wyzby1>BQo}l$m`^g^BT^ak8kccQ*QQ@KN|Uv
zYpjB6f6=WoNng>PFE(aPtt&2aQPM$xXh+ZwmCvg6KSL`BG_UE~w
zrOE%R@nw#7NF0yXA%AYw-%`OJZTs5^!2h?7U+{UM6PF=sZLDr3$kg=F634PMf&Ozm
z-Z}}OTK@NdpB_CtRLbvU|67IcP@Y%CzXJGUA*Jx(p3`!*66e94;%l1wpNd?^onP$c
zfN726Y;en=7uGrPt;?=_QPCPVtzil3M1;0c5`;hk^C<1=<`KQ*7{+}%Ob0~{y`ELXMQ1pMU5%5kN2vU7T7>a~ttAV!
z{k}Ua+Ru4hw$=mb!n~HC!L&UPX+veqz*>4z+
zDGSsqW}W&V5578Qk1Nk+CDre
z&!9K`WKYfP0h@>(Ucz&b9a#!QWWmT1x=
z?bTB6Era%1plc7Wq3q+pzbMHC_YJiA0@5!o4RIo=yZU<38QMb%p7n&3Q6
zzOXU~j?VpBq%6r;HK~{@>jMwF3GhjCV?7)F_gDt*3hjn$&Not!rt5DE)c7ua5+^{j
zE`|4R4?r7yT}Iow0vLXaa{C?(jaZI3tYKPb3Q?{koLhOM9N`7Gk^YB0Q0mQk%SKDO
zIyhAAUqUP03(8?khOtWR>ddKpIjYsyg)v8jEF#7u!8gtael;0Noo_@!SJqq`V<$CL
z%4Z_qW03DgF)9**dcG@%GNg>juZQNVW3_4eS^$IV_^VJq3zX<8oci&%#+tdfEU}tz
z!~*2h*%n~!J%?9YnWfuhOOHP4sJ1s3Ze2G0^UsbMJYCMnn=Q0*oRQo!Q?ul=|IIfIBg3?cd%*R%;LO^{JasiSZH6i%MVrbi3o
z4)I{x2+$cI=j55nbDa7dW)
zw@zx8&^3RASCUT!@f4SIr$tp3+C$zPDkt^&d1tTO~q^0%_P7WNA{eF2j*W9L;oUxvtBVEdaxlujLzvDUQ233#ZlA^1|DRL{j
z_)!P^Q)G}Su^yiuFB$#uZLg=SG-FUHyjU{i8yV?&1?BmfWkn^H$W*CgGSkz0y9+Y&
z3gbQF#$A(!-j>ojwM|^Nx_$T!n9ZgJx{5cRCgPPX14%hL3@msS5rWjM(by-`im|
zW8j1SS8w6*Mt~~*2Ee~W|D;O!9oClM$U)Dd@DEdmIhV*A1N6kJPGRmg&s@gM9
z%6uhlNi7dn>jq^v#(>SmXfO2s3xIL65=M3XEI0=dlCqs{W?1CyePFvm;-u%dbx)o^
zHcX+RPelpqMvdzTpD#D!>Xn1@#zC49v#oK+8D$=>$c@7@-WRc3J+4cCer(3*29Mv`
zV8!Z`rR$sgT?;uP?VFD=2gc?A0e19JdQH?yG7#3kba*I9Z{|Sjp8`>ubu2P#-qvTn
zd-k{!*4KS-W7l)`Kh!AZy9>%5v(r5FI73o~(JCcwU`eL+%axOVNuB(^O{
zHJ{%k%0n)c&gJ?giu|n*d{e~F&Y0T&=L^=h8Z`6K_V=7tv~m&<`SoglDSBdr
z{%hH29kZ`n2DrK0JH@bTXFv}ZR!UmC&Gr)yt^^0Rektz2m;62I)Sl7LhclY~zt7O0
zaLlQwp7UdqS4;1?^S{p<-}U>hYmc$1H`b-g)xq5zZuk`kI3xZ3jp(}0ww(M?J^N>*
z6c^jaCF`fCh56!fmOt7$#-E}u{f7YZf0onfcmeWXtg`&q)+zpw50yIM=JU|m5c-Maw!tmeR=#F%`(VFQ
z843Dp+(68uXMNDB(abY@{oG;AN4wt~UL(m)E)nCMfq!Cz`k%FAl{0=@u^9OeUVmaP
z!~dNOj3Ar^p+q^T$#)A^-qHGj*hYWe)@aUm^&6sP%~Zj2D}F;8_@RpBx7Vr|e|Yq7
z-Mg#zq%BX*KJkaz{T9F6r|*clSJno1u(pA<=ZWim5tiSX|F>~k|KyWX`&|0o{R#YM
zyMD_Ve_N;clQCS&L|+Bgm@g*#t6zb?X$br`+UrmM43Ymkt-pN(#e6%2^8W+;NqYIM
zJ^Rq&U)0gL-huu|Lh?87JxcC1>DYcNe|Y%Ohwkm{J@>ta>wdCZt7%UK;%-&1KMIe3
zsPcbv{n=|$Mm(Ne*ZO~MTKelpgSV_0{?kKqrqu2lSdukr^p+!f{B*8AizeDPValg(
zWj^~y-~F#GDto<6b-h=bdAU({JPWV=jq%sK9)%iGAM_Xd7R?!CLb*=Or*V6Ic{0_!h-8#vVZf8hBWX}?ujRk5}Hzvb^e
z`D&JD?&}>I&*)Y_@5(=8gnuVTSlU=ZU4NKeCH5PG{tW(CfSRUO9QAh3
zO*j8iYsobkHnlV)uP`|&LjD&LG4=BRx@JA
z8GS5RT$5<^zhGX24a&ayJM)?chR&JMv3|c7kNUfwsUC0C=|}Xv%3K}FK0#j-?sp>g
zPo%GtU1*TJVq15ycK!`9q)66(xaFTe@XU|4_aF0YZBw1dZ%Q8?f1h8&e{cH#xco`_
zHG53VjC*SL)v3cKJyvH&RJrDdkiTjw
z%RlXu;?GE$K{gzZvmyVq3IV@U{3VH7wfvU@|EVG1cd$Rie1Z~x1yIF50{DN>Ysp_W
zFpr{-ECSK>TQ=<$>8
zJ}mmbocHsee~qmEgK^!D_bjXb-z_Ju`Mi8)y<2jIX3{&>T<3yX7+6Ye+^$qFylSp)
zap?nv2dyVNDJ#p9oD|p2lbIEln3$Cm*FHHRDJ~(Qb#klL3ED9}?clrWRZ3Mw>VFog
z{mxncZ|7+L-C&|Dovj2-;=q5-SLT21o&3*YJ_k0&(^BPs6~Nyk1pLvqKePq@cxC+U
z9PKZgQ1;J4DF0yK@22Aq93ZYNufSVkKh<35F9`+-5vHUf_;0{f;^{9!)Ln(5`GzR7
znd&w(F(X`_7V0jJ^XBeunWcH2^diqlZ&_+lK|y9=R=T&O!W*gmV(MW&{?KPCH2*eA
zoT0DimlC_vdPQTO3J>&k;nUX_?XR}#nD$y3Cn@|jJ>jp3v2tU>{$SWCoa3ws@6dZ8
zTZJD(MM@mPA1d_rlIwvz+Wb1LLzKZy%HFSdc2{XoDclc|4pU*PWG3rI&M|{
z<96UzpZ{y`Wd91e{$~TfoPT9}BJN!w`iuXSb=@Ov$Bene^#Gh>5fLRu9zWsd!i>qe
zV@EW5DXVphzv`N5MD{h`c%j_snX$C?>Gto#YyKoK|FPDlfBngbeWK>3tiA8I!nJWv
z>>E12*}qR@z1!Hf=B!-C!2eqn*WaHpDpKm9CYKxaNBP*icZ>fTV7u5j9dFHi3r2rJH*TfX=BjfZZP=`fYtD5G8o%((Yny&|_B67uSe5b5
z!T(%~zyBpZuS)gzVf;Bggz?|W|K?NR{yGHwbAi7`2>7Gz|KA4qTZVw2@lFFBTz~Kd
z9)1Tlh%$IGOEkH_g%RCTAT7PYPcce`>$Uzo~h+OeEr`%
zwx(k&@Mv}sFCx5g=8$(v;I+g512rjhq{iKL|M*V#kG}c%#kk+|@6Z2y^@n@Qw6TL&XANu>D52VU4?7I
zVcCBSkBVs8a!Vmel|t8*He8PSVyBlnhh;69rNqDzxUZLBPiRHvh=#&z(ClUHaxF!z
ztONZ!TX)svW;JVtTtmrT9}SzZu$_u_z8axL;703U-?_2{;{>lD!QG+YS
zfroJwq5nJP^@T3iGw265hRpB6iOVhJ6!ZFetKA7ii^!mXMtR1`^xfA!Ht3G;hA-V<
zl+YMgWu!sQ=TLHB91Ss>c^~j!rBoZfmSRIvvn!=}7R)U5ptl0wF1@_LXR|m~$=OqS
zOVh?j+00*lJUFZL?PgCy@$z=L7NhJ(#z;$fG+UF68BvF^3x)jPFQQAq@{DIX)%oY{ibl_E=~M5#ZNETe^wXLs6(6qaZ+&-BZg64G=1tl!JNbisQ%8L?
zb?a)fFb+4WrwE578
zMmygqWX28?)GeC;ChB9Ghzpvd)pvm_7Tl8F6xW
z`-tehgOQ78mCC5D&lz;>FI^cDm_ey#i6`U0UXK31CHs6HZ
z?<1_ds`Iig*BX@m;Oso&!C20yowO|&zPa6iUwu4xn*UA0=-?24Am)2u{1!ls35nxz
zJlrKZ&k%H2?e!zP}xyTK)$LvQZ|gntbo{yHv@cu(IqLTmjG5onInYGsr|>6KCZ(f{*Scyg|3g9Wf`l+
zYt;p6o^gIfeAAqvY5o67tAEFHpQ4-i^esF3cG@$ZwoXHm;QDh~ncVPjZ-;%jGJI^S
z>EL9vN9BPI+i5vYP;xcm#Z#77F;VASVqXMf
z_Miu3F*$o+H=`QK{pVuBPAiVeL{~OJyMg$kL%PYuhi2cFW+0*Wt_(@IKFHoBS?M-TZqX*i2XZ%JWhetfR#Hev6EU$p24OOQoFIXwC0SzdRkx1cz;M7=cM%F=|mTcOsU
z&{SS`7WOg7F7bLx%8E+eWm$J>
zuJksNNm*u*r({fV846iehJD~l)r%Q5F6qZM!lFo@P3;bJIiE0i>0VEHiFaUX|J3|E
zZ(-TM%+itS-EXUG)kD4ec@DH`*_dK)2o1VcmM|Q;t;BvPq8BRfIk@Q%Ek-c{u4InL
z_qzL}4^EBigU&X@&3o!32(4aM>|J?X57A=!3<#wq9%D36ZouP04p(&;vmz}{PDyC2
zh@!0d5J3`358R4dMQ0!$X@_c`4pH_Ir7`}C65lL)gX{cN3-$A~BTJSriY(4V!Q)J~
zd*QqpAnl_=lkfR41c-?0EYDO>?NpS%VNH2IZdJT~o^}Mw$Fj6C6}1r0DFp2}Vbz5=
zKN06?N4}V%m-#>_s^$DxEiDMT)+W&|oexT_3iKvlo2X3FcicWOguqo}xl^PC|
zRzDGy@LmIX|NK?o>F0-PC1}!MWD=q*tV~5E+$=9$%~#PN$K#Nd3__IlMQM!xqQvhX
zkPMowI!|YlX4Q;b^qY}iKsES(-+-|;Vj((nY7z@nd={|)dj)IaH5{zNDLOP|@Iz&SOZOaT7Ay7=*bgy#1?

literal 0
HcmV?d00001

diff --git a/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/SecureTCPClientTask.c b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/SecureTCPClientTask.c
new file mode 100644
index 000000000..d2f085b44
--- /dev/null
+++ b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/SecureTCPClientTask.c
@@ -0,0 +1,175 @@
+/*
+    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.
+
+
+    ***************************************************************************
+     *                                                                       *
+     *    FreeRTOS tutorial books are available in pdf and paperback.        *
+     *    Complete, revised, and edited pdf reference manuals are also       *
+     *    available.                                                         *
+     *                                                                       *
+     *    Purchasing FreeRTOS documentation will not only help you, by       *
+     *    ensuring you get running as quickly as possible and with an        *
+     *    in-depth knowledge of how to use FreeRTOS, it will also help       *
+     *    the FreeRTOS project to continue with its mission of providing     *
+     *    professional grade, cross platform, de facto standard solutions    *
+     *    for microcontrollers - completely free of charge!                  *
+     *                                                                       *
+     *    >>> See http://www.FreeRTOS.org/Documentation for details. <<<     *
+     *                                                                       *
+     *    Thank you for using FreeRTOS, and thank you for your support!      *
+     *                                                                       *
+    ***************************************************************************
+
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    >>>NOTE<<< The modification to the GPL is included to allow you to
+    distribute a combined work that includes FreeRTOS without being obliged to
+    provide the source code for proprietary components outside of the FreeRTOS
+    kernel.  FreeRTOS is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+    
+    ***************************************************************************
+     *                                                                       *
+     *    Having a problem?  Start by reading the FAQ "My application does   *
+     *    not run, what could be wrong?                                      *
+     *                                                                       *
+     *    http://www.FreeRTOS.org/FAQHelp.html                               *
+     *                                                                       *
+    ***************************************************************************
+
+    
+    http://www.FreeRTOS.org - Documentation, training, latest information, 
+    license and contact details.
+    
+    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
+    including FreeRTOS+Trace - an indispensable productivity tool.
+
+    Real Time Engineers ltd license FreeRTOS to High Integrity Systems, who sell 
+    the code with commercial support, indemnification, and middleware, under 
+    the OpenRTOS brand: http://www.OpenRTOS.com.  High Integrity Systems also
+    provide a safety engineered and independently SIL3 certified version under 
+    the SafeRTOS brand: http://www.SafeRTOS.com.
+*/
+
+#pragma comment( lib, "ws2_32.lib" )
+
+/* Win32 includes. */
+#include 
+
+/* CyaSSL includes. */
+#include "cyassl/ssl.h"
+
+/* Standard includes. */
+#include 
+#include 
+
+/* FreeRTOS includes. */
+#include "FreeRTOS.h"
+#include "task.h"
+
+/*-----------------------------------------------------------*/
+
+/* The CyaSSL context for the client. */
+static CYASSL_CTX* xCyaSSL_ClientContext = NULL;
+
+/*-----------------------------------------------------------*/
+
+/* See the comments at the top of main.c. */
+void vSecureTCPClientTask( void *pvParameters )
+{
+SOCKET xClientSocket;
+struct sockaddr_in xConnection;
+CYASSL* xCyaSSL_Object;
+WORD wVersionRequested;
+WSADATA xWSAData;
+uint8_t cString[ 50 ];
+portBASE_TYPE lReturned;
+uint32_t ulCount = 0UL;
+
+	/* Remove compiler warning about unused parameters. */
+	( void ) pvParameters;
+
+	/* Prepare to use WinSock. */
+	wVersionRequested = MAKEWORD( 2, 2 );
+	configASSERT( WSAStartup( wVersionRequested, &xWSAData ) == 0 );
+
+	/* Set family and port for client socket. */
+	memset( ( void * ) &xConnection, 0x00, sizeof( struct sockaddr_in ) );
+	xConnection.sin_family = AF_INET;
+	xConnection.sin_addr.s_addr = inet_addr("127.0.0.1");
+	xConnection.sin_port = htons( configTCP_PORT_NUMBER );
+
+    /* Attempt to create a context that uses the TLS V1 server protocol. */
+    xCyaSSL_ClientContext = CyaSSL_CTX_new( CyaTLSv1_client_method() );
+	configASSERT( xCyaSSL_ClientContext );
+
+    /* Load the CA certificate. */
+    lReturned = CyaSSL_CTX_load_verify_locations( xCyaSSL_ClientContext, "ca-cert.pem", 0 );
+	configASSERT( lReturned == SSL_SUCCESS );
+
+	for( ;; )
+	{
+		/* Create the socket. */
+		xClientSocket = socket( AF_INET, SOCK_STREAM, 0 );
+		configASSERT( xClientSocket != INVALID_SOCKET );
+
+		/* Connect to the secure server. */
+		if( connect( xClientSocket, ( SOCKADDR * ) &xConnection, sizeof( xConnection ) ) == 0 )
+		{
+			/* The connect was successful.  Create a CyaSSL object to associate 
+			with this connection. */
+			xCyaSSL_Object = CyaSSL_new( xCyaSSL_ClientContext );
+        
+			if( xCyaSSL_Object != NULL )
+			{
+				/* Associate the created CyaSSL object with the connected 
+				socket. */
+				lReturned = CyaSSL_set_fd( xCyaSSL_Object, xClientSocket );
+				configASSERT( lReturned == SSL_SUCCESS );
+
+				/* The count is used to differentiate between messages sent to
+				the server, and to break out of the do while loop below. */
+				ulCount = 0UL;
+
+				do
+				{
+					/* Create the string that is sent to the secure server. */
+					sprintf( ( char * ) cString, "Message number %lu\r\n", ulCount );
+
+					/* The next line is the secure equivalent of the standard 
+					sockets call:
+					lReturned = send( xClientSocket, cString, strlen( cString ) + 1, 0 ); */
+					lReturned = CyaSSL_write( xCyaSSL_Object, ( const char * ) cString, strlen( ( const char * ) cString ) + 1 );
+					
+					
+					/* Short delay to prevent the messages streaming up the
+					console too quickly. */
+					vTaskDelay( 5 );
+					ulCount++;
+
+				} while( ( lReturned != SOCKET_ERROR ) && ( ulCount < 10UL ) );
+			}
+						
+			CyaSSL_free( xCyaSSL_Object );
+			closesocket( xClientSocket );
+
+			/* Delay for a short time before starting over. */
+			vTaskDelay( 50 );
+		}
+	}
+}
+/*-----------------------------------------------------------*/
+
diff --git a/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/SecureTCPServerTask.c b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/SecureTCPServerTask.c
new file mode 100644
index 000000000..2068a1295
--- /dev/null
+++ b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/SecureTCPServerTask.c
@@ -0,0 +1,285 @@
+/*
+    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.
+
+
+    ***************************************************************************
+     *                                                                       *
+     *    FreeRTOS tutorial books are available in pdf and paperback.        *
+     *    Complete, revised, and edited pdf reference manuals are also       *
+     *    available.                                                         *
+     *                                                                       *
+     *    Purchasing FreeRTOS documentation will not only help you, by       *
+     *    ensuring you get running as quickly as possible and with an        *
+     *    in-depth knowledge of how to use FreeRTOS, it will also help       *
+     *    the FreeRTOS project to continue with its mission of providing     *
+     *    professional grade, cross platform, de facto standard solutions    *
+     *    for microcontrollers - completely free of charge!                  *
+     *                                                                       *
+     *    >>> See http://www.FreeRTOS.org/Documentation for details. <<<     *
+     *                                                                       *
+     *    Thank you for using FreeRTOS, and thank you for your support!      *
+     *                                                                       *
+    ***************************************************************************
+
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    >>>NOTE<<< The modification to the GPL is included to allow you to
+    distribute a combined work that includes FreeRTOS without being obliged to
+    provide the source code for proprietary components outside of the FreeRTOS
+    kernel.  FreeRTOS is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+    
+    ***************************************************************************
+     *                                                                       *
+     *    Having a problem?  Start by reading the FAQ "My application does   *
+     *    not run, what could be wrong?                                      *
+     *                                                                       *
+     *    http://www.FreeRTOS.org/FAQHelp.html                               *
+     *                                                                       *
+    ***************************************************************************
+
+    
+    http://www.FreeRTOS.org - Documentation, training, latest information, 
+    license and contact details.
+    
+    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
+    including FreeRTOS+Trace - an indispensable productivity tool.
+
+    Real Time Engineers ltd license FreeRTOS to High Integrity Systems, who sell 
+    the code with commercial support, indemnification, and middleware, under 
+    the OpenRTOS brand: http://www.OpenRTOS.com.  High Integrity Systems also
+    provide a safety engineered and independently SIL3 certified version under 
+    the SafeRTOS brand: http://www.SafeRTOS.com.
+*/
+
+#pragma comment( lib, "ws2_32.lib" )
+
+/* Win32 includes. */
+#include 
+
+/* CyaSSL includes. */
+#include "cyassl/ssl.h"
+
+/* Standard includes. */
+#include 
+#include 
+
+/* FreeRTOS includes. */
+#include "FreeRTOS.h"
+#include "task.h"
+
+/* This application is using the FreeRTOS Windows simulator, which uses the
+FreeRTOS scheduler to schedule FreeRTOS task within the Windows environment.
+The Windows envrionment must not be allowed to block any Windows threads that
+are running FreeRTOS tasks, unless the FreeRTOS task is running at the FreeRTOS
+idle priority.  For simplicity, this demo uses the Windows TCP/IP stack, the
+API for which can cause Windows threads to block.  Therefore, any FreeRTOS task
+that makes calls to the Windows TCP/IP stack must be assigned the idle prioity.
+Note this is only a restriction of the simulated Windows environment - real
+FreeRTOS ports do not have this restriction. */
+#define sstSECURE_CLIENT_TASK_PRIORITY		( tskIDLE_PRIORITY )
+
+/*-----------------------------------------------------------*/
+
+/*
+ * Open, configures and binds the server's TCP socket.
+ */
+static SOCKET prvOpenServerSocket( void );
+
+/* 
+ * Prepare the CyaSSL library for use.
+ */
+static void prvInitialiseCyaSSL( void );
+
+/*
+ * The task that implements the client side of the connection.
+ */
+extern void vSecureTCPClientTask( void *pvParameters );
+
+/*-----------------------------------------------------------*/
+
+/* The CyaSSL context for the server. */
+static CYASSL_CTX* xCyaSSL_ServerContext = NULL;
+
+/*-----------------------------------------------------------*/
+
+/* See the comments at the top of main.c. */
+void vSecureTCPServerTask( void *pvParameters )
+{
+portBASE_TYPE xReturned;
+long lBytes;
+uint8_t cReceivedString[ 60 ];
+struct sockaddr_in xClient;
+int xClientAddressLength = sizeof( struct sockaddr_in );
+SOCKET xListeningSocket, xConnectedSocket;
+CYASSL* xCyaSSL_Object; /* Only one connection is accepted at a time, so only one object is needed at a time. */
+
+	/* Just to prevent compiler warnings. */
+	( void ) pvParameters;
+
+	/* Perform the initialisation necessary before CyaSSL can be used. */
+	prvInitialiseCyaSSL();
+	configASSERT( xCyaSSL_ServerContext );
+
+	/* Attempt to open the socket. */
+	xListeningSocket = prvOpenServerSocket();
+
+	/* Now the server socket has been created and the CyaSSL library has been
+	initialised, the task that implements the client side can be created. */
+	xTaskCreate( vSecureTCPClientTask, "Client", configMINIMAL_STACK_SIZE, NULL, sstSECURE_CLIENT_TASK_PRIORITY, NULL );
+
+	if( xListeningSocket != INVALID_SOCKET )
+	{
+		for( ;; )
+		{
+			/* Wait until the client connects. */
+			printf( "Waiting for new connection\r\n" );
+			xConnectedSocket = accept( xListeningSocket, ( struct sockaddr * ) &xClient, &xClientAddressLength );
+
+			if( xConnectedSocket != INVALID_SOCKET )
+			{
+				printf( "Connection established\r\n" );
+
+				/* A connection has been accepted by the server.  Create a 
+				CyaSSL object for use with the newly connected socket. */
+				xCyaSSL_Object = NULL;
+				xCyaSSL_Object = CyaSSL_new( xCyaSSL_ServerContext );
+    
+				if( xCyaSSL_Object != NULL )
+				{
+					/* Associate the created CyaSSL object with the connected 
+					socket. */
+					xReturned = CyaSSL_set_fd( xCyaSSL_Object, xConnectedSocket );
+					configASSERT( xReturned == SSL_SUCCESS );
+
+					do
+					{
+						/* The next line is the secure equivalent to the 
+						standard sockets call:
+						lBytes = recv( xConnectedSocket, cReceivedString, 50, 0 ); */
+						lBytes = CyaSSL_read( xCyaSSL_Object, cReceivedString, sizeof( cReceivedString ) );
+						
+						/* Print the received characters. */
+						if( lBytes > 0 )
+						{
+							printf( "Received by the secure server: %s\r\n", cReceivedString );
+						}
+
+					} while ( lBytes > 0 );
+
+					/* The connection was closed, close the socket and free the
+					CyaSSL object. */
+					closesocket( xConnectedSocket );					
+					CyaSSL_free( xCyaSSL_Object );
+					printf( "Connection closed, back to start\r\n\r\n" );
+				}								
+			}
+		} 
+	}
+	else
+	{
+		/* The socket could not be opened. */
+		vTaskDelete( NULL );
+	}
+}
+/*-----------------------------------------------------------*/
+
+static SOCKET prvOpenServerSocket( void )
+{
+WSADATA xWSAData;
+WORD wVersionRequested;
+struct sockaddr_in xConnection;
+SOCKET xSocket = INVALID_SOCKET;
+
+	wVersionRequested = MAKEWORD( 2, 2 );
+
+	/* Prepare to use WinSock. */
+	if( WSAStartup( wVersionRequested, &xWSAData ) != 0 )
+	{
+		fprintf( stderr, "Could not open Windows connection.\n" );
+	}
+	else
+	{
+		xSocket = socket( AF_INET, SOCK_STREAM, 0 );
+		if( xSocket == INVALID_SOCKET)
+		{
+			fprintf( stderr, "Could not create socket.\n" );
+			WSACleanup();
+		}
+		else
+		{
+			/* Zero out the server structure. */
+			memset( ( void * ) &xConnection, 0x00, sizeof( struct sockaddr_in ) );
+
+			xConnection.sin_family = AF_INET;
+			xConnection.sin_addr.s_addr = inet_addr("127.0.0.1");
+			xConnection.sin_port = htons( configTCP_PORT_NUMBER );
+
+			/* Bind the address to the socket. */
+			if( bind( xSocket, ( struct sockaddr * ) &xConnection, sizeof( struct sockaddr_in ) ) == -1 )
+			{
+				fprintf( stderr, "Could not socket to port %d.\n", configTCP_PORT_NUMBER );
+				closesocket( xSocket );
+				xSocket = INVALID_SOCKET;
+				WSACleanup();
+			}
+
+			if( listen( xSocket, 20 ) != 0 )
+			{
+				closesocket( xSocket );
+				xSocket = INVALID_SOCKET;
+				WSACleanup();
+			}
+		}
+	}
+
+	return xSocket;
+}
+/*-----------------------------------------------------------*/
+
+static void prvInitialiseCyaSSL( void )
+{
+int32_t iReturn;
+
+	#ifdef DEBUG_CYASSL
+	{
+		CyaSSL_Debugging_ON();
+	}
+	#endif
+
+    /* Initialise CyaSSL.  This must be done before any other CyaSSL functions
+    are called. */
+    CyaSSL_Init();
+
+    /* Attempt to create a context that uses the TLS V1 server protocol. */
+    xCyaSSL_ServerContext = CyaSSL_CTX_new( CyaTLSv1_server_method() );
+
+    if( xCyaSSL_ServerContext != NULL )
+    {
+        /* Load the CA certificate.  Real applications should ensure that
+        CyaSSL_CTX_load_verify_locations() returns SSL_SUCCESS before 
+		proceeding. */
+        iReturn = CyaSSL_CTX_load_verify_locations( xCyaSSL_ServerContext, "ca-cert.pem", 0 );
+		configASSERT( iReturn == SSL_SUCCESS );
+
+		iReturn = CyaSSL_CTX_use_certificate_file( xCyaSSL_ServerContext, "server-cert.pem", SSL_FILETYPE_PEM );
+		configASSERT( iReturn == SSL_SUCCESS );
+
+		iReturn = CyaSSL_CTX_use_PrivateKey_file( xCyaSSL_ServerContext, "server-key.pem", SSL_FILETYPE_PEM );
+		configASSERT( iReturn == SSL_SUCCESS );
+    }
+}
+
+
diff --git a/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/WIN32.vcxproj b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/WIN32.vcxproj
new file mode 100644
index 000000000..31ac974c7
--- /dev/null
+++ b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/WIN32.vcxproj
@@ -0,0 +1,177 @@
+
+
+  
+    
+      Debug
+      Win32
+    
+    
+      Release
+      Win32
+    
+  
+  
+    {C686325E-3261-42F7-AEB1-DDE5280E1CEB}
+    RTOSDemo
+  
+  
+  
+    Application
+    false
+    MultiByte
+  
+  
+    Application
+    false
+    MultiByte
+  
+  
+  
+  
+  
+    
+    
+  
+  
+    
+    
+  
+  
+  
+    <_ProjectFileVersion>10.0.30319.1
+    .\Debug\
+    .\Debug\
+    true
+    .\Release\
+    .\Release\
+    false
+  
+  
+    
+      .\Debug/WIN32.tlb
+      
+      
+    
+    
+      Disabled
+      ..\..\CyaSSL;..\..\..\FreeRTOS\Source\include;..\..\..\FreeRTOS\Source\portable\MSVC-MingW;.;%(AdditionalIncludeDirectories)
+      WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;SIZEOF_LONG_LONG=8;%(PreprocessorDefinitions)
+      true
+      EnableFastChecks
+      MultiThreadedDebug
+      .\Debug/WIN32.pch
+      .\Debug/
+      .\Debug/
+      .\Debug/
+      Level4
+      true
+      false
+      EditAndContinue
+    
+    
+      _DEBUG;%(PreprocessorDefinitions)
+      0x0c09
+    
+    
+      .\Debug/RTOSDemo.exe
+      true
+      true
+      .\Debug/WIN32.pdb
+      Console
+      MachineX86
+      %(AdditionalDependencies)
+      
+      
+    
+    
+      true
+      .\Debug/WIN32.bsc
+    
+  
+  
+    
+      .\Release/WIN32.tlb
+      
+      
+    
+    
+      MaxSpeed
+      OnlyExplicitInline
+      _WINSOCKAPI_;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+      true
+      MultiThreaded
+      true
+      .\Release/WIN32.pch
+      .\Release/
+      .\Release/
+      .\Release/
+      Level3
+      true
+      ..\..\Source\include;..\..\Source\portable\MSVC-MingW;..\Common\Include;.;%(AdditionalIncludeDirectories)
+    
+    
+      NDEBUG;%(PreprocessorDefinitions)
+      0x0c09
+    
+    
+      .\Release/RTOSDemo.exe
+      true
+      .\Release/WIN32.pdb
+      Console
+      MachineX86
+      ..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap
+      wpcap.lib;%(AdditionalDependencies)
+    
+    
+      true
+      .\Release/WIN32.bsc
+    
+  
+  
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+      %(AdditionalIncludeDirectories)
+      %(PreprocessorDefinitions)
+      %(PreprocessorDefinitions)
+    
+    
+    
+  
+  
+    
+  
+  
+  
+  
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/WIN32.vcxproj.filters b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/WIN32.vcxproj.filters
new file mode 100644
index 000000000..6e8747da0
--- /dev/null
+++ b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/WIN32.vcxproj.filters
@@ -0,0 +1,144 @@
+
+
+  
+    
+      {38712199-cebf-4124-bf15-398f7c3419ea}
+      ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe
+    
+    
+      {34567deb-d5ab-4a56-8640-0aaec609521a}
+      cpp;c;cxx;rc;def;r;odl;idl;hpj;bat
+    
+    
+      {af3445a1-4908-4170-89ed-39345d90d30c}
+    
+    
+      {f32be356-4763-4cae-9020-974a2638cb08}
+      *.c
+    
+    
+      {88f409e6-d396-4ac5-94bd-7a99c914be46}
+    
+    
+      {e5ad4ec7-23dc-4295-8add-2acaee488f5a}
+    
+    
+      {8b481200-a9e5-48a4-98ad-49d2783cd652}
+    
+    
+      {738eaad9-4e49-4309-9074-c3d9e102fb4a}
+    
+  
+  
+    
+      Demo App Source
+    
+    
+      FreeRTOS\Source\Portable
+    
+    
+      FreeRTOS\Source\Portable
+    
+    
+      FreeRTOS\Source
+    
+    
+      FreeRTOS\Source
+    
+    
+      FreeRTOS\Source
+    
+    
+      FreeRTOS\Source
+    
+    
+      FreeRTOS+\CyaSSL
+    
+    
+      FreeRTOS+\CyaSSL
+    
+    
+      FreeRTOS+\CyaSSL
+    
+    
+      FreeRTOS+\CyaSSL
+    
+    
+      FreeRTOS+\CyaSSL
+    
+    
+      FreeRTOS+\CyaSSL\ctaocrypt
+    
+    
+      FreeRTOS+\CyaSSL\ctaocrypt
+    
+    
+      FreeRTOS+\CyaSSL\ctaocrypt
+    
+    
+      FreeRTOS+\CyaSSL\ctaocrypt
+    
+    
+      FreeRTOS+\CyaSSL\ctaocrypt
+    
+    
+      FreeRTOS+\CyaSSL\ctaocrypt
+    
+    
+      FreeRTOS+\CyaSSL\ctaocrypt
+    
+    
+      FreeRTOS+\CyaSSL\ctaocrypt
+    
+    
+      FreeRTOS+\CyaSSL\ctaocrypt
+    
+    
+      FreeRTOS+\CyaSSL\ctaocrypt
+    
+    
+      FreeRTOS+\CyaSSL\ctaocrypt
+    
+    
+      FreeRTOS+\CyaSSL\ctaocrypt
+    
+    
+      FreeRTOS+\CyaSSL\ctaocrypt
+    
+    
+      FreeRTOS+\CyaSSL\ctaocrypt
+    
+    
+      FreeRTOS+\CyaSSL\ctaocrypt
+    
+    
+      FreeRTOS+\CyaSSL\ctaocrypt
+    
+    
+      FreeRTOS+\CyaSSL\ctaocrypt
+    
+    
+      FreeRTOS+\CyaSSL\ctaocrypt
+    
+    
+      FreeRTOS+\CyaSSL\ctaocrypt
+    
+    
+      FreeRTOS+\CyaSSL\ctaocrypt
+    
+    
+      FreeRTOS+\CyaSSL\ctaocrypt
+    
+    
+      Demo App Source
+    
+    
+      Demo App Source
+    
+  
+  
+    
+      Demo App Source
+    
+  
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/WIN32.vcxproj.user b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/WIN32.vcxproj.user
new file mode 100644
index 000000000..695b5c78b
--- /dev/null
+++ b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/WIN32.vcxproj.user
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/ca-cert.pem b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/ca-cert.pem
new file mode 100644
index 000000000..4a9786a50
--- /dev/null
+++ b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/ca-cert.pem
@@ -0,0 +1,87 @@
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            e9:d0:a7:5f:79:25:f4:3c
+        Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.yassl.com/emailAddress=info@yassl.com
+        Validity
+            Not Before: Oct 24 18:18:15 2011 GMT
+            Not After : Jul 20 18:18:15 2014 GMT
+        Subject: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.yassl.com/emailAddress=info@yassl.com
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+            RSA Public Key: (2048 bit)
+                Modulus (2048 bit):
+                    00:bf:0c:ca:2d:14:b2:1e:84:42:5b:cd:38:1f:4a:
+                    f2:4d:75:10:f1:b6:35:9f:df:ca:7d:03:98:d3:ac:
+                    de:03:66:ee:2a:f1:d8:b0:7d:6e:07:54:0b:10:98:
+                    21:4d:80:cb:12:20:e7:cc:4f:de:45:7d:c9:72:77:
+                    32:ea:ca:90:bb:69:52:10:03:2f:a8:f3:95:c5:f1:
+                    8b:62:56:1b:ef:67:6f:a4:10:41:95:ad:0a:9b:e3:
+                    a5:c0:b0:d2:70:76:50:30:5b:a8:e8:08:2c:7c:ed:
+                    a7:a2:7a:8d:38:29:1c:ac:c7:ed:f2:7c:95:b0:95:
+                    82:7d:49:5c:38:cd:77:25:ef:bd:80:75:53:94:3c:
+                    3d:ca:63:5b:9f:15:b5:d3:1d:13:2f:19:d1:3c:db:
+                    76:3a:cc:b8:7d:c9:e5:c2:d7:da:40:6f:d8:21:dc:
+                    73:1b:42:2d:53:9c:fe:1a:fc:7d:ab:7a:36:3f:98:
+                    de:84:7c:05:67:ce:6a:14:38:87:a9:f1:8c:b5:68:
+                    cb:68:7f:71:20:2b:f5:a0:63:f5:56:2f:a3:26:d2:
+                    b7:6f:b1:5a:17:d7:38:99:08:fe:93:58:6f:fe:c3:
+                    13:49:08:16:0b:a7:4d:67:00:52:31:67:23:4e:98:
+                    ed:51:45:1d:b9:04:d9:0b:ec:d8:28:b3:4b:bd:ed:
+                    36:79
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Subject Key Identifier: 
+                27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
+            X509v3 Authority Key Identifier: 
+                keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
+                DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.yassl.com/emailAddress=info@yassl.com
+                serial:E9:D0:A7:5F:79:25:F4:3C
+
+            X509v3 Basic Constraints: 
+                CA:TRUE
+    Signature Algorithm: sha1WithRSAEncryption
+        5f:86:14:f4:51:8b:bc:a5:4e:30:da:5e:ac:9a:f8:6c:d9:26:
+        4b:93:f9:e3:1c:89:6f:9e:ee:b3:9d:77:3e:89:20:76:a3:e6:
+        e8:86:15:21:db:e2:33:b2:34:d5:d0:9f:f3:c1:a4:87:92:5c:
+        f9:d1:ff:30:2f:8e:03:bc:b3:3c:0c:32:a3:90:5f:1a:90:1e:
+        af:9d:f3:9e:d7:07:02:a9:7d:27:66:63:2f:af:18:d7:ac:18:
+        98:8c:83:8f:38:f3:0b:ac:36:10:75:fb:ca:76:13:50:5b:02:
+        8f:73:bf:e3:a0:ee:83:52:25:54:ce:26:ce:9c:bd:2f:79:ab:
+        1b:60:b8:92:f1:03:c0:fc:3b:08:d9:c0:ad:d5:72:08:25:80:
+        61:2d:dc:9f:a7:83:62:07:47:e0:07:4c:4b:07:30:04:a9:87:
+        1c:55:7f:07:12:d0:cb:42:5d:cb:cf:66:01:1a:17:ee:f9:0f:
+        60:b7:db:6f:68:e5:4e:41:62:6e:d3:6f:60:4f:4b:27:de:cf:
+        18:07:f1:13:5d:cb:3f:a9:25:44:da:52:5c:c8:04:e1:56:12:
+        f5:2a:90:4e:d1:e2:af:01:b5:23:a1:ec:31:da:7b:63:69:c4:
+        b8:f3:e7:ce:a1:3d:c0:db:6d:f3:b2:d9:46:c8:9f:c3:b8:70:
+        5a:1f:7f:ca
+-----BEGIN CERTIFICATE-----
+MIIEnjCCA4agAwIBAgIJAOnQp195JfQ8MA0GCSqGSIb3DQEBBQUAMIGQMQswCQYD
+VQQGEwJVUzEQMA4GA1UECBMHTW9udGFuYTEQMA4GA1UEBxMHQm96ZW1hbjERMA8G
+A1UEChMIU2F3dG9vdGgxEzARBgNVBAsTCkNvbnN1bHRpbmcxFjAUBgNVBAMTDXd3
+dy55YXNzbC5jb20xHTAbBgkqhkiG9w0BCQEWDmluZm9AeWFzc2wuY29tMB4XDTEx
+MTAyNDE4MTgxNVoXDTE0MDcyMDE4MTgxNVowgZAxCzAJBgNVBAYTAlVTMRAwDgYD
+VQQIEwdNb250YW5hMRAwDgYDVQQHEwdCb3plbWFuMREwDwYDVQQKEwhTYXd0b290
+aDETMBEGA1UECxMKQ29uc3VsdGluZzEWMBQGA1UEAxMNd3d3Lnlhc3NsLmNvbTEd
+MBsGCSqGSIb3DQEJARYOaW5mb0B5YXNzbC5jb20wggEiMA0GCSqGSIb3DQEBAQUA
+A4IBDwAwggEKAoIBAQC/DMotFLIehEJbzTgfSvJNdRDxtjWf38p9A5jTrN4DZu4q
+8diwfW4HVAsQmCFNgMsSIOfMT95FfclydzLqypC7aVIQAy+o85XF8YtiVhvvZ2+k
+EEGVrQqb46XAsNJwdlAwW6joCCx87aeieo04KRysx+3yfJWwlYJ9SVw4zXcl772A
+dVOUPD3KY1ufFbXTHRMvGdE823Y6zLh9yeXC19pAb9gh3HMbQi1TnP4a/H2rejY/
+mN6EfAVnzmoUOIep8Yy1aMtof3EgK/WgY/VWL6Mm0rdvsVoX1ziZCP6TWG/+wxNJ
+CBYLp01nAFIxZyNOmO1RRR25BNkL7Ngos0u97TZ5AgMBAAGjgfgwgfUwHQYDVR0O
+BBYEFCeOZxF0wyYdP+0zY7Ok2B0w5ejVMIHFBgNVHSMEgb0wgbqAFCeOZxF0wyYd
+P+0zY7Ok2B0w5ejVoYGWpIGTMIGQMQswCQYDVQQGEwJVUzEQMA4GA1UECBMHTW9u
+dGFuYTEQMA4GA1UEBxMHQm96ZW1hbjERMA8GA1UEChMIU2F3dG9vdGgxEzARBgNV
+BAsTCkNvbnN1bHRpbmcxFjAUBgNVBAMTDXd3dy55YXNzbC5jb20xHTAbBgkqhkiG
+9w0BCQEWDmluZm9AeWFzc2wuY29tggkA6dCnX3kl9DwwDAYDVR0TBAUwAwEB/zAN
+BgkqhkiG9w0BAQUFAAOCAQEAX4YU9FGLvKVOMNperJr4bNkmS5P54xyJb57us513
+PokgdqPm6IYVIdviM7I01dCf88Gkh5Jc+dH/MC+OA7yzPAwyo5BfGpAer53zntcH
+Aql9J2ZjL68Y16wYmIyDjzjzC6w2EHX7ynYTUFsCj3O/46Dug1IlVM4mzpy9L3mr
+G2C4kvEDwPw7CNnArdVyCCWAYS3cn6eDYgdH4AdMSwcwBKmHHFV/BxLQy0Jdy89m
+ARoX7vkPYLfbb2jlTkFibtNvYE9LJ97PGAfxE13LP6klRNpSXMgE4VYS9SqQTtHi
+rwG1I6HsMdp7Y2nEuPPnzqE9wNtt87LZRsifw7hwWh9/yg==
+-----END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/main.c b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/main.c
new file mode 100644
index 000000000..968bebba7
--- /dev/null
+++ b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/main.c
@@ -0,0 +1,177 @@
+/*
+    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.
+
+
+    ***************************************************************************
+     *                                                                       *
+     *    FreeRTOS tutorial books are available in pdf and paperback.        *
+     *    Complete, revised, and edited pdf reference manuals are also       *
+     *    available.                                                         *
+     *                                                                       *
+     *    Purchasing FreeRTOS documentation will not only help you, by       *
+     *    ensuring you get running as quickly as possible and with an        *
+     *    in-depth knowledge of how to use FreeRTOS, it will also help       *
+     *    the FreeRTOS project to continue with its mission of providing     *
+     *    professional grade, cross platform, de facto standard solutions    *
+     *    for microcontrollers - completely free of charge!                  *
+     *                                                                       *
+     *    >>> See http://www.FreeRTOS.org/Documentation for details. <<<     *
+     *                                                                       *
+     *    Thank you for using FreeRTOS, and thank you for your support!      *
+     *                                                                       *
+    ***************************************************************************
+
+
+    This file is part of the FreeRTOS distribution.
+
+    FreeRTOS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU General Public License (version 2) as published by the
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+    >>>NOTE<<< The modification to the GPL is included to allow you to
+    distribute a combined work that includes FreeRTOS without being obliged to
+    provide the source code for proprietary components outside of the FreeRTOS
+    kernel.  FreeRTOS is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details. You should have received a copy of the GNU General Public
+    License and the FreeRTOS license exception along with FreeRTOS; if not it
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained
+    by writing to Richard Barry, contact details for whom are available on the
+    FreeRTOS WEB site.
+
+    1 tab == 4 spaces!
+    
+    ***************************************************************************
+     *                                                                       *
+     *    Having a problem?  Start by reading the FAQ "My application does   *
+     *    not run, what could be wrong?                                      *
+     *                                                                       *
+     *    http://www.FreeRTOS.org/FAQHelp.html                               *
+     *                                                                       *
+    ***************************************************************************
+
+    
+    http://www.FreeRTOS.org - Documentation, training, latest information, 
+    license and contact details.
+    
+    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
+    including FreeRTOS+Trace - an indispensable productivity tool.
+
+    Real Time Engineers ltd license FreeRTOS to High Integrity Systems, who sell 
+    the code with commercial support, indemnification, and middleware, under 
+    the OpenRTOS brand: http://www.OpenRTOS.com.  High Integrity Systems also
+    provide a safety engineered and independently SIL3 certified version under 
+    the SafeRTOS brand: http://www.SafeRTOS.com.
+*/
+
+/*
+ ******************************************************************************
+ * -NOTE- The Win32 port is a simulation (or is that emulation?) only!  Do not
+ * expect to get real time behaviour from the Win32 port or this demo
+ * application.  It is provided as a convenient development and demonstration
+ * test bed only.  This was tested using Windows XP on a dual core laptop.
+ *
+ * In this example, one simulated millisecond will take approximately 40ms to
+ * execute.  See the documentation page for the Windows simulator for an 
+ * explanation of the slow timing:
+ * http://www.freertos.org/FreeRTOS-Windows-Simulator-Emulator-for-Visual-Studio-and-Eclipse-MingW.html
+ ******************************************************************************
+ *
+ * This is a simple FreeRTOS Windows simulator project that makes it easy to 
+ * evaluate CyaSSL in a FreeRTOS environment on a standard desktop PC, and 
+ * without any external hardware or interfaces being required.
+ *
+ * main() creates a TCP server task, which initialises CyaSSL, before creating a
+ * TCP client task.  Both the server and client use TLS secured sockets.
+ *
+ * The client task repeatedly connects to the server, sends 10 messages, then 
+ * disconnects.  The server task prints the contents of each message to the
+ * console as they are received.
+ *
+ * CyaSSL objects are created and deleted as each socket connects and
+ * disconnects respectively.
+ *
+ * The server task is implemented in SecureTCPServerTask.c, and the client task
+ * in SecureTCPClientTask.c.
+ *
+ * Visit http://www.FreeRTOS.org/ssl for FreeRTOS + CyaSSL for demo 
+ * documentation.
+ *
+ */
+
+/* Standard includes. */
+#include 
+#include 
+
+/* FreeRTOS includes. */
+#include 
+#include "task.h"
+
+/* This application is using the FreeRTOS Windows simulator, which uses the
+FreeRTOS scheduler to schedule FreeRTOS task within the Windows environment.
+The Windows environment must not be allowed to block any Windows threads that
+are running FreeRTOS tasks, unless the FreeRTOS task is running at the FreeRTOS
+idle priority.  For simplicity, this demo uses the Windows TCP/IP stack, the
+API for which can cause Windows threads to block.  Therefore, any FreeRTOS task
+that makes calls to the Windows TCP/IP stack must be assigned the idle priority.
+Note this is only a restriction of the simulated Windows environment - real
+FreeRTOS ports do not have this restriction. */
+#define mainSECURE_SERVER_TASK_PRIORITY		( tskIDLE_PRIORITY )
+
+
+/*-----------------------------------------------------------*/
+
+/*
+ * The task that implements the server side.
+ */
+extern void vSecureTCPServerTask( void *pvParameters );
+
+/*-----------------------------------------------------------*/
+
+int main( void )
+{
+const uint32_t ulLongTime_ms = 250UL;
+
+	/* Create the TCP server task.  This will itself create the client task
+	once it has completed the CyaSSL initialisation. */
+	xTaskCreate( vSecureTCPServerTask, ( signed char * ) "Server", configMINIMAL_STACK_SIZE, NULL, mainSECURE_SERVER_TASK_PRIORITY, NULL );
+
+	/* Start the task running. */
+	vTaskStartScheduler();
+
+	/* If all is well, the scheduler will now be running, and the following
+	line will never be reached.  If the following line does execute, then
+	there was insufficient FreeRTOS heap memory available for the idle and/or
+	timer tasks	to be created.  See the memory management section on the
+	FreeRTOS web site for more details (this is standard text that is not not 
+	really applicable to the Win32 simulator port). */
+	for( ;; )
+	{
+		Sleep( ulLongTime_ms );
+	}
+}
+/*-----------------------------------------------------------*/
+
+void vApplicationIdleHook( void )
+{
+const unsigned long ulMSToSleep = 5;
+
+	/* This function is called on each cycle of the idle task if
+	configUSE_IDLE_HOOK is set to 1 in FreeRTOSConfig.h.  Sleep to reduce CPU 
+	load. */
+	Sleep( ulMSToSleep );
+}
+/*-----------------------------------------------------------*/
+
+void vAssertCalled( void )
+{
+const unsigned long ulLongSleep = 1000UL;
+
+	taskDISABLE_INTERRUPTS();
+	for( ;; )
+	{
+		Sleep( ulLongSleep );
+	}
+}
+/*-----------------------------------------------------------*/
+
diff --git a/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/server-cert.pem b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/server-cert.pem
new file mode 100644
index 000000000..8381265ee
--- /dev/null
+++ b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/server-cert.pem
@@ -0,0 +1,158 @@
+Certificate:
+    Data:
+        Version: 1 (0x0)
+        Serial Number: 2 (0x2)
+        Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.yassl.com/emailAddress=info@yassl.com
+        Validity
+            Not Before: Oct 24 18:27:13 2011 GMT
+            Not After : Jul 20 18:27:13 2014 GMT
+        Subject: C=US, ST=Montana, L=Bozeman, O=yaSSL, OU=Support, CN=www.yassl.com/emailAddress=info@yassl.com
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+            RSA Public Key: (2048 bit)
+                Modulus (2048 bit):
+                    00:c0:95:08:e1:57:41:f2:71:6d:b7:d2:45:41:27:
+                    01:65:c6:45:ae:f2:bc:24:30:b8:95:ce:2f:4e:d6:
+                    f6:1c:88:bc:7c:9f:fb:a8:67:7f:fe:5c:9c:51:75:
+                    f7:8a:ca:07:e7:35:2f:8f:e1:bd:7b:c0:2f:7c:ab:
+                    64:a8:17:fc:ca:5d:7b:ba:e0:21:e5:72:2e:6f:2e:
+                    86:d8:95:73:da:ac:1b:53:b9:5f:3f:d7:19:0d:25:
+                    4f:e1:63:63:51:8b:0b:64:3f:ad:43:b8:a5:1c:5c:
+                    34:b3:ae:00:a0:63:c5:f6:7f:0b:59:68:78:73:a6:
+                    8c:18:a9:02:6d:af:c3:19:01:2e:b8:10:e3:c6:cc:
+                    40:b4:69:a3:46:33:69:87:6e:c4:bb:17:a6:f3:e8:
+                    dd:ad:73:bc:7b:2f:21:b5:fd:66:51:0c:bd:54:b3:
+                    e1:6d:5f:1c:bc:23:73:d1:09:03:89:14:d2:10:b9:
+                    64:c3:2a:d0:a1:96:4a:bc:e1:d4:1a:5b:c7:a0:c0:
+                    c1:63:78:0f:44:37:30:32:96:80:32:23:95:a1:77:
+                    ba:13:d2:97:73:e2:5d:25:c9:6a:0d:c3:39:60:a4:
+                    b4:b0:69:42:42:09:e9:d8:08:bc:33:20:b3:58:22:
+                    a7:aa:eb:c4:e1:e6:61:83:c5:d2:96:df:d9:d0:4f:
+                    ad:d7
+                Exponent: 65537 (0x10001)
+    Signature Algorithm: sha1WithRSAEncryption
+        71:4e:d3:62:df:cc:4c:f7:cd:b7:6e:52:0b:6c:6e:e0:bd:c2:
+        2d:07:d7:c0:b0:6e:43:1e:35:bc:30:01:50:f0:ff:99:23:6c:
+        18:1a:41:b6:11:d6:d4:19:61:fd:e4:77:97:1c:39:e1:57:ab:
+        c5:15:63:77:11:36:5e:74:e2:24:0b:1f:41:78:ad:b7:81:e7:
+        b4:40:66:80:f0:4b:91:a0:6d:a8:6e:3d:53:d9:8b:ce:2a:e1:
+        0b:45:65:87:a1:96:ae:ee:3e:88:d5:12:1f:78:17:ae:2c:c5:
+        73:44:d8:dc:f4:af:d8:cc:ae:4c:e1:0c:be:55:a4:99:f7:6e:
+        96:c0:c8:45:87:bf:dc:51:57:ff:9e:73:37:6a:18:9c:c3:f9:
+        22:7a:f4:b0:52:bd:fc:21:30:f8:c5:ff:1e:87:7d:ad:a2:5a:
+        35:f5:22:a8:b4:0a:76:38:e6:76:b0:98:af:1b:ec:8a:0a:43:
+        74:d2:85:34:37:84:07:e1:f6:23:b2:29:de:a6:b6:b7:4c:57:
+        7e:96:06:cb:a9:16:25:29:3a:03:2d:55:7d:a6:8c:a4:f7:9e:
+        81:c9:95:b6:7c:c1:4a:ce:94:66:0c:ca:88:eb:d2:09:f5:5b:
+        19:58:82:df:27:fd:67:95:78:b7:02:06:d5:a7:61:bd:ef:3a:
+        fc:b2:61:cd
+-----BEGIN CERTIFICATE-----
+MIIDkDCCAngCAQIwDQYJKoZIhvcNAQEFBQAwgZAxCzAJBgNVBAYTAlVTMRAwDgYD
+VQQIEwdNb250YW5hMRAwDgYDVQQHEwdCb3plbWFuMREwDwYDVQQKEwhTYXd0b290
+aDETMBEGA1UECxMKQ29uc3VsdGluZzEWMBQGA1UEAxMNd3d3Lnlhc3NsLmNvbTEd
+MBsGCSqGSIb3DQEJARYOaW5mb0B5YXNzbC5jb20wHhcNMTExMDI0MTgyNzEzWhcN
+MTQwNzIwMTgyNzEzWjCBijELMAkGA1UEBhMCVVMxEDAOBgNVBAgTB01vbnRhbmEx
+EDAOBgNVBAcTB0JvemVtYW4xDjAMBgNVBAoTBXlhU1NMMRAwDgYDVQQLEwdTdXBw
+b3J0MRYwFAYDVQQDEw13d3cueWFzc2wuY29tMR0wGwYJKoZIhvcNAQkBFg5pbmZv
+QHlhc3NsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMCVCOFX
+QfJxbbfSRUEnAWXGRa7yvCQwuJXOL07W9hyIvHyf+6hnf/5cnFF194rKB+c1L4/h
+vXvAL3yrZKgX/Mpde7rgIeVyLm8uhtiVc9qsG1O5Xz/XGQ0lT+FjY1GLC2Q/rUO4
+pRxcNLOuAKBjxfZ/C1loeHOmjBipAm2vwxkBLrgQ48bMQLRpo0YzaYduxLsXpvPo
+3a1zvHsvIbX9ZlEMvVSz4W1fHLwjc9EJA4kU0hC5ZMMq0KGWSrzh1Bpbx6DAwWN4
+D0Q3MDKWgDIjlaF3uhPSl3PiXSXJag3DOWCktLBpQkIJ6dgIvDMgs1gip6rrxOHm
+YYPF0pbf2dBPrdcCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAcU7TYt/MTPfNt25S
+C2xu4L3CLQfXwLBuQx41vDABUPD/mSNsGBpBthHW1Blh/eR3lxw54VerxRVjdxE2
+XnTiJAsfQXitt4HntEBmgPBLkaBtqG49U9mLzirhC0Vlh6GWru4+iNUSH3gXrizF
+c0TY3PSv2MyuTOEMvlWkmfdulsDIRYe/3FFX/55zN2oYnMP5Inr0sFK9/CEw+MX/
+Hod9raJaNfUiqLQKdjjmdrCYrxvsigpDdNKFNDeEB+H2I7Ip3qa2t0xXfpYGy6kW
+JSk6Ay1VfaaMpPeegcmVtnzBSs6UZgzKiOvSCfVbGViC3yf9Z5V4twIG1adhve86
+/LJhzQ==
+-----END CERTIFICATE-----
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            e9:d0:a7:5f:79:25:f4:3c
+        Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.yassl.com/emailAddress=info@yassl.com
+        Validity
+            Not Before: Oct 24 18:18:15 2011 GMT
+            Not After : Jul 20 18:18:15 2014 GMT
+        Subject: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.yassl.com/emailAddress=info@yassl.com
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+            RSA Public Key: (2048 bit)
+                Modulus (2048 bit):
+                    00:bf:0c:ca:2d:14:b2:1e:84:42:5b:cd:38:1f:4a:
+                    f2:4d:75:10:f1:b6:35:9f:df:ca:7d:03:98:d3:ac:
+                    de:03:66:ee:2a:f1:d8:b0:7d:6e:07:54:0b:10:98:
+                    21:4d:80:cb:12:20:e7:cc:4f:de:45:7d:c9:72:77:
+                    32:ea:ca:90:bb:69:52:10:03:2f:a8:f3:95:c5:f1:
+                    8b:62:56:1b:ef:67:6f:a4:10:41:95:ad:0a:9b:e3:
+                    a5:c0:b0:d2:70:76:50:30:5b:a8:e8:08:2c:7c:ed:
+                    a7:a2:7a:8d:38:29:1c:ac:c7:ed:f2:7c:95:b0:95:
+                    82:7d:49:5c:38:cd:77:25:ef:bd:80:75:53:94:3c:
+                    3d:ca:63:5b:9f:15:b5:d3:1d:13:2f:19:d1:3c:db:
+                    76:3a:cc:b8:7d:c9:e5:c2:d7:da:40:6f:d8:21:dc:
+                    73:1b:42:2d:53:9c:fe:1a:fc:7d:ab:7a:36:3f:98:
+                    de:84:7c:05:67:ce:6a:14:38:87:a9:f1:8c:b5:68:
+                    cb:68:7f:71:20:2b:f5:a0:63:f5:56:2f:a3:26:d2:
+                    b7:6f:b1:5a:17:d7:38:99:08:fe:93:58:6f:fe:c3:
+                    13:49:08:16:0b:a7:4d:67:00:52:31:67:23:4e:98:
+                    ed:51:45:1d:b9:04:d9:0b:ec:d8:28:b3:4b:bd:ed:
+                    36:79
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Subject Key Identifier: 
+                27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
+            X509v3 Authority Key Identifier: 
+                keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
+                DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.yassl.com/emailAddress=info@yassl.com
+                serial:E9:D0:A7:5F:79:25:F4:3C
+
+            X509v3 Basic Constraints: 
+                CA:TRUE
+    Signature Algorithm: sha1WithRSAEncryption
+        5f:86:14:f4:51:8b:bc:a5:4e:30:da:5e:ac:9a:f8:6c:d9:26:
+        4b:93:f9:e3:1c:89:6f:9e:ee:b3:9d:77:3e:89:20:76:a3:e6:
+        e8:86:15:21:db:e2:33:b2:34:d5:d0:9f:f3:c1:a4:87:92:5c:
+        f9:d1:ff:30:2f:8e:03:bc:b3:3c:0c:32:a3:90:5f:1a:90:1e:
+        af:9d:f3:9e:d7:07:02:a9:7d:27:66:63:2f:af:18:d7:ac:18:
+        98:8c:83:8f:38:f3:0b:ac:36:10:75:fb:ca:76:13:50:5b:02:
+        8f:73:bf:e3:a0:ee:83:52:25:54:ce:26:ce:9c:bd:2f:79:ab:
+        1b:60:b8:92:f1:03:c0:fc:3b:08:d9:c0:ad:d5:72:08:25:80:
+        61:2d:dc:9f:a7:83:62:07:47:e0:07:4c:4b:07:30:04:a9:87:
+        1c:55:7f:07:12:d0:cb:42:5d:cb:cf:66:01:1a:17:ee:f9:0f:
+        60:b7:db:6f:68:e5:4e:41:62:6e:d3:6f:60:4f:4b:27:de:cf:
+        18:07:f1:13:5d:cb:3f:a9:25:44:da:52:5c:c8:04:e1:56:12:
+        f5:2a:90:4e:d1:e2:af:01:b5:23:a1:ec:31:da:7b:63:69:c4:
+        b8:f3:e7:ce:a1:3d:c0:db:6d:f3:b2:d9:46:c8:9f:c3:b8:70:
+        5a:1f:7f:ca
+-----BEGIN CERTIFICATE-----
+MIIEnjCCA4agAwIBAgIJAOnQp195JfQ8MA0GCSqGSIb3DQEBBQUAMIGQMQswCQYD
+VQQGEwJVUzEQMA4GA1UECBMHTW9udGFuYTEQMA4GA1UEBxMHQm96ZW1hbjERMA8G
+A1UEChMIU2F3dG9vdGgxEzARBgNVBAsTCkNvbnN1bHRpbmcxFjAUBgNVBAMTDXd3
+dy55YXNzbC5jb20xHTAbBgkqhkiG9w0BCQEWDmluZm9AeWFzc2wuY29tMB4XDTEx
+MTAyNDE4MTgxNVoXDTE0MDcyMDE4MTgxNVowgZAxCzAJBgNVBAYTAlVTMRAwDgYD
+VQQIEwdNb250YW5hMRAwDgYDVQQHEwdCb3plbWFuMREwDwYDVQQKEwhTYXd0b290
+aDETMBEGA1UECxMKQ29uc3VsdGluZzEWMBQGA1UEAxMNd3d3Lnlhc3NsLmNvbTEd
+MBsGCSqGSIb3DQEJARYOaW5mb0B5YXNzbC5jb20wggEiMA0GCSqGSIb3DQEBAQUA
+A4IBDwAwggEKAoIBAQC/DMotFLIehEJbzTgfSvJNdRDxtjWf38p9A5jTrN4DZu4q
+8diwfW4HVAsQmCFNgMsSIOfMT95FfclydzLqypC7aVIQAy+o85XF8YtiVhvvZ2+k
+EEGVrQqb46XAsNJwdlAwW6joCCx87aeieo04KRysx+3yfJWwlYJ9SVw4zXcl772A
+dVOUPD3KY1ufFbXTHRMvGdE823Y6zLh9yeXC19pAb9gh3HMbQi1TnP4a/H2rejY/
+mN6EfAVnzmoUOIep8Yy1aMtof3EgK/WgY/VWL6Mm0rdvsVoX1ziZCP6TWG/+wxNJ
+CBYLp01nAFIxZyNOmO1RRR25BNkL7Ngos0u97TZ5AgMBAAGjgfgwgfUwHQYDVR0O
+BBYEFCeOZxF0wyYdP+0zY7Ok2B0w5ejVMIHFBgNVHSMEgb0wgbqAFCeOZxF0wyYd
+P+0zY7Ok2B0w5ejVoYGWpIGTMIGQMQswCQYDVQQGEwJVUzEQMA4GA1UECBMHTW9u
+dGFuYTEQMA4GA1UEBxMHQm96ZW1hbjERMA8GA1UEChMIU2F3dG9vdGgxEzARBgNV
+BAsTCkNvbnN1bHRpbmcxFjAUBgNVBAMTDXd3dy55YXNzbC5jb20xHTAbBgkqhkiG
+9w0BCQEWDmluZm9AeWFzc2wuY29tggkA6dCnX3kl9DwwDAYDVR0TBAUwAwEB/zAN
+BgkqhkiG9w0BAQUFAAOCAQEAX4YU9FGLvKVOMNperJr4bNkmS5P54xyJb57us513
+PokgdqPm6IYVIdviM7I01dCf88Gkh5Jc+dH/MC+OA7yzPAwyo5BfGpAer53zntcH
+Aql9J2ZjL68Y16wYmIyDjzjzC6w2EHX7ynYTUFsCj3O/46Dug1IlVM4mzpy9L3mr
+G2C4kvEDwPw7CNnArdVyCCWAYS3cn6eDYgdH4AdMSwcwBKmHHFV/BxLQy0Jdy89m
+ARoX7vkPYLfbb2jlTkFibtNvYE9LJ97PGAfxE13LP6klRNpSXMgE4VYS9SqQTtHi
+rwG1I6HsMdp7Y2nEuPPnzqE9wNtt87LZRsifw7hwWh9/yg==
+-----END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/server-key.pem b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/server-key.pem
new file mode 100644
index 000000000..d1627f4d4
--- /dev/null
+++ b/FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CyaSSL/server-key.pem
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpQIBAAKCAQEAwJUI4VdB8nFtt9JFQScBZcZFrvK8JDC4lc4vTtb2HIi8fJ/7
+qGd//lycUXX3isoH5zUvj+G9e8AvfKtkqBf8yl17uuAh5XIuby6G2JVz2qwbU7lf
+P9cZDSVP4WNjUYsLZD+tQ7ilHFw0s64AoGPF9n8LWWh4c6aMGKkCba/DGQEuuBDj
+xsxAtGmjRjNph27Euxem8+jdrXO8ey8htf1mUQy9VLPhbV8cvCNz0QkDiRTSELlk
+wyrQoZZKvOHUGlvHoMDBY3gPRDcwMpaAMiOVoXe6E9KXc+JdJclqDcM5YKS0sGlC
+Qgnp2Ai8MyCzWCKnquvE4eZhg8XSlt/Z0E+t1wIDAQABAoIBAQCa0DQPUmIFUAHv
+n+1kbsLE2hryhNeSEEiSxOlq64t1bMZ5OPLJckqGZFSVd8vDmp231B2kAMieTuTd
+x7pnFsF0vKnWlI8rMBr77d8hBSPZSjm9mGtlmrjcxH3upkMVLj2+HSJgKnMw1T7Y
+oqyGQy7E9WReP4l1DxHYUSVOn9iqo85gs+KK2X4b8GTKmlsFC1uqy+XjP24yIgXz
+0PrvdFKB4l90073/MYNFdfpjepcu1rYZxpIm5CgGUFAOeC6peA0Ul7QS2DFAq6EB
+QcIw+AdfFuRhd9Jg8p+N6PS662PeKpeB70xs5lU0USsoNPRTHMRYCj+7r7X3SoVD
+LTzxWFiBAoGBAPIsVHY5I2PJEDK3k62vvhl1loFk5rW4iUJB0W3QHBv4G6xpyzY8
+ZH3c9Bm4w2CxV0hfUk9ZOlV/MsAZQ1A/rs5vF/MOn0DKTq0VO8l56cBZOHNwnAp8
+yTpIMqfYSXUKhcLC/RVz2pkJKmmanwpxv7AEpox6Wm9IWlQ7xrFTF9/nAoGBAMuT
+3ncVXbdcXHzYkKmYLdZpDmOzo9ymzItqpKISjI57SCyySzfcBhh96v52odSh6T8N
+zRtfr1+elltbD6F8r7ObkNtXczrtsCNErkFPHwdCEyNMy/r0FKTV9542fFufqDzB
+hV900jkt/9CE3/uzIHoumxeu5roLrl9TpFLtG8SRAoGBAOyY2rvV/vlSSn0CVUlv
+VW5SL4SjK7OGYrNU0mNS2uOIdqDvixWl0xgUcndex6MEH54ZYrUbG57D8rUy+UzB
+qusMJn3UX0pRXKRFBnBEp1bA1CIUdp7YY1CJkNPiv4GVkjFBhzkaQwsYpVMfORpf
+H0O8h2rfbtMiAP4imHBOGhkpAoGBAIpBVihRnl/Ungs7mKNU8mxW1KrpaTOFJAza
+1AwtxL9PAmk4fNTm3Ezt1xYRwz4A58MmwFEC3rt1nG9WnHrzju/PisUr0toGakTJ
+c/5umYf4W77xfOZltU9s8MnF/xbKixsX4lg9ojerAby/QM5TjI7t7+5ZneBj5nxe
+9Y5L8TvBAoGATUX5QIzFW/QqGoq08hysa+kMVja3TnKW1eWK0uL/8fEYEz2GCbjY
+dqfJHHFSlDBD4PF4dP1hG0wJzOZoKnGtHN9DvFbbpaS+NXCkXs9P/ABVmTo9I89n
+WvUi+LUp0EQR6zUuRr79jhiyX6i/GTKh9dwD5nyaHwx8qbAOITc78bA=
+-----END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/FreeRTOS-Plus-CLI/FreeRTOS_CLI.c b/FreeRTOS-Plus/FreeRTOS-Plus-CLI/FreeRTOS_CLI.c
new file mode 100644
index 000000000..70d5d3ba4
--- /dev/null
+++ b/FreeRTOS-Plus/FreeRTOS-Plus-CLI/FreeRTOS_CLI.c
@@ -0,0 +1,320 @@
+/*
+ * FreeRTOS+CLI V1.0.1 (C) 2012 Real Time Engineers ltd.
+ *
+ * FreeRTOS+CLI is an add-on component to FreeRTOS.  It is not, in itself, part
+ * of the FreeRTOS kernel.  FreeRTOS+CLI is licensed separately from FreeRTOS,
+ * and uses a different license to FreeRTOS.  FreeRTOS+CLI uses a dual license
+ * model, information on which is provided below:
+ *
+ * - Open source licensing -
+ * FreeRTOS+CLI is a free download and may be used, modified and distributed
+ * without charge provided the user adheres to version two of the GNU General
+ * Public license (GPL) and does not remove the copyright notice or this text.
+ * The GPL V2 text is available on the gnu.org web site, and on the following
+ * URL: http://www.FreeRTOS.org/gpl-2.0.txt
+ *
+ * - Commercial licensing -
+ * Businesses and individuals who wish to incorporate FreeRTOS+CLI into
+ * proprietary software for redistribution in any form must first obtain a
+ * (very) low cost commercial license - and in-so-doing support the maintenance,
+ * support and further development of the FreeRTOS+CLI product.  Commercial
+ * licenses can be obtained from http://shop.freertos.org and do not require any
+ * source files to be changed.
+ *
+ * FreeRTOS+CLI is distributed in the hope that it will be useful.  You cannot
+ * use FreeRTOS+CLI unless you agree that you use the software 'as is'.
+ * FreeRTOS+CLI is provided WITHOUT ANY WARRANTY; without even the implied
+ * warranties of NON-INFRINGEMENT, MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. Real Time Engineers Ltd. disclaims all conditions and terms, be they
+ * implied, expressed, or statutory.
+ *
+ * 1 tab == 4 spaces!
+ *
+ * http://www.FreeRTOS.org
+ * http://www.FreeRTOS.org/FreeRTOS-Plus
+ *
+ */
+
+/* Standard includes. */
+#include 
+#include 
+
+/* FreeRTOS includes. */
+#include "FreeRTOS.h"
+#include "task.h"
+
+/* Utils includes. */
+#include "FreeRTOS_CLI.h"
+
+typedef struct xCOMMAND_INPUT_LIST
+{
+	const CLI_Command_Definition_t *pxCommandLineDefinition;
+	struct xCOMMAND_INPUT_LIST *pxNext;
+} CLI_Definition_List_Item_t;
+
+/*
+ * The callback function that is executed when "help" is entered.  This is the
+ * only default command that is always present.
+ */
+static portBASE_TYPE prvHelpCommand( int8_t *pcWriteBuffer, size_t xWriteBufferLen, const int8_t *pcCommandString );
+
+/*
+ * Return the number of parameters that follow the command name.
+ */
+static int8_t prvGetNumberOfParameters( const int8_t * pcCommandString );
+
+/* The definition of the "help" command.  This command is always at the front
+of the list of registered commands. */
+static const CLI_Command_Definition_t xHelpCommand =
+{
+	( const int8_t * const ) "help",
+	( const int8_t * const ) "\r\nhelp:\r\n Lists all the registered commands\r\n\r\n",
+	prvHelpCommand,
+	0
+};
+
+/* The definition of the list of commands.  Commands that are registered are
+added to this list. */
+static CLI_Definition_List_Item_t xRegisteredCommands =
+{
+	&xHelpCommand,	/* The first command in the list is always the help command, defined in this file. */
+	NULL			/* The next pointer is initialised to NULL, as there are no other registered commands yet. */
+};
+
+/* A buffer into which command outputs can be written is declared here, rather
+than in the command console implementation, to allow multiple command consoles
+to share the same buffer.  For example, an application may allow access to the
+command interpreter by UART and by Ethernet.  Sharing a buffer is done purely
+to save RAM.  Note, however, that the command console itself is not re-entrant,
+so only one command interpreter interface can be used at any one time.  For that
+reason, no attempt at providing mutual exclusion to the cOutputBuffer array is
+attempted. */
+static int8_t cOutputBuffer[ configCOMMAND_INT_MAX_OUTPUT_SIZE ];
+
+/*-----------------------------------------------------------*/
+
+portBASE_TYPE FreeRTOS_CLIRegisterCommand( const CLI_Command_Definition_t * const pxCommandToRegister )
+{
+static CLI_Definition_List_Item_t *pxLastCommandInList = &xRegisteredCommands;
+CLI_Definition_List_Item_t *pxNewListItem;
+portBASE_TYPE xReturn = pdFAIL;
+
+	/* Check the parameter is not NULL. */
+	configASSERT( pxCommandToRegister );
+
+	/* Create a new list item that will reference the command being registered. */
+	pxNewListItem = ( CLI_Definition_List_Item_t * ) pvPortMalloc( sizeof( CLI_Definition_List_Item_t ) );
+	configASSERT( pxNewListItem );
+
+	if( pxNewListItem != NULL )
+	{
+		taskENTER_CRITICAL();
+		{
+			/* Reference the command being registered from the newly created
+			list item. */
+			pxNewListItem->pxCommandLineDefinition = pxCommandToRegister;
+
+			/* The new list item will get added to the end of the list, so
+			pxNext has nowhere to point. */
+			pxNewListItem->pxNext = NULL;
+
+			/* Add the newly created list item to the end of the already existing
+			list. */
+			pxLastCommandInList->pxNext = pxNewListItem;
+
+			/* Set the end of list marker to the new list item. */
+			pxLastCommandInList = pxNewListItem;
+		}
+		taskEXIT_CRITICAL();
+
+		xReturn = pdPASS;
+	}
+
+	return xReturn;
+}
+/*-----------------------------------------------------------*/
+
+portBASE_TYPE FreeRTOS_CLIProcessCommand( const int8_t * const pcCommandInput, int8_t * pcWriteBuffer, size_t xWriteBufferLen  )
+{
+static const CLI_Definition_List_Item_t *pxCommand = NULL;
+portBASE_TYPE xReturn = pdTRUE;
+const int8_t *pcRegisteredCommandString;
+
+	/* Note:  This function is not re-entrant.  It must not be called from more
+	thank one task. */
+
+	if( pxCommand == NULL )
+	{
+		/* Search for the command string in the list of registered commands. */
+		for( pxCommand = &xRegisteredCommands; pxCommand != NULL; pxCommand = pxCommand->pxNext )
+		{
+			pcRegisteredCommandString = pxCommand->pxCommandLineDefinition->pcCommand;
+			if( strncmp( ( const char * ) pcCommandInput, ( const char * ) pcRegisteredCommandString, strlen( ( const char * ) pcRegisteredCommandString ) ) == 0 )
+			{
+				/* The command has been found.  Check it has the expected
+				number of parameters.  If cExpectedNumberOfParameters is -1,
+				then there could be a variable number of parameters and no
+				check is made. */
+				if( pxCommand->pxCommandLineDefinition->cExpectedNumberOfParameters >= 0 )
+				{
+					if( prvGetNumberOfParameters( pcCommandInput ) != pxCommand->pxCommandLineDefinition->cExpectedNumberOfParameters )
+					{
+						xReturn = pdFALSE;
+					}
+				}
+
+				break;
+			}
+		}
+	}
+
+	if( ( pxCommand != NULL ) && ( xReturn == pdFALSE ) )
+	{
+		/* The command was found, but the number of parameters with the command
+		was incorrect. */
+		strncpy( ( char * ) pcWriteBuffer, "Incorrect command parameter(s).  Enter \"help\" to view a list of available commands.\r\n\r\n", xWriteBufferLen );
+		pxCommand = NULL;
+	}
+	else if( pxCommand != NULL )
+	{
+		/* Call the callback function that is registered to this command. */
+		xReturn = pxCommand->pxCommandLineDefinition->pxCommandInterpreter( pcWriteBuffer, xWriteBufferLen, pcCommandInput );
+
+		/* If xReturn is pdFALSE, then no further strings will be returned
+		after this one, and	pxCommand can be reset to NULL ready to search
+		for the next entered command. */
+		if( xReturn == pdFALSE )
+		{
+			pxCommand = NULL;
+		}
+	}
+	else
+	{
+		/* pxCommand was NULL, the command was not found. */
+		strncpy( ( char * ) pcWriteBuffer, ( const char * const ) "Command not recognised.  Enter \"help\" to view a list of available commands.\r\n\r\n", xWriteBufferLen );
+		xReturn = pdFALSE;
+	}
+
+	return xReturn;
+}
+/*-----------------------------------------------------------*/
+
+int8_t *FreeRTOS_CLIGetOutputBuffer( void )
+{
+	return cOutputBuffer;
+}
+/*-----------------------------------------------------------*/
+
+const int8_t *FreeRTOS_CLIGetParameter( const int8_t *pcCommandString, unsigned portBASE_TYPE uxWantedParameter, portBASE_TYPE *pxParameterStringLength )
+{
+unsigned portBASE_TYPE uxParametersFound = 0;
+const int8_t *pcReturn = NULL;
+
+	*pxParameterStringLength = 0;
+
+	while( uxParametersFound < uxWantedParameter )
+	{
+		/* Index the character pointer past the current word.  If this is the start
+		of the command string then the first word is the command itself. */
+		while( ( ( *pcCommandString ) != 0x00 ) && ( ( *pcCommandString ) != ' ' ) )
+		{
+			pcCommandString++;
+		}
+
+		/* Find the start of the next string. */
+		while( ( ( *pcCommandString ) != 0x00 ) && ( ( *pcCommandString ) == ' ' ) )
+		{
+			pcCommandString++;
+		}
+
+		/* Was a string found? */
+		if( *pcCommandString != 0x00 )
+		{
+			/* Is this the start of the required parameter? */
+			uxParametersFound++;
+
+			if( uxParametersFound == uxWantedParameter )
+			{
+				/* How long is the parameter? */
+				pcReturn = pcCommandString;
+				while( ( ( *pcCommandString ) != 0x00 ) && ( ( *pcCommandString ) != ' ' ) )
+				{
+					( *pxParameterStringLength )++;
+					pcCommandString++;
+				}
+
+				break;
+			}
+		}
+		else
+		{
+			break;
+		}
+	}
+
+	return pcReturn;
+}
+/*-----------------------------------------------------------*/
+
+static portBASE_TYPE prvHelpCommand( int8_t *pcWriteBuffer, size_t xWriteBufferLen, const int8_t *pcCommandString )
+{
+static const CLI_Definition_List_Item_t * pxCommand = NULL;
+signed portBASE_TYPE xReturn;
+
+	( void ) pcCommandString;
+
+	if( pxCommand == NULL )
+	{
+		/* Reset the pxCommand pointer back to the start of the list. */
+		pxCommand = &xRegisteredCommands;
+	}
+
+	/* Return the next command help string, before moving the pointer on to
+	the next command in the list. */
+	strncpy( ( char * ) pcWriteBuffer, ( const char * ) pxCommand->pxCommandLineDefinition->pcHelpString, xWriteBufferLen );
+	pxCommand = pxCommand->pxNext;
+
+	if( pxCommand == NULL )
+	{
+		/* There are no more commands in the list, so there will be no more
+		strings to return after this one and pdFALSE should be returned. */
+		xReturn = pdFALSE;
+	}
+	else
+	{
+		xReturn = pdTRUE;
+	}
+
+	return xReturn;
+}
+/*-----------------------------------------------------------*/
+
+static int8_t prvGetNumberOfParameters( const int8_t * pcCommandString )
+{
+int8_t cParameters = 0;
+portBASE_TYPE xLastCharacterWasSpace = pdFALSE;
+
+	/* Count the number of space delimited words in pcCommandString. */
+	while( *pcCommandString != 0x00 )
+	{
+		if( ( *pcCommandString ) == ' ' )
+		{
+			if( xLastCharacterWasSpace != pdTRUE )
+			{
+				cParameters++;
+				xLastCharacterWasSpace = pdTRUE;
+			}
+		}
+		else
+		{
+			xLastCharacterWasSpace = pdFALSE;
+		}
+
+		pcCommandString++;
+	}
+
+	/* The value returned is one less than the number of space delimited words,
+	as the first word should be the command itself. */
+	return cParameters;
+}
+
diff --git a/FreeRTOS-Plus/FreeRTOS-Plus-CLI/FreeRTOS_CLI.h b/FreeRTOS-Plus/FreeRTOS-Plus-CLI/FreeRTOS_CLI.h
new file mode 100644
index 000000000..ffeb0e7f6
--- /dev/null
+++ b/FreeRTOS-Plus/FreeRTOS-Plus-CLI/FreeRTOS_CLI.h
@@ -0,0 +1,115 @@
+/*
+ * FreeRTOS+CLI V1.0.1 (C) 2012 Real Time Engineers ltd.
+ *
+ * FreeRTOS+CLI is an add-on component to FreeRTOS.  It is not, in itself, part 
+ * of the FreeRTOS kernel.  FreeRTOS+CLI is licensed separately from FreeRTOS, 
+ * and uses a different license to FreeRTOS.  FreeRTOS+CLI uses a dual license 
+ * model, information on which is provided below:
+ *
+ * - Open source licensing -
+ * FreeRTOS+CLI is a free download and may be used, modified and distributed
+ * without charge provided the user adheres to version two of the GNU General
+ * Public license (GPL) and does not remove the copyright notice or this text.
+ * The GPL V2 text is available on the gnu.org web site, and on the following
+ * URL: http://www.FreeRTOS.org/gpl-2.0.txt
+ *
+ * - Commercial licensing -
+ * Businesses and individuals who wish to incorporate FreeRTOS+CLI into
+ * proprietary software for redistribution in any form must first obtain a 
+ * (very) low cost commercial license - and in-so-doing support the maintenance, 
+ * support and further development of the FreeRTOS+CLI product.  Commercial 
+ * licenses can be obtained from http://shop.freertos.org and do not require any 
+ * source files to be changed.
+ *
+ * FreeRTOS+CLI is distributed in the hope that it will be useful.  You cannot
+ * use FreeRTOS+CLI unless you agree that you use the software 'as is'.
+ * FreeRTOS+CLI is provided WITHOUT ANY WARRANTY; without even the implied
+ * warranties of NON-INFRINGEMENT, MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. Real Time Engineers Ltd. disclaims all conditions and terms, be they
+ * implied, expressed, or statutory.
+ *
+ * 1 tab == 4 spaces!
+ *
+ * http://www.FreeRTOS.org
+ * http://www.FreeRTOS.org/FreeRTOS-Plus
+ *
+ */
+
+#ifndef COMMAND_INTERPRETER_H
+#define COMMAND_INTERPRETER_H
+
+/* The prototype to which callback functions used to process command line
+commands must comply.  pcWriteBuffer is a buffer into which the output from 
+executing the command can be written, xWriteBufferLen is the length, in bytes of 
+the pcWriteBuffer buffer, and pcCommandString is the entire string as input by
+the user (from which parameters can be extracted).*/
+typedef portBASE_TYPE (*pdCOMMAND_LINE_CALLBACK)( int8_t *pcWriteBuffer, size_t xWriteBufferLen, const int8_t * pcCommandString );
+
+/* The structure that defines command line commands.  A command line command
+should be defined by declaring a const structure of this type. */
+typedef struct xCOMMAND_LINE_INPUT
+{
+	const int8_t * const pcCommand;				/* The command that causes pxCommandInterpreter to be executed.  For example "help".  Must be all lower case. */
+	const int8_t * const pcHelpString;			/* String that describes how to use the command.  Should start with the command itself, and end with "\r\n".  For example "help: Returns a list of all the commands\r\n". */
+	const pdCOMMAND_LINE_CALLBACK pxCommandInterpreter;	/* A pointer to the callback function that will return the output generated by the command. */
+	int8_t cExpectedNumberOfParameters;			/* Commands expect a fixed number of parameters, which may be zero. */
+} CLI_Command_Definition_t;
+
+/* For backward compatibility. */
+#define xCommandLineInput CLI_Command_Definition_t
+
+/*
+ * Register the command passed in using the pxCommandToRegister parameter.
+ * Registering a command adds the command to the list of commands that are
+ * handled by the command interpreter.  Once a command has been registered it
+ * can be executed from the command line.
+ */
+portBASE_TYPE FreeRTOS_CLIRegisterCommand( const CLI_Command_Definition_t * const pxCommandToRegister );
+
+/*
+ * Runs the command interpreter for the command string "pcCommandInput".  Any
+ * output generated by running the command will be placed into pcWriteBuffer.
+ * xWriteBufferLen must indicate the size, in bytes, of the buffer pointed to
+ * by pcWriteBuffer.
+ *
+ * FreeRTOS_CLIProcessCommand should be called repeatedly until it returns pdFALSE.
+ *
+ * pcCmdIntProcessCommand is not reentrant.  It must not be called from more
+ * than one task - or at least - by more than one task at a time.
+ */
+portBASE_TYPE FreeRTOS_CLIProcessCommand( const int8_t * const pcCommandInput, int8_t * pcWriteBuffer, size_t xWriteBufferLen  );
+
+/*-----------------------------------------------------------*/
+
+/*
+ * A buffer into which command outputs can be written is declared in the
+ * main command interpreter, rather than in the command console implementation,
+ * to allow application that provide access to the command console via multiple
+ * interfaces to share a buffer, and therefore save RAM.  Note, however, that
+ * the command interpreter itself is not re-entrant, so only one command
+ * console interface can be used at any one time.  For that reason, no attempt
+ * is made to provide any mutual exclusion mechanism on the output buffer.
+ *
+ * FreeRTOS_CLIGetOutputBuffer() returns the address of the output buffer.
+ */
+int8_t *FreeRTOS_CLIGetOutputBuffer( void );
+
+/*
+ * Return a pointer to the xParameterNumber'th word in pcCommandString.
+ */
+const int8_t *FreeRTOS_CLIGetParameter( const int8_t *pcCommandString, unsigned portBASE_TYPE uxWantedParameter, portBASE_TYPE *pxParameterStringLength );
+
+#endif /* COMMAND_INTERPRETER_H */
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/FreeRTOS-Plus/FreeRTOS-Plus-CLI/History.txt b/FreeRTOS-Plus/FreeRTOS-Plus-CLI/History.txt
new file mode 100644
index 000000000..778a63d05
--- /dev/null
+++ b/FreeRTOS-Plus/FreeRTOS-Plus-CLI/History.txt
@@ -0,0 +1,7 @@
+Changes between V1.0.0 and V1.0.1 released 05/07/2012
+
+	+ Change the name of the structure used to map a function that implements
+	  a CLI command to the string used to call the command from 
+	  xCommandLineInput to CLI_Command_Definition_t, as it was always intended
+	  to be.  A #define was added to map the old name to the new name for
+	  reasons of backward compatibility.
\ No newline at end of file
diff --git a/FreeRTOS-Plus/FreeRTOS-Plus-Trace/Configuration - template/Readme Config.txt b/FreeRTOS-Plus/FreeRTOS-Plus-Trace/Configuration - template/Readme Config.txt
new file mode 100644
index 000000000..bf184a25f
--- /dev/null
+++ b/FreeRTOS-Plus/FreeRTOS-Plus-Trace/Configuration - template/Readme Config.txt	
@@ -0,0 +1,22 @@
+FreeRTOS+Trace v2.2.3
+---------------------
+
+This directory contains the recorder files that the typical FreeRTOS+Trace user needs to be aware of.
+
+- trcPort.h - contains the hardware ports and the setting of what port to use.
+- trcConfig.h - contains the recorder configuration.
+
+The files in this directory are however not referenced by any of the demo projects. 
+Copies of these files are instead found in each Demo project directory.
+
+These copies are included here to make the TraceRecorderSrc directory complete.
+
+If you use this template, you will need to update the following macro definitions in trcPort.h:
+- SELECTED_PORT
+- IRQ_PRIORITY_ORDER
+- vTraceConsoleMessage (optional, if console prints are desired)
+
+Always remember to check the settings used in trcConfig.h.
+
+Percepio AB
+www.percepio.se
diff --git a/FreeRTOS-Plus/FreeRTOS-Plus-Trace/Configuration - template/trcConfig.h b/FreeRTOS-Plus/FreeRTOS-Plus-Trace/Configuration - template/trcConfig.h
new file mode 100644
index 000000000..35129bebc
--- /dev/null
+++ b/FreeRTOS-Plus/FreeRTOS-Plus-Trace/Configuration - template/trcConfig.h	
@@ -0,0 +1,431 @@
+/*******************************************************************************
+ * FreeRTOS+Trace v2.2.3 Recorder Library
+ * Percepio AB, www.percepio.se
+ *
+ * trcConfig.h
+ *
+ * Configuration parameters for the trace recorder library. Before using the 
+ * trace recorder library, please check that the default settings are 
+ * appropriate for your system, and if necessary adjust these. Most likely, you 
+ * will need to adjust the NTask, NISR, NQueue, NMutex and NSemaphore values to 
+ * reflect the number of such objects in your system. These may be 
+ * overapproximated, although larger values values implies more RAM usage.
+ *
+ * Terms of Use
+ * This software is copyright Percepio AB. The recorder library is free for
+ * use together with Percepio products. You may distribute the recorder library
+ * in its original form, including modifications in trcPort.c and trcPort.h
+ * given that these modification are clearly marked as your own modifications
+ * and documented in the initial comment section of these source files. 
+ * This software is the intellectual property of Percepio AB and may not be 
+ * sold or in other ways commercially redistributed without explicit written 
+ * permission by Percepio AB.
+ *
+ * Disclaimer 
+ * The trace tool and recorder library is being delivered to you AS IS and 
+ * Percepio AB makes no warranty as to its use or performance. Percepio AB does 
+ * not and cannot warrant the performance or results you may obtain by using the 
+ * software or documentation. Percepio AB make no warranties, express or 
+ * implied, as to noninfringement of third party rights, merchantability, or 
+ * fitness for any particular purpose. In no event will Percepio AB, its 
+ * technology partners, or distributors be liable to you for any consequential, 
+ * incidental or special damages, including any lost profits or lost savings, 
+ * even if a representative of Percepio AB has been advised of the possibility 
+ * of such damages, or for any claim by any third party. Some jurisdictions do 
+ * not allow the exclusion or limitation of incidental, consequential or special 
+ * damages, or the exclusion of implied warranties or limitations on how long an 
+ * implied warranty may last, so the above limitations may not apply to you.
+ *
+ * FreeRTOS+Trace is available as Free Edition and in two premium editions.
+ * You may use the premium features during 30 days for evaluation.
+ * Download FreeRTOS+Trace at http://www.percepio.se/index.php?page=downloads
+ *
+ * Copyright Percepio AB, 2012.
+ * www.percepio.se
+ ******************************************************************************/
+
+#ifndef TRCCONFIG_H
+#define TRCCONFIG_H
+
+/*******************************************************************************
+ * CONFIGURATION RELATED TO CAPACITY AND ALLOCATION 
+ ******************************************************************************/
+
+/*******************************************************************************
+ * EVENT_BUFFER_SIZE
+ *
+ * Macro which should be defined as an integer value.
+ *
+ * This defines the capacity of the event buffer, i.e., the number of records
+ * it may store. Each registered event typically use one record (4 byte), but
+ * vTracePrintF may use multiple records depending on the number of data args.
+ ******************************************************************************/
+
+#ifdef WIN32
+    #define EVENT_BUFFER_SIZE 3000
+#else
+    #define EVENT_BUFFER_SIZE 1000 /* Adjust wrt. to available RAM */
+#endif
+
+/*******************************************************************************
+ * SYMBOL_TABLE_SIZE
+ *
+ * Macro which should be defined as an integer value.
+ *
+ * This defines the capacity of the symbol table, in bytes. This symbol table 
+ * stores User Events labels and names of deleted tasks, queues, or other kernel
+ * objects. Note that the names of active objects not stored here but in the 
+ * Object Table. Thus, if you don't use User Events or delete any kernel 
+ * objects you set this to zero (0) to minimize RAM usage.
+ ******************************************************************************/
+#define SYMBOL_TABLE_SIZE 1000
+
+/*******************************************************************************
+ * NTask, NISR, NQueue, NSemaphore, NMutex
+ *
+ * A group of Macros which should be defined as an integer value of zero (0) 
+ * or larger.
+ *
+ * This defines the capacity of the Object Property Table - the maximum number
+ * of objects active at any given point within each object class.
+ * 
+ * NOTE: In case objects are deleted and created during runtime, this setting
+ * does not limit the total amount of objects, only the number of concurrently
+ * active objects. 
+ *
+ * Using too small values will give an error message through the vTraceError
+ * routine, which makes the error message appear when opening the trace data
+ * in FreeRTOS+Trace. If you are using the recorder status monitor task,
+ * any error messages are displayed in console prints, assuming that the
+ * print macro has been defined properly (vConsolePrintMessage).
+ * 
+ * NOTE 2: If you include the monitor task (USE_TRACE_PROGRESS_MONITOR_TASK)
+ * make sure to dimension NTask with this task accounted for.
+ *
+ * Also remember to account for all tasks created by FreeRTOS, such as the 
+ * IDLE task, the FreeRTOS timer task, and any tasks created by other 3rd party 
+ * software components, such as communication stacks.
+ * Moreover, one task slot is used to indicate "(startup)", i.e., a "task" that 
+ * represent the time before the first task starts. NTask should thus be at 
+ * least 2-3 slots larger than your application task count.
+ *
+ * NOTE 3: The FreeRTOS timer task creates a Queue, that should be accounted 
+ * for in NQueue.
+ ******************************************************************************/
+#define NTask             15
+#define NISR              4
+#define NQueue            3
+#define NSemaphore        4
+#define NMutex            2
+
+/* Maximum object name length for each class (includes zero termination) */
+#define NameLenTask       configMAX_TASK_NAME_LEN
+#define NameLenISR        10
+#define NameLenQueue      15
+#define NameLenSemaphore  15
+#define NameLenMutex      15
+
+/******************************************************************************
+ * TRACE_DESCRIPTION
+ *
+ * Macro which should be defined as a string.
+ *
+ * This string is stored in the trace and displayed in FreeRTOS+Trace. Can be
+ * used to store, e.g., system version or build date. This is also used to store
+ * internal error messages from the recorder, which if occurs overwrites the
+ * value defined here. This may be maximum 256 chars.
+ *****************************************************************************/
+#define TRACE_DESCRIPTION "FreeRTOS+Trace Demo"
+
+/******************************************************************************
+ * TRACE_DESCRIPTION_MAX_LENGTH
+ *
+ * The maximum length (including zero termination) for the TRACE_DESCRIPTION
+ * string. Since this string also is used for internal error messages from the 
+ * recorder do not make it too short, as this may truncate the error messages.
+ * Default is 80. 
+ * Maximum allowed length is 256 - the trace will fail to load if longer.
+ *****************************************************************************/
+#define TRACE_DESCRIPTION_MAX_LENGTH 80
+
+
+/******************************************************************************
+ * TRACE_DATA_ALLOCATION
+ *
+ * This defines how to allocate the recorder data structure, i.e., using a 
+ * static declaration or using a dynamic allocation in runtime (malloc).
+ *
+ * Should be one of these two options:
+ * - TRACE_DATA_ALLOCATION_STATIC (default)
+ * - TRACE_DATA_ALLOCATION_DYNAMIC
+ *
+ * Using static allocation has the benefits of compile-time errors if the buffer 
+ * is too large (too large constants in trcConfig.h) and no need to call the 
+ * initialization routine (xTraceInitTraceData).
+ *
+ * Using dynamic allocation may give more flexibility in some cases.
+ *****************************************************************************/
+
+#define TRACE_DATA_ALLOCATION TRACE_DATA_ALLOCATION_STATIC
+
+
+/******************************************************************************
+ * CONFIGURATION REGARDING WHAT CODE/FEATURES TO INCLUDE
+ *****************************************************************************/
+
+/******************************************************************************
+ * INCLUDE_FLOAT_SUPPORT
+ *
+ * Macro which should be defined as either zero (0) or one (1). 
+ * Default is 1.
+ *
+ * If this is zero (0), all references to floating point values are removed,
+ * in case floating point values are not supported by the platform used.
+ * Floating point values are only used in vTracePrintF and its subroutines, to 
+ * store float (%f) or double (%lf) argments. 
+ *
+ * Note: vTracePrintF can still be used with integer and string arguments in
+ * either case.
+ *****************************************************************************/
+#define INCLUDE_FLOAT_SUPPORT 1
+
+/******************************************************************************
+ * INCLUDE_USER_EVENTS
+ *
+ * Macro which should be defined as either zero (0) or one (1). 
+ * Default is 1.
+ *
+ * If this is zero (0) the code for creating User Events is excluded to
+ * reduce code size. User Events are application-generated events, like 
+ * "printf" but for the trace log instead of console output. User Events are 
+ * much faster than a printf and can therefore be used in timing critical code.
+ * See vTraceUserEvent() and vTracePrintF() in trcUser.h
+ * 
+ * Note that FreeRTOS+Trace Standard Edition or Professional Edition is required
+ * for User Events, they are not displayed in FreeRTOS+Trace Free Edition.
+ *****************************************************************************/
+#define INCLUDE_USER_EVENTS 1
+
+/*****************************************************************************
+ * INCLUDE_ISR_TRACING
+ *
+ * Macro which should be defined as either zero (0) or one (1). 
+ * Default is 1.
+ *
+ * If this is zero (0), the code for recording Interrupt Service Routines is 
+ * excluded to reduce code size. Note, recording ISRs require that you insert
+ * calls to vTraceStoreISRBegin and vTraceStoreISREnd in your interrupt handlers.
+ * There is no automatic recording of ISRs like for task scheduling, since 
+ * FreeRTOS does not have a central interrupt dispatcher.
+ *****************************************************************************/
+#define INCLUDE_ISR_TRACING 1
+
+/******************************************************************************
+ * INCLUDE_OBJECT_DELETE
+ * 
+ * Macro which should be defined as either zero (0) or one (1). 
+ * Default is 1.
+ *
+ * This must be enabled (1) if tasks, queues or other 
+ * traced kernel objects are deleted at runtime, e.g., using vTaskDelete or 
+ * vQueueDelete. If no deletes are made, this can be set to 0 in order to
+ * exclude the delete-handling code. 
+ *****************************************************************************/
+#define INCLUDE_OBJECT_DELETE 1
+
+/******************************************************************************
+ * CONFIGURATION RELATED TO BEHAVIOR
+ *****************************************************************************/
+
+/******************************************************************************
+ * RECORDER_STORE_MODE
+ *
+ * Macro which should be defined as one of:
+ * - STORE_MODE_RING_BUFFER
+ * - STORE_MODE_STOP_WHEN_FULL
+ * Default is STORE_MODE_RING_BUFFER.
+ *
+ * With RECORDER_STORE_MODE set to STORE_MODE_RING_BUFFER, the events are stored
+ * in a ring buffer, i.e., where the oldest events are overwritten when the
+ * buffer becomes full. This allows you to get the last events leading up to an
+ * interesting state, e.g., an error, without having a large trace buffer for
+ * string the whole run since startup. In this mode, the recorder can run
+ * "forever" as the buffer never gets full, i.e., in the sense that it always
+ * has room for more events.
+ *
+ * To fetch the trace in mode STORE_MODE_RING_BUFFER, you need to first halt the
+ * system using your debugger and then do a RAM dump, or to explicitly stop the
+ * recorder using vTraceStop() and then store/upload the trace data using a
+ * FreeRTOS task that you need to provide yourself. The trace data is found in
+ * the struct RecorderData, initialized in trcBase.c.
+ *
+ * Note that, if you upload the trace using a RAM dump, i.e., when the system is 
+ * halted on a breakpoint or by a debugger command, there is no need to stop the 
+ * recorder first.
+ *
+ * When RECORDER_STORE_MODE is STORE_MODE_STOP_WHEN_FULL, the recording is
+ * stopped when the buffer becomes full. When the recorder stops itself this way
+ * vTracePortEnd() is called which allows for custom actions, such as triggering
+ * a task that stores the trace buffer, i.e., in case taking a RAM dump
+ * using an on-chip debugger is not possible. In the Windows port, vTracePortEnd
+ * saves the trace to file directly, but this is not recommended in a real-time
+ * system since the scheduler is blocked during the processing of vTracePortEnd.
+ *****************************************************************************/
+#ifndef WIN32
+#define RECORDER_STORE_MODE STORE_MODE_RING_BUFFER
+#else
+/* Default in the Win32 demo */
+#define RECORDER_STORE_MODE STORE_MODE_STOP_WHEN_FULL
+#endif
+
+/******************************************************************************
+ * STOP_AFTER_N_EVENTS
+ *
+ * Macro which should be defined as an integer value, or not defined.
+ * Default is -1
+ *
+ * STOP_AFTER_N_EVENTS is intended for tests of the ring buffer mode (when
+ * RECORDER_STORE_MODE is STORE_MODE_RING_BUFFER). It stops the recording when
+ * the specified number of events has been observed. This value can be larger
+ * than the buffer size, to allow for test of the "wrapping around" that occurs
+ * in ring buffer mode . A negative value (or no definition of this macro)
+ * disables this feature.
+ *****************************************************************************/
+#define STOP_AFTER_N_EVENTS -1
+
+/******************************************************************************
+ * USE_IMPLICIT_IFE_RULES
+ *
+ * Macro which should be defined as either zero (0) or one (1). 
+ * Default is 1.
+ *
+ * ### Instance Finish Events (IFE) ###
+ *
+ * For tasks with "infinite" main loops (non-terminating tasks), the concept
+ * of a task instance has no clear definition, it is an application-specific
+ * thing. FreeRTOS+Trace allows you to define Instance Finish Events (IFEs),
+ * which marks the point in a cyclic task when the "task instance" ends.
+ * The IFE is a blocking kernel call, typically in the main loop of a task
+ * which typically reads a message queue, waits for a semaphore or performs
+ * an explicit delay.
+ *
+ * If USE_IMPLICIT_IFE_RULES is one (1), the following FreeRTOS kernel calls
+ * are considered by default to be IFEs (Implicit IFEs):
+ *  - vTaskDelay
+ *  - vTaskDelayUntil
+ *  - vTaskSuspend
+ *  - xQueueReceive (blocking cases only)
+ *  - xSemaphoreTake (blocking cases only)
+ *
+ * However, Implicit IFEs only applies to blocking kernel calls. If an
+ * xQueueReceive reads a message without blocking, it does not create a new
+ * instance since no blocking occurred.
+ *
+ * Moreover, the actual IFE might sometimes be another blocking call such as
+ * xQueueSend or xSemaphoreGive. We therefore allow for user-defined
+ * Explicit IFEs by calling
+ *
+ *     vTraceTaskInstanceIsFinished()
+ *
+ * right before the kernel call considered as IFE. This does not create an
+ * additional event but instead stores the service code and object handle
+ * of the IFE call as properties of the task.
+ *
+ * If using Explicit IFEs and the task also calls an Implicit IFE like
+ * vTaskDelay, this may result in additional incorrect task instances.
+ * This is solved by disabling the Implicit IFEs for the task, by adding
+ * a call to
+ * 
+ *     vTraceTaskSkipDefaultInstanceFinishedEvents()
+ * 
+ * in the very beginning of that task. This allows you to combine Explicit IFEs
+ * for some tasks with Implicit IFEs for the rest of the tasks, if
+ * USE_IMPLICIT_IFE_RULES is 1.
+ *
+ * By setting USE_IMPLICIT_IFE_RULES to zero (0), the implicit IFEs are disabled
+ * for all tasks. Tasks will then be considered to have a single instance only, 
+ * covering all execution fragments, unless you define an explicit IFE in each
+ * task by calling vTraceTaskInstanceIsFinished before the blocking call.
+ *****************************************************************************/
+#define USE_IMPLICIT_IFE_RULES 1
+
+/******************************************************************************
+ * INCLUDE_SAVE_TO_FILE
+ *
+ * Macro which should be defined as either zero (0) or one (1).
+ * Default is 0.
+ *
+ * If enabled (1), the recorder will include code for saving the trace
+ * to a local file system.
+ ******************************************************************************/
+#ifdef WIN32
+    #define INCLUDE_SAVE_TO_FILE 1
+#else
+    #define INCLUDE_SAVE_TO_FILE 0
+#endif
+
+/******************************************************************************
+ * TRACE_PROGRESS_MONITOR_TASK_PRIORITY
+ *
+ * Macro which sets the priority of the "recorder status monitor" task.
+ *
+ * This task, vTraceMonitorTask in trcUser.c, periodically writes
+ * the recorder status using the vTraceConsoleMessage macro, which is to
+ * be mapped to your console "printf" routine. The task is named TraceMon but 
+ * is intentionally excluded from the demo trace.
+ *
+ * Default is tskIDLE_PRIORITY + 1
+ * Note that if your system constantly has a high CPU load from high-priority 
+ * tasks, this might not be get a chance to execute.
+ * 
+ * See vTraceMonitorTask in trcUser.c
+ *****************************************************************************/
+#define TRACE_PROGRESS_MONITOR_TASK_PRIORITY (tskIDLE_PRIORITY + 1)
+
+/******************************************************************************
+ * TRACE_PROGRESS_MONITOR_TASK_STACKSIZE
+ *
+ * Macro which sets the stack size of the "recorder status monitor" task.
+ *
+ * This task, vTraceMonitorTask in trcUser.c, periodically writes
+ * the recorder status using the vTraceConsoleMessage macro, which is to
+ * be mapped to your console "printf" routine. The task is intentionally 
+ * excluded from the demo trace.
+ *
+ * See vTraceMonitorTask in trcUser.c
+ *****************************************************************************/
+#define TRACE_PROGRESS_MONITOR_TASK_STACKSIZE 500
+
+/******************************************************************************
+ * TRACE_PROGRESS_MONITOR_TASK_PERIOD
+ *
+ * Macro which sets the period of the "recorder status monitor" task.
+ *
+ * This task, vTraceMonitorTask in trcUser.c, periodically writes
+ * the recorder status using the vTraceConsoleMessage macro, which is to
+ * be mapped to your console "printf" routine. The task is named TraceMon but 
+ * is intentionally excluded from the demo trace.
+ *
+ * Default is 1000 FreeRTOS ticks (typically 1 second). On the Windows port, a 
+ * lower value is suggested since the Windows port runs very slowly, often 20-40
+ * times slower than the simulated FreeRTOS time.
+ *
+ * See vTraceMonitorTask in trcUser.c
+ *****************************************************************************/
+#ifdef WIN32
+    #define TRACE_PROGRESS_MONITOR_TASK_PERIOD 100
+#else
+    #define TRACE_PROGRESS_MONITOR_TASK_PERIOD 1000
+#endif
+
+/******************************************************************************
+ * TEAM_LICENSE_CODE
+ *
+ * Macro which defines a string - the team license code.
+ * If no team license is available, this should be an empty string "".
+ * This should be maximum 32 chars, including zero-termination.
+ *****************************************************************************/
+#define TEAM_LICENSE_CODE ""
+
+#endif
+
diff --git a/FreeRTOS-Plus/FreeRTOS-Plus-Trace/Configuration - template/trcPort.h b/FreeRTOS-Plus/FreeRTOS-Plus-Trace/Configuration - template/trcPort.h
new file mode 100644
index 000000000..3d70ef5b8
--- /dev/null
+++ b/FreeRTOS-Plus/FreeRTOS-Plus-Trace/Configuration - template/trcPort.h	
@@ -0,0 +1,397 @@
+/******************************************************************************* 
+ * FreeRTOS+Trace v2.2.3 Recorder Library
+ * Percepio AB, www.percepio.se
+ *
+ * trcPort.h
+ *
+ * Contains together with trcPort.c all portability issues of the trace recorder 
+ * library.
+ *
+ * Terms of Use
+ * This software is copyright Percepio AB. The recorder library is free for
+ * use together with Percepio products. You may distribute the recorder library
+ * in its original form, including modifications in trcPort.c and trcPort.h
+ * given that these modification are clearly marked as your own modifications
+ * and documented in the initial comment section of these source files. 
+ * This software is the intellectual property of Percepio AB and may not be 
+ * sold or in other ways commercially redistributed without explicit written 
+ * permission by Percepio AB.
+ *
+ * Disclaimer 
+ * The trace tool and recorder library is being delivered to you AS IS and 
+ * Percepio AB makes no warranty as to its use or performance. Percepio AB does 
+ * not and cannot warrant the performance or results you may obtain by using the 
+ * software or documentation. Percepio AB make no warranties, express or 
+ * implied, as to noninfringement of third party rights, merchantability, or 
+ * fitness for any particular purpose. In no event will Percepio AB, its 
+ * technology partners, or distributors be liable to you for any consequential, 
+ * incidental or special damages, including any lost profits or lost savings, 
+ * even if a representative of Percepio AB has been advised of the possibility 
+ * of such damages, or for any claim by any third party. Some jurisdictions do 
+ * not allow the exclusion or limitation of incidental, consequential or special 
+ * damages, or the exclusion of implied warranties or limitations on how long an 
+ * implied warranty may last, so the above limitations may not apply to you.
+ *
+ * FreeRTOS+Trace is available as Free Edition and in two premium editions.
+ * You may use the premium features during 30 days for evaluation.
+ * Download FreeRTOS+Trace at http://www.percepio.se/index.php?page=downloads
+ *
+ * Copyright Percepio AB, 2012.
+ * www.percepio.se
+ ******************************************************************************/
+
+#ifndef TRCPORT_H
+#define TRCPORT_H
+
+#include "trcBase.h"
+
+/* If FreeRTOS Win32 port */
+#ifdef WIN32
+
+   #undef _WIN32_WINNT
+   #define _WIN32_WINNT 0x0600
+
+   /* Standard includes. */
+   #include 
+   #include 
+   #include 
+
+/*******************************************************************************
+ * The Win32 port by default saves the trace to file and then kills the
+ * program when the recorder is stopped, to facilitate quick, simple tests
+ * of the recorder.
+ ******************************************************************************/
+   #define WIN32_PORT_SAVE_WHEN_STOPPED 1
+   #define WIN32_PORT_EXIT_WHEN_STOPPED 1
+
+#endif
+
+#define DIRECTION_INCREMENTING 1
+#define DIRECTION_DECREMENTING 2
+
+/******************************************************************************
+ * Supported ports
+ * 
+ * PORT_HWIndependent
+ * A hardware independent fallback option for event timestamping. Provides low 
+ * resolution timestamps based on the OS tick.
+ * This may be used on the Win32 port, but may also be used on embedded hardware 
+ * platforms. Note that this gives suboptimal display in FreeRTOS+Trace. All 
+ * time durations will be truncated to the OS tick frequency, typically 1 KHz. 
+ * This means that a task or ISR that executes in less than 1 ms get an exection 
+ * time of zero. They are however still visible in FreeRTOS+Trace. 
+ *
+ * PORT_Win32
+ * "Accurate" timestamping based on the Windows permance counter. Note that
+ * this gives the host machine time, not the simulated FreeRTOS time (tick 
+ * count). The timing of the Win32 FreeRTOS build is not real-time, since it 
+ * depends on the scheduling and tick rate of Windows, which is very slow.
+ *
+ * Officially supported hardware specific ports included are:
+ * - PORT_Atmel_AT91SAM7
+ * - PORT_ARM_CortexM 
+ * - PORT_Renesas_RX600
+ *
+ * We also provide several "unofficial" hardware-specific ports. There have 
+ * been developed by external contributors, and have not yet been verified 
+ * by Percepio AB. Let us know if you have problems getting these to work.
+ * 
+ * Unoffical hardware specific ports provided are:
+ * - PORT_TEXAS_INSTRUMENTS_TMS570
+ * - PORT_TEXAS_INSTRUMENTS_MSP430
+ * - PORT_MICROCHIP_PIC32
+ * - PORT_MICROCHIP_dsPIC_AND_PIC24
+ * - PORT_XILINX_PPC405
+ * - PORT_XILINX_PPC440
+ *
+ ******************************************************************************/
+
+#define PORT_NOT_SET                          -1
+
+/* Officially supported ports */
+#define PORT_HWIndependent                     0
+#define PORT_Win32                             1
+#define PORT_Atmel_AT91SAM7                    2
+#define PORT_ARM_CortexM                       3
+#define PORT_Renesas_RX600                     4
+
+/* Unofficial ports, provided by external developers and not yet verified */
+#define PORT_TEXAS_INSTRUMENTS_TMS570          5
+#define PORT_TEXAS_INSTRUMENTS_MSP430          6
+#define PORT_MICROCHIP_PIC32                   7
+#define PORT_MICROCHIP_dsPIC_AND_PIC24         8
+#define PORT_XILINX_PPC405                     9
+#define PORT_XILINX_PPC440                    10
+
+/*** Select your port here! **************************************************/
+#define SELECTED_PORT PORT_NOT_SET
+/*****************************************************************************/
+
+/*******************************************************************************
+ * IRQ_PRIORITY_ORDER
+ *
+ * Macro which should be defined as an integer of 0 or 1.
+ *
+ * This should be 0 if lower irq priority values implies higher priority 
+ * levels, such as on ARM Cortex M. If the opposite scheme is used, i.e., 
+ * if higher irq priority values means higher priority, this should be 1.
+ *
+ * This setting is not critical. It is used only to sort and colorize the 
+ * interrupts in priority order, in case you record interrupts using
+ * the vTraceStoreISRBegin and vTraceStoreISREnd routines.
+ *
+ * We provide this setting for some hardware architectures below:
+ * - ARM Cortex M:      0  (lower irq priority values are more significant)
+ * - Atmel AT91SAM7x:   1  (higher irq priority values are more significant)
+ * - Renesas RX62N:     1  (higher irq priority values are more significant)
+ * - Microchip PIC24:   0  (lower irq priority values are more significant)
+ * - Microchip dsPIC:   0  (lower irq priority values are more significant)
+ * - TI TMS570 (ARM Cortex R4F): 0  (lower irq priority values are more significant)
+ * - Freescale HCS08:   0  (lower irq priority values are more significant)
+ * - Freescale HCS12:   0  (lower irq priority values are more significant)
+ * - Freescale ColdFire:   1  (higher irq priority values are more significant)
+ *
+ * If your chip is not on the above list, and you perhaps know this detail by 
+ * heart, please inform us by e-mail to support@percepio.se.
+ ******************************************************************************/
+#define IRQ_PRIORITY_ORDER 0
+
+/*******************************************************************************
+ * HWTC macros
+ * 
+ * These four macros provides a hardware isolation layer, representing a 
+ * generic hardware timer/counter used for driving the operating system tick, 
+ * such as the SysTick feature of ARM Cortex M3/M4, or the PIT of the Atmel 
+ * AT91SAM7X.
+ *
+ * HWTC_COUNT: The current value of the counter. This is expected to be reset 
+ * a each tick interrupt. Thus, when the tick handler starts, the counter has 
+ * already wrapped.
+ *
+ * HWTC_COUNT_DIRECTION: Should be one of:
+ * - DIRECTION_INCREMENTING - for hardware timer/counters of incrementing type
+ *   such as the PIT on Atmel AT91SAM7X.
+ *   When the counter value reach HWTC_PERIOD, it is reset to zero and the
+ *   interrupt is signaled.
+ * - DIRECTION_DECREMENTING - for hardware timer/counters of decrementing type
+ *   such as the SysTick on ARM Cortex M3/M4 chips.
+ *   When the counter value reach 0, it is reset to HWTC_PERIOD and the
+ *   interrupt is signaled.
+ *
+ * HWTC_PERIOD: The number of increments or decrements of HWTC_COUNT between
+ * two tick interrupts. This should preferably be mapped to the reload
+ * register of the hardware timer, to make it more portable between chips in the 
+ * same family. The macro should in most cases be (reload register + 1).
+ *
+ * HWTC_DIVISOR: If the timer frequency is very high, like on the Cortex M chips
+ * (where the SysTick runs at the core clock frequency), the "differential 
+ * timestamping" used in the recorder will more frequently insert extra XTS 
+ * events to store the timestamps, which increases the event buffer usage. 
+ * In such cases, to reduce the number of XTS events and thereby get a longer 
+ * traces, you use HWTC_DIVISOR to scale down the timestamps and frequency.
+ * Assuming a OS tick rate of 1 KHz, it is suggested to keep the effective timer
+ * frequency below 65 MHz to avoid an excessive amount of XTS events. Thus, a
+ * Cortex M chip running at 72 MHZ should use a HWTC_DIVISOR of 2, while a 
+ * faster chip require a higher HWTC_DIVISOR value. 
+ *
+ * The HWTC macros and uiTracePortGetTimeStamp is the main porting issue
+ * or the trace recorder library. Typically you should not need to change
+ * the code of uiTracePortGetTimeStamp if using the HWTC macros.
+ *
+ * OFFER FROM PERCEPIO:
+ * For silicon companies and non-corporate FreeRTOS users (researchers, students,
+ * hobbyists or early-phase startups) we have an attractive offer: 
+ * Provide a hardware timer port and get a FREE single-user licence for
+ * FreeRTOS+Trace Professional Edition. Read more about this offer at 
+ * www.percepio.se or contact us directly at support@percepio.se.
+ *
+ ******************************************************************************/
+
+#if (SELECTED_PORT == PORT_Win32)
+    
+    #define HWTC_COUNT_DIRECTION DIRECTION_INCREMENTING
+    #define HWTC_COUNT (ulGetRunTimeCounterValue())
+    #define HWTC_PERIOD 0
+    #define HWTC_DIVISOR 1
+    
+#elif (SELECTED_PORT == PORT_HWIndependent)
+    
+    #define HWTC_COUNT_DIRECTION DIRECTION_INCREMENTING
+    #define HWTC_COUNT 0
+    #define HWTC_PERIOD 1
+    #define HWTC_DIVISOR 1
+    
+#elif (SELECTED_PORT == PORT_Atmel_AT91SAM7)
+
+    /* HWTC_PERIOD is hardcoded for AT91SAM7X256-EK Board (48 MHz)
+    A more generic solution is to get the period from pxPIT->PITC_PIMR */
+    
+    #define HWTC_COUNT_DIRECTION DIRECTION_INCREMENTING
+    #define HWTC_COUNT (AT91C_BASE_PITC->PITC_PIIR & 0xFFFFF)
+    #define HWTC_PERIOD 2995 
+    #define HWTC_DIVISOR 1
+
+#elif (SELECTED_PORT == PORT_ARM_CortexM)
+
+    /* For all chips using ARM Cortex M cores */
+
+    #define HWTC_COUNT_DIRECTION DIRECTION_DECREMENTING
+    #define HWTC_COUNT (*((uint32_t*)0xE000E018))
+    #define HWTC_PERIOD ((*(uint32_t*)0xE000E014) + 1)
+    #define HWTC_DIVISOR 2
+
+#elif (SELECTED_PORT == PORT_Renesas_RX600)    
+
+    #include "iodefine.h"
+
+    #define HWTC_COUNT_DIRECTION DIRECTION_INCREMENTING
+    #define HWTC_COUNT (CMT0.CMCNT)
+    #define HWTC_PERIOD ((((configPERIPHERAL_CLOCK_HZ/configTICK_RATE_HZ)-1)/8))
+    #define HWTC_DIVISOR 1
+
+#elif (SELECTED_PORT == PORT_TEXAS_INSTRUMENTS_TMS570)
+    /* UNOFFICIAL PORT - NOT YET VERIFIED BY PERCEPIO */
+
+    #define RTIFRC0 *((uint32_t *)0xFFFFFC10)
+    #define RTICOMP0 *((uint32_t *)0xFFFFFC50)
+    #define RTIUDCP0 *((uint32_t *)0xFFFFFC54)
+    #define HWTC_COUNT_DIRECTION DIRECTION_INCREMENTING
+    #define HWTC_COUNT (RTIFRC0 - (RTICOMP0 - RTIUDCP0))
+    #define HWTC_PERIOD (RTIUDCP0)
+    #define HWTC_DIVISOR 1
+
+#elif (SELECTED_PORT == PORT_TEXAS_INSTRUMENTS_MSP430)
+    /* UNOFFICIAL PORT - NOT YET VERIFIED BY PERCEPIO */
+
+    #define HWTC_COUNT_DIRECTION DIRECTION_INCREMENTING
+    #define HWTC_COUNT (TA0R)
+    #define HWTC_PERIOD configCPU_CLOCKS_PER_TICK      
+    #define HWTC_DIVISOR 1
+
+#elif (SELECTED_PORT == PORT_MICROCHIP_PIC32)
+    /* UNOFFICIAL PORT - NOT YET VERIFIED BY PERCEPIO */
+
+    #define HWTC_COUNT_DIRECTION DIRECTION_INCREMENTING
+    #define HWTC_COUNT (ReadTimer1())     /* Should be available in BSP */
+    #define HWTC_PERIOD (ReadPeriod1()+1) /* Should be available in BSP */
+    #define HWTC_DIVISOR 1
+
+#elif (SELECTED_PORT == PORT_MICROCHIP_dsPIC_AND_PIC24) 
+    /* UNOFFICIAL PORT - NOT YET VERIFIED BY PERCEPIO */
+
+    #define HWTC_COUNT_DIRECTION DIRECTION_INCREMENTING
+    #define HWTC_COUNT (PR1)
+    #define HWTC_PERIOD ((configCPU_CLOCK_HZ/portTIMER_PRESCALE)/configTICK_RATE_HZ)
+    #define HWTC_DIVISOR 1
+
+#elif (SELECTED_PORT == PORT_XILINX_PPC405) 
+    /* UNOFFICIAL PORT - NOT YET VERIFIED BY PERCEPIO */
+
+    #define HWTC_COUNT_DIRECTION DIRECTION_DECREMENTING
+    #define HWTC_COUNT  mfspr( 0x3db)
+    #define HWTC_PERIOD ( configCPU_CLOCK_HZ / configTICK_RATE_HZ )
+    #define HWTC_DIVISOR 1    
+
+#elif (SELECTED_PORT == PORT_XILINX_PPC440) 
+    /* UNOFFICIAL PORT - NOT YET VERIFIED BY PERCEPIO */
+
+    /* This should work with most PowerPC chips */
+    
+    #define HWTC_COUNT_DIRECTION DIRECTION_DECREMENTING
+    #define HWTC_COUNT  mfspr( 0x016 )
+    #define HWTC_PERIOD ( configCPU_CLOCK_HZ / configTICK_RATE_HZ )
+    #define HWTC_DIVISOR 1    
+
+#else
+#error "SELECTED_PORT is not set, or had unsupported value!"
+#endif
+
+#ifndef HWTC_COUNT_DIRECTION
+#error "HWTC_COUNT_DIRECTION is not set!"
+#endif 
+
+#ifndef HWTC_COUNT
+#error "HWTC_COUNT is not set!"    
+#endif 
+
+#ifndef HWTC_PERIOD
+#error "HWTC_PERIOD is not set!"
+#endif 
+
+#ifndef HWTC_DIVISOR
+#error "HWTC_DIVISOR is not set!"    
+#endif 
+
+#ifndef IRQ_PRIORITY_ORDER
+#error "IRQ_PRIORITY_ORDER is not set!"
+#endif 
+
+#if (IRQ_PRIORITY_ORDER != 0) && (IRQ_PRIORITY_ORDER != 1)
+#error "IRQ_PRIORITY_ORDER has bad value!"
+#endif 
+
+#if (HWTC_DIVISOR < 1)
+#error "HWTC_DIVISOR must be a non-zero positive value!"
+#endif 
+
+/*******************************************************************************
+ * vTraceConsoleMessage
+ *
+ * A wrapper for your system-specific console "printf" console output function.
+ * This needs to be correctly defined to see status reports from the trace 
+ * status monitor task (this is defined in trcUser.c).
+ ******************************************************************************/         
+#define vTraceConsoleMessage(x)
+
+/*******************************************************************************
+ * uiTracePortGetTimeStamp
+ *
+ * Returns the current time based on the HWTC macros which provide a hardware
+ * isolation layer towards the hardware timer/counter.
+ *
+ * The HWTC macros and uiTracePortGetTimeStamp is the main porting issue
+ * or the trace recorder library. Typically you should not need to change
+ * the code of uiTracePortGetTimeStamp if using the HWTC macros.
+ *
+ * OFFER FROM PERCEPIO:
+ * For silicon companies and non-corporate FreeRTOS users (researchers, 
+ * students, hobbyists or early-phase startups) we have an attractive offer: 
+ * Provide a hardware timer port and get a FREE single-user licence for
+ * FreeRTOS+Trace Professional Edition. Read more about this offer at 
+ * www.percepio.se or contact us directly at support@percepio.se.
+ ******************************************************************************/
+uint32_t uiTracePortGetTimeStamp(void);
+
+/*******************************************************************************
+ * vTracePortEnd
+ * 
+ * This function is called when the recorder is stopped due to full buffer.
+ * Mainly intended to show a message in the console.
+ * This is used by the Win32 port to store the trace to a file. The file path is
+ * set using vTracePortSetFileName.
+ ******************************************************************************/
+void vTracePortEnd(void);
+
+#if (INCLUDE_SAVE_TO_FILE == 1)
+
+/*******************************************************************************
+ * vTracePortSetOutFile
+ *
+ * Sets the filename/path used in vTracePortSave.
+ * This is set in a separate function, since the Win32 port calls vTracePortSave
+ * in vTracePortEnd if WIN32_PORT_SAVE_WHEN_STOPPED is set.
+ ******************************************************************************/
+void vTracePortSetOutFile(char* path);
+
+/******************************************************************************
+ * vTracePortSave
+ *
+ * Saves the trace to a file on a target-side file system. The path is set in a 
+ * separate function, vTracePortSetOutFile, since the Win32 port may call
+ * vTracePortSave in vTracePortEnd, if using WIN32_PORT_SAVE_WHEN_STOPPED.
+ ******************************************************************************/
+void vTracePortSave(void);
+
+#endif
+
+#endif
diff --git a/FreeRTOS-Plus/FreeRTOS-Plus-Trace/Include/trcBase.h b/FreeRTOS-Plus/FreeRTOS-Plus-Trace/Include/trcBase.h
new file mode 100644
index 000000000..a53d69244
--- /dev/null
+++ b/FreeRTOS-Plus/FreeRTOS-Plus-Trace/Include/trcBase.h
@@ -0,0 +1,497 @@
+/*******************************************************************************
+ * FreeRTOS+Trace v2.2.3 Recorder Library
+ * Percepio AB, www.percepio.se
+ *
+ * trcBase.h
+ *
+ * Core functionallity of the FreeRTOS+Trace recorder library.
+ *
+ * Terms of Use
+ * This software is copyright Percepio AB. The recorder library is free for
+ * use together with Percepio products. You may distribute the recorder library
+ * in its original form, including modifications in trcPort.c and trcPort.h
+ * given that these modification are clearly marked as your own modifications
+ * and documented in the initial comment section of these source files. 
+ * This software is the intellectual property of Percepio AB and may not be 
+ * sold or in other ways commercially redistributed without explicit written 
+ * permission by Percepio AB.
+ *
+ * Disclaimer 
+ * The trace tool and recorder library is being delivered to you AS IS and 
+ * Percepio AB makes no warranty as to its use or performance. Percepio AB does 
+ * not and cannot warrant the performance or results you may obtain by using the 
+ * software or documentation. Percepio AB make no warranties, express or 
+ * implied, as to noninfringement of third party rights, merchantability, or 
+ * fitness for any particular purpose. In no event will Percepio AB, its 
+ * technology partners, or distributors be liable to you for any consequential, 
+ * incidental or special damages, including any lost profits or lost savings, 
+ * even if a representative of Percepio AB has been advised of the possibility 
+ * of such damages, or for any claim by any third party. Some jurisdictions do 
+ * not allow the exclusion or limitation of incidental, consequential or special 
+ * damages, or the exclusion of implied warranties or limitations on how long an 
+ * implied warranty may last, so the above limitations may not apply to you.
+ * 
+ * FreeRTOS+Trace is available as Free Edition and in two premium editions.
+ * You may use the premium features during 30 days for evaluation.
+ * Download FreeRTOS+Trace at http://www.percepio.se/index.php?page=downloads
+ *
+ * Copyright Percepio AB, 2012.
+ * www.percepio.se
+ ******************************************************************************/
+
+#ifndef TRCBASE_H
+#define TRCBASE_H
+
+#include 
+#include 
+#include 
+#include "FreeRTOS.h"
+#include "trcConfig.h"
+#include "trcTypes.h"
+#include "trcPort.h"
+
+
+#define NCLASSES 5
+#define VERSION 0x1AA1
+#define MINOR_VERSION 1
+#define STORE_MODE_STOP_WHEN_FULL 1
+#define STORE_MODE_RING_BUFFER 2
+#define TRACE_DATA_ALLOCATION_STATIC 1
+#define TRACE_DATA_ALLOCATION_DYNAMIC 2
+
+/******************************************************************************
+ * Object Property Table
+ * The Object Table contains name and other properties of the objects (tasks,
+ * queues, mutexes, etc). The below data structures defines the properties of
+ * each object class and are used to cast the byte buffer into a cleaner format.
+ *
+ * The values in the object table are continously overwritten and always 
+ * represent the current state. If a property is changed during runtime, the OLD 
+ * value should be stored in the trace buffer, not the new value (since the new 
+ * value is found in the Object Property Table).
+ * For close events this mechanism is the old names are stored in the symbol
+ * table), for "priority set" (the old priority is stored in the event data)
+ * and for "isActive", where the value decides is the taskswitch event type
+ * should be "new" or "resume".
+ ******************************************************************************/
+
+/* The size of the Object Property Table entries, in bytes, per object */
+
+/* Queue properties (except name):     current number of message in queue */
+#define PropertyTableSizeQueue         (NameLenQueue + 1)      
+
+/* Semaphore properties (except name): state (signaled = 1, cleared = 0) */
+#define PropertyTableSizeSemaphore     (NameLenSemaphore + 1) 
+
+/* Mutex properties (except name):     owner (task handle, 0 = free) */
+#define PropertyTableSizeMutex         (NameLenMutex + 1)         
+
+/* Task properties (except name):      Byte 0: Current priority
+                                       Byte 1: state (if already active) 
+                                       Byte 2: InstanceFinishEvent_ServiceCode
+                                       Byte 3: InstanceFinishEvent_ObjHandle */
+#define PropertyTableSizeTask         (NameLenTask + 4)
+
+/* ISR properties:                     Byte 0: priority
+                                       Byte 1: state (if already active) */
+#define PropertyTableSizeISR          (NameLenISR + 2)
+
+/* The layout of the byte array representing the Object Property Table */
+#define StartIndexQueue            0
+#define StartIndexSemaphore        StartIndexQueue     + NQueue * PropertyTableSizeQueue
+#define StartIndexMutex            StartIndexSemaphore + NSemaphore * PropertyTableSizeSemaphore
+#define StartIndexTask             StartIndexMutex     + NMutex * PropertyTableSizeMutex
+#define StartIndexISR              StartIndexTask      + NTask * PropertyTableSizeTask
+#define DynObjTableSize            StartIndexISR       + NISR * PropertyTableSizeISR
+
+typedef struct
+{
+    /* = NCLASSES */
+    uint32_t NumberOfObjectClasses;
+    
+    uint32_t ObjectPropertyTableSizeInBytes;
+        
+    /* This is used to calculate the index in the dynamic object table 
+    (handle - 1 - nofStaticObjects = index)*/
+    uint8_t NumberOfObjectsPerClass[ 4*((NCLASSES+3)/4)];      
+
+    /* Allocation size rounded up to the closest multiple of 4 */    
+    uint8_t NameLengthPerClass[ 4*((NCLASSES+3)/4) ];
+    
+    uint8_t TotalPropertyBytesPerClass[ 4*((NCLASSES+3)/4) ];
+    
+    /* Allocation size rounded up to the closest multiple of 2 */
+    uint16_t StartIndexOfClass[ 2*((NCLASSES+1)/2) ];
+
+    /* The actual handles issued, should be Initiated to all zeros */     
+    uint8_t objbytes[ 4*((DynObjTableSize+3)/4) ];
+} ObjectPropertyTableType;
+
+/* Symbol table data structure */
+typedef struct
+{
+    /* = SYMBOL_HISTORY_TABLE_SIZE_IN_BYTES */
+    uint32_t symTableSize;                       
+        
+    /* Entry 0 is reserved. Any reference to entry 0 implies NULL*/
+    uint32_t nextFreeSymbolIndex;         
+        
+    /* Size rounded up to closest multiple of 4, to avoid alignment issues*/
+    uint8_t symbytes[4*((SYMBOL_TABLE_SIZE+3)/4)];           
+        
+    /* Used for lookups - Up to 64 linked lists within the symbol table 
+    connecting all entries with the same 6 bit checksum. 
+    This field holds the current list heads. Should be initiated to zeros */
+    uint16_t latestEntryOfChecksum[64];              
+} symbolTableType;
+
+
+/*******************************************************************************
+ * The data structures of the different events, all 4 bytes long 
+ ******************************************************************************/
+
+typedef struct
+{
+    uint8_t type;                
+    objectHandleType objHandle;
+    uint16_t dts;    /* differential timestamp - time since last event */            
+} TSEvent;
+
+typedef struct
+{
+    uint8_t type;
+    uint8_t objHandle;
+    uint16_t dts;
+} KernelCall;
+
+typedef struct
+{
+    uint8_t type;
+    objectHandleType objHandle;
+    uint8_t param;
+    uint8_t dts;                
+} KernelCallWithParamAndHandle;
+
+typedef struct
+{
+    uint8_t type;
+    uint8_t dts;                
+    uint16_t param;
+} KernelCallWithParam16;
+
+typedef struct
+{
+    uint8_t type;
+    objectHandleType objHandle;    /* the handle of the closed object */
+    uint16_t symbolIndex;          /* the name of the closed object */
+} ObjCloseNameEvent;
+
+typedef struct
+{
+    uint8_t type;
+    uint8_t arg1;            
+    uint8_t arg2;        
+    uint8_t arg3;        
+} ObjClosePropEvent;
+
+typedef struct
+{
+    uint8_t type;
+    uint8_t dts;                
+    uint16_t payload;         /* the name of the user event */
+} UserEvent;
+
+typedef struct
+{
+    uint8_t type;            
+    
+    /* 8 bits extra for storing DTS, if it does not fit in ordinary event 
+    (this one is always MSB if used) */
+    uint8_t xts_8;            
+    
+    /* 16 bits extra for storing DTS, if it does not fit in ordinary event. */
+    uint16_t xts_16;          
+} XTSEvent;
+
+
+/*******************************************************************************
+ * The main datastructure, read by FreeRTOS+Trace from the RAM dump
+ ******************************************************************************/
+
+typedef struct
+{    
+    uint8_t startmarker0;
+    uint8_t startmarker1;
+    uint8_t startmarker2;
+    uint8_t startmarker3;
+    uint8_t startmarker4;
+    uint8_t startmarker5;
+    uint8_t startmarker6;
+    uint8_t startmarker7;
+    uint8_t startmarker8;
+    uint8_t startmarker9;
+    uint8_t startmarker10;
+    uint8_t startmarker11;
+
+    /* For FreeRTOS: 0x1AA1 */
+    uint16_t version;     
+    
+    /* Currently 1 for v2.2.2 (0 earlier)*/
+    uint8_t minor_version;
+    
+    /* This should be 0 if lower irq priority values implies higher priority 
+    levels, such as on ARM Cortex M. If the opposite scheme is used, i.e., 
+    if higher irq priority values means higher priority, this should be 1. */ 
+    uint8_t irq_priority_order;
+            
+    /* sizeof(RecorderDataType) - just for control */
+    uint32_t filesize;     
+        
+    /* Current number of events recorded */
+    uint32_t numEvents;
+        
+    /* The buffer size, in number of event records */
+    uint32_t maxEvents;
+        
+    /* The event buffer index, where to write the next event */
+    uint32_t nextFreeIndex;
+        
+    /* 1 if the buffer is full, 0 otherwise */
+    uint32_t bufferIsFull;
+
+    /* The frequency of the clock/timer/counter used as time base */
+    uint32_t frequency;
+
+    /* The absolute timestamp of the last stored event, in the native 
+    timebase, modulo frequency! */
+    uint32_t absTimeLastEvent;    
+    
+    /* The number of seconds in total - lasts for 136 years */
+    uint32_t absTimeLastEventSecond;    
+    
+    /* 1 if the recorder has been started, 0 if not yet started or stopped.
+    This is a 32 bit variable due to alignment issues. */
+    uint32_t recorderActive;      
+
+    /* For storing a Team License key */
+    uint8_t teamLicenceKey[32];
+
+    /* 0xF0F0F0F0 - for control only */
+    int32_t debugMarker0;                    
+
+    /* The Object Property Table holds information about currently active
+    tasks, queues, and other recorded objects. This is updated on each
+    create call and includes object name and other properties. */
+    ObjectPropertyTableType ObjectPropertyTable;
+
+    /* 0xF1F1F1F1 - for control only */ 
+    int32_t debugMarker1;                    
+
+    /* The Symbol Table stores strings for User Events and is also used to 
+    store names of deleted objects, which still may be in the trace but no 
+    longer are available. */        
+    symbolTableType SymbolTable;
+
+    /* For includsion of float support, and for endian detection of floats. 
+    The value should be (float)1 or (uint32_t)0 */    
+#if (INCLUDE_FLOAT_SUPPORT == 1)
+    float exampleFloatEncoding;              
+#else
+    uint32_t exampleFloatEncoding;              
+#endif
+    /* This is non-zero if an internal error occured in the recorder, e.g., if
+    one of the Nxxx constants was too small. The systemInfo string will then 
+    contain an error message that is displayed when attempting to view the 
+    trace file. */
+    uint32_t internalErrorOccured;
+    
+    /* 0xF2F2F2F2 - for control only */ 
+    int32_t debugMarker2;                    
+      
+    /* Generic system information string, presented in the tool. Note that this 
+    is also used for storing any internal error messages from the recorder, so
+    do not make TRACE_DESCRIPTION_MAX_LENGTH too small. 80 is recommended. */
+    char systemInfo[TRACE_DESCRIPTION_MAX_LENGTH];                   
+
+    /* 0xF3F3F3F3 - for control only */
+    int32_t debugMarker3;                    
+
+    /* The event data, in 4-byte records */
+    uint8_t eventData[ EVENT_BUFFER_SIZE * 4 ];
+
+    uint8_t endmarker0;
+    uint8_t endmarker1;
+    uint8_t endmarker2;
+    uint8_t endmarker3;
+    uint8_t endmarker4;
+    uint8_t endmarker5;
+    uint8_t endmarker6;
+    uint8_t endmarker7;
+    uint8_t endmarker8;
+    uint8_t endmarker9;
+    uint8_t endmarker10;
+    uint8_t endmarker11;
+
+} RecorderDataType;
+
+extern RecorderDataType* RecorderDataPtr;
+
+/******************************************************************************
+ * ObjectHandleStack
+ * This data-structure is used to provide a mechanism for 1-byte trace object
+ * handles. This way, only 1 byte is necessary instead of 4 bytes (a pointer)
+ * when storing a reference to an object. This allows for up to 255 objects of
+ * each object class - Task, ISR, Semaphore, CountingSemaphore, Mutex and Queue,
+ * active at any given moment. There can be more "historic" objects, that have
+ * been deleted - that number is only limited by the size of the symbol table.
+ * Note that handle zero (0) is not used, it is a code for an invalid handle.
+ *
+ * This data structure keeps track of the FREE handles, not the handles in use.
+ * This datastructure contains one stack per object class. When a handle is
+ * allocated to an object, the next free handle is popped from the stack. When
+ * a handle is released (on object delete), it is pushed back on the stack.
+ * Note that there is no initialization code that pushed the free handles
+ * initially, that is not necessary due to the following optimization:
+ *
+ * The stack of handles (objectHandles) is initially all zeros. Since zero
+ * is not a valid handle, that is a signal of additional handles needed.
+ * If a zero is received when popping a new handle, it is replaced by the
+ * index of the popped handle instead.
+ *
+ *****************************************************************************/
+typedef struct
+{
+    /* For each object class, the index of the next handle to allocate */
+    int16_t indexOfNextAvailableHandle[ NCLASSES ];              
+
+    /* The lowest index of this class (constant) */        
+    int16_t lowestIndexOfClass[ NCLASSES ];                    
+        
+    /* The highest index of this class (constant) */
+    int16_t highestIndexOfClass[ NCLASSES ];    
+        
+    /* The highest use count for this class (for statistics) */
+    int16_t handleCountWaterMarksOfClass[ NCLASSES ];                
+        
+    /* The free object handles - a set of stacks within this array */
+    objectHandleType objectHandles[ NTask+NISR+NSemaphore+NMutex+NQueue ];
+
+} objectHandleStackType;
+
+/* Internal data */
+
+extern objectHandleStackType objectHandleStacks;
+
+extern uint8_t taskFlags[NTask];
+
+/* Internal functions */
+
+uint32_t prvTraceGetDTS(uint32_t param_maxDTS);
+
+void prvTraceGetChecksum(const char *pname, uint8_t* pcrc, uint8_t* plength);
+
+traceLabel prvTraceCreateSymbolTableEntry(const char* name, 
+                                          uint8_t crc6, 
+                                          uint8_t len, 
+                                          traceLabel channel);
+
+traceLabel prvTraceLookupSymbolTableEntry(const char* name, 
+                                          uint8_t crc6, 
+                                          uint8_t len, 
+                                          traceLabel channel);
+
+traceLabel prvTraceOpenSymbol(const char* name, traceLabel userEventChannel);
+
+void prvTraceUpdateCounters(void);
+
+void prvCheckDataToBeOverwrittenForMultiEntryUserEvents(uint32_t nEntries);
+
+objectHandleType xTraceGetObjectHandle(traceObjectClass objectclass);
+
+void vTraceFreeObjectHandle(traceObjectClass objectclass, 
+                            objectHandleType handle);
+
+void vTraceSetObjectName(traceObjectClass objectclass, 
+                         objectHandleType handle, 
+                         const char* name);
+
+void* xTraceNextFreeEventBufferSlot(void);
+
+uint32_t uiIndexOfObject(objectHandleType objecthandle, 
+    uint8_t objectclass);
+
+
+/*******************************************************************************
+ * vTraceError
+ *
+ * Called by various parts in the recorder. Stops the recorder and stores a 
+ * pointer to an error message, which is printed by the monitor task.
+ ******************************************************************************/
+void vTraceError(char* msg);
+
+/*******************************************************************************
+ * xTraceGetLastError
+ *
+ * Gives the last error message, if any. NULL if no error message is stored.
+ * The message is cleared on read.
+ ******************************************************************************/
+char* xTraceGetLastError(void);
+
+/*******************************************************************************
+ * xTraceInitTraceData
+ *
+ * Allocates and initializes the recorder datastructure, based on the constants
+ * in trcConfig.h. This allows for allocating the data on the heap, instead of
+ * using a static declaration.
+ ******************************************************************************/
+RecorderDataType* xTraceInitTraceData(void);
+
+/* Internal macros */
+
+#define PROPERTY_NAME_GET(objectclass, objecthandle) \
+(const char*)(& RecorderDataPtr->ObjectPropertyTable.objbytes \
+[uiIndexOfObject(objecthandle, objectclass)])
+
+#define PROPERTY_OBJECT_STATE(objectclass, handle) \
+RecorderDataPtr->ObjectPropertyTable.objbytes[uiIndexOfObject(handle, objectclass) \
++ RecorderDataPtr->ObjectPropertyTable.NameLengthPerClass[objectclass]]
+
+#define PROPERTY_ACTOR_PRIORITY(objectclass, handle) \
+RecorderDataPtr->ObjectPropertyTable.objbytes[uiIndexOfObject(handle, objectclass) \
++ RecorderDataPtr->ObjectPropertyTable.NameLengthPerClass[objectclass] + 1]
+
+#define PROPERTY_TASK_IFE_SERVICECODE(handle) \
+RecorderDataPtr->ObjectPropertyTable.objbytes \
+[uiIndexOfObject(handle, TRACE_CLASS_TASK) \
++ RecorderDataPtr->ObjectPropertyTable.NameLengthPerClass[TRACE_CLASS_TASK]+2]
+
+#define PROPERTY_TASK_IFE_OBJHANDLE(handle) \
+RecorderDataPtr->ObjectPropertyTable.objbytes \
+[uiIndexOfObject(handle, TRACE_CLASS_TASK) \
++  RecorderDataPtr->ObjectPropertyTable.NameLengthPerClass[TRACE_CLASS_TASK]+3]
+
+#define TASK_FLAG_BITMASK_ExcludeTaskFromTrace 1
+#define TASK_FLAG_BITMASK_MarkNextEventAsTaskInstanceFinish 2
+
+#define SET_TASK_FLAG_ISEXCLUDED(taskHandle) taskFlags[taskHandle] |= 0x01
+#define CLEAR_TASK_FLAG_ISEXCLUDED(taskHandle) taskFlags[taskHandle] &= 0xFE
+#define GET_TASK_FLAG_ISEXCLUDED(taskHandle) (taskFlags[taskHandle] & 0x01)
+
+#define SET_TASK_FLAG_MARKIFE(taskHandle) taskFlags[taskHandle] |= 0x02
+#define CLEAR_TASK_FLAG_MARKIFE(taskHandle) taskFlags[taskHandle] &= 0xFD
+#define GET_TASK_FLAG_MARKIFE(taskHandle) (taskFlags[taskHandle] & 0x02)
+
+
+/* For debug printouts - the names of the object classes */
+extern char OBJECTCLASSNAME[NCLASSES][10];
+/*=
+{
+        "QUEUE"
+        "SEMAPHORE",
+        "MUTEX",
+        "TASK",
+        "ISR"
+};*/
+
+#endif
+
diff --git a/FreeRTOS-Plus/FreeRTOS-Plus-Trace/Include/trcHooks.h b/FreeRTOS-Plus/FreeRTOS-Plus-Trace/Include/trcHooks.h
new file mode 100644
index 000000000..544c4e37c
--- /dev/null
+++ b/FreeRTOS-Plus/FreeRTOS-Plus-Trace/Include/trcHooks.h
@@ -0,0 +1,292 @@
+/*******************************************************************************
+ * FreeRTOS+Trace v2.2.3 Recorder Library
+ * Percepio AB, www.percepio.se
+ *
+ * trcHooks.h
+ *
+ * The kernel integration hooks for FreeRTOS (v7.1.0 or later). This file should
+ * be included in the end of FreeRTOSConfig.h, together with:
+ *
+ * #define configUSE_TRACE_FACILITY 1
+ *
+ * NOTE: 
+ * For IAR Embedded Workbench for ARM, you need to have a preprocessor condition
+ * on the include, to except it from the assembler step which otherwise give
+ * compile-time errors.
+ *
+ * #ifdef __ICCARM__
+ *       #include "percepio/Include/trcHooks.h"
+ * #endif
+ * 
+ * Terms of Use
+ * This software is copyright Percepio AB. The recorder library is free for
+ * use together with Percepio products. You may distribute the recorder library
+ * in its original form, including modifications in trcPort.c and trcPort.h
+ * given that these modification are clearly marked as your own modifications
+ * and documented in the initial comment section of these source files. 
+ * This software is the intellectual property of Percepio AB and may not be 
+ * sold or in other ways commercially redistributed without explicit written 
+ * permission by Percepio AB.
+ *
+ * Disclaimer 
+ * The trace tool and recorder library is being delivered to you AS IS and 
+ * Percepio AB makes no warranty as to its use or performance. Percepio AB does 
+ * not and cannot warrant the performance or results you may obtain by using the 
+ * software or documentation. Percepio AB make no warranties, express or 
+ * implied, as to noninfringement of third party rights, merchantability, or 
+ * fitness for any particular purpose. In no event will Percepio AB, its 
+ * technology partners, or distributors be liable to you for any consequential, 
+ * incidental or special damages, including any lost profits or lost savings, 
+ * even if a representative of Percepio AB has been advised of the possibility 
+ * of such damages, or for any claim by any third party. Some jurisdictions do 
+ * not allow the exclusion or limitation of incidental, consequential or special 
+ * damages, or the exclusion of implied warranties or limitations on how long an 
+ * implied warranty may last, so the above limitations may not apply to you.
+ *
+ * FreeRTOS+Trace is available as Free Edition and in two premium editions.
+ * You may use the premium features during 30 days for evaluation.
+ * Download FreeRTOS+Trace at http://www.percepio.se/index.php?page=downloads
+ *
+ * Copyright Percepio AB, 2012.
+ * www.percepio.se
+ ******************************************************************************/
+
+#ifndef TRCHOOKS_H
+#define TRCHOOKS_H
+
+#include "trcKernel.h"
+
+#if (configUSE_TRACE_FACILITY == 1)
+
+    #define INCLUDE_xTaskGetSchedulerState 1
+    #define INCLUDE_xTaskGetCurrentTaskHandle 1
+
+    /* Called on each OS tick */
+    #undef traceTASK_INCREMENT_TICK
+    #define traceTASK_INCREMENT_TICK( xTickCount ) \
+      {extern uint32_t uiTraceTickCount; uiTraceTickCount = xTickCount;}
+
+    /* Called on each task-switch */
+    #undef traceTASK_SWITCHED_IN
+    #define traceTASK_SWITCHED_IN() \
+      vTraceStoreTaskswitch();
+
+    /* Called on vTaskSuspend */
+    #undef traceTASK_SUSPEND
+    #define traceTASK_SUSPEND( pxTaskToSuspend ) \
+      vTraceStoreKernelCall(TASK_SUSPEND, pxTaskToSuspend->uxTaskNumber); \
+      vTraceSetTaskInstanceFinished((uint8_t)pxTaskToSuspend->uxTaskNumber);
+
+    /* Called on vTaskDelay - note the use of FreeRTOS variable xTicksToDelay */
+    #undef traceTASK_DELAY
+    #define traceTASK_DELAY() \
+      portENTER_CRITICAL(); \
+      vTraceStoreKernelCallWithNumericParamOnly(TASK_DELAY, (uint16_t)xTicksToDelay);\
+      vTraceSetTaskInstanceFinished((uint8_t)pxCurrentTCB->uxTaskNumber);\
+      portEXIT_CRITICAL();
+
+    /* Called on vTaskDelayUntil - note the use of FreeRTOS variable xTimeToWake */
+    #undef traceTASK_DELAY_UNTIL
+    #define traceTASK_DELAY_UNTIL() \
+      portENTER_CRITICAL(); \
+      vTraceStoreKernelCallWithNumericParamOnly(TASK_DELAY_UNTIL, (uint16_t)xTimeToWake); \
+      vTraceSetTaskInstanceFinished((uint8_t)pxCurrentTCB->uxTaskNumber); \
+      portEXIT_CRITICAL();
+
+#if (INCLUDE_OBJECT_DELETE == 1)
+    /* Called on vTaskDelete */
+    #undef traceTASK_DELETE
+    #define traceTASK_DELETE( pxTaskToDelete ) \
+      vTraceStoreKernelCall(EVENTGROUP_DELETE + TRACE_CLASS_TASK, pxTaskToDelete->uxTaskNumber); \
+      vTraceStoreObjectNameOnCloseEvent((objectHandleType)pxTaskToDelete->uxTaskNumber, TRACE_CLASS_TASK); \
+      vTraceStoreObjectPropertiesOnCloseEvent((objectHandleType)pxTaskToDelete->uxTaskNumber, TRACE_CLASS_TASK); \
+      vTraceSetPriorityProperty(TRACE_CLASS_TASK, (objectHandleType)pxTaskToDelete->uxTaskNumber, (uint8_t)pxTaskToDelete->uxPriority); \
+      vTraceSetObjectState(TRACE_CLASS_TASK, (objectHandleType)pxTaskToDelete->uxTaskNumber, TASK_STATE_INSTANCE_NOT_ACTIVE); \
+      vTraceFreeObjectHandle(TRACE_CLASS_TASK, (objectHandleType)pxTaskToDelete->uxTaskNumber);
+#endif
+
+    /* Called on vTaskCreate */
+    #undef traceTASK_CREATE
+    #define traceTASK_CREATE( pxNewTCB ) \
+      if (pxNewTCB != NULL){ \
+          pxNewTCB->uxTaskNumber = xTraceGetObjectHandle(TRACE_CLASS_TASK); \
+          vTraceSetObjectName(TRACE_CLASS_TASK, (objectHandleType)pxNewTCB->uxTaskNumber, (char*)pxNewTCB->pcTaskName); \
+          vTraceSetPriorityProperty(TRACE_CLASS_TASK, (objectHandleType)pxNewTCB->uxTaskNumber, (uint8_t)pxNewTCB->uxPriority); \
+          vTraceStoreKernelCall(EVENTGROUP_CREATE + TRACE_CLASS_TASK, (objectHandleType)pxNewTCB->uxTaskNumber);\
+      }
+
+    /* Called in vTaskCreate, if it fails (typically if the stack fails can not be allocated) */
+    #undef traceTASK_CREATE_FAILED
+    #define traceTASK_CREATE_FAILED() \
+      portENTER_CRITICAL();\
+      vTraceStoreKernelCall(EVENTGROUP_FAILED_CREATE + TRACE_CLASS_TASK, 0); \
+      portEXIT_CRITICAL();
+
+    /* Called in xQueueCreate, and thereby for all other object based on queues, such as semaphores. */
+    #undef traceQUEUE_CREATE
+    #define traceQUEUE_CREATE( pxNewQueue )\
+        portENTER_CRITICAL(); \
+        pxNewQueue->ucQueueNumber = xTraceGetObjectHandle(TraceObjectClassTable[pxNewQueue->ucQueueType]);\
+        vTraceSetObjectState(TraceObjectClassTable[pxNewQueue->ucQueueType], pxNewQueue->ucQueueNumber, 0); \
+        vTraceStoreKernelCall(EVENTGROUP_CREATE + TraceObjectClassTable[pxNewQueue->ucQueueType], pxNewQueue->ucQueueNumber); \
+        portEXIT_CRITICAL();
+
+    /* Called in xQueueCreate, if the queue creation fails */
+    #undef traceQUEUE_CREATE_FAILED
+    #define traceQUEUE_CREATE_FAILED( queueType ) \
+        portENTER_CRITICAL();\
+        vTraceStoreKernelCall((uint8_t)(EVENTGROUP_FAILED_CREATE + TraceObjectClassTable[queueType]), (objectHandleType)0); \
+        portEXIT_CRITICAL();
+    
+    /* Called in xQueueCreateMutex, and thereby also from xSemaphoreCreateMutex and xSemaphoreCreateRecursiveMutex */
+    #undef traceCREATE_MUTEX
+    #define traceCREATE_MUTEX( pxNewQueue ) \
+      portENTER_CRITICAL();\
+      pxNewQueue->ucQueueNumber = xTraceGetObjectHandle(TRACE_CLASS_MUTEX); \
+      vTraceStoreKernelCall(EVENTGROUP_CREATE + TraceObjectClassTable[pxNewQueue->ucQueueType], pxNewQueue->ucQueueNumber); \
+      vTraceSetObjectState(TRACE_CLASS_MUTEX, pxNewQueue->ucQueueNumber, 0); \
+      portEXIT_CRITICAL();
+
+    /* Called in xQueueCreateMutex when the operation fails (when memory allocation fails) */
+    #undef traceCREATE_MUTEX_FAILED
+    #define traceCREATE_MUTEX_FAILED() \
+        portENTER_CRITICAL();\
+        vTraceStoreKernelCall(EVENTGROUP_FAILED_CREATE + TRACE_CLASS_MUTEX, 0);\
+        portEXIT_CRITICAL();
+
+    /* Called when the Mutex can not be given, since not holder */
+    #undef traceGIVE_MUTEX_RECURSIVE_FAILED
+    #define traceGIVE_MUTEX_RECURSIVE_FAILED( pxMutex ) \
+        portENTER_CRITICAL();\
+        vTraceStoreKernelCall(EVENTGROUP_FAILED_SEND + TRACE_CLASS_MUTEX, pxMutex->ucQueueNumber); \
+        portEXIT_CRITICAL();
+
+    /* Called when a message is sent to a queue */
+    #undef traceQUEUE_SEND
+    #define traceQUEUE_SEND( pxQueue ) \
+      vTraceStoreKernelCall(EVENTGROUP_SEND + TraceObjectClassTable[pxQueue->ucQueueType], pxQueue->ucQueueNumber); \
+      if (TraceObjectClassTable[pxQueue->ucQueueType] == TRACE_CLASS_MUTEX){\
+          vTraceSetObjectState(TraceObjectClassTable[pxQueue->ucQueueType], (uint8_t)pxQueue->ucQueueNumber, (uint8_t)0); \
+      }else{\
+          vTraceSetObjectState(TraceObjectClassTable[pxQueue->ucQueueType], (uint8_t)pxQueue->ucQueueNumber, (uint8_t)(pxQueue->uxMessagesWaiting + 1)); \
+      }
+
+    /* Called when a message failed to be sent to a queue (timeout) */
+    #undef traceQUEUE_SEND_FAILED
+    #define traceQUEUE_SEND_FAILED( pxQueue ) \
+      portENTER_CRITICAL();\
+      vTraceStoreKernelCall(EVENTGROUP_FAILED_SEND + TraceObjectClassTable[pxQueue->ucQueueType], pxQueue->ucQueueNumber); \
+      portEXIT_CRITICAL();
+
+    /* Called when the task is blocked due to a send operation on a full queue */
+    #undef traceBLOCKING_ON_QUEUE_SEND
+    #define traceBLOCKING_ON_QUEUE_SEND( pxQueue ) \
+      portENTER_CRITICAL();\
+      vTraceStoreKernelCall(EVENTGROUP_BLOCK_ON_SEND + TraceObjectClassTable[pxQueue->ucQueueType], pxQueue->ucQueueNumber); \
+      portEXIT_CRITICAL();
+                
+    /* Called when a message is received from a queue */
+    #undef traceQUEUE_RECEIVE
+    #define traceQUEUE_RECEIVE( pxQueue ) \
+      vTraceStoreKernelCall(EVENTGROUP_RECEIVE + TraceObjectClassTable[pxQueue->ucQueueType], pxQueue->ucQueueNumber); \
+      if (TraceObjectClassTable[pxQueue->ucQueueType] == TRACE_CLASS_MUTEX){\
+          extern volatile void * volatile pxCurrentTCB; \
+          vTraceSetObjectState(TraceObjectClassTable[pxQueue->ucQueueType], (objectHandleType)pxQueue->ucQueueNumber, (objectHandleType)uxTaskGetTaskNumber((xTaskHandle)pxCurrentTCB)); /*For mutex, store the new owner rather than queue length */ \
+      }else{\
+          vTraceSetObjectState(TraceObjectClassTable[pxQueue->ucQueueType], (objectHandleType)pxQueue->ucQueueNumber, (uint8_t)(pxQueue->uxMessagesWaiting - 1)); \
+      }
+        
+    /* Called when the task is blocked due to a receive operation on an empty queue */
+    #undef traceBLOCKING_ON_QUEUE_RECEIVE
+    #define traceBLOCKING_ON_QUEUE_RECEIVE( pxQueue ) \
+      portENTER_CRITICAL(); \
+      vTraceStoreKernelCall(EVENTGROUP_BLOCK_ON_RECEIVE + TraceObjectClassTable[pxQueue->ucQueueType], pxQueue->ucQueueNumber); \
+      if (TraceObjectClassTable[pxQueue->ucQueueType] != TRACE_CLASS_MUTEX){\
+          extern volatile void * volatile pxCurrentTCB; \
+          vTraceSetTaskInstanceFinished((objectHandleType)uxTaskGetTaskNumber((xTaskHandle)pxCurrentTCB)); \
+      }\
+      portEXIT_CRITICAL();
+
+    /* Called on xQueuePeek */
+    #undef traceQUEUE_PEEK
+    #define traceQUEUE_PEEK( pxQueue ) \
+        vTraceStoreKernelCall(EVENTGROUP_PEEK + TraceObjectClassTable[pxQueue->ucQueueType], pxQueue->ucQueueNumber);
+
+    /* Called when a receive operation on a queue fails (timeout) */
+    #undef traceQUEUE_RECEIVE_FAILED
+    #define traceQUEUE_RECEIVE_FAILED( pxQueue ) \
+      portENTER_CRITICAL(); \
+      vTraceStoreKernelCall(EVENTGROUP_FAILED_RECEIVE + TraceObjectClassTable[pxQueue->ucQueueType],  pxQueue->ucQueueNumber); \
+      portEXIT_CRITICAL();
+        
+    /* Called when a message is sent from interrupt context, e.g., using xQueueSendFromISR */
+    #undef traceQUEUE_SEND_FROM_ISR
+    #define traceQUEUE_SEND_FROM_ISR( pxQueue ) \
+      vTraceStoreKernelCall(EVENTGROUP_SEND_FROM_ISR + TraceObjectClassTable[pxQueue->ucQueueType], pxQueue->ucQueueNumber); \
+      vTraceSetObjectState(TRACE_CLASS_QUEUE, (objectHandleType)pxQueue->ucQueueNumber, (uint8_t)(pxQueue->uxMessagesWaiting + 1));
+
+    /* Called when a message send from interrupt context fails (since the queue was full) */
+    #undef traceQUEUE_SEND_FROM_ISR_FAILED
+    #define traceQUEUE_SEND_FROM_ISR_FAILED( pxQueue ) \
+      vTraceStoreKernelCall(EVENTGROUP_FAILED_SEND_FROM_ISR + TraceObjectClassTable[pxQueue->ucQueueType], pxQueue->ucQueueNumber);
+
+    /* Called when a message is received in interrupt context, e.g., using xQueueReceiveFromISR */
+    #undef traceQUEUE_RECEIVE_FROM_ISR
+    #define traceQUEUE_RECEIVE_FROM_ISR( pxQueue ) \
+      vTraceStoreKernelCall(EVENTGROUP_RECEIVE_FROM_ISR + TraceObjectClassTable[pxQueue->ucQueueType], pxQueue->ucQueueNumber); \
+      vTraceSetObjectState(TRACE_CLASS_QUEUE, (objectHandleType)pxQueue->ucQueueNumber, (uint8_t)(pxQueue->uxMessagesWaiting - 1));
+    
+    /* Called when a message receive from interrupt context fails (since the queue was empty) */
+    #undef traceQUEUE_RECEIVE_FROM_ISR_FAILED
+    #define traceQUEUE_RECEIVE_FROM_ISR_FAILED( pxQueue ) \
+      vTraceStoreKernelCall(EVENTGROUP_FAILED_RECEIVE_FROM_ISR + TraceObjectClassTable[pxQueue->ucQueueType], pxQueue->ucQueueNumber);
+
+#if (INCLUDE_OBJECT_DELETE == 1)
+    /* Called on vQueueDelete */
+    #undef traceQUEUE_DELETE
+    #define traceQUEUE_DELETE( pxQueue ) \
+    { \
+        portENTER_CRITICAL();\
+        vTraceStoreKernelCall(EVENTGROUP_DELETE + TraceObjectClassTable[pxQueue->ucQueueType], pxQueue->ucQueueNumber); \
+        vTraceStoreObjectNameOnCloseEvent((objectHandleType)pxQueue->ucQueueNumber, TraceObjectClassTable[pxQueue->ucQueueType]); \
+        vTraceStoreObjectPropertiesOnCloseEvent((objectHandleType)pxQueue->ucQueueNumber, TraceObjectClassTable[pxQueue->ucQueueType]); \
+        if (TraceObjectClassTable[pxQueue->ucQueueType] == TRACE_CLASS_MUTEX){ \
+            vTraceSetObjectState(TraceObjectClassTable[pxQueue->ucQueueType], (objectHandleType)pxQueue->ucQueueNumber, (objectHandleType)uxTaskGetTaskNumber((xTaskHandle)pxQueue->pxMutexHolder)); \
+        }else{ \
+            vTraceSetObjectState(TraceObjectClassTable[pxQueue->ucQueueType], (objectHandleType)pxQueue->ucQueueNumber, (uint8_t)uxQueueMessagesWaiting(pxQueue)); \
+        } \
+        vTraceFreeObjectHandle(TraceObjectClassTable[pxQueue->ucQueueType], (objectHandleType)pxQueue->ucQueueNumber); \
+        portEXIT_CRITICAL();\
+    }
+#endif
+    
+    /* Called in vTaskPrioritySet */
+    #undef traceTASK_PRIORITY_SET
+    #define traceTASK_PRIORITY_SET( pxTask, uxNewPriority ) \
+      vTraceStoreKernelCallWithParam(TASK_PRIORITY_SET, pxTask->uxTaskNumber, uiTraceGetPriorityProperty(TRACE_CLASS_TASK, (uint8_t)pxTask->uxTaskNumber));\
+      vTraceSetPriorityProperty( TRACE_CLASS_TASK, (uint8_t)pxTask->uxTaskNumber, (uint8_t)uxNewPriority);
+
+    /* Called in vTaskPriorityInherit, which is called by Mutex operations */
+    #undef traceTASK_PRIORITY_INHERIT
+    #define traceTASK_PRIORITY_INHERIT( pxTask, uxNewPriority ) \
+      vTraceStoreKernelCallWithParam(TASK_PRIORITY_INHERIT, pxTask->uxTaskNumber, uiTraceGetPriorityProperty(TRACE_CLASS_TASK, (uint8_t)pxTask->uxTaskNumber));\
+      vTraceSetPriorityProperty( TRACE_CLASS_TASK, (uint8_t)pxTask->uxTaskNumber, (uint8_t)uxNewPriority );
+
+    /* Called in vTaskPriorityDisinherit, which is called by Mutex operations */
+    #undef traceTASK_PRIORITY_DISINHERIT
+    #define traceTASK_PRIORITY_DISINHERIT( pxTask, uxNewPriority ) \
+      vTraceStoreKernelCallWithParam(TASK_PRIORITY_DISINHERIT, pxTask->uxTaskNumber, uiTraceGetPriorityProperty(TRACE_CLASS_TASK, (uint8_t)pxTask->uxTaskNumber));\
+      vTraceSetPriorityProperty( TRACE_CLASS_TASK, (uint8_t)pxTask->uxTaskNumber, (uint8_t)uxNewPriority );
+
+    /* Called in vTaskResume */
+    #undef traceTASK_RESUME
+    #define traceTASK_RESUME( pxTaskToResume ) \
+      vTraceStoreKernelCall(TASK_RESUME, pxTaskToResume->uxTaskNumber);
+
+    /* Called in vTaskResumeFromISR */
+    #undef traceTASK_RESUME_FROM_ISR
+    #define traceTASK_RESUME_FROM_ISR( pxTaskToResume )\
+      vTraceStoreKernelCall(TASK_RESUME_FROM_ISR, pxTaskToResume->uxTaskNumber);
+
+#endif
+#endif
\ No newline at end of file
diff --git a/FreeRTOS-Plus/FreeRTOS-Plus-Trace/Include/trcKernel.h b/FreeRTOS-Plus/FreeRTOS-Plus-Trace/Include/trcKernel.h
new file mode 100644
index 000000000..ca678acd6
--- /dev/null
+++ b/FreeRTOS-Plus/FreeRTOS-Plus-Trace/Include/trcKernel.h
@@ -0,0 +1,267 @@
+/*******************************************************************************
+ * FreeRTOS+Trace v2.2.3 Recorder Library
+ * Percepio AB, www.percepio.se
+ *
+ * trcKernel.h
+ *
+ * Functions used by trcHooks.h, for the FreeRTOS kernel integration.
+ *
+ * Terms of Use
+ * This software is copyright Percepio AB. The recorder library is free for
+ * use together with Percepio products. You may distribute the recorder library
+ * in its original form, including modifications in trcPort.c and trcPort.h
+ * given that these modification are clearly marked as your own modifications
+ * and documented in the initial comment section of these source files. 
+ * This software is the intellectual property of Percepio AB and may not be 
+ * sold or in other ways commercially redistributed without explicit written 
+ * permission by Percepio AB.
+ *
+ * Disclaimer 
+ * The trace tool and recorder library is being delivered to you AS IS and 
+ * Percepio AB makes no warranty as to its use or performance. Percepio AB does 
+ * not and cannot warrant the performance or results you may obtain by using the 
+ * software or documentation. Percepio AB make no warranties, express or 
+ * implied, as to noninfringement of third party rights, merchantability, or 
+ * fitness for any particular purpose. In no event will Percepio AB, its 
+ * technology partners, or distributors be liable to you for any consequential, 
+ * incidental or special damages, including any lost profits or lost savings, 
+ * even if a representative of Percepio AB has been advised of the possibility 
+ * of such damages, or for any claim by any third party. Some jurisdictions do 
+ * not allow the exclusion or limitation of incidental, consequential or special 
+ * damages, or the exclusion of implied warranties or limitations on how long an 
+ * implied warranty may last, so the above limitations may not apply to you.
+ *
+ * FreeRTOS+Trace is available as Free Edition and in two premium editions.
+ * You may use the premium features during 30 days for evaluation.
+ * Download FreeRTOS+Trace at http://www.percepio.se/index.php?page=downloads
+ *
+ * Copyright Percepio AB, 2012.
+ * www.percepio.se
+ ******************************************************************************/
+
+#ifndef TRCKERNEL_H
+#define TRCKERNEL_H
+
+#include "trcTypes.h"
+
+#if (configUSE_TRACE_FACILITY == 1)
+
+#include "trcBase.h"
+
+/* Internal functions */
+
+void vTraceStoreTaskswitch(void);
+
+void vTraceStoreKernelCall(uint32_t eventcode, uint32_t byteParam); 
+
+void vTraceStoreKernelCallWithNumericParamOnly(uint32_t evtcode, 
+                                               uint16_t param);
+
+void vTraceStoreKernelCallWithParam(uint32_t evtcode, uint32_t objectNumber, 
+                                    uint8_t param);
+
+void vTraceSetTaskInstanceFinished(objectHandleType handle);
+
+void vTraceSetPriorityProperty(uint8_t objectclass, uint8_t id, uint8_t value);
+
+uint8_t uiTraceGetPriorityProperty(uint8_t objectclass, uint8_t id);
+
+void vTraceSetObjectState(uint8_t objectclass, uint8_t id, uint8_t value);
+
+uint8_t uiTraceGetObjectState(uint8_t objectclass, uint8_t id);
+
+#if (INCLUDE_OBJECT_DELETE == 1)    
+
+void vTraceStoreObjectNameOnCloseEvent(objectHandleType handle, 
+                                       traceObjectClass objectclass);
+
+void vTraceStoreObjectPropertiesOnCloseEvent(objectHandleType handle, 
+                                             traceObjectClass objectclass);
+#endif
+
+/* Internal constants for task state */
+#define TASK_STATE_INSTANCE_NOT_ACTIVE 0
+#define TASK_STATE_INSTANCE_ACTIVE 1
+#define TASK_STATE_INSTANCE_MARKED_FINISHED 2
+
+/* This defines the mapping between FreeRTOS queue types and our internal 
+class IDs */
+extern traceObjectClass TraceObjectClassTable[5];
+
+/*******************************************************************************
+ * The event codes - should match the offline config file.
+ * 
+ * Some sections below are encoded to allow for constructions like:
+ *
+ *  vTraceStoreKernelCall(EVENTGROUP_CREATE + objectclass, ...
+ *
+ * The object class ID is given by the three LSB bits, in such cases. Since each 
+ * object class has a separate object property table, the class ID is needed to 
+ * know what section in the object table to use for getting an object name from
+ * an object handle. 
+ ******************************************************************************/
+
+#define NULL_EVENT                   (0x00)  /* Ignored in the analysis*/
+#define RECORDING_START              (0x01)  /* Not yet used */
+#define RECORDING_STOP               (0x02)  /* Not yet used */
+
+/*******************************************************************************
+ * EVENTGROUP_TS
+ *
+ * Events for storing task-switches and interrupts. The RESUME events are 
+ * generated if the task/interrupt is already marked active.
+ ******************************************************************************/
+#define EVENTGROUP_TS                (0x04)
+#define TS_ISR_BEGIN                 (EVENTGROUP_TS + 0)                 /* 4 */
+#define TS_ISR_RESUME                (EVENTGROUP_TS + 1)                 /* 5 */
+#define TS_TASK_BEGIN                (EVENTGROUP_TS + 2)                 /* 6 */
+#define TS_TASK_RESUME               (EVENTGROUP_TS + 3)                 /* 7 */
+
+/*******************************************************************************
+ * EVENTGROUP_OBJCLOSE_NAME
+ * 
+ * About Close Events
+ * When an object is evicted from the object property table (object close), two 
+ * internal events are stored (EVENTGROUP_OBJCLOSE_NAME and 
+ * EVENTGROUP_OBJCLOSE_PROP), containg the handle-name mapping and object 
+ * properties valid up to this point.
+ ******************************************************************************/
+#define EVENTGROUP_OBJCLOSE_NAME     (0x08)
+
+/*******************************************************************************
+ * EVENTGROUP_OBJCLOSE_PROP
+ * 
+ * The internal event carrying properties of deleted objects
+ * The handle and object class of the closed object is not stored in this event, 
+ * but is assumed to be the same as in the preceeding CLOSE event. Thus, these 
+ * two events must be generated from within a critical section. 
+ * When queues are closed, arg1 is the "state" property (i.e., number of 
+ * buffered messages/signals).
+ * When actors are closed, arg1 is priority, arg2 is handle of the "instance 
+ * finish" event, and arg3 is event code of the "instance finish" event. 
+ * In this case, the lower three bits is the object class of the instance finish 
+ * handle. The lower three bits are not used (always zero) when queues are 
+ * closed since the queue type is given in the previous OBJCLOSE_NAME event.
+ ******************************************************************************/
+#define EVENTGROUP_OBJCLOSE_PROP     (EVENTGROUP_OBJCLOSE_NAME + 8)     /*0x10*/
+
+/*******************************************************************************
+ * EVENTGROUP_CREATE
+ * 
+ * The events in this group are used to log Kernel object creations.
+ * The lower three bits in the event code gives the object class, i.e., type of
+ * create operation (task, queue, semaphore, etc).
+ ******************************************************************************/
+#define EVENTGROUP_CREATE    (EVENTGROUP_OBJCLOSE_PROP + 8)             /*0x18*/
+
+/*******************************************************************************
+ * EVENTGROUP_SEND
+ * 
+ * The events in this group are used to log Send/Give events on queues, 
+ * semaphores and mutexeds The lower three bits in the event code gives the 
+ * object class, i.e., what type of object that is operated on (queue, semaphore 
+ * or mutex).
+ ******************************************************************************/
+#define EVENTGROUP_SEND      (EVENTGROUP_CREATE + 8)                    /*0x20*/
+
+/*******************************************************************************
+ * EVENTGROUP_RECEIVE
+ * 
+ * The events in this group are used to log Receive/Take events on queues, 
+ * semaphores and mutexes. The lower three bits in the event code gives the 
+ * object class, i.e., what type of object that is operated on (queue, semaphore
+ * or mutex).
+ ******************************************************************************/
+#define EVENTGROUP_RECEIVE                       (EVENTGROUP_SEND + 8)  /*0x28*/
+
+/* Send/Give operations, from ISR */
+#define EVENTGROUP_SEND_FROM_ISR              (EVENTGROUP_RECEIVE + 8)  /*0x30*/
+
+/* Receive/Take operations, from ISR */
+#define EVENTGROUP_RECEIVE_FROM_ISR     (EVENTGROUP_SEND_FROM_ISR + 8)  /*0x38*/
+
+/* "Failed" event type versions of above (timeout, failed allocation, etc) */
+#define EVENTGROUP_FAILED_KSE         (EVENTGROUP_RECEIVE_FROM_ISR + 8) /*0x40*/
+
+/* Failed create calls - memory allocation failed */
+#define EVENTGROUP_FAILED_CREATE                (EVENTGROUP_FAILED_KSE) /*0x40*/
+
+/* Failed send/give - timeout! */
+#define EVENTGROUP_FAILED_SEND           (EVENTGROUP_FAILED_CREATE + 8) /*0x48*/
+
+/* Failed receive/take - timeout! */
+#define EVENTGROUP_FAILED_RECEIVE          (EVENTGROUP_FAILED_SEND + 8) /*0x50*/
+
+/* Failed non-blocking send/give - queue full */
+#define EVENTGROUP_FAILED_SEND_FROM_ISR (EVENTGROUP_FAILED_RECEIVE + 8) /*0x58*/
+
+/* Failed non-blocking receive/take - queue empty */
+#define EVENTGROUP_FAILED_RECEIVE_FROM_ISR \
+                                  (EVENTGROUP_FAILED_SEND_FROM_ISR + 8) /*0x60*/
+
+/* Events when blocking on receive/take */
+#define EVENTGROUP_BLOCK_ON_RECEIVE \
+                               (EVENTGROUP_FAILED_RECEIVE_FROM_ISR + 8) /*0x68*/
+
+/* Events when blocking on send/give */
+#define EVENTGROUP_BLOCK_ON_SEND     (EVENTGROUP_BLOCK_ON_RECEIVE + 8)  /*0x70*/
+
+/* Events on queue peek (receive) */
+#define EVENTGROUP_PEEK              (EVENTGROUP_BLOCK_ON_SEND + 8)     /*0x78*/
+
+/* Events on object delete (vTaskDelete or vQueueDelete) */
+#define EVENTGROUP_DELETE            (EVENTGROUP_PEEK + 8)              /*0x80*/
+
+/* Other events - object class is implied: TASK */
+#define EVENTGROUP_OTHERS            (EVENTGROUP_DELETE + 8)            /*0x88*/
+#define TASK_DELAY_UNTIL             (EVENTGROUP_OTHERS + 0)
+#define TASK_DELAY                   (EVENTGROUP_OTHERS + 1)
+#define TASK_SUSPEND                 (EVENTGROUP_OTHERS + 2)
+#define TASK_RESUME                  (EVENTGROUP_OTHERS + 3)
+#define TASK_RESUME_FROM_ISR         (EVENTGROUP_OTHERS + 4)
+#define TASK_PRIORITY_SET            (EVENTGROUP_OTHERS + 5)
+#define TASK_PRIORITY_INHERIT        (EVENTGROUP_OTHERS + 6)
+#define TASK_PRIORITY_DISINHERIT     (EVENTGROUP_OTHERS + 7)
+
+/* Not yet used */
+#define EVENTGROUP_FTRACE_PLACEHOLDER    (EVENTGROUP_OTHERS + 8)        /*0x90*/
+
+/* User events */
+#define EVENTGROUP_USEREVENT (EVENTGROUP_FTRACE_PLACEHOLDER + 8)        /*0x98*/
+#define USER_EVENT (EVENTGROUP_USEREVENT + 0)
+
+/* Allow for 0-15 arguments (the number of args is added to event code) */
+#define USER_EVENT_LAST (EVENTGROUP_USEREVENT + 15)
+
+/******************************************************************************
+ * XTS Event - eXtended TimeStamp events
+ * The timestamps used in the recorder are "differential timestamps" (DTS), i.e.
+ * the time since the last stored event. The DTS fields are either 1 or 2 bytes 
+ * in the other events, depending on the bytes available in the event struct. 
+ * If the time since the last event (the DTS) is larger than allowed for by 
+ * the DTS field of the current event, an XTS event is inserted immidiatly 
+ * before the original event. The XTS event contains up to 3 additional bytes 
+ * of the DTS value - the higher bytes of the true DTS value. The lower 1-2 
+ * bytes are stored in the normal DTS field. 
+ * There are two types of XTS events, XTS8 and XTS16. An XTS8 event is stored 
+ * when there is only room for 1 byte (8 bit) DTS data in the original event, 
+ * which means a limit of 0xFF (255). The XTS16 is used when the original event 
+ * has a 16 bit DTS field and thereby can handle values up to 0xFFFF (65535).
+ * 
+ * Using a very high frequency time base can result in many XTS events. 
+ * Preferably, the time between two OS ticks should fit in 16 bits, i.e.,
+ * at most 65535. If your time base has a higher frequency, you can define
+ * the TRACE
+ ******************************************************************************/
+
+#define EVENTGROUP_SYS (EVENTGROUP_USEREVENT + 16)                      /*0xA8*/
+#define XTS8 (EVENTGROUP_SYS + 0)                                       /*0xA8*/
+#define XTS16 (EVENTGROUP_SYS + 1)                                      /*0xA9*/
+
+#define EVENT_BEING_WRITTEN (EVENTGROUP_SYS + 2)                        /*0xAA*/
+
+#define RESERVED_DUMMY_CODE (EVENTGROUP_SYS + 3)                        /*0xAB*/
+
+#endif
+
+#endif
\ No newline at end of file
diff --git a/FreeRTOS-Plus/FreeRTOS-Plus-Trace/Include/trcTypes.h b/FreeRTOS-Plus/FreeRTOS-Plus-Trace/Include/trcTypes.h
new file mode 100644
index 000000000..32e41565f
--- /dev/null
+++ b/FreeRTOS-Plus/FreeRTOS-Plus-Trace/Include/trcTypes.h
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * FreeRTOS+Trace v2.2.3 Recorder Library
+ * Percepio AB, www.percepio.se
+ *
+ * trcTypes.h
+ *
+ * Data types used by the trace recorder library.
+ *
+ * Terms of Use
+ * This software is copyright Percepio AB. The recorder library is free for
+ * use together with Percepio products. You may distribute the recorder library
+ * in its original form, including modifications in trcPort.c and trcPort.h
+ * given that these modification are clearly marked as your own modifications
+ * and documented in the initial comment section of these source files. 
+ * This software is the intellectual property of Percepio AB and may not be 
+ * sold or in other ways commercially redistributed without explicit written 
+ * permission by Percepio AB.
+ *
+ * Disclaimer 
+ * The trace tool and recorder library is being delivered to you AS IS and 
+ * Percepio AB makes no warranty as to its use or performance. Percepio AB does 
+ * not and cannot warrant the performance or results you may obtain by using the 
+ * software or documentation. Percepio AB make no warranties, express or 
+ * implied, as to noninfringement of third party rights, merchantability, or 
+ * fitness for any particular purpose. In no event will Percepio AB, its 
+ * technology partners, or distributors be liable to you for any consequential, 
+ * incidental or special damages, including any lost profits or lost savings, 
+ * even if a representative of Percepio AB has been advised of the possibility 
+ * of such damages, or for any claim by any third party. Some jurisdictions do 
+ * not allow the exclusion or limitation of incidental, consequential or special 
+ * damages, or the exclusion of implied warranties or limitations on how long an 
+ * implied warranty may last, so the above limitations may not apply to you.
+ *
+ * FreeRTOS+Trace is available as Free Edition and in two premium editions.
+ * You may use the premium features during 30 days for evaluation.
+ * Download FreeRTOS+Trace at http://www.percepio.se/index.php?page=downloads
+ *
+ * Copyright Percepio AB, 2012.
+ * www.percepio.se
+ ******************************************************************************/
+
+#ifndef TRCTYPES_H
+#define TRCTYPES_H
+
+#include 
+
+typedef uint16_t traceLabel;
+
+typedef uint8_t objectHandleType;
+
+typedef uint8_t traceObjectClass;
+
+#define TRACE_CLASS_QUEUE ((traceObjectClass)0)
+#define TRACE_CLASS_SEMAPHORE ((traceObjectClass)1) 
+#define TRACE_CLASS_MUTEX ((traceObjectClass)2)
+#define TRACE_CLASS_TASK ((traceObjectClass)3)
+#define TRACE_CLASS_ISR ((traceObjectClass)4)
+
+#endif
diff --git a/FreeRTOS-Plus/FreeRTOS-Plus-Trace/Include/trcUser.h b/FreeRTOS-Plus/FreeRTOS-Plus-Trace/Include/trcUser.h
new file mode 100644
index 000000000..984bc16df
--- /dev/null
+++ b/FreeRTOS-Plus/FreeRTOS-Plus-Trace/Include/trcUser.h
@@ -0,0 +1,399 @@
+/*******************************************************************************
+ * FreeRTOS+Trace v2.2.3 Recorder Library
+ * Percepio AB, www.percepio.se
+ *
+ * trcUser.h
+ * The public API of the trace recorder library.
+ *
+ * Terms of Use
+ * This software is copyright Percepio AB. The recorder library is free for
+ * use together with Percepio products. You may distribute the recorder library
+ * in its original form, including modifications in trcPort.c and trcPort.h
+ * given that these modification are clearly marked as your own modifications
+ * and documented in the initial comment section of these source files. 
+ * This software is the intellectual property of Percepio AB and may not be 
+ * sold or in other ways commercially redistributed without explicit written 
+ * permission by Percepio AB.
+ *
+ * Disclaimer 
+ * The trace tool and recorder library is being delivered to you AS IS and 
+ * Percepio AB makes no warranty as to its use or performance. Percepio AB does 
+ * not and cannot warrant the performance or results you may obtain by using the 
+ * software or documentation. Percepio AB make no warranties, express or 
+ * implied, as to noninfringement of third party rights, merchantability, or 
+ * fitness for any particular purpose. In no event will Percepio AB, its 
+ * technology partners, or distributors be liable to you for any consequential, 
+ * incidental or special damages, including any lost profits or lost savings, 
+ * even if a representative of Percepio AB has been advised of the possibility 
+ * of such damages, or for any claim by any third party. Some jurisdictions do 
+ * not allow the exclusion or limitation of incidental, consequential or special 
+ * damages, or the exclusion of implied warranties or limitations on how long an 
+ * implied warranty may last, so the above limitations may not apply to you.
+ *
+ * FreeRTOS+Trace is available as Free Edition and in two premium editions.
+ * You may use the premium features during 30 days for evaluation.
+ * Download FreeRTOS+Trace at http://www.percepio.se/index.php?page=downloads
+ *
+ * Copyright Percepio AB, 2012.
+ * www.percepio.se
+ ******************************************************************************/
+
+#ifndef TRCUSER_H
+#define TRCUSER_H
+
+#include "FreeRTOS.h"
+
+#if (configUSE_TRACE_FACILITY == 1)
+
+#include "trcBase.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*******************************************************************************
+ * uiTraceStart
+ *
+ * Starts the recorder. The recorder will not be started if an error has been
+ * indicated using vTraceError, e.g. if any of the Nx constants in trcConfig.h 
+ * has a too small value (NTASK, NQUEUE, etc).
+ * 
+ * Returns 1 if the recorder was started successfully.
+ * Returns 0 if the recorder start was prevented due to a previous internal 
+ * error. In that case, check vTraceGetLastError to get the error message.
+ * Any error message is also presented when opening a trace file in 
+ * FreeRTOS+Trace v2.2.2 or later.
+ ******************************************************************************/
+uint32_t uiTraceStart(void);
+
+/*******************************************************************************
+ * vTraceStart 
+ *
+ * Starts the recorder. The recorder will not be started if an error has been
+ * indicated using vTraceError, e.g. if any of the Nx constants in trcConfig.h 
+ * has a too small value (NTASK, NQUEUE, etc).
+ * 
+ * This function is obsolete, but has been saved for backwards compatibility. 
+ * We recommend using uiTraceStart instead.
+ ******************************************************************************/
+void vTraceStart(void);
+
+/*******************************************************************************
+ * vTraceStartStatusMonitor
+ *
+ * This starts a task to monitor the status of the recorder module. 
+ * This task periodically prints a line to the console window, which shows the 
+ * recorder status, the number of events recorded and the latest timestamp. 
+ * This task calls vTracePortEnd (trcPort.c) when it detects that the recorder 
+ * has been stopped. This allows for adding custom actions, e.g., to store the
+ * trace to a file in case a file system is available on the device.
+ ******************************************************************************/
+void vTraceStartStatusMonitor(void);
+
+/*******************************************************************************
+ * vTraceStop
+ *
+ * Stops the recorder. The recording can be resumed by calling vTraceStart.
+ * This does not reset the recorder. Use vTraceClear is that is desired.
+ ******************************************************************************/
+void vTraceStop(void);
+
+/*******************************************************************************
+ * vTraceClear
+ *
+ * Resets the recorder. Only necessary if a restart is desired - this is not 
+ * needed in the startup initialization.
+ ******************************************************************************/
+void vTraceClear(void);
+
+/*******************************************************************************
+ * vTraceSetQueueName
+ *
+ * Assigns a name to a FreeRTOS Queue, Semaphore or Mutex. This function should
+ * be called right after creation of the queue/mutex/semaphore. If not using 
+ * this function, the queues/mutexes/semaphores will be presented by their
+ * numeric handle only.
+ *
+ * Example:
+ *     actuatorQ = xQueueCreate(3, sizeof(QueueMessage));
+ *     vTraceSetQueueName(actuatorQ, "ActuatorQueue");
+ ******************************************************************************/
+void vTraceSetQueueName(void* queue, const char* name);
+
+#if (INCLUDE_ISR_TRACING == 1)
+
+/*******************************************************************************
+ * vTraceSetISRProperties
+ * 
+ * Registers an Interrupt Service Routine in the recorder library, This must be
+ * called before using vTraceStoreISRBegin to store ISR events. This is 
+ * typically called in the startup of the system, before the scheduler is 
+ * started.
+ *
+ * Example:
+ *     #define ID_ISR_TIMER1 1       // lowest valid ID is 1
+ *     #define PRIO_OF_ISR_TIMER1 3  // the hardware priority of the interrupt
+ *     ...
+ *     vTraceSetISRProperties(ID_ISR_TIMER1, "ISRTimer1", PRIO_OF_ISR_TIMER1);
+ *     ...
+ *     void ISR_handler()
+ *     {
+ *         portENTER_CRITICAL(); // Required if nested ISRs are allowed
+ *         vTraceStoreISRBegin(ID_OF_ISR_TIMER1);
+ *         portEXIT_CRITICAL();
+ *         ...
+ *         portENTER_CRITICAL(); // Required if nested ISRs are allowed
+ *         vTraceStoreISREnd();
+ *         portEXIT_CRITICAL();
+ *     }
+ ******************************************************************************/
+void vTraceSetISRProperties(objectHandleType handle, char* name, char priority);
+
+/*******************************************************************************
+ * vTraceStoreISRBegin
+ * 
+ * Registers the beginning of an Interrupt Service Routine. This must not be
+ * interrupted by another ISR containing recorder library calls, so if allowing
+ * nested ISRs this must be called with interrupts disabled.
+ *
+ * Example:
+ *     #define ID_ISR_TIMER1 1       // lowest valid ID is 1
+ *     #define PRIO_OF_ISR_TIMER1 3  // the hardware priority of the interrupt
+ *     ...
+ *     vTraceSetISRProperties(ID_ISR_TIMER1, "ISRTimer1", PRIO_OF_ISR_TIMER1);
+ *     ...
+ *     void ISR_handler()
+ *     {
+ *         portENTER_CRITICAL(); // Required if nested ISRs are allowed
+ *         vTraceStoreISRBegin(ID_OF_ISR_TIMER1);
+ *         portEXIT_CRITICAL();
+ *         ...
+ *         portENTER_CRITICAL(); // Required if nested ISRs are allowed
+ *         vTraceStoreISREnd();
+ *         portEXIT_CRITICAL();
+ *     }
+ ******************************************************************************/
+void vTraceStoreISRBegin(objectHandleType id);
+
+/*******************************************************************************
+ * vTraceStoreISREnd
+ * 
+ * Registers the end of an Interrupt Service Routine. This must not be
+ * interrupted by another ISR containing recorder library calls, so if allowing
+ * nested ISRs this must be called with interrupts disabled.
+ *
+ * Example:
+ *     #define ID_ISR_TIMER1 1       // lowest valid ID is 1
+ *     #define PRIO_OF_ISR_TIMER1 3  // the hardware priority of the interrupt
+ *     ...
+ *     vTraceSetISRProperties(ID_ISR_TIMER1, "ISRTimer1", PRIO_OF_ISR_TIMER1);
+ *     ...
+ *     void ISR_handler()
+ *     {
+ *         portENTER_CRITICAL(); // Required if nested ISRs are allowed
+ *         vTraceStoreISRBegin(ID_OF_ISR_TIMER1);
+ *         portEXIT_CRITICAL();
+ *         ...
+ *         portENTER_CRITICAL(); // Required if nested ISRs are allowed
+ *         vTraceStoreISREnd();
+ *         portEXIT_CRITICAL();
+ *     }
+ ******************************************************************************/
+void vTraceStoreISREnd(void);
+
+#else
+
+   /* If not including the ISR recording */
+
+   #define vTraceSetISRProperties(handle, name, priority)
+   #define vTraceStoreISRBegin(id)
+   #define vTraceStoreISREnd()
+
+#endif
+
+/*******************************************************************************
+ * vvTraceTaskSkipDefaultInstanceFinishedEvents
+ *
+ * This is useful if there are implicit Instance Finish Events, such as 
+ * vTaskDelayUntil or xQueueReceive, in a task where an explicit Instance Finish 
+ * Event has been defined. This function tells the recorder that only the 
+ * explicitly defined functions (using vTraceTaskInstanceIsFinished) should be
+ * treated as Instance Finish Events for this task. The implicit Instance Finish 
+ * Events are thus disregarded for this task.
+ ******************************************************************************/
+void vTraceTaskSkipDefaultInstanceFinishedEvents(void);
+
+/*******************************************************************************
+ * vTraceTaskInstanceIsFinished
+ * 
+ * This defines an explicit Instance Finish Event for the current task. It tells 
+ * the recorder that the current instance of this task is finished at the next 
+ * kernel call of the task, e.g., a taskDelay or a queue receive. This function 
+ * should be called right before the api function call considered to be the end 
+ * of the task instamce, i.e., the Instance Finish Event.
+ ******************************************************************************/
+void vTraceTaskInstanceIsFinished(void);
+
+/*******************************************************************************
+ * vTraceGetTraceBuffer
+ * 
+ * Returns a pointer to the recorder data structure. Use this together with 
+ * uiTraceGetTraceBufferSize if you wish to implement an own store/upload 
+ * solution, e.g., in case a debugger connection is not available for uploading 
+ * the data.
+ ******************************************************************************/
+void* vTraceGetTraceBuffer(void);
+
+/*******************************************************************************
+ * uiTraceGetTraceBufferSize
+ * 
+ * Gets the size of the recorder data structure. For use together with 
+ * vTraceGetTraceBuffer if you wish to implement an own store/upload solution, 
+ * e.g., in case a debugger connection is not available for uploading the data.
+ ******************************************************************************/
+uint32_t uiTraceGetTraceBufferSize(void);
+
+#if (INCLUDE_USER_EVENTS == 1)
+
+/*******************************************************************************
+ * xTraceOpenLabel
+ * 
+ * Creates user event labels for user event channels or for individual events.
+ * User events can be used to log application events and data for display in
+ * the visualization tool. A user event is identified by a label, i.e., a string,
+ * which is stored in the recorder's symbol table.
+ * When logging a user event, a numeric handle (reference) to this string is
+ * used to identify the event. This is obtained by calling 
+ * 
+ *     xTraceOpenLabel()
+ *
+ * whihc adds the string to the symbol table (if not already present)
+ * and returns the corresponding handle.
+ *
+ * This can be used in two ways:
+ *
+ * 1. The handle is looked up every time, when storing the user event.
+ *
+ * Example:
+ *     vTraceUserEvent(xTraceOpenLabel("MyUserEvent"));
+ *
+ * 2. The label is registered just once, with the handle stored in an
+ *  application variable - much like using a file handle.
+ *
+ * Example:
+ *     myEventHandle = xTraceOpenLabel("MyUserEvent");
+ *     ...
+ *     vTraceUserEvent(myEventHandle);
+ *
+ * The second option is faster since no lookup is required on each event, and 
+ * therefore recommended for user events that are frequently
+ * executed and/or located in time-critical code. The lookup operation is
+ * however fairly fast due to the design of the symbol table.
+ ******************************************************************************/
+traceLabel xTraceOpenLabel(char* label);
+
+ /******************************************************************************
+ * vTraceUserEvent
+ *
+ * Basic user event (Standard and Professional Edition only)
+ * 
+ * Generates a User Event with a text label. The label is created/looked up
+ * in the symbol table using xTraceOpenLabel.
+ ******************************************************************************/
+void vTraceUserEvent(traceLabel eventLabel);
+
+ /******************************************************************************
+ * vTracePrintF 
+ * 
+ * Advanced user events (Professional Edition only)
+ *
+ * Generates User Event with formatted text and data, similar to a "printf".
+ * It is very fast compared to a normal "printf" since this function only 
+ * stores the arguments. The actual formatting is done
+ * on the host PC when the trace is displayed in the viewer tool. 
+ *
+ * User Event labels are created using xTraceOpenLabel.
+ * Example:
+ *
+ *     traceLabel adc_uechannel = xTraceOpenLabel("ADC User Events");
+ *     ...
+ *     vTracePrint(adc_uechannel, 
+ *                 "ADC channel %d: %lf volts", 
+ *                 ch, (double)adc_reading/(double)scale);
+ *
+ * This can be combined into one line, if desired, but this is slower:
+ *
+ *     vTracePrint(xTraceOpenLabel("ADC User Events"), 
+ *                 "ADC channel %d: %lf volts", 
+ *                 ch, (double)adc_reading/(double)scale);
+ *
+ * Calling xTraceOpenLabel multiple times will not create duplicate entries, but
+ * it is of course faster to just do it once, and then keep the handle for later 
+ * use. If you don´t have any data arguments, only a text label/string, it is 
+ * better to use vTraceUserEvent - it is faster.
+ *
+ * Format specifiers supported:
+ *  %d - 32 bit signed integer
+ *  %u - 32 bit unsigned integer
+ *  %f - 32 bit float
+ *  %s - string (is copied to the recorder symbol table)
+ *  %hd - 16 bit signed integer
+ *  %hu - 16 bit unsigned integer
+ *  %bd - 8 bit signed integer
+ *  %bu - 8 bit unsigned integer
+ *  %lf - double-precision float
+ * 
+ * Up to 15 data arguments are allowed, with a total size of maximum 32 byte.
+ * In case this is exceeded, the user event is changed into an error message.
+ * 
+ * The data is stored in trace buffer, and is packed to allow storing multiple 
+ * smaller data entries in the same 4-byte record, e.g., four 8-bit values.
+ * A string requires two bytes, as the symbol table is limited to 64K. Storing a 
+ * double (%lf) uses two records, so this is quite costly. Use float (%f) unless
+ * the higher precision is really necessary.
+ ******************************************************************************/ 
+void vTracePrintF(traceLabel eventLabel, const char* formatStr, ...);
+
+#else
+
+#define vTracePrintF(eventLabel, formatStr, ...);
+#define xTraceOpenLabel(label) 0
+#define vTraceUserEvent(eventLabel) 
+
+#endif
+
+/******************************************************************************
+ * vTraceExcludeTask
+ *
+ * Excludes a task from the recording using a flag in the Object Property Table.
+ * This can be useful if some irrelevant task is very frequent and is "eating
+ * up the buffer". This should be called the task has been created, but 
+ * before starting the FreeRTOS scheduler.
+ *****************************************************************************/
+void vTraceExcludeTaskFromSchedulingTrace(const char* name);
+
+#ifdef __cplusplus
+}
+#endif
+
+#else
+
+#include "trcPort.h"
+
+#define vTraceInit()
+#define vTraceStart()
+#define vTraceStop()
+#define vTraceClear()
+#define vTraceGetTraceBuffer() ((void*)0)
+#define uiTraceGetTraceBufferSize() 0
+#define xTraceOpenLabel(label) 0
+#define vTraceUserEvent(eventLabel)
+#define vTracePrintF(eventLabel,formatStr,...)
+#define vTraceExcludeTaskFromSchedulingTrace(name)
+#define vTraceSetQueueName(queue, name)
+#define vTraceTaskSkipDefaultInstanceFinishedEvents()
+#define vTraceSetISRProperties(handle, name, priority)
+#define vTraceStoreISRBegin(id)
+#define vTraceStoreISREnd()
+#endif
+#endif
diff --git a/FreeRTOS-Plus/FreeRTOS-Plus-Trace/readme.txt b/FreeRTOS-Plus/FreeRTOS-Plus-Trace/readme.txt
new file mode 100644
index 000000000..ae47ac3f8
--- /dev/null
+++ b/FreeRTOS-Plus/FreeRTOS-Plus-Trace/readme.txt
@@ -0,0 +1,40 @@
+
+FreeRTOS+Trace Demo
+-------------------
+Percepio AB
+www.percepio.se
+
+This package contains:
+/Demo/DemoAppl									The demo application used in the included demo projects.
+/Demo/Eclipse-AT91SAM7          Demo project for Eclipse/GCC with Atmel AT91SAM7X256 as preconfigured target.
+/Demo/IAR - Cortex M3           Demo project for IAR Embedded Workbench for ARM, with NXP LPC1766 as preconfigured target.
+/Demo/Renesas RDK HEW - RX600   Demo project for Renesas HEW, with the RX62N as preconfigured target.
+/Demo/MSVC Win32                Demo project Microsoft Visual Studio, using the Win32 port of FreeRTOS.
+/FreeRTOS-v7.1.1                A subset of FreeRTOS v7.1.1 (the only change is that the Demo directory has been removed - it is quite large!).
+/TraceRecorderSrc               The trace recorder library for FreeRTOS / FreeRTOS+Trace.
+
+Note that the individual Demo project directories are not self-contained.
+They refer to the FreeRTOS-v7.1.1, DemoAppl and TraceRecorderSrc directories.
+
+Hardware Timer Ports
+--------------------
+This release contains hardware timer ports for the following hardware architectures:
+
+- ARM Cortex M3/M4 (all brands)
+- Atmel AT91SAM7X
+- Renesas RX600
+
+The package moreover contain several "unofficial" ports, provided by external contributors and not yet verified by Percepio AB.
+See trcPort.h for the details. 
+
+In case your hardware is not yet directly supported, developing a new port is quite easy. 
+See trcPort.h for further information.
+
+In case you have any questions, do not hesitate to contact support@percepio.se
+
+Percepio AB
+Köpmangatan 1A
+72215 Västerås
+Sweden
+
+www.percepio.se
\ No newline at end of file
diff --git a/FreeRTOS-Plus/FreeRTOS-Plus-Trace/trcBase.c b/FreeRTOS-Plus/FreeRTOS-Plus-Trace/trcBase.c
new file mode 100644
index 000000000..7146c0f08
--- /dev/null
+++ b/FreeRTOS-Plus/FreeRTOS-Plus-Trace/trcBase.c
@@ -0,0 +1,977 @@
+/*******************************************************************************
+ * FreeRTOS+Trace v2.2.3 Recorder Library
+ * Percepio AB, www.percepio.se
+ *
+ * trcBase.c
+ *
+ * Core functionality of the trace recorder library.
+ *
+ * Terms of Use
+ * This software is copyright Percepio AB. The recorder library is free for
+ * use together with Percepio products. You may distribute the recorder library
+ * in its original form, including modifications in trcPort.c and trcPort.h
+ * given that these modification are clearly marked as your own modifications
+ * and documented in the initial comment section of these source files. 
+ * This software is the intellectual property of Percepio AB and may not be 
+ * sold or in other ways commercially redistributed without explicit written 
+ * permission by Percepio AB.
+ *
+ * Disclaimer 
+ * The trace tool and recorder library is being delivered to you AS IS and 
+ * Percepio AB makes no warranty as to its use or performance. Percepio AB does 
+ * not and cannot warrant the performance or results you may obtain by using the 
+ * software or documentation. Percepio AB make no warranties, express or 
+ * implied, as to noninfringement of third party rights, merchantability, or 
+ * fitness for any particular purpose. In no event will Percepio AB, its 
+ * technology partners, or distributors be liable to you for any consequential, 
+ * incidental or special damages, including any lost profits or lost savings, 
+ * even if a representative of Percepio AB has been advised of the possibility 
+ * of such damages, or for any claim by any third party. Some jurisdictions do 
+ * not allow the exclusion or limitation of incidental, consequential or special 
+ * damages, or the exclusion of implied warranties or limitations on how long an 
+ * implied warranty may last, so the above limitations may not apply to you.
+ *
+ * FreeRTOS+Trace is available as Free Edition and in two premium editions.
+ * You may use the premium features during 30 days for evaluation.
+ * Download FreeRTOS+Trace at http://www.percepio.se/index.php?page=downloads
+ *
+ * Copyright Percepio AB, 2012.
+ * www.percepio.se
+ ******************************************************************************/
+
+#include "FreeRTOS.h"
+#include "task.h"
+#include "trcBase.h"
+#include "trcKernel.h"
+#include "trcUser.h"
+
+#if (configUSE_TRACE_FACILITY == 1)
+
+/*******************************************************************************
+ * Static data initializations
+ ******************************************************************************/
+
+
+/*******************************************************************************
+ * RecorderData
+ *
+ * The main data structure. This is the data read by FreeRTOS+Trace, typically
+ * through a debugger RAM dump. This is accessed through RecorderDataPtr.
+ *
+ * On the NXP LPC176x you may use the upper RAM bank (AHB) for this purpose. 
+ * For instance, the LPC1766 has 32 KB AHB RAM which allows for allocating a 
+ * buffer size of 7900 events without affecting the main RAM.
+ * To place RecorderData in this RAM bank, use the below declaration.
+ * 
+ *     #pragma location="AHB_RAM_MEMORY"
+ *     RecorderDataType RecorderData = ...
+ * 
+ * This of course works for other hardware architectures with additional RAM 
+ * banks as well, just replace "AHB_RAM_MEMORY" with the name of the right 
+ * address section from the linker file.
+ * 
+ * If using GCC, this is done by adding a "section" attribute:
+ *
+ *     RecorderDataType RecorderData __attribute__ ((section ("name"))) = ...
+ *
+ * Remember to replace "name" with the correct section name.
+ ******************************************************************************/
+
+#if (TRACE_DATA_ALLOCATION == TRACE_DATA_ALLOCATION_STATIC)
+RecorderDataType RecorderData =
+{
+    /* start marker, 12 chars */
+    0x01, 0x02, 0x03, 0x04,
+    0x71, 0x72, 0x73, 0x74,
+    0xF1, 0xF2, 0xF3, 0xF4,
+
+    /* version code - also used to determine endianness */
+    VERSION,
+
+    /* minor file format version */
+    MINOR_VERSION,
+    
+    /* irq priority order */
+    IRQ_PRIORITY_ORDER,
+
+    /* file size (for control) */
+    sizeof(RecorderDataType),
+
+    /* number of events stored so far */
+    0,
+
+    /* size of events buffer (in event records, each 4 bytes) */
+    EVENT_BUFFER_SIZE,
+
+    /* next free event index (event index, not byte address) */
+    0,
+
+    /* buffer is full */ 
+    0,
+
+    /* frequency of clock user for timestamps, in Hz - should be 0 here
+    as this is used to indicate "not yet initialized" - this is instead
+    initialized on the first taskswitch event. */
+    0,
+
+    /* the absolute timestamp of the last stored event, modulo frequency */
+    0,
+
+    /* the number of seconds so far */
+    0,
+
+    /* is recorder active (yes = 1) - note that "close" events are always 
+        stored to keep the name-handle mapping updated!*/
+    0,
+
+    /* Generated by FreeRTOS+Trace in Team Admin mode. Otherwise this should be "". */
+    TEAM_LICENSE_CODE,
+
+    /* debug marker 0 */
+    0xF0F0F0F0,
+
+    /* The Object Property Table - holds info of all active objects */ 
+    {
+        /* Number of object classes, also those not used */
+        NCLASSES,
+
+        /* The size in bytes of the object table byte pool */
+        DynObjTableSize,
+
+        /* The number of slots/handles available for each class */
+        {
+            NQueue,
+            NSemaphore,
+            NMutex,
+            NTask,
+            NISR
+        },
+
+        /* The maximum name length for each object class */
+        {
+            NameLenQueue,
+            NameLenSemaphore,
+            NameLenMutex,
+            NameLenTask,
+            NameLenISR
+        },
+
+        /* The total length a property table entry of the class */
+        {
+            PropertyTableSizeQueue,
+            PropertyTableSizeSemaphore,
+            PropertyTableSizeMutex,
+            PropertyTableSizeTask,
+            PropertyTableSizeISR
+        },
+
+        /* The start index of each class in the object property table */
+        {
+            StartIndexQueue,
+            StartIndexSemaphore,
+            StartIndexMutex,
+            StartIndexTask,
+            StartIndexISR
+        },
+
+        /* the object property table - encoded in a byte array using above 
+        definitions */
+        {0}
+    },
+
+    /* debug marker 1 */
+    0xF1F1F1F1,
+
+    /* The Symbol Table - holds all object names used since system 
+       startup. Every string is unique, so objects with same name will share 
+       an entry. Each name entry has four extra bytes: byte 0-1 is a link 
+       reference in an internal linked list, used for fast lookups, byte 2-3 
+       holds a reference to a channel label used for vTracePrintF format 
+       strings, and byte 4.. holds the object name, followed by a 
+       zero-termination.*/
+    {
+        SYMBOL_TABLE_SIZE,
+
+        /* next free index (0 is reserved to mean NULL) */
+        1,
+
+        /* the symbol table byte pool */
+        {0},
+
+        /* this is a 64 entry array holding 16-bit references (indexes) 
+           to the most recent entry of each checksum - i.e., list heads.*/
+        {0},
+
+    },
+
+#if (INCLUDE_FLOAT_SUPPORT == 1)
+    /* example float, for float endian detection */
+    (float)1.0,
+#else
+    /* This code signals that no float support is included */
+    (uint32_t)0, 
+#endif
+
+    /* internalErrorOccured */
+    0,
+    
+    /* debug marker 2 */
+    0xF2F2F2F2,
+    
+    /* The trace description string, can hold any information about the system, 
+        e.g., version, configuration. Error messages from the recorder are
+        copied to this buffer. Also used for internal error messages.*/
+    TRACE_DESCRIPTION,
+        
+    /* debug marker 3 */
+    0xF3F3F3F3,
+
+    /* the event data buffer, size EVENT_BUFFER_SIZE*4 */
+    {0},
+
+    /* end markers, used to extract the trace from a RAM dump image */
+    0x0A, 0x0B, 0x0C, 0x0D,
+    0x71, 0x72, 0x73, 0x74,
+    0xF1, 0xF2, 0xF3, 0xF4
+};
+
+RecorderDataType* RecorderDataPtr = &RecorderData;
+#endif
+
+
+#if (TRACE_DATA_ALLOCATION == TRACE_DATA_ALLOCATION_DYNAMIC)
+
+RecorderDataType* RecorderDataPtr = NULL;
+
+RecorderDataType* xTraceInitTraceData(void)
+{
+    RecorderDataType* tmp = (RecorderDataType*)pvPortMalloc(sizeof(RecorderDataType));
+
+    if (! tmp)
+    {
+        vTraceError("Malloc failed in xTraceInitTraceData! Reduce size constants in trcConfig.h");
+        return NULL;
+    }
+    
+    (void)memset(tmp, 0, sizeof(RecorderDataType));
+
+    tmp->startmarker0 = 0x01;
+    tmp->startmarker1 = 0x02;
+    tmp->startmarker2 = 0x03;
+    tmp->startmarker3 = 0x04;
+    tmp->startmarker4 = 0x71;
+    tmp->startmarker5 = 0x72;
+    tmp->startmarker6 = 0x73;
+    tmp->startmarker7 = 0x74;
+    tmp->startmarker8 = 0xF1;
+    tmp->startmarker9 = 0xF2;
+    tmp->startmarker10 = 0xF3;
+    tmp->startmarker11 = 0xF4;
+    tmp->version = VERSION;
+    tmp->minor_version = MINOR_VERSION;
+    tmp->irq_priority_order = IRQ_PRIORITY_ORDER;
+    tmp->filesize = sizeof(RecorderDataType);
+    
+    tmp->maxEvents = EVENT_BUFFER_SIZE;
+    
+    tmp->debugMarker0 = 0xF0F0F0F0;
+    tmp->ObjectPropertyTable.NumberOfObjectClasses = NCLASSES;
+    tmp->ObjectPropertyTable.ObjectPropertyTableSizeInBytes = DynObjTableSize;
+    tmp->ObjectPropertyTable.NumberOfObjectsPerClass[0] = NQueue;
+    tmp->ObjectPropertyTable.NumberOfObjectsPerClass[1] = NSemaphore;
+    tmp->ObjectPropertyTable.NumberOfObjectsPerClass[2] = NMutex;
+    tmp->ObjectPropertyTable.NumberOfObjectsPerClass[3] = NTask;
+    tmp->ObjectPropertyTable.NumberOfObjectsPerClass[4] = NISR;
+    tmp->ObjectPropertyTable.NameLengthPerClass[0] = NameLenQueue;
+    tmp->ObjectPropertyTable.NameLengthPerClass[1] = NameLenSemaphore;
+    tmp->ObjectPropertyTable.NameLengthPerClass[2] = NameLenMutex;
+    tmp->ObjectPropertyTable.NameLengthPerClass[3] = NameLenTask;
+    tmp->ObjectPropertyTable.NameLengthPerClass[4] = NameLenISR;
+    tmp->ObjectPropertyTable.TotalPropertyBytesPerClass[0] = PropertyTableSizeQueue;
+    tmp->ObjectPropertyTable.TotalPropertyBytesPerClass[1] = PropertyTableSizeSemaphore;
+    tmp->ObjectPropertyTable.TotalPropertyBytesPerClass[2] = PropertyTableSizeMutex;
+    tmp->ObjectPropertyTable.TotalPropertyBytesPerClass[3] = PropertyTableSizeTask;
+    tmp->ObjectPropertyTable.TotalPropertyBytesPerClass[4] = PropertyTableSizeISR;
+    tmp->ObjectPropertyTable.StartIndexOfClass[0] = StartIndexQueue;
+    tmp->ObjectPropertyTable.StartIndexOfClass[1] = StartIndexSemaphore;
+    tmp->ObjectPropertyTable.StartIndexOfClass[2] = StartIndexMutex;
+    tmp->ObjectPropertyTable.StartIndexOfClass[3] = StartIndexTask;
+    tmp->ObjectPropertyTable.StartIndexOfClass[4] = StartIndexISR;    
+    tmp->debugMarker1 = 0xF1F1F1F1;
+    tmp->SymbolTable.symTableSize = SYMBOL_TABLE_SIZE;
+    tmp->SymbolTable.nextFreeSymbolIndex = 1;
+#if (INCLUDE_FLOAT_SUPPORT == 1)
+    tmp->exampleFloatEncoding = (float)1.0; /* otherwize already zero */
+#endif
+    tmp->debugMarker2 = 0xF2F2F2F2;    
+    (void)strncpy(tmp->systemInfo, TRACE_DESCRIPTION, TRACE_DESCRIPTION_MAX_LENGTH);
+    tmp->debugMarker3 = 0xF3F3F3F3;
+    tmp->endmarker0 = 0x0A;
+    tmp->endmarker1 = 0x0B;
+    tmp->endmarker2 = 0x0C;
+    tmp->endmarker3 = 0x0D;
+    tmp->endmarker4 = 0x71;
+    tmp->endmarker5 = 0x72;
+    tmp->endmarker6 = 0x73;
+    tmp->endmarker7 = 0x74;
+    tmp->endmarker8 = 0xF1;
+    tmp->endmarker9 = 0xF2;
+    tmp->endmarker10 = 0xF3;
+    tmp->endmarker11 = 0xF4;
+    
+    RecorderDataPtr = tmp;
+
+    return (RecorderDataType*)RecorderDataPtr;
+}
+
+#endif
+
+
+char sprintfBuffer[150];
+
+/* For debug printouts - the names of the object classes */
+char OBJECTCLASSNAME[NCLASSES][10] =
+{
+        "QUEUE",
+        "SEMAPHORE",
+        "MUTEX",
+        "TASK",
+        "ISR"
+};
+
+/* Initialization of the handle mechanism, see e.g, xTraceGetObjectHandle */
+objectHandleStackType objectHandleStacks =
+{
+        /* indexOfNextAvailableHandle */
+        {
+                0,
+                NQueue,
+                NQueue + NSemaphore,
+                NQueue + NSemaphore + NMutex,
+                NQueue + NSemaphore + NMutex + NTask
+        },
+
+        /* lowestIndexOfClass */
+        {
+                0,
+                NQueue,
+                NQueue + NSemaphore,
+                NQueue + NSemaphore + NMutex,
+                NQueue + NSemaphore + NMutex + NTask
+        },
+
+        /* highestIndexOfClass */
+        {
+                NQueue - 1,
+                NQueue + NSemaphore - 1,
+                NQueue + NSemaphore + NMutex - 1,
+                NQueue + NSemaphore + NMutex + NTask - 1,
+                NQueue + NSemaphore + NMutex + NTask + NISR - 1
+        },
+        {0},
+        {0}
+};
+
+
+/* Used for internal state flags of tasks */
+uint8_t taskFlags[NTask];
+
+/* Gives the last error message of the recorder. NULL if no error message. */
+char* traceErrorMessage = NULL;
+
+#if (INCLUDE_EVENT_STATS == 1)
+/* Used for an internal reporting mechanism, which displays the count and ratio 
+of each object type in a console printout generated in vTracePortEnd */
+uint16_t eventCount[256];
+#endif
+
+void* xTraceNextFreeEventBufferSlot(void)
+{
+    if (RecorderDataPtr->nextFreeIndex >= EVENT_BUFFER_SIZE)
+    {
+        vTraceError("Attempt to index outside event buffer!");
+        return NULL;
+    }
+    return (void*)(&RecorderDataPtr->
+                   eventData[RecorderDataPtr->nextFreeIndex*4]);
+}
+
+uint32_t uiIndexOfObject(objectHandleType objecthandle, uint8_t objectclass)
+{
+    if ((objectclass < NCLASSES) && (objecthandle > 0) && (objecthandle <= 
+    RecorderDataPtr->ObjectPropertyTable.NumberOfObjectsPerClass[objectclass]))
+    {
+        return (uint32_t)(RecorderDataPtr->
+            ObjectPropertyTable.StartIndexOfClass[objectclass] + 
+            (RecorderDataPtr->
+            ObjectPropertyTable.TotalPropertyBytesPerClass[objectclass] * 
+            (objecthandle-1)));
+    }
+    
+    vTraceError("Object table lookup with invalid object handle or object class!");    
+    return 0;
+}
+
+/*******************************************************************************
+ * Object handle system 
+ * This provides a mechanism to assign each kernel object (tasks, queues, etc)
+ * with a 1-byte handle, that is used to identify the object in the trace.
+ * This way, only one byte instead of four is necessary to identify the object.
+ * This allows for maximum 255 objects, of each object class, active at any
+ * moment.
+ * Note that zero is reserved as an error code and is not a valid handle.
+ * 
+ * In order to allow for fast dynamic allocation and release of object handles, 
+ * the handles of each object class (e.g., TASK) are stored in a stack. When a 
+ * handle is needed, e.g., on task creation, the next free handle is popped from 
+ * the stack. When an object (e.g., task) is deleted, its handle is pushed back 
+ * on the stack and can thereby be reused for other objects.
+ * 
+ * Since this allows for reuse of object handles, a specific handle (e.g, "8") 
+ * may refer to TASK_X at one point, and later mean "TASK_Y". To resolve this, 
+ * the recorder uses "Close events", which are stored in the main event buffer 
+ * when objects are deleted and their handles are released. The close event 
+ * contains the mapping between object handle and object name which was valid up
+ * to this point in time. The object name is stored as a symbol table entry. 
+ ******************************************************************************/
+
+objectHandleType xTraceGetObjectHandle(traceObjectClass objectclass)
+{
+    static objectHandleType handle;
+    static uint32_t indexOfHandle;
+
+    indexOfHandle = objectHandleStacks.indexOfNextAvailableHandle[objectclass];
+    if (objectHandleStacks.objectHandles[indexOfHandle] == 0)
+    {
+        /* Zero is used to indicate a never before used handle, i.e.,
+           new slots in the handle stack. The handle slot needs to 
+           be initialized here (starts at 1). */
+        objectHandleStacks.objectHandles[indexOfHandle] = 
+            (objectHandleType)(1 + indexOfHandle - 
+            objectHandleStacks.lowestIndexOfClass[objectclass]);
+    }
+
+    handle = objectHandleStacks.objectHandles[indexOfHandle];
+    
+    if ( objectHandleStacks.indexOfNextAvailableHandle[objectclass] 
+        > objectHandleStacks.highestIndexOfClass[objectclass] )
+    {
+        /* ERROR */
+        switch(objectclass)
+        {
+            case TRACE_CLASS_TASK:
+            vTraceError("Not enough TASK handles - increase NTask in trcConfig.h");         
+            break;
+            case TRACE_CLASS_ISR:
+            vTraceError("Not enough ISR handles - increase NISR in trcConfig.h");         
+            break;
+            case TRACE_CLASS_SEMAPHORE:
+            vTraceError("Not enough SEMAPHORE handles - increase NSemaphore in trcConfig.h");         
+            break;
+            case TRACE_CLASS_MUTEX:
+            vTraceError("Not enough MUTEX handles - increase NMutex in trcConfig.h");         
+            break;
+            case TRACE_CLASS_QUEUE:
+            vTraceError("Not enough QUEUE handles - increase NQueue in trcConfig.h");         
+            break;
+        }
+        
+        handle = 0; /* an invalid/anonymous handle - but the recorder is stopped now... */
+    }
+    else
+    {
+        int32_t hndCount;
+        objectHandleStacks.indexOfNextAvailableHandle[objectclass]++;
+        
+        hndCount = objectHandleStacks.indexOfNextAvailableHandle[objectclass] - 
+            objectHandleStacks.lowestIndexOfClass[objectclass];
+        
+        if (hndCount > 
+            objectHandleStacks.handleCountWaterMarksOfClass[objectclass])
+        {
+            objectHandleStacks.handleCountWaterMarksOfClass[objectclass] = 
+                (objectHandleType)hndCount;
+        }
+    }
+
+    return handle;
+}
+
+void vTraceFreeObjectHandle(traceObjectClass objectclass, objectHandleType handle)
+{
+    uint32_t indexOfHandle;
+
+    /* Check that there is room to push the handle on the stack */
+    if ( (objectHandleStacks.indexOfNextAvailableHandle[objectclass] - 1) < 
+        objectHandleStacks.lowestIndexOfClass[objectclass] )
+    {
+        /* Error */
+        vTraceError("Attempt to free more handles than allocated! (duplicate xTaskDelete or xQueueDelete?)");
+    }
+    else
+    {
+        objectHandleStacks.indexOfNextAvailableHandle[objectclass]--;
+        indexOfHandle = objectHandleStacks.indexOfNextAvailableHandle[objectclass];
+        objectHandleStacks.objectHandles[indexOfHandle] = handle;
+    }
+
+}
+
+/*******************************************************************************
+ * Objects Property Table 
+ *
+ * This holds the names and properties of the currently active objects, such as
+ * tasks and queues. This is developed to support "dynamic" objects which might
+ * be deleted during runtime. Their handles are only valid during their
+ * lifetime, i.e., from create to delete, as they might be reused on later
+ * create operations. When an object is deleted from the OPT, its data is moved
+ * to the trace buffer and/or the symbol table.
+ * When an object (task, queue, etc.) is created, it receives a handle, which
+ * together with the object class specifies its location in the OPT. Thus,
+ * objects of different types may share the same name and/or handle, but still
+ * be independent objects.
+ ******************************************************************************/
+
+/*******************************************************************************
+ * vTraceSetObjectName
+ *
+ * Registers the names of queues, semaphores and other kernel objects in the
+ * recorder's Object Property Table, at the given handle and object class.
+ ******************************************************************************/
+void vTraceSetObjectName(traceObjectClass objectclass, 
+                         objectHandleType handle, 
+                         const char* name)
+{
+    static uint32_t idx;
+
+    if (handle == 0)
+    {
+        vTraceError("Illegal handle (0) in vTraceSetObjectName.");   
+        return;
+    }
+    
+    switch(objectclass)
+    {
+        case TRACE_CLASS_TASK:
+        case TRACE_CLASS_ISR:
+        case TRACE_CLASS_SEMAPHORE:
+        case TRACE_CLASS_MUTEX:
+        case TRACE_CLASS_QUEUE:
+        break;
+    default:
+        vTraceError("Illegal object class in vTraceSetObjectName");   
+        break;            
+    }
+
+    if (handle > 
+        RecorderDataPtr->ObjectPropertyTable.NumberOfObjectsPerClass[objectclass])
+    {
+        switch(objectclass)
+        {
+            case TRACE_CLASS_TASK:
+            vTraceError("Not enough TASK handles - increase NTask in trcConfig.h");         
+            break;
+            case TRACE_CLASS_ISR:
+            vTraceError("Not enough ISR handles - increase NISR in trcConfig.h");       
+            break;
+            case TRACE_CLASS_SEMAPHORE:
+            vTraceError("Not enough SEMAPHORE handles - increase NSemaphore in trcConfig.h");
+            break;
+            case TRACE_CLASS_MUTEX:
+            vTraceError("Not enough MUTEX handles - increase NMutex in trcConfig.h");
+            break;
+            case TRACE_CLASS_QUEUE:
+            vTraceError("Not enough QUEUE handles - increase NQueue in trcConfig.h");
+            break;
+        }
+    }
+    else
+    {
+        idx = uiIndexOfObject(handle, objectclass);
+
+        if (traceErrorMessage == NULL)
+        {
+            (void)strncpy((char*)&(RecorderDataPtr->ObjectPropertyTable.objbytes[idx]),
+                    name,
+                    RecorderDataPtr->ObjectPropertyTable.NameLengthPerClass[ objectclass ] );
+        }
+    }
+}
+
+traceLabel prvTraceOpenSymbol(const char* name, traceLabel userEventChannel)
+{
+    static uint16_t result;
+    static uint8_t len;
+    static uint8_t crc;
+    len = 0;
+    crc = 0;
+    prvTraceGetChecksum(name, &crc, &len);
+
+    taskENTER_CRITICAL();
+    result = prvTraceLookupSymbolTableEntry(name, crc, len, userEventChannel);
+    if (!result)
+    {
+        result = prvTraceCreateSymbolTableEntry(name, crc, len, userEventChannel);
+    }
+    taskEXIT_CRITICAL();
+
+    return result;
+}
+
+/*******************************************************************************
+ * Supporting functions
+ ******************************************************************************/
+
+/*******************************************************************************
+ * vTraceError
+ *
+ * Called by various parts in the recorder. Stops the recorder and stores a 
+ * pointer to an error message, which is printed by the monitor task.
+ * If you are not using the monitor task, you may use xTraceGetLastError() 
+ * from your application to check if the recorder is OK.
+ *
+ * Note: If a recorder error is registered before vTraceStart is called, the 
+ * trace start will be aborted. This can occur if any of the Nxxxx constants 
+ * (e.g., NTask) in trcConfig.h is too small.
+ ******************************************************************************/
+void vTraceError(char* msg)
+{
+    vTraceStop();
+    if (traceErrorMessage == NULL)
+    {
+      traceErrorMessage = msg;
+      (void)strncpy(RecorderDataPtr->systemInfo, 
+          traceErrorMessage, 
+          TRACE_DESCRIPTION_MAX_LENGTH);
+      RecorderDataPtr->internalErrorOccured = 1;
+    }
+}
+
+/******************************************************************************
+ * prvCheckDataToBeOverwrittenForMultiEntryUserEvents
+ *
+ * This checks if the next event to be overwritten is a multi-entry user event, 
+ * i.e., a USER_EVENT followed by data entries.
+ * Such data entries do not have an event code at byte 0, as other events.
+ * All 4 bytes are user data, so the first byte of such data events must 
+ * not be interpreted as type field. The number of data entries following
+ * a USER_EVENT is given in the event code of the USER_EVENT.
+ * Therefore, when overwriting a USER_EVENT (when using in ringbuffer mode)
+ * any data entries following must be replaced with NULL events (code 0).
+ *
+ * This is assumed to execute within a critical section...
+ *****************************************************************************/
+
+void prvCheckDataToBeOverwrittenForMultiEntryUserEvents(
+    uint32_t nofEntriesToCheck)
+{
+    uint32_t i = 0, e = 0;
+    while (i < nofEntriesToCheck)
+    {        
+        e = RecorderDataPtr->nextFreeIndex + i;
+        if ((RecorderDataPtr->eventData[e*4] > USER_EVENT) && 
+            (RecorderDataPtr->eventData[e*4] < USER_EVENT + 16))
+        {
+            uint32_t nDataEvents = (uint32_t)(RecorderDataPtr->eventData[e*4] - USER_EVENT);
+            if (e + nDataEvents < RecorderDataPtr->maxEvents)
+            {
+                (void)memset(& RecorderDataPtr->eventData[e*4], 0, 4 + 4 * nDataEvents);
+            }
+        }
+        i++;
+    }
+}
+
+/*******************************************************************************
+ * prvTraceUpdateCounters
+ *
+ * Updates the index of the event buffer.
+ ******************************************************************************/
+void prvTraceUpdateCounters(void)
+{
+    if (RecorderDataPtr->recorderActive == 0)
+    {
+        return;
+    }
+
+#if (INCLUDE_EVENT_STATS == 1)
+    eventCount[RecorderDataPtr->eventData[RecorderDataPtr->nextFreeIndex*4]]++;
+#endif
+
+    RecorderDataPtr->numEvents++;
+
+    RecorderDataPtr->nextFreeIndex++;
+    
+    if (RecorderDataPtr->nextFreeIndex >= EVENT_BUFFER_SIZE)
+    {   
+#if (RECORDER_STORE_MODE == STORE_MODE_RING_BUFFER)       
+        RecorderDataPtr->bufferIsFull = 1;
+        RecorderDataPtr->nextFreeIndex = 0;
+#else
+        vTraceStop();
+#endif
+    }
+
+#if (RECORDER_STORE_MODE == STORE_MODE_RING_BUFFER)
+    prvCheckDataToBeOverwrittenForMultiEntryUserEvents(1);
+#endif
+    
+#ifdef STOP_AFTER_N_EVENTS
+#if (STOP_AFTER_N_EVENTS > -1)
+    if (RecorderDataPtr->numEvents >= STOP_AFTER_N_EVENTS)
+    {
+        vTraceStop();
+    }
+#endif
+#endif
+}
+    
+/******************************************************************************
+ * prvTraceGetDTS
+ *
+ * Returns a differential timestamp (DTS), i.e., the time since
+ * last event, and creates an XTS event if the DTS does not fit in the
+ * number of bits given. The XTS event holds the MSB bytes of the DTS.
+ *
+ * The parameter param_maxDTS should be 0xFF for 8-bit dts or 0xFFFF for
+ * events with 16-bit dts fields.
+ *****************************************************************************/
+uint32_t prvTraceGetDTS(uint32_t param_maxDTS)
+{
+    XTSEvent* xts;    
+    int32_t dts = 0;
+    uint32_t old_ts = RecorderDataPtr->absTimeLastEvent;
+
+    if (RecorderDataPtr->frequency == 0)
+    {
+        /* If HWTC_PERIOD is mapped to the timer reload register,
+        such as in the Cortex M port, it is not initialized before
+        FreeRTOS has been started. We therefore store the frequency
+        of the timer at the first timestamped event after the 
+        scheduler has started. (Note that this function is called
+        also by vTraceStart and uiTraceStart, which might be
+        called before the scheduler has been started.) */
+
+#if (SELECTED_PORT == PORT_Win32)    
+        RecorderDataPtr->frequency = 100000;
+#elif (SELECTED_PORT == PORT_HWIndependent)    
+        RecorderDataPtr->frequency = configTICK_RATE_HZ;
+#else        
+        if (xTaskGetSchedulerState() != 0) /* Has the scheduler started? */
+        {            
+            RecorderDataPtr->frequency = 
+                 HWTC_PERIOD * configTICK_RATE_HZ / HWTC_DIVISOR; 
+        }
+#endif
+    }
+
+    /**************************************************************************
+    * The below statement reads the timestamp from the timer port module. Note 
+    * the modulo operation on RecorderDataPtr->frequency, which makes the overflow 
+    * case (if (dts < 0)) occur every 1 sec.
+    * This is to make it easier to test. The overflow will happen sooner
+    * or later anyway.
+    **************************************************************************/
+
+    if (RecorderDataPtr->frequency > 0)
+    {
+        RecorderDataPtr->absTimeLastEvent = 
+            uiTracePortGetTimeStamp() % RecorderDataPtr->frequency;
+    }
+    else
+    {
+        /* Special case if the recorder has not yet started (frequency may be uninitialized, i.e., zero)
+        The modulo operation is not necessary on the first events, since it is surely much less than 
+        one second since startup. */
+        RecorderDataPtr->absTimeLastEvent = uiTracePortGetTimeStamp(); 
+    }
+
+    dts = (int32_t)(RecorderDataPtr->absTimeLastEvent - old_ts);
+
+    if (dts < 0) /* when the modulo operation wraps around (after 1 second) */
+    {
+        if (RecorderDataPtr->frequency == 0)
+        {
+            /* Frequency should normally be initialized on the first logged event after
+            the FreeRTOS scheduler has started. In this case, it has not yet been 
+            initialized (frequency is 0) and the dts (time since last event) was 
+            negative. This is an illegal combination that indicates a problem in 
+            uiTracePortGetTimeStamp, probably due to incorrect HWTC macros in trcPort.h.
+
+            The dts variable normally becomes negative when the modulo operation wraps
+            around, but since the modulo operation is not used in this case (only used 
+            if frequency has been set), dts only becomes negative if
+            uiTracePortGetTimeStamp returned a smaller value than last time.
+            This is an error. The values returned by uiTracePortGetTimeStamp should be
+            monotonically incresing (since it is a timestamp). */
+
+            vTraceError("Timestamping error, see comment in prvTraceGetDTS (trcBase.c)");
+            return 0;
+        }
+        dts = (int32_t)(RecorderDataPtr->frequency - old_ts + RecorderDataPtr->absTimeLastEvent);
+
+        /* This is good for 136 years (incremented every 1 second) */
+        RecorderDataPtr->absTimeLastEventSecond++; 
+    }
+
+    /* If the dts (time since last event) does not fit in event->dts (only 8 or 16 bits) */
+    if (dts > (int32_t)param_maxDTS)
+    {
+        /* Create an XTS event (eXtended TimeStamp) containing the higher dts bits*/
+        xts = (XTSEvent*) xTraceNextFreeEventBufferSlot();
+
+        if (xts != NULL)
+        {
+            if (param_maxDTS == 0xFFFF)
+            {
+                xts->type = XTS16;
+                xts->xts_16 = (uint16_t)((dts / 0x10000) & 0xFFFF);
+                xts->xts_8 = 0;
+            }
+            else if (param_maxDTS == 0xFF)
+            {
+                xts->type = XTS8;
+                xts->xts_16 = (uint16_t)((dts / 0x100) & 0xFFFF);
+                xts->xts_8 = (uint8_t)((dts / 0x1000000) & 0xFF);
+            }
+            else
+            {
+                vTraceError("Bad param_maxDTS in prvTraceGetDTS");
+            }
+            prvTraceUpdateCounters();
+        }
+    }
+
+    return dts % (param_maxDTS + 1);
+}
+
+
+/*******************************************************************************
+ * prvTraceLookupSymbolTableEntry
+ *
+ * Find an entry in the symbol table, return 0 if not present.
+ *
+ * The strings are stored in a byte pool, with four bytes of "meta-data" for
+ * every string.
+ * byte 0-1: index of next entry with same checksum (for fast lookup).
+ * byte 2-3: reference to a symbol table entry, a label for vTracePrintF
+ * format strings only (the handle of the destination channel).
+ * byte 4..(4 + length): the string (object name or user event label), with
+ * zero-termination
+ ******************************************************************************/
+traceLabel prvTraceLookupSymbolTableEntry(const char* name, 
+                                          uint8_t crc6, 
+                                          uint8_t len, 
+                                          traceLabel chn)
+{
+    uint16_t i = RecorderDataPtr->SymbolTable.latestEntryOfChecksum[ crc6 ];
+
+    while (i != 0)
+    {
+        if (RecorderDataPtr->SymbolTable.symbytes[i + 2] == (chn & 0x00FF))
+        {
+            if (RecorderDataPtr->SymbolTable.symbytes[i + 3] == (chn / 0x100))
+            {
+                if (RecorderDataPtr->SymbolTable.symbytes[i + 4 + len] == '\0')
+                {
+                    if (strncmp((char*)(& RecorderDataPtr->SymbolTable.symbytes[i + 4]), name, len) == 0)
+                    {
+                        break; /* found */
+                    }
+                }
+            }
+        }
+        i = (uint16_t)(RecorderDataPtr->SymbolTable.symbytes[i] + (RecorderDataPtr->SymbolTable.symbytes[i + 1] * 0x100));
+    }
+    return i;
+}
+
+/*******************************************************************************
+ * prvTraceCreateSymbolTableEntry
+ *
+ * Creates an entry in the symbol table, independent if it exists already.
+ *
+ * The strings are stored in a byte pool, with four bytes of "meta-data" for
+ * every string.
+ * byte 0-1: index of next entry with same checksum (for fast lookup).
+ * byte 2-3: reference to a symbol table entry, a label for vTracePrintF
+ * format strings only (the handle of the destination channel).
+ * byte 4..(4 + length): the string (object name or user event label), with
+ * zero-termination
+ ******************************************************************************/
+uint16_t prvTraceCreateSymbolTableEntry(const char* name, 
+                                        uint8_t crc6, 
+                                        uint8_t len, 
+                                        traceLabel channel)
+{
+    uint16_t ret = 0;
+    if (RecorderDataPtr->SymbolTable.nextFreeSymbolIndex + len + 4 >= SYMBOL_TABLE_SIZE)
+    {
+        vTraceError("Symbol table full. Increase SYMBOL_TABLE_SIZE in trcConfig.h");
+        ret = 0;        
+    }
+    else
+    {
+
+        RecorderDataPtr->SymbolTable.symbytes
+            [ RecorderDataPtr->SymbolTable.nextFreeSymbolIndex] = 
+            (uint8_t)(RecorderDataPtr->SymbolTable.latestEntryOfChecksum[ crc6 ] & 0x00FF);
+
+        RecorderDataPtr->SymbolTable.symbytes
+            [ RecorderDataPtr->SymbolTable.nextFreeSymbolIndex + 1] = 
+            (uint8_t)(RecorderDataPtr->SymbolTable.latestEntryOfChecksum[ crc6 ] / 0x100);
+
+        RecorderDataPtr->SymbolTable.symbytes
+            [ RecorderDataPtr->SymbolTable.nextFreeSymbolIndex + 2] = 
+            (uint8_t)(channel & 0x00FF);
+
+        RecorderDataPtr->SymbolTable.symbytes
+            [ RecorderDataPtr->SymbolTable.nextFreeSymbolIndex + 3] = 
+            (uint8_t)(channel / 0x100);
+
+        /* set name (bytes 4...4+len-1) */
+        (void)strncpy((char*)&( RecorderDataPtr->SymbolTable.symbytes
+            [ RecorderDataPtr->SymbolTable.nextFreeSymbolIndex + 4] ), name, len);
+
+        /* Set zero termination (at offest 4+len) */
+        RecorderDataPtr->SymbolTable.symbytes
+            [RecorderDataPtr->SymbolTable.nextFreeSymbolIndex + 4 + len] = '\0';
+
+        /* store index of entry (for return value, and as head of LL[crc6]) */
+        RecorderDataPtr->SymbolTable.latestEntryOfChecksum
+            [ crc6 ] = (uint16_t)RecorderDataPtr->SymbolTable.nextFreeSymbolIndex;
+        
+        RecorderDataPtr->SymbolTable.nextFreeSymbolIndex += (len + 5);
+        
+        ret = (uint16_t)(RecorderDataPtr->SymbolTable.nextFreeSymbolIndex - 
+            (len + 5));
+    }
+    
+    return ret;
+}
+
+
+/*******************************************************************************
+ * prvTraceGetChecksum
+ *
+ * Calculates a simple 6-bit checksum from a string, used to index the string 
+ * for fast symbol table lookup.
+ ******************************************************************************/
+void prvTraceGetChecksum(const char *pname, uint8_t* pcrc, uint8_t* plength)
+{
+   char c;
+   int32_t length = 0;
+   int32_t crc = 0;
+   if ( pname != (const char *) 0 )
+   {
+      for ( ; (c = *pname++) != '\0'; )
+      {
+         crc += (int32_t)c;
+         length++;
+      }
+   }
+   *pcrc = (uint8_t)(crc % 64);
+   *plength = (uint8_t)length;
+}
+
+#endif
\ No newline at end of file
diff --git a/FreeRTOS-Plus/FreeRTOS-Plus-Trace/trcKernel.c b/FreeRTOS-Plus/FreeRTOS-Plus-Trace/trcKernel.c
new file mode 100644
index 000000000..012268a69
--- /dev/null
+++ b/FreeRTOS-Plus/FreeRTOS-Plus-Trace/trcKernel.c
@@ -0,0 +1,374 @@
+/*******************************************************************************
+ * FreeRTOS+Trace v2.2.3 Recorder Library
+ * Percepio AB, www.percepio.se
+ *
+ * trcKernel.c
+ *
+ * Functions for integration of the trace recorder library in the FreeRTOS 
+ * kernel (requires FreeRTOS v7.1.0 or later).
+ * 
+ * Terms of Use
+ * This software is copyright Percepio AB. The recorder library is free for
+ * use together with Percepio products. You may distribute the recorder library
+ * in its original form, including modifications in trcPort.c and trcPort.h
+ * given that these modification are clearly marked as your own modifications
+ * and documented in the initial comment section of these source files. 
+ * This software is the intellectual property of Percepio AB and may not be 
+ * sold or in other ways commercially redistributed without explicit written 
+ * permission by Percepio AB.
+ *
+ * Disclaimer 
+ * The trace tool and recorder library is being delivered to you AS IS and 
+ * Percepio AB makes no warranty as to its use or performance. Percepio AB does 
+ * not and cannot warrant the performance or results you may obtain by using the 
+ * software or documentation. Percepio AB make no warranties, express or 
+ * implied, as to noninfringement of third party rights, merchantability, or 
+ * fitness for any particular purpose. In no event will Percepio AB, its 
+ * technology partners, or distributors be liable to you for any consequential, 
+ * incidental or special damages, including any lost profits or lost savings, 
+ * even if a representative of Percepio AB has been advised of the possibility 
+ * of such damages, or for any claim by any third party. Some jurisdictions do 
+ * not allow the exclusion or limitation of incidental, consequential or special 
+ * damages, or the exclusion of implied warranties or limitations on how long an 
+ * implied warranty may last, so the above limitations may not apply to you.
+ *
+ * FreeRTOS+Trace is available as Free Edition and in two premium editions.
+ * You may use the premium features during 30 days for evaluation.
+ * Download FreeRTOS+Trace at http://www.percepio.se/index.php?page=downloads
+ *
+ * Copyright Percepio AB, 2012.
+ * www.percepio.se
+ ******************************************************************************/
+
+#include "FreeRTOS.h"
+#include "task.h"
+#include "trcKernel.h"
+
+#if (configUSE_TRACE_FACILITY == 1)
+
+/******************************************************************************
+ * TraceObjectClassTable
+ * Translates a FreeRTOS QueueType into trace objects classes (TRACE_CLASS_).
+ * This was added since we want to map both types of Mutex and both types of 
+ * Semaphores on common classes for all Mutexes and all Semaphores respectively. 
+ * 
+ * FreeRTOS Queue types
+ * #define queueQUEUE_TYPE_BASE                  ( 0U ) => TRACE_CLASS_QUEUE
+ * #define queueQUEUE_TYPE_MUTEX                 ( 1U ) => TRACE_CLASS_MUTEX
+ * #define queueQUEUE_TYPE_COUNTING_SEMAPHORE    ( 2U ) => TRACE_CLASS_SEMAPHORE
+ * #define queueQUEUE_TYPE_BINARY_SEMAPHORE      ( 3U ) => TRACE_CLASS_SEMAPHORE
+ * #define queueQUEUE_TYPE_RECURSIVE_MUTEX       ( 4U ) => TRACE_CLASS_MUTEX 
+ ******************************************************************************/
+traceObjectClass TraceObjectClassTable[5]        =  {TRACE_CLASS_QUEUE,     
+                                                     TRACE_CLASS_MUTEX,      
+                                                     TRACE_CLASS_SEMAPHORE,  
+                                                     TRACE_CLASS_SEMAPHORE,
+                                                     TRACE_CLASS_MUTEX };
+
+/* This is defined in FreeRTOS! */
+extern volatile void * volatile pxCurrentTCB; 
+
+/* Internal variables */
+uint8_t nISRactive = 0;
+objectHandleType handle_of_last_logged_task = 0;
+uint8_t inExcludedTask = 0;
+
+/*******************************************************************************
+ * vTraceStoreKernelCall
+ *
+ * This is the main integration point for storing FreeRTOS kernel calls, and
+ * is called by the hooks in FreeRTOS.h (see trcKernel.h for event codes).
+ ******************************************************************************/
+void vTraceStoreKernelCall(uint32_t ecode, uint32_t objectNumber)
+{
+    KernelCall * kse;
+    uint16_t dts1;
+
+    if (handle_of_last_logged_task == 0)
+    {
+        return;
+    }
+
+    /* This checks if this is the first kernel call after a call to
+    vTraceTaskInstanceIsFinished. In that case, calls to this kernel service 
+    with this specific kernel object become the "instance finish event"
+    (IFE) of the calling task.*/
+    if (GET_TASK_FLAG_MARKIFE(handle_of_last_logged_task))
+    {
+        /* Reset the flag - this has been handled now */
+        CLEAR_TASK_FLAG_MARKIFE(handle_of_last_logged_task);
+
+        /* Store the kernel service tagged as instance finished event */
+        PROPERTY_TASK_IFE_SERVICECODE(handle_of_last_logged_task) = 
+          (uint8_t)ecode;                
+
+        /* Store the handle of the specific kernel object */
+        PROPERTY_TASK_IFE_OBJHANDLE(handle_of_last_logged_task) =
+          (objectHandleType)objectNumber;    
+    }
+    
+    if (RecorderDataPtr->recorderActive && (!inExcludedTask || nISRactive))
+    {
+        dts1 = (uint16_t)prvTraceGetDTS(0xFFFF);
+
+        if (RecorderDataPtr->recorderActive) /* Need to repeat this check! */
+        {           
+            kse = (KernelCall*) xTraceNextFreeEventBufferSlot();
+            if (kse != NULL)
+            {
+                kse->dts = dts1;
+                kse->type = (uint8_t)ecode;
+                kse->objHandle = (uint8_t)objectNumber;
+                prvTraceUpdateCounters();
+            }
+        }
+    }
+}
+
+/*******************************************************************************
+ * vTraceStoreKernelCallWithParam
+ *
+ * Used for storing kernel calls with a handle and a numeric parameter. This is
+ * only used for traceTASK_PRIORITY_SET at the moment.
+ ******************************************************************************/
+void vTraceStoreKernelCallWithParam(uint32_t evtcode, 
+                                    uint32_t objectNumber, 
+                                    uint8_t param)
+{
+    KernelCallWithParamAndHandle * kse;
+    uint8_t dts2;
+
+    if (RecorderDataPtr->recorderActive && handle_of_last_logged_task && 
+        (! inExcludedTask || nISRactive))
+    {
+        dts2 = (uint8_t)prvTraceGetDTS(0xFF);
+
+        if (RecorderDataPtr->recorderActive) /* Need to repeat this check! */
+        {                
+            kse = (KernelCallWithParamAndHandle*) xTraceNextFreeEventBufferSlot();
+            if (kse != NULL)
+            {
+                kse->dts = dts2;
+                kse->type = (uint8_t)evtcode;
+                kse->objHandle = (uint8_t)objectNumber;
+                kse->param = param;
+                prvTraceUpdateCounters();    
+            }
+        }
+    }
+}
+
+
+/*******************************************************************************
+ * vTraceStoreKernelCallWithNumericParamOnly
+ *
+ * Used for storing kernel calls with numeric parameters only. This is
+ * only used for traceTASK_DELAY and traceDELAY_UNTIL at the moment.
+ ******************************************************************************/
+void vTraceStoreKernelCallWithNumericParamOnly(uint32_t evtcode, uint16_t param)
+{
+    KernelCallWithParam16 * kse;
+    uint8_t dts6;
+
+    if (RecorderDataPtr->recorderActive && handle_of_last_logged_task 
+        && (! inExcludedTask || nISRactive))
+    {        
+        dts6 = (uint8_t)prvTraceGetDTS(0xFF);
+
+        if (RecorderDataPtr->recorderActive) /* Need to repeat this check! */
+        {                
+            kse = (KernelCallWithParam16*) xTraceNextFreeEventBufferSlot();
+            if (kse != NULL)
+            {
+                kse->dts = dts6;
+                kse->type = (uint8_t)evtcode;
+                kse->param = param;
+                prvTraceUpdateCounters();    
+            }
+        }
+    }
+}
+
+/*******************************************************************************
+ * vTraceStoreTaskswitch
+ * Called by the scheduler, from the SWITCHED_OUT hook.
+ * At this point interrupts are disabled, so no need to disable interrupts.
+ ******************************************************************************/
+void vTraceStoreTaskswitch(void)
+{
+    uint16_t dts3;
+    TSEvent* ts;
+    static objectHandleType handle_of_running_task = 0;
+    int8_t skipEvent = 0;
+    
+    if (xTaskGetSchedulerState() == 0)
+    {
+        /* This occurs on the very first taskswitch event, generated by 
+        vTraceStart and uiTraceStart if the scheduler is not yet started.
+        This creates a dummy "(startup)" task entry internally in the
+        recorder */
+
+        handle_of_running_task = xTraceGetObjectHandle(TRACE_CLASS_TASK);
+        vTraceSetObjectName(TRACE_CLASS_TASK, 
+            handle_of_running_task,
+            "(startup)");
+        vTraceSetPriorityProperty(TRACE_CLASS_TASK,
+            handle_of_running_task,
+            0);
+    }
+    else
+    {    
+        handle_of_running_task = 
+        (objectHandleType)uxTaskGetTaskNumber(xTaskGetCurrentTaskHandle());
+    }
+
+    /* Skip the event if the task has been excluded, using vTraceExcludeTask */
+    if (GET_TASK_FLAG_ISEXCLUDED(handle_of_running_task))
+    {    
+        skipEvent = 1;
+        inExcludedTask = 1;            
+    }        
+
+    /* Skip the event if the same task is scheduled */
+    if (handle_of_running_task == handle_of_last_logged_task)
+    {
+        skipEvent = 1;
+    }
+    
+    
+    if (! RecorderDataPtr->recorderActive)
+    {
+        skipEvent = 1;
+    }
+
+    /* If this event should be logged, log it! */
+    if (skipEvent == 0)    
+    {
+        dts3 = (uint16_t)prvTraceGetDTS(0xFFFF);
+        
+        if (RecorderDataPtr->recorderActive) /* Need to repeat this check! */
+        {        
+            inExcludedTask = 0;
+
+            handle_of_last_logged_task = handle_of_running_task;
+            
+            ts = (TSEvent*)xTraceNextFreeEventBufferSlot();
+
+            if (ts != NULL)
+            {
+                if (uiTraceGetObjectState(TRACE_CLASS_TASK,
+                    handle_of_last_logged_task) == TASK_STATE_INSTANCE_ACTIVE)
+                {
+                    ts->type = TS_TASK_RESUME;
+                }
+                else
+                {
+                    ts->type = TS_TASK_BEGIN;
+                }
+
+                ts->dts = dts3;
+                ts->objHandle = handle_of_last_logged_task;
+
+                vTraceSetObjectState(TRACE_CLASS_TASK, 
+                                     handle_of_last_logged_task, 
+                                     TASK_STATE_INSTANCE_ACTIVE);
+
+                prvTraceUpdateCounters();    
+            }
+        }
+    }
+    
+}
+
+/*******************************************************************************
+ * vTraceStoreNameCloseEvent
+ *
+ * Updates the symbol table with the name of this object from the dynamic
+ * objects table and stores a "close" event, holding the mapping between handle
+ * and name (a symbol table handle). The stored name-handle mapping is thus the
+ * "old" one, valid up until this point.
+ ******************************************************************************/
+#if (INCLUDE_OBJECT_DELETE == 1)
+void vTraceStoreObjectNameOnCloseEvent(objectHandleType handle, 
+                                       traceObjectClass objectclass)
+{    
+    ObjCloseNameEvent * ce;
+    const char * name;
+    traceLabel idx;
+
+    name = PROPERTY_NAME_GET(objectclass, handle);
+
+    idx = prvTraceOpenSymbol(name, 0);
+
+    ce = (ObjCloseNameEvent*) xTraceNextFreeEventBufferSlot();
+    if (ce != NULL)
+    {
+        ce->type = EVENTGROUP_OBJCLOSE_NAME + objectclass;
+        ce->objHandle = handle;
+        ce->symbolIndex = idx;
+        prvTraceUpdateCounters();
+    }
+}
+
+void vTraceStoreObjectPropertiesOnCloseEvent(objectHandleType handle, 
+                                             traceObjectClass objectclass)
+{
+    ObjClosePropEvent * pe;
+
+    if (objectclass == TRACE_CLASS_ISR)
+    {        
+        /* ISR handles should not be closed - never called for ISR */
+        return;
+    }
+
+    pe = (ObjClosePropEvent*) xTraceNextFreeEventBufferSlot();
+    if (pe != NULL)
+    {
+        if (objectclass == TRACE_CLASS_TASK)
+        {
+            pe->arg1 = PROPERTY_ACTOR_PRIORITY(objectclass, handle);
+            pe->arg2 = PROPERTY_TASK_IFE_SERVICECODE(handle);
+            pe->arg3 = PROPERTY_TASK_IFE_OBJHANDLE(handle);
+            PROPERTY_TASK_IFE_SERVICECODE(handle) = 0;
+            PROPERTY_TASK_IFE_OBJHANDLE(handle) = 0;
+        }else{
+            pe->arg1 = PROPERTY_OBJECT_STATE(objectclass, handle);
+        }
+        pe->type = EVENTGROUP_OBJCLOSE_PROP + objectclass;    
+        prvTraceUpdateCounters();
+    }
+}
+#endif
+
+void vTraceSetPriorityProperty(uint8_t objectclass, uint8_t id, uint8_t value)
+{
+    PROPERTY_ACTOR_PRIORITY(objectclass, id) = value;
+}
+
+uint8_t uiTraceGetPriorityProperty(uint8_t objectclass, uint8_t id)
+{
+    return PROPERTY_ACTOR_PRIORITY(objectclass, id);
+}
+
+void vTraceSetObjectState(uint8_t objectclass, uint8_t id, uint8_t value)
+{
+    PROPERTY_OBJECT_STATE(objectclass, id) = value;
+}
+
+void vTraceSetTaskInstanceFinished(objectHandleType handle)
+{
+#if (USE_IMPLICIT_IFE_RULES == 1)
+    if (PROPERTY_TASK_IFE_SERVICECODE(handle) == 0)
+    {
+        PROPERTY_OBJECT_STATE(TRACE_CLASS_TASK, handle) = 0;
+    }
+#endif
+}
+
+uint8_t uiTraceGetObjectState(uint8_t objectclass, uint8_t id)
+{
+    return PROPERTY_OBJECT_STATE(objectclass, id);
+}
+
+
+#endif
\ No newline at end of file
diff --git a/FreeRTOS-Plus/FreeRTOS-Plus-Trace/trcPort.c b/FreeRTOS-Plus/FreeRTOS-Plus-Trace/trcPort.c
new file mode 100644
index 000000000..9367ff791
--- /dev/null
+++ b/FreeRTOS-Plus/FreeRTOS-Plus-Trace/trcPort.c
@@ -0,0 +1,185 @@
+/*******************************************************************************
+ * FreeRTOS+Trace v2.2.3 Recorder Library
+ * Percepio AB, www.percepio.se
+ *
+ * trcPort.c
+ *
+ * Contains all portability issues of the trace recorder library. 
+ * See also trcPort.h, where port-specific macros are defined.
+ *
+ * Terms of Use
+ * This software is copyright Percepio AB. The recorder library is free for
+ * use together with Percepio products. You may distribute the recorder library
+ * in its original form, including modifications in trcPort.c and trcPort.h
+ * given that these modification are clearly marked as your own modifications
+ * and documented in the initial comment section of these source files. 
+ * This software is the intellectual property of Percepio AB and may not be 
+ * sold or in other ways commercially redistributed without explicit written 
+ * permission by Percepio AB.
+ *
+ * Disclaimer 
+ * The trace tool and recorder library is being delivered to you AS IS and 
+ * Percepio AB makes no warranty as to its use or performance. Percepio AB does 
+ * not and cannot warrant the performance or results you may obtain by using the 
+ * software or documentation. Percepio AB make no warranties, express or 
+ * implied, as to noninfringement of third party rights, merchantability, or 
+ * fitness for any particular purpose. In no event will Percepio AB, its 
+ * technology partners, or distributors be liable to you for any consequential, 
+ * incidental or special damages, including any lost profits or lost savings, 
+ * even if a representative of Percepio AB has been advised of the possibility 
+ * of such damages, or for any claim by any third party. Some jurisdictions do 
+ * not allow the exclusion or limitation of incidental, consequential or special 
+ * damages, or the exclusion of implied warranties or limitations on how long an 
+ * implied warranty may last, so the above limitations may not apply to you.
+ *
+ * OFFER FROM PERCEPIO:
+ * For silicon companies and non-corporate FreeRTOS users (researchers, students
+ * , hobbyists or early-phase startups) we have an attractive offer: 
+ * Provide a hardware timer port and get a FREE single-user licence for
+ * FreeRTOS+Trace Professional Edition. Read more about this offer at 
+ * www.percepio.se or contact us directly at support@percepio.se.
+ *
+ * FreeRTOS+Trace is available as Free Edition and in two premium editions.
+ * You may use the premium features during 30 days for evaluation.
+ * Download FreeRTOS+Trace at http://www.percepio.se/index.php?page=downloads
+ *
+ * Copyright Percepio AB, 2012.
+ * www.percepio.se
+ ******************************************************************************/
+#include "FreeRTOS.h"
+#include "trcPort.h"
+#include "trcUser.h"
+
+#if (configUSE_TRACE_FACILITY == 1)
+
+#if (INCLUDE_SAVE_TO_FILE == 1)
+static char* prvFileName = NULL;
+#endif
+
+/*******************************************************************************
+ * uiTraceTickCount
+ *
+ * This variable is updated by the traceTASK_INCREMENT_TICK macro in the 
+ * FreeRTOS tick handler. This does not need to be modified when developing a 
+ * new timer port. It is prefered to keep any timer port changes in the HWTC 
+ * macro definitions, which typically give sufficient flexibility.
+ ******************************************************************************/
+uint32_t uiTraceTickCount = 0;
+
+/******************************************************************************
+ * uiTracePortGetTimeStamp
+ *
+ * Returns the current time based on the HWTC macros which provide a hardware
+ * isolation layer towards the hardware timer/counter.
+ *
+ * The HWTC macros and uiTracePortGetTimeStamp is the main porting issue
+ * or the trace recorder library. Typically you should not need to change
+ * the code of uiTracePortGetTimeStamp if using the HWTC macros.
+ *
+ * OFFER FROM PERCEPIO:
+ * For silicon companies and non-corporate FreeRTOS users (researchers, students
+ * , hobbyists or early-phase startups) we have an attractive offer: 
+ * Provide a hardware timer port and get a FREE single-user licence for
+ * FreeRTOS+Trace Professional Edition. Read more about this offer at 
+ * www.percepio.se or contact us directly at support@percepio.se.
+ ******************************************************************************/
+uint32_t uiTracePortGetTimeStamp()
+{
+    /* Keep these static to avoid using more stack than necessary */
+    static uint32_t last_timestamp = 0;
+    static uint32_t timestamp;
+
+#if (HWTC_COUNT_DIRECTION == DIRECTION_INCREMENTING)
+    timestamp = ((uiTraceTickCount * HWTC_PERIOD) + HWTC_COUNT) / HWTC_DIVISOR;
+#else
+#if (HWTC_COUNT_DIRECTION == DIRECTION_DECREMENTING)
+    timestamp = ((uiTraceTickCount * HWTC_PERIOD) + (HWTC_PERIOD - HWTC_COUNT)) / HWTC_DIVISOR;
+#else
+    Junk text to cause compiler error - HWTC_COUNT_DIRECTION is not set correctly!
+    Should be DIRECTION_INCREMENTING or DIRECTION_DECREMENTING
+#endif
+#endif
+
+    /* May occur due to overflow, if the update of uiTraceTickCount has been 
+    delayed due to disabled interrupts. */
+    if (timestamp < last_timestamp)
+    {
+        timestamp += (HWTC_PERIOD / HWTC_DIVISOR);
+    }
+
+    last_timestamp = timestamp;
+
+    return timestamp;
+}
+
+/*******************************************************************************
+ * vTracePortEnd
+ * 
+ * This function is called by the monitor when a recorder stop is detected.
+ * This is used by the Win32 port to store the trace to a file. The file path is
+ * set using vTracePortSetOutFile.
+ ******************************************************************************/
+void vTracePortEnd()
+{
+    vTraceConsoleMessage("\n\r[FreeRTOS+Trace] Running vTracePortEnd.\n\r");
+
+    #if (WIN32_PORT_SAVE_WHEN_STOPPED == 1)
+    vTracePortSave();
+    #endif
+
+    #if (WIN32_PORT_EXIT_WHEN_STOPPED == 1)
+    /* In the FreeRTOS/Win32 demo, this allows for killing the application 
+    when the recorder is stopped (e.g., when the buffer is full) */
+    system("pause");
+    exit(0);
+    #endif
+}
+
+#if (INCLUDE_SAVE_TO_FILE == 1)
+/*******************************************************************************
+ * vTracePortSetOutFile
+ *
+ * Sets the filename/path used in vTracePortSave.
+ * This is set in a separate function, since the Win32 port calls vTracePortSave
+ * in vTracePortEnd if WIN32_PORT_SAVE_WHEN_STOPPED is set.
+ ******************************************************************************/
+void vTracePortSetOutFile(char* path)
+{
+    prvFileName = path;
+}
+
+/*******************************************************************************
+ * vTracePortSave
+ *
+ * Saves the trace to a file on a local file system. The path is set in a 
+ * separate function, vTracePortSetOutFile, since the Win32 port calls 
+ * vTracePortSave in vTracePortEnd if WIN32_PORT_SAVE_WHEN_STOPPED is set.
+ ******************************************************************************/
+void vTracePortSave()
+{
+    char buf[180];
+    FILE* f;
+
+    if (prvFileName == NULL)
+    {
+        prvFileName = "FreeRTOSPlusTrace.dump";
+        sprintf(buf, "No filename specified, using default \"%s\".", prvFileName);
+        vTraceConsoleMessage(buf);
+    }
+
+    fopen_s(&f, prvFileName, "wb");
+    if (f)
+    {
+        fwrite(RecorderDataPtr, sizeof(RecorderDataType), 1, f);
+        fclose(f);
+        sprintf(buf, "\n\r[FreeRTOS+Trace] Saved in: %s\n\r", prvFileName);
+        vTraceConsoleMessage(buf);
+    }
+    else
+    {
+        sprintf(buf, "\n\r[FreeRTOS+Trace] Failed to write to output file!\n\r");
+        vTraceConsoleMessage(buf);
+    }
+}
+#endif
+#endif
\ No newline at end of file
diff --git a/FreeRTOS-Plus/FreeRTOS-Plus-Trace/trcUser.c b/FreeRTOS-Plus/FreeRTOS-Plus-Trace/trcUser.c
new file mode 100644
index 000000000..c5127502c
--- /dev/null
+++ b/FreeRTOS-Plus/FreeRTOS-Plus-Trace/trcUser.c
@@ -0,0 +1,1004 @@
+/*******************************************************************************
+ * FreeRTOS+Trace v2.2.3 Recorder Library
+ * Percepio AB, www.percepio.se
+ *
+ * trcUser.c
+ *
+ * The public API of the trace recorder library.
+ *
+ * Terms of Use
+ * This software is copyright Percepio AB. The recorder library is free for
+ * use together with Percepio products. You may distribute the recorder library
+ * in its original form, including modifications in trcPort.c and trcPort.h
+ * given that these modification are clearly marked as your own modifications
+ * and documented in the initial comment section of these source files. 
+ * This software is the intellectual property of Percepio AB and may not be 
+ * sold or in other ways commercially redistributed without explicit written 
+ * permission by Percepio AB.
+ *
+ * Disclaimer 
+ * The trace tool and recorder library is being delivered to you AS IS and 
+ * Percepio AB makes no warranty as to its use or performance. Percepio AB does 
+ * not and cannot warrant the performance or results you may obtain by using the 
+ * software or documentation. Percepio AB make no warranties, express or 
+ * implied, as to noninfringement of third party rights, merchantability, or 
+ * fitness for any particular purpose. In no event will Percepio AB, its 
+ * technology partners, or distributors be liable to you for any consequential, 
+ * incidental or special damages, including any lost profits or lost savings, 
+ * even if a representative of Percepio AB has been advised of the possibility 
+ * of such damages, or for any claim by any third party. Some jurisdictions do 
+ * not allow the exclusion or limitation of incidental, consequential or special 
+ * damages, or the exclusion of implied warranties or limitations on how long an 
+ * implied warranty may last, so the above limitations may not apply to you.
+ *
+ * FreeRTOS+Trace is available as Free Edition and in two premium editions.
+ * You may use the premium features during 30 days for evaluation.
+ * Download FreeRTOS+Trace at http://www.percepio.se/index.php?page=downloads
+ *
+ * Copyright Percepio AB, 2012.
+ * www.percepio.se
+ ******************************************************************************/
+
+#include "FreeRTOS.h"
+#include "task.h"
+#include "queue.h"
+
+#if (configUSE_TRACE_FACILITY == 1)
+
+#include "string.h"
+#include "stdarg.h"
+#include "trcUser.h"
+#include "trcKernel.h"
+
+extern uint8_t inExcludedTask;
+extern uint8_t nISRactive;
+extern uint8_t handle_of_last_logged_task;
+extern uint32_t dts_min;
+extern uint32_t hwtc_count_max_after_tick;
+extern uint32_t hwtc_count_sum_after_tick;
+extern uint32_t hwtc_count_sum_after_tick_counter;
+extern unsigned char ucQueueGetQueueType(void*);
+extern unsigned char ucQueueGetQueueNumber(void*);
+extern char* traceErrorMessage;
+
+static void vTraceMonitorTask(void);
+    
+/*******************************************************************************
+ * vTraceMonitorTask
+ *
+ * A task which periodically reports the recorder status to the console.
+ * This is included depending on USE_TRACE_PROGRESS_MONITOR_TASK.
+ ******************************************************************************/
+static void vTraceMonitorTask(void)
+{    
+    portTickType xNextWakeTime;
+    char localsprintbuffer[90];
+    char* err = NULL;    
+    char* lastErr = NULL;      
+    #define STATE_INIT 0
+    #define STATE_STARTED 1
+    #define STATE_STOPPED 2    
+    int state = STATE_INIT;
+    
+    vTraceConsoleMessage("\n\r[FreeRTOS+Trace] Monitor task started...\n\r");
+
+    /* Initialise xNextWakeTime - this only needs to be done once. */
+    xNextWakeTime = xTaskGetTickCount();
+
+    for (;;)
+    {
+        lastErr = err;        
+        err = xTraceGetLastError();
+        if (err != lastErr)
+        {
+            sprintf(localsprintbuffer, "\n\r[FreeRTOS+Trace] Error: %s\n\r", err);
+            vTraceConsoleMessage(localsprintbuffer); 
+        }
+        
+        if (state == STATE_STOPPED || state == STATE_INIT) 
+        {
+            if (RecorderDataPtr->recorderActive == 1)
+            {
+                state = STATE_STARTED;
+                vTraceConsoleMessage("\n\r[FreeRTOS+Trace] Recorder started.\n\r");                                       
+            }
+            else
+            {
+                if (state == STATE_INIT)
+                {
+                    
+                    vTraceConsoleMessage("\n\r[FreeRTOS+Trace] Recorder not started.\n\r");
+                    state = STATE_STOPPED;
+                }
+            }
+        }
+        
+        if (state == STATE_STARTED)
+        {
+            if (RecorderDataPtr->frequency > 0)
+            {
+                sprintf(localsprintbuffer, 
+                    "\n\r[FreeRTOS+Trace] Event count: %d, Duration: %d ms. [%d ticks]\n\r", 
+                    RecorderDataPtr->numEvents, 
+                    RecorderDataPtr->absTimeLastEventSecond*1000 + (RecorderDataPtr->absTimeLastEvent*1000)/ RecorderDataPtr->frequency, xTaskGetTickCount());
+                vTraceConsoleMessage(localsprintbuffer);
+            }
+
+            if (RecorderDataPtr->recorderActive == 0)
+            {
+                state = STATE_STOPPED;
+                vTraceConsoleMessage("\n\r[FreeRTOS+Trace] Recorder stopped.\n\r");                                       
+                vTracePortEnd();
+            }
+                
+
+        }
+
+    /* Place this task in the blocked state until it is time to run again. */
+        vTaskDelayUntil( &xNextWakeTime, TRACE_PROGRESS_MONITOR_TASK_PERIOD);
+        
+    }
+}
+
+/*******************************************************************************
+ * vTraceClear
+ *
+ * Resets the recorder. Only necessary if a restart is desired - this is not 
+ * needed in the startup initialization.
+ ******************************************************************************/
+void vTraceClear(void)
+{
+    taskENTER_CRITICAL();
+
+    RecorderDataPtr->absTimeLastEvent = 0;
+    RecorderDataPtr->nextFreeIndex = 0;
+    RecorderDataPtr->numEvents = 0;
+    RecorderDataPtr->bufferIsFull = 0;
+
+    taskEXIT_CRITICAL();
+}
+
+/*******************************************************************************
+ * vTraceStartStatusMonitor
+ *
+ * This starts a task to monitor the state of the recorder. 
+ * This task periodically prints a line to the console window, which shows the 
+ * number of events recorded and the latest timestamp. This task
+ * calls vTracePortEnd when the recorder has been stopped, where custom
+ * actions can be added, e.g., to store the trace to a file
+ * if a file system is available on the device.
+ ******************************************************************************/
+void vTraceStartStatusMonitor(void)
+{    
+    vTraceConsoleMessage("\n\r[FreeRTOS+Trace] Starting Trace Status Monitor...\n\r");
+    (void)xTaskCreate( (pdTASK_CODE)vTraceMonitorTask, (const signed char*)"TraceMon", TRACE_PROGRESS_MONITOR_TASK_STACKSIZE, NULL, TRACE_PROGRESS_MONITOR_TASK_PRIORITY, NULL );
+}
+
+/*******************************************************************************
+ * uiTraceStart
+ *
+ * Starts the recorder. The recorder will not be started if an error has been
+ * indicated using vTraceError, e.g. if any of the Nx constants in trcConfig.h 
+ * has a too small value (NTASK, NQUEUE, etc).
+ * 
+ * Returns 1 if the recorder was started successfully.
+ * Returns 0 if the recorder start was prevented due to a previous internal 
+ * error. In that case, check vTraceGetLastError to get the error message.
+ * Any error message is also presented when opening a trace file in 
+ * FreeRTOS+Trace v2.2.2 or later.
+ ******************************************************************************/
+uint32_t uiTraceStart(void)
+{        
+    if (traceErrorMessage == NULL)
+    {
+        RecorderDataPtr->recorderActive = 1;
+        vTraceStoreTaskswitch(); /* Register the currently running task */
+    }
+
+    return RecorderDataPtr->recorderActive;
+}
+
+/*******************************************************************************
+ * vTraceStart 
+ *
+ * Starts the recorder. The recorder will not be started if an error has been
+ * indicated using vTraceError, e.g. if any of the Nx constants in trcConfig.h 
+ * has a too small value (NTASK, NQUEUE, etc).
+ * 
+ * This function is obsolete, but has been saved for backwards compatibility. 
+ * We recommend using uiTraceStart instead.
+ ******************************************************************************/
+void vTraceStart(void)
+{        
+    (void)uiTraceStart();
+}
+
+/*******************************************************************************
+ * vTraceStop
+ *
+ * Stops the recorder. The recording can be resumed by calling vTraceStart.
+ * This does not reset the recorder. Use vTraceClear is that is desired.
+ ******************************************************************************/
+void vTraceStop(void)
+{
+    RecorderDataPtr->recorderActive = 0;
+}
+
+/*******************************************************************************
+ * xTraceGetLastError
+ *
+ * Gives the last error message, if any. NULL if no error message is stored.
+ * The message is cleared on read.
+ * Any error message is also presented when opening a trace file in 
+ * FreeRTOS+Trace v2.2.2 or later.
+ ******************************************************************************/
+char* xTraceGetLastError(void)
+{   
+    return traceErrorMessage;
+}
+
+/*******************************************************************************
+ * vTraceGetTraceBuffer
+ * 
+ * Returns a pointer to the recorder data structure. Use this together with 
+ * uiTraceGetTraceBufferSize if you wish to implement an own store/upload 
+ * solution, e.g., in case a debugger connection is not available for uploading 
+ * the data.
+ ******************************************************************************/
+void* vTraceGetTraceBuffer(void)
+{
+    return RecorderDataPtr;
+}
+
+/*******************************************************************************
+ * uiTraceGetTraceBufferSize
+ * 
+ * Gets the size of the recorder data structure. For use together with 
+ * vTraceGetTraceBuffer if you wish to implement an own store/upload solution, 
+ * e.g., in case a debugger connection is not available for uploading the data.
+ ******************************************************************************/
+uint32_t uiTraceGetTraceBufferSize(void)
+{
+    return sizeof(RecorderDataType);
+}
+
+/*******************************************************************************
+ * vTraceExcludeTask
+ * Excludes a task from the recording using a flag in the Object Property Table.
+ * This can be useful if some irrelevant task is very frequent and is "eating
+ * up the buffer". This should be called after the task has been created, but 
+ * preferably before starting the FreeRTOS scheduler.
+ ******************************************************************************/
+void vTraceExcludeTaskFromSchedulingTrace(const char* name)
+{
+    objectHandleType i;
+    int32_t found = 0;
+    for (i = 1; i < RecorderDataPtr->ObjectPropertyTable.NumberOfObjectsPerClass[TRACE_CLASS_TASK]; i++)
+    {
+        if (strncmp(name, 
+                    PROPERTY_NAME_GET(TRACE_CLASS_TASK, i), 
+                    RecorderDataPtr->ObjectPropertyTable.NameLengthPerClass[TRACE_CLASS_TASK]) == 0)
+        {
+            found = 1;
+            SET_TASK_FLAG_ISEXCLUDED(i);
+            break;
+        }
+    }
+    if (!found)
+    {
+        vTraceError("Could not find task to exclude!");
+    }
+}
+
+/*******************************************************************************
+ * vTraceSetQueueName
+ *
+ * Assigns a name to a FreeRTOS Queue, Semaphore or Mutex. This function should
+ * be called right after creation of the queue/mutex/semaphore. If not using 
+ * this function, the queues/mutexes/semaphores will be presented by their
+ * numeric handle only.
+ *
+ * Example:
+ *     actuatorQ = xQueueCreate(3, sizeof(QueueMessage));
+ *     vTraceSetQueueName(actuatorQ, "ActuatorQueue");
+ ******************************************************************************/
+void vTraceSetQueueName(void* queue, const char* name)
+{
+    int t = ucQueueGetQueueType(queue);    
+    vTraceSetObjectName(TraceObjectClassTable[t], 
+                        (objectHandleType)ucQueueGetQueueNumber(queue), name);
+}
+
+
+/******************************************************************************
+ * vTraceTaskInstanceIsFinished
+ * 
+ * This defines an explicit Instance Finish Event for the current task. It tells 
+ * the recorder that the current instance of this task is finished at the next 
+ * kernel call of the task, e.g., a taskDelay or a queue receive. This function 
+ * should be called right before the api function call considered to be the end 
+ * of the current task instance, i.e., the Instance Finish Event.
+ *****************************************************************************/
+void vTraceTaskInstanceIsFinished()
+{
+    if (handle_of_last_logged_task)
+    {
+        SET_TASK_FLAG_MARKIFE(handle_of_last_logged_task);    
+    }
+}
+
+/*******************************************************************************
+ * vvTraceTaskSkipDefaultInstanceFinishedEvents
+ *
+ * This is useful if there are implicit Instance Finish Events, such as 
+ * vTaskDelayUntil or xQueueReceive, in a task where an explicit Instance Finish 
+ * Event has been defined. This function tells the recorder that only the 
+ * explicitly defined functions, using vTraceTaskInstanceIsFinished, should be
+ * treated as Instance Finish Events for this task. The implicit Instance Finish 
+ * Events are thus disregarded for the calling task.
+ ******************************************************************************/
+void vTraceTaskSkipDefaultInstanceFinishedEvents()
+{    
+    if (handle_of_last_logged_task)
+    {
+        PROPERTY_TASK_IFE_SERVICECODE(handle_of_last_logged_task) = 
+          RESERVED_DUMMY_CODE;
+    }
+}
+
+/*******************************************************************************
+ * Interrupt recording functions 
+ ******************************************************************************/
+
+#if (INCLUDE_ISR_TRACING == 1)
+
+#define MAX_ISR_NESTING 16
+static uint8_t isrstack[MAX_ISR_NESTING];
+
+/*******************************************************************************
+ * vTraceSetISRProperties
+ * 
+ * Registers an Interrupt Service Routine in the recorder library, This must be
+ * called before using vTraceStoreISRBegin to store ISR events. This is 
+ * typically called in the startup of the system, before the scheduler is 
+ * started.
+ *
+ * Example:
+ *     #define ID_ISR_TIMER1 1       // lowest valid ID is 1
+ *     #define PRIO_OF_ISR_TIMER1 3  // the hardware priority of the interrupt
+ *     ...
+ *     vTraceSetISRProperties(ID_ISR_TIMER1, "ISRTimer1", PRIO_OF_ISR_TIMER1);
+ *     ...
+ *     void ISR_handler()
+ *     {
+ *         portENTER_CRITICAL(); // Required if nested ISRs are allowed
+ *         vTraceStoreISRBegin(ID_OF_ISR_TIMER1);
+ *         portEXIT_CRITICAL();
+ *         ...
+ *         portENTER_CRITICAL(); // Required if nested ISRs are allowed
+ *         vTraceStoreISREnd();
+ *         portEXIT_CRITICAL();
+ *     }
+ ******************************************************************************/
+void vTraceSetISRProperties(objectHandleType handle, char* name, char priority)
+{
+    vTraceSetObjectName(TRACE_CLASS_ISR, handle, name);
+    vTraceSetPriorityProperty(TRACE_CLASS_ISR, handle, priority);
+}
+
+/*******************************************************************************
+ * vTraceStoreISRBegin
+ * 
+ * Registers the beginning of an Interrupt Service Routine. This must not be
+ * interrupted by another ISR containing recorder library calls, so if allowing
+ * nested ISRs this must be called with interrupts disabled.
+ *
+ * Example:
+ *     #define ID_ISR_TIMER1 1       // lowest valid ID is 1
+ *     #define PRIO_OF_ISR_TIMER1 3  // the hardware priority of the interrupt
+ *     ...
+ *     vTraceSetISRProperties(ID_ISR_TIMER1, "ISRTimer1", PRIO_OF_ISR_TIMER1);
+ *     ...
+ *     void ISR_handler()
+ *     {
+ *         portENTER_CRITICAL(); // Required if nested ISRs are allowed
+ *         vTraceStoreISRBegin(ID_OF_ISR_TIMER1);
+ *         portEXIT_CRITICAL();
+ *         ...
+ *         portENTER_CRITICAL(); // Required if nested ISRs are allowed
+ *         vTraceStoreISREnd();
+ *         portEXIT_CRITICAL();
+ *     }
+ ******************************************************************************/
+void vTraceStoreISRBegin(objectHandleType handle)
+{
+    uint16_t dts4;
+    TSEvent* ts = NULL;
+
+    if (RecorderDataPtr->recorderActive && handle_of_last_logged_task)
+    {    
+        dts4 = (uint16_t)prvTraceGetDTS(0xFFFF);
+
+        if (RecorderDataPtr->recorderActive) /* Need to repeat this check! */    
+        {    
+            if (nISRactive < MAX_ISR_NESTING)
+            {    
+                isrstack[nISRactive] = handle;
+                nISRactive++;            
+                ts = (TSEvent*)xTraceNextFreeEventBufferSlot();
+                if (ts != NULL)
+                {
+                    ts->type = TS_ISR_BEGIN;
+                    ts->dts = dts4;
+                    ts->objHandle = handle;
+                    prvTraceUpdateCounters();                
+                }
+            }
+            else
+            {            
+                /* This should not occur unless something is very wrong */            
+                vTraceError("Too many nested interrupts!");
+            }
+        }
+    }
+}
+
+/*******************************************************************************
+ * vTraceStoreISREnd
+ * 
+ * Registers the end of an Interrupt Service Routine. This must not be
+ * interrupted by another ISR containing recorder library calls, so if allowing
+ * nested ISRs this must be called with interrupts disabled.
+ *
+ * Example:
+ *     #define ID_ISR_TIMER1 1       // lowest valid ID is 1
+ *     #define PRIO_OF_ISR_TIMER1 3  // the hardware priority of the interrupt
+ *     ...
+ *     vTraceSetISRProperties(ID_ISR_TIMER1, "ISRTimer1", PRIO_OF_ISR_TIMER1);
+ *     ...
+ *     void ISR_handler()
+ *     {
+ *         portENTER_CRITICAL(); // Required if nested ISRs are allowed
+ *         vTraceStoreISRBegin(ID_OF_ISR_TIMER1);
+ *         portEXIT_CRITICAL();
+ *         ...
+ *         portENTER_CRITICAL(); // Required if nested ISRs are allowed
+ *         vTraceStoreISREnd();
+ *         portEXIT_CRITICAL();
+ *     }
+ ******************************************************************************/
+void vTraceStoreISREnd(void)
+{
+    TSEvent* ts;
+    uint16_t dts5;
+
+    if (RecorderDataPtr->recorderActive && handle_of_last_logged_task)
+    {        
+        dts5 = (uint16_t)prvTraceGetDTS(0xFFFF);
+
+        if (RecorderDataPtr->recorderActive) /* Need to repeat this check! */    
+        {                            
+            ts = (TSEvent*)xTraceNextFreeEventBufferSlot();
+            if (ts != NULL)
+            {
+                if (nISRactive > 1)
+                {
+                    /* return to another isr */
+                    ts->type = TS_ISR_RESUME;
+                    ts->objHandle = isrstack[nISRactive];
+                }
+                else
+                {
+                    /* return to task */
+                    ts->type = TS_TASK_RESUME;
+                    ts->objHandle = handle_of_last_logged_task;
+                }
+                ts->dts = dts5;
+                nISRactive--;
+                prvTraceUpdateCounters();
+            }
+        }
+    }
+}
+
+#endif
+
+
+/*******************************************************************************
+ * User Event functions
+ ******************************************************************************/
+
+#if (INCLUDE_USER_EVENTS == 1)
+
+ /******************************************************************************
+ * vTraceUserEvent
+ *
+ * Basic user event (Standard and Professional Edition only)
+ * 
+ * Generates a User Event with a text label. The label is created/looked up
+ * in the symbol table using xTraceOpenLabel.
+ ******************************************************************************/
+void vTraceUserEvent(traceLabel eventLabel)
+{
+    UserEvent* ue;
+    uint8_t dts1;
+
+    if (RecorderDataPtr->recorderActive && (! inExcludedTask || nISRactive ) && handle_of_last_logged_task)    
+    {    
+        taskENTER_CRITICAL();
+
+        dts1 = (uint8_t)prvTraceGetDTS(0xFF);
+
+        if (RecorderDataPtr->recorderActive) /* Need to repeat this check! */    
+        {                        
+            ue = (UserEvent*) xTraceNextFreeEventBufferSlot();
+            if (ue != NULL)
+            {
+                ue->dts = dts1;
+                ue->type = USER_EVENT;
+                ue->payload = eventLabel;
+                prvTraceUpdateCounters();
+            }
+        }
+        taskEXIT_CRITICAL();
+    }
+}
+
+/*** Locally used in vTracePrintF ***/
+
+/* one word (32 bit) is required for the USER_EVENT entry, 8 words 
+(8*32 bit = 32 byte) available for argument data */
+#define MAX_ARG_SIZE (4+32)    
+
+static uint8_t writeInt8(void * buffer, uint8_t index, uint8_t value);
+static uint8_t writeInt16(void * buffer, uint8_t index, uint16_t value);
+static uint8_t writeInt32(void * buffer, uint8_t index, uint32_t value);
+
+#if (INCLUDE_FLOAT_SUPPORT)
+static uint8_t writeFloat(void * buffer, uint8_t index, float value);
+static uint8_t writeDouble(void * buffer, uint8_t index, double value);
+#endif
+
+/*** Locally used in vTracePrintF ***/
+static uint8_t writeInt8(void * buffer, uint8_t index, uint8_t value)
+{    
+    
+    if (index + 1 > MAX_ARG_SIZE)
+    {
+        return 255;
+    }
+
+    ((uint8_t*)buffer)[index] = value;
+
+    return index + 1;
+}
+
+/*** Locally used in vTracePrintF ***/
+static uint8_t writeInt16(void * buffer, uint8_t index, uint16_t value)
+{
+    /* Align to multiple of 2 */
+    while ((index % 2) != 0)
+    {        
+        ((uint8_t*)buffer)[index] = 0;
+        index++;        
+    }
+    
+    if (index + 2 > MAX_ARG_SIZE)
+    {
+        return 255;
+    }
+
+    ((uint16_t*)buffer)[index/2] = value;
+
+    return index + 2;
+}
+
+/*** Locally used in vTracePrintF ***/
+static uint8_t writeInt32(void * buffer, uint8_t index, uint32_t value)
+{
+    
+    /* A 32 bit value should begin at an even 4-byte address */
+    while ((index % 4) != 0)
+    {
+        ((uint8_t*)buffer)[index] = 0;
+        index++;
+    }
+    
+    if (index + 4 > MAX_ARG_SIZE)
+    {
+        return 255;
+    }        
+
+    ((uint32_t*)buffer)[index/4] = value;
+
+    return index + 4;
+}
+
+#if (INCLUDE_FLOAT_SUPPORT)
+
+/*** Locally used in vTracePrintF ***/
+static uint8_t writeFloat(void * buffer, uint8_t index, float value)
+{
+    /* A 32 bit value should begin at an even 4-byte address */
+    while ((index % 4) != 0)
+    {
+        ((uint8_t*)buffer)[index] = 0;
+        index++;
+    }
+
+    if (index + 4 > MAX_ARG_SIZE)
+    {
+        return 255;
+    }        
+
+    ((float*)buffer)[index/4] = value;
+    
+    return index + 4;
+}
+
+/*** Locally used in vTracePrintF ***/
+static uint8_t writeDouble(void * buffer, uint8_t index, double value)
+{
+    /* The double is written as two 32 bit values, and should begin at an even 
+    4-byte address (to avoid having to align with 8 byte) */
+    while (index % 4 != 0)
+    {
+        ((uint8_t*)buffer)[index] = 0;
+        index++;        
+    }
+    
+    if (index + 8 > MAX_ARG_SIZE)
+    {
+        return 255;
+    }       
+    
+    ((uint32_t*)buffer)[index/4+0] = ((uint32_t*)&value)[0];
+    ((uint32_t*)buffer)[index/4+1] = ((uint32_t*)&value)[1];
+
+    return index + 8;
+}
+
+#endif
+
+ /******************************************************************************
+ * vTracePrintF 
+ * 
+ * Advanced user events (Professional Edition only)
+ *
+ * Generates User Event with formatted text and data, similar to a "printf".
+ * It is very fast compared to a normal "printf" since this function only 
+ * stores the arguments. The actual formatting is done
+ * on the host PC when the trace is displayed in the viewer tool. 
+ *
+ * User Event labels are created using xTraceOpenLabel.
+ * Example:
+ *
+ *     traceLabel adc_uechannel = xTraceOpenLabel("ADC User Events");
+ *     ...
+ *     vTracePrint(adc_uechannel, 
+ *                 "ADC channel %d: %lf volts", 
+ *                 ch, (double)adc_reading/(double)scale);
+ *
+ * This can be combined into one line, if desired, but this is slower:
+ *
+ *     vTracePrint(xTraceOpenLabel("ADC User Events"), 
+ *                 "ADC channel %d: %lf volts", 
+ *                 ch, (double)adc_reading/(double)scale);
+ *
+ * Calling xTraceOpenLabel multiple times will not create duplicate entries, but
+ * it is of course faster to just do it once, and then keep the handle for later 
+ * use. If you don´t have any data arguments, only a text label/string, it is 
+ * better to use vTraceUserEvent - it is faster.
+ *
+ * Format specifiers supported:
+ *  %d - 32 bit signed integer
+ *  %u - 32 bit unsigned integer
+ *  %f - 32 bit float
+ *  %s - string (is copied to the recorder symbol table)
+ *  %hd - 16 bit signed integer
+ *  %hu - 16 bit unsigned integer
+ *  %bd - 8 bit signed integer
+ *  %bu - 8 bit unsigned integer
+ *  %lf - double-precision float
+ * 
+ * Up to 15 data arguments are allowed, with a total size of maximum 32 byte.
+ * In case this is exceeded, the user event is changed into an error message.
+ * 
+ * The data is stored in trace buffer, and is packed to allow storing multiple 
+ * smaller data entries in the same 4-byte record, e.g., four 8-bit values.
+ * A string requires two bytes, as the symbol table is limited to 64K. Storing a 
+ * double (%lf) uses two records, so this is quite costly. Use float (%f) unless
+ * the higher precision is really necessary.
+ ******************************************************************************/
+void vTracePrintF(traceLabel eventLabel, const char* formatStr, ...)
+{
+    UserEvent* ue1;
+    va_list vl;
+    uint8_t argCounter = 0;
+    uint8_t index = 0;
+    uint8_t nofEventEntries = 0;
+    uint16_t formatStrIndex = 0;    
+
+    /**************************************************************************
+    * The array tempDataBuffer is a local buffer used in a two-phase commit of 
+    * the event data, since a vTracePrintF may span over multiple slots in the 
+    * buffer.
+    * This buffer can be made larger, of course, but remember the risk for 
+    * stack overflow. Note: This should be a LOCAL buffer, must not be made 
+    * global. That would cause data corruption when two calls to vTracePrintF
+    * from different tasks overlaps (interrupts are only disabled in a small 
+    * part of this function, otherwise enabled)
+    ***************************************************************************/
+    uint32_t dummy = 0;                 /* for the alignment of tempDataBuffer*/
+    uint8_t tempDataBuffer[MAX_ARG_SIZE];   
+    dummy = dummy;                           /* to eliminate compiler warnings*/
+
+    if ((inExcludedTask == 0) &&
+        (nISRactive == 0) &&
+        (RecorderDataPtr->recorderActive == 1) &&
+        (handle_of_last_logged_task > 0))
+    {        
+        /* First, write the "primary" user event entry in the local buffer, but 
+        let the event type be "EVENT_BEING_WRITTEN" for now...*/
+
+        ue1 = (UserEvent*)(&tempDataBuffer[0]);         
+        ue1->type = EVENT_BEING_WRITTEN;      /* Update this as the last step */
+        
+        index = 4;
+        formatStrIndex = 0;
+        va_start(vl, formatStr);          /* Begin reading the arguments list */
+
+        while (formatStr[formatStrIndex] != '\0')
+        {
+            if (formatStr[formatStrIndex] == '%')
+            {
+                argCounter++;
+
+                if (argCounter > 15)
+                {
+                    vTraceError("vTracePrintF - Too many arguments, max 15 allowed!");
+                    va_end(vl);                    
+                    formatStr = "[vTracePrintF error] Too many arguments, max 15 allowed!";
+                    index = 4;
+                    break;            
+                }
+
+/*******************************************************************************
+ * These below code writes raw data (primitive datatypes) in the event buffer, 
+ * instead of the normal event structs (where byte 0 is event type).
+ * These data entries must never be interpreted as real event data, as the type
+ * field would be misleading since used for payload data. 
+ * 
+ * The correctness of this encoding depends on two mechanisms:
+ * 
+ * 1. An initial USER_EVENT, which type code tells the number of 32-bit data 
+ * entires that follows. (code - USER_EVENT = number of data entries). 
+ * Note that a data entry corresponds to the slots that normally corresponds to 
+ * one (1) event, i.e., 32 bits. vTracePrintF may encode several pieces of data 
+ * in one data entry, e.g., two 16-bit values or four 8-bit values, one 16-bit
+ * value followes by two 8-bit values, etc.
+ *
+ * 2. A two-phase commit procedure, where the USER_EVENT and data entries are 
+ * written to a local buffer at first, and when all checks are OK then copied to
+ * the main event buffer using a fast memcpy. The event code is finalized as the
+ * very last step. Before that that step, the event code indicates an unfinished
+ * event, which causes it to be ignored and stop the loading of the file (since 
+ * an unfinished event is the last event in the trace).
+*******************************************************************************/
+                formatStrIndex++;
+                switch (formatStr[formatStrIndex])
+                {
+                case 'd':    index = writeInt32(tempDataBuffer, 
+                                                index, 
+                                                (uint32_t)va_arg(vl, uint32_t)); 
+                             break;
+                case 'u':    index = writeInt32(tempDataBuffer, 
+                                                index, 
+                                                (uint32_t)va_arg(vl, uint32_t)); 
+                             break;
+                case 's':    index = writeInt16(tempDataBuffer, 
+                                                index, 
+                                                (uint16_t)xTraceOpenLabel((char*)va_arg(vl, uint32_t))); 
+                             break;
+
+#if (INCLUDE_FLOAT_SUPPORT)
+                             /* Yes, "double" as type also in the float 
+                             case. This since "float" is promoted into "double" 
+                             by the va_arg stuff. */
+                case 'f':    index = writeFloat(tempDataBuffer, 
+                                                index, 
+                                                (float)va_arg(vl, double)); 
+                             break;    
+#else
+/* No support for floats, but attempt to store a float user event
+avoid a possible crash due to float reference. Instead store the 
+data on uint_32 format (will not be displayed anyway). This is just
+to keep va_arg and index consistent. */
+
+                case 'f':    index = writeInt32(tempDataBuffer,
+                                                index, 
+                                                (uint32_t)va_arg(vl, double)); 
+#endif
+                case 'l':
+                    formatStrIndex++;
+                    switch (formatStr[formatStrIndex])
+                    {
+#if (INCLUDE_FLOAT_SUPPORT)
+                    case 'f':     index = writeDouble(tempDataBuffer, 
+                                                      index, 
+                                                      (double)va_arg(vl, double)); 
+                                  break;
+#else
+/* No support for floats, but attempt to store a float user event
+avoid a possible crash due to float reference. Instead store the 
+data on uint_32 format (will not be displayed anyway). This is just
+to keep va_arg and index consistent. */
+                    case 'f':    index = writeInt32(tempDataBuffer, /* In this case, the value will not be shown anyway */
+                                                    index, 
+                                                    (uint32_t)va_arg(vl, double)); 
+                                 index = writeInt32(tempDataBuffer, /* Do it twice, to write in total 8 bytes */
+                                                    index, 
+                                                    (uint32_t)va_arg(vl, double)); 
+#endif
+
+                    }
+                    break;
+                case 'h':
+                    formatStrIndex++;
+                    switch (formatStr[formatStrIndex])
+                    {
+                    case 'd':    index = writeInt16(tempDataBuffer, 
+                                                    index, 
+                                                    (uint16_t)va_arg(vl, uint32_t)); 
+                                 break;
+                    case 'u':    index = writeInt16(tempDataBuffer, 
+                                                    index, 
+                                                    (uint16_t)va_arg(vl, uint32_t)); 
+                                 break;
+                    }
+                    break;
+                case 'b':
+                    formatStrIndex++;
+                    switch (formatStr[formatStrIndex])
+                    {
+                    case 'd':    index = writeInt8(tempDataBuffer, 
+                                                   index, 
+                                                   (uint8_t)va_arg(vl, uint32_t)); 
+                                 break;
+                    case 'u':    index = writeInt8(tempDataBuffer, 
+                                                   index, 
+                                                   (uint8_t)va_arg(vl, uint32_t)); 
+                                 break;
+                    }
+                    break;
+                }
+            }                                    
+            formatStrIndex++;    
+            if (index == 255)
+            {
+                va_end(vl);
+                vTraceError("vTracePrintF - Too large arguments, max 32 byte allowed!");
+                formatStr = "[vTracePrintF error] Too large arguments, max 32 byte allowed!";
+                index = 4;
+                break;
+            }
+        }
+
+        va_end(vl);
+
+        /* Store the format string, with a reference to the channel symbol */
+        ue1->payload = prvTraceOpenSymbol(formatStr, eventLabel);     
+
+        taskENTER_CRITICAL();    
+
+        ue1->dts = (uint8_t)prvTraceGetDTS(0xFF);
+        if (! RecorderDataPtr->recorderActive)
+        {
+            /* Abort, since an XTS event (created by prvTraceGetDTS) filled the 
+            buffer, and the recorder stopped since not circular buffer. */
+            taskEXIT_CRITICAL();    
+            return;
+        }
+            
+        nofEventEntries = (index+3)/4;
+
+        /* If the data does not fit in the remaining main buffer, wrap around to 
+        0 if allowed, otherwise stop the recorder and quit). */
+        if (RecorderDataPtr->nextFreeIndex + nofEventEntries > RecorderDataPtr->maxEvents)
+        {
+#if (RECORDER_STORE_MODE == STORE_MODE_RING_BUFFER)
+            (void)memset(& RecorderDataPtr->eventData[RecorderDataPtr->nextFreeIndex * 4], 
+                   0, 
+                   (RecorderDataPtr->maxEvents - RecorderDataPtr->nextFreeIndex)*4);
+            RecorderDataPtr->nextFreeIndex = 0;
+            RecorderDataPtr->bufferIsFull = 1;
+#else
+            /* Abort and stop recorder, since the event data will not fit in the
+            buffer and not circular buffer in this case... */
+            taskEXIT_CRITICAL();
+            vTraceStop();
+            return;
+#endif
+        }
+    
+#if (RECORDER_STORE_MODE == STORE_MODE_RING_BUFFER)
+        /* Check that the buffer to be overwritten does not contain any user 
+        events that would be partially overwritten. If so, they must be "killed"
+        by replacing the user event and following data with NULL events (i.e., 
+        using a memset to zero).*/
+        prvCheckDataToBeOverwrittenForMultiEntryUserEvents(nofEventEntries);
+#endif
+        /* Copy the local buffer to the main buffer */
+        (void)memcpy(& RecorderDataPtr->eventData[RecorderDataPtr->nextFreeIndex * 4], 
+               tempDataBuffer, 
+               index);
+
+        /* Update the event type, i.e., number of data entries following the 
+        main USER_EVENT entry (Note: important that this is after the memcpy, 
+        but within the critical section!)*/
+        RecorderDataPtr->eventData[RecorderDataPtr->nextFreeIndex * 4] = 
+          (uint8_t) USER_EVENT + nofEventEntries - 1;    
+        
+        /* Update the main buffer event index (already checked that it fits in 
+        the buffer, so no need to check for wrapping)*/
+        
+        RecorderDataPtr->nextFreeIndex += nofEventEntries;
+        RecorderDataPtr->numEvents += nofEventEntries;
+        
+        if (RecorderDataPtr->nextFreeIndex >= EVENT_BUFFER_SIZE)
+        {
+        
+#if (RECORDER_STORE_MODE == STORE_MODE_RING_BUFFER)
+            RecorderDataPtr->nextFreeIndex = 0;
+            RecorderDataPtr->bufferIsFull = 1;
+#else
+            vTraceStop();
+#endif
+        }
+
+        taskEXIT_CRITICAL();
+    }
+}
+    
+/*******************************************************************************
+ * xTraceOpenLabel
+ * 
+ * Creates user event labels for user event channels or for individual events.
+ * User events can be used to log application events and data for display in
+ * the visualization tool. A user event is identified by a label, i.e., a string,
+ * which is stored in the recorder's symbol table.
+ * When logging a user event, a numeric handle (reference) to this string is
+ * used to identify the event. This is obtained by calling 
+ * 
+ *     xTraceOpenLabel()
+ *
+ * whihc adds the string to the symbol table (if not already present)
+ * and returns the corresponding handle.
+ *
+ * This can be used in two ways:
+ *
+ * 1. The handle is looked up every time, when storing the user event.
+ *
+ * Example:
+ *     vTraceUserEvent(xTraceOpenLabel("MyUserEvent"));
+ *
+ * 2. The label is registered just once, with the handle stored in an
+ *  application variable - much like using a file handle.
+ *
+ * Example:
+ *     myEventHandle = xTraceOpenLabel("MyUserEvent");
+ *     ...
+ *     vTraceUserEvent(myEventHandle);
+ *
+ * The second option is faster since no lookup is required on each event, and 
+ * therefore recommended for user events that are frequently
+ * executed and/or located in time-critical code. The lookup operation is
+ * however fairly fast due to the design of the symbol table.
+ ******************************************************************************/
+traceLabel xTraceOpenLabel(char* label)
+{
+    return prvTraceOpenSymbol(label, 0);
+}
+#endif
+#endif
+
diff --git a/Demo/ARM7_AT91FR40008_GCC/AT91R40008.h b/FreeRTOS/Demo/ARM7_AT91FR40008_GCC/AT91R40008.h
similarity index 100%
rename from Demo/ARM7_AT91FR40008_GCC/AT91R40008.h
rename to FreeRTOS/Demo/ARM7_AT91FR40008_GCC/AT91R40008.h
diff --git a/Demo/ARM7_AT91FR40008_GCC/ATEB40x.cfg b/FreeRTOS/Demo/ARM7_AT91FR40008_GCC/ATEB40x.cfg
similarity index 100%
rename from Demo/ARM7_AT91FR40008_GCC/ATEB40x.cfg
rename to FreeRTOS/Demo/ARM7_AT91FR40008_GCC/ATEB40x.cfg
diff --git a/Demo/ARM7_AT91FR40008_GCC/FreeRTOSConfig.h b/FreeRTOS/Demo/ARM7_AT91FR40008_GCC/FreeRTOSConfig.h
similarity index 100%
rename from Demo/ARM7_AT91FR40008_GCC/FreeRTOSConfig.h
rename to FreeRTOS/Demo/ARM7_AT91FR40008_GCC/FreeRTOSConfig.h
diff --git a/Demo/ARM7_AT91FR40008_GCC/Makefile b/FreeRTOS/Demo/ARM7_AT91FR40008_GCC/Makefile
similarity index 100%
rename from Demo/ARM7_AT91FR40008_GCC/Makefile
rename to FreeRTOS/Demo/ARM7_AT91FR40008_GCC/Makefile
diff --git a/Demo/ARM7_AT91FR40008_GCC/ParTest/ParTest.c b/FreeRTOS/Demo/ARM7_AT91FR40008_GCC/ParTest/ParTest.c
similarity index 100%
rename from Demo/ARM7_AT91FR40008_GCC/ParTest/ParTest.c
rename to FreeRTOS/Demo/ARM7_AT91FR40008_GCC/ParTest/ParTest.c
diff --git a/Demo/ARM7_AT91FR40008_GCC/aic.h b/FreeRTOS/Demo/ARM7_AT91FR40008_GCC/aic.h
similarity index 100%
rename from Demo/ARM7_AT91FR40008_GCC/aic.h
rename to FreeRTOS/Demo/ARM7_AT91FR40008_GCC/aic.h
diff --git a/Demo/ARM7_AT91FR40008_GCC/atmel-ram.ld b/FreeRTOS/Demo/ARM7_AT91FR40008_GCC/atmel-ram.ld
similarity index 100%
rename from Demo/ARM7_AT91FR40008_GCC/atmel-ram.ld
rename to FreeRTOS/Demo/ARM7_AT91FR40008_GCC/atmel-ram.ld
diff --git a/Demo/ARM7_AT91FR40008_GCC/atmel-rom.ld b/FreeRTOS/Demo/ARM7_AT91FR40008_GCC/atmel-rom.ld
similarity index 100%
rename from Demo/ARM7_AT91FR40008_GCC/atmel-rom.ld
rename to FreeRTOS/Demo/ARM7_AT91FR40008_GCC/atmel-rom.ld
diff --git a/Demo/ARM7_AT91FR40008_GCC/boot.s b/FreeRTOS/Demo/ARM7_AT91FR40008_GCC/boot.s
similarity index 100%
rename from Demo/ARM7_AT91FR40008_GCC/boot.s
rename to FreeRTOS/Demo/ARM7_AT91FR40008_GCC/boot.s
diff --git a/Demo/ARM7_AT91FR40008_GCC/ebi.h b/FreeRTOS/Demo/ARM7_AT91FR40008_GCC/ebi.h
similarity index 100%
rename from Demo/ARM7_AT91FR40008_GCC/ebi.h
rename to FreeRTOS/Demo/ARM7_AT91FR40008_GCC/ebi.h
diff --git a/Demo/ARM7_AT91FR40008_GCC/main.c b/FreeRTOS/Demo/ARM7_AT91FR40008_GCC/main.c
similarity index 100%
rename from Demo/ARM7_AT91FR40008_GCC/main.c
rename to FreeRTOS/Demo/ARM7_AT91FR40008_GCC/main.c
diff --git a/Demo/ARM7_AT91FR40008_GCC/pio.h b/FreeRTOS/Demo/ARM7_AT91FR40008_GCC/pio.h
similarity index 100%
rename from Demo/ARM7_AT91FR40008_GCC/pio.h
rename to FreeRTOS/Demo/ARM7_AT91FR40008_GCC/pio.h
diff --git a/Demo/ARM7_AT91FR40008_GCC/ram_arm.bat b/FreeRTOS/Demo/ARM7_AT91FR40008_GCC/ram_arm.bat
similarity index 100%
rename from Demo/ARM7_AT91FR40008_GCC/ram_arm.bat
rename to FreeRTOS/Demo/ARM7_AT91FR40008_GCC/ram_arm.bat
diff --git a/Demo/ARM7_AT91FR40008_GCC/ram_thumb.bat b/FreeRTOS/Demo/ARM7_AT91FR40008_GCC/ram_thumb.bat
similarity index 100%
rename from Demo/ARM7_AT91FR40008_GCC/ram_thumb.bat
rename to FreeRTOS/Demo/ARM7_AT91FR40008_GCC/ram_thumb.bat
diff --git a/Demo/ARM7_AT91FR40008_GCC/rom_arm.bat b/FreeRTOS/Demo/ARM7_AT91FR40008_GCC/rom_arm.bat
similarity index 100%
rename from Demo/ARM7_AT91FR40008_GCC/rom_arm.bat
rename to FreeRTOS/Demo/ARM7_AT91FR40008_GCC/rom_arm.bat
diff --git a/Demo/ARM7_AT91FR40008_GCC/rom_thumb.bat b/FreeRTOS/Demo/ARM7_AT91FR40008_GCC/rom_thumb.bat
similarity index 100%
rename from Demo/ARM7_AT91FR40008_GCC/rom_thumb.bat
rename to FreeRTOS/Demo/ARM7_AT91FR40008_GCC/rom_thumb.bat
diff --git a/Demo/ARM7_AT91FR40008_GCC/serial/serial.c b/FreeRTOS/Demo/ARM7_AT91FR40008_GCC/serial/serial.c
similarity index 100%
rename from Demo/ARM7_AT91FR40008_GCC/serial/serial.c
rename to FreeRTOS/Demo/ARM7_AT91FR40008_GCC/serial/serial.c
diff --git a/Demo/ARM7_AT91FR40008_GCC/serial/serialISR.c b/FreeRTOS/Demo/ARM7_AT91FR40008_GCC/serial/serialISR.c
similarity index 100%
rename from Demo/ARM7_AT91FR40008_GCC/serial/serialISR.c
rename to FreeRTOS/Demo/ARM7_AT91FR40008_GCC/serial/serialISR.c
diff --git a/Demo/ARM7_AT91FR40008_GCC/tc.h b/FreeRTOS/Demo/ARM7_AT91FR40008_GCC/tc.h
similarity index 100%
rename from Demo/ARM7_AT91FR40008_GCC/tc.h
rename to FreeRTOS/Demo/ARM7_AT91FR40008_GCC/tc.h
diff --git a/Demo/ARM7_AT91FR40008_GCC/usart.h b/FreeRTOS/Demo/ARM7_AT91FR40008_GCC/usart.h
similarity index 100%
rename from Demo/ARM7_AT91FR40008_GCC/usart.h
rename to FreeRTOS/Demo/ARM7_AT91FR40008_GCC/usart.h
diff --git a/Demo/ARM7_AT91SAM7S64_IAR/FreeRTOSConfig.h b/FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/FreeRTOSConfig.h
similarity index 100%
rename from Demo/ARM7_AT91SAM7S64_IAR/FreeRTOSConfig.h
rename to FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/FreeRTOSConfig.h
diff --git a/Demo/ARM7_AT91SAM7S64_IAR/ParTest/ParTest.c b/FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/ParTest/ParTest.c
similarity index 100%
rename from Demo/ARM7_AT91SAM7S64_IAR/ParTest/ParTest.c
rename to FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/ParTest/ParTest.c
diff --git a/Demo/ARM7_AT91SAM7S64_IAR/SrcIAR/Board.h b/FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/SrcIAR/Board.h
similarity index 100%
rename from Demo/ARM7_AT91SAM7S64_IAR/SrcIAR/Board.h
rename to FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/SrcIAR/Board.h
diff --git a/Demo/ARM7_AT91SAM7S64_IAR/SrcIAR/Cstartup.s b/FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/SrcIAR/Cstartup.s
similarity index 100%
rename from Demo/ARM7_AT91SAM7S64_IAR/SrcIAR/Cstartup.s
rename to FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/SrcIAR/Cstartup.s
diff --git a/Demo/ARM7_AT91SAM7S64_IAR/SrcIAR/Cstartup_SAM7.c b/FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/SrcIAR/Cstartup_SAM7.c
similarity index 100%
rename from Demo/ARM7_AT91SAM7S64_IAR/SrcIAR/Cstartup_SAM7.c
rename to FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/SrcIAR/Cstartup_SAM7.c
diff --git a/Demo/ARM7_AT91SAM7S64_IAR/USB/USBSample.c b/FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/USB/USBSample.c
similarity index 100%
rename from Demo/ARM7_AT91SAM7S64_IAR/USB/USBSample.c
rename to FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/USB/USBSample.c
diff --git a/Demo/ARM7_AT91SAM7S64_IAR/USB/USBSample.h b/FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/USB/USBSample.h
similarity index 100%
rename from Demo/ARM7_AT91SAM7S64_IAR/USB/USBSample.h
rename to FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/USB/USBSample.h
diff --git a/Demo/ARM7_AT91SAM7S64_IAR/USB/USB_ISR.s79 b/FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/USB/USB_ISR.s79
similarity index 100%
rename from Demo/ARM7_AT91SAM7S64_IAR/USB/USB_ISR.s79
rename to FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/USB/USB_ISR.s79
diff --git a/Demo/ARM7_AT91SAM7S64_IAR/main.c b/FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/main.c
similarity index 100%
rename from Demo/ARM7_AT91SAM7S64_IAR/main.c
rename to FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/main.c
diff --git a/Demo/ARM7_AT91SAM7S64_IAR/resource/SAM7.mac b/FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/resource/SAM7.mac
similarity index 100%
rename from Demo/ARM7_AT91SAM7S64_IAR/resource/SAM7.mac
rename to FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/resource/SAM7.mac
diff --git a/Demo/ARM7_AT91SAM7S64_IAR/resource/SAM7_RAM.mac b/FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/resource/SAM7_RAM.mac
similarity index 100%
rename from Demo/ARM7_AT91SAM7S64_IAR/resource/SAM7_RAM.mac
rename to FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/resource/SAM7_RAM.mac
diff --git a/Demo/ARM7_AT91SAM7S64_IAR/resource/at91SAM7S64_FLASH.icf b/FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/resource/at91SAM7S64_FLASH.icf
similarity index 100%
rename from Demo/ARM7_AT91SAM7S64_IAR/resource/at91SAM7S64_FLASH.icf
rename to FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/resource/at91SAM7S64_FLASH.icf
diff --git a/Demo/ARM7_AT91SAM7S64_IAR/resource/at91sam7s-ek-flash.mac b/FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/resource/at91sam7s-ek-flash.mac
similarity index 100%
rename from Demo/ARM7_AT91SAM7S64_IAR/resource/at91sam7s-ek-flash.mac
rename to FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/resource/at91sam7s-ek-flash.mac
diff --git a/Demo/ARM7_AT91SAM7S64_IAR/resource/at91sam7s64-flash.board b/FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/resource/at91sam7s64-flash.board
similarity index 100%
rename from Demo/ARM7_AT91SAM7S64_IAR/resource/at91sam7s64-flash.board
rename to FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/resource/at91sam7s64-flash.board
diff --git a/Demo/ARM7_AT91SAM7S64_IAR/rtosdemo.ewd b/FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/rtosdemo.ewd
similarity index 100%
rename from Demo/ARM7_AT91SAM7S64_IAR/rtosdemo.ewd
rename to FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/rtosdemo.ewd
diff --git a/Demo/ARM7_AT91SAM7S64_IAR/rtosdemo.ewp b/FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/rtosdemo.ewp
similarity index 100%
rename from Demo/ARM7_AT91SAM7S64_IAR/rtosdemo.ewp
rename to FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/rtosdemo.ewp
diff --git a/Demo/ARM7_AT91SAM7S64_IAR/rtosdemo.eww b/FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/rtosdemo.eww
similarity index 100%
rename from Demo/ARM7_AT91SAM7S64_IAR/rtosdemo.eww
rename to FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/rtosdemo.eww
diff --git a/Demo/ARM7_AT91SAM7S64_IAR/serial/serial.c b/FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/serial/serial.c
similarity index 100%
rename from Demo/ARM7_AT91SAM7S64_IAR/serial/serial.c
rename to FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/serial/serial.c
diff --git a/Demo/ARM7_AT91SAM7S64_IAR/serial/serialISR.s79 b/FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/serial/serialISR.s79
similarity index 100%
rename from Demo/ARM7_AT91SAM7S64_IAR/serial/serialISR.s79
rename to FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/serial/serialISR.s79
diff --git a/Demo/ARM7_AT91SAM7S64_IAR/settings/Basic.dbgdt b/FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/settings/Basic.dbgdt
similarity index 100%
rename from Demo/ARM7_AT91SAM7S64_IAR/settings/Basic.dbgdt
rename to FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/settings/Basic.dbgdt
diff --git a/Demo/ARM7_AT91SAM7S64_IAR/settings/Basic.dni b/FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/settings/Basic.dni
similarity index 100%
rename from Demo/ARM7_AT91SAM7S64_IAR/settings/Basic.dni
rename to FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/settings/Basic.dni
diff --git a/Demo/ARM7_AT91SAM7S64_IAR/settings/BasicSAM7.wsdt b/FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/settings/BasicSAM7.wsdt
similarity index 100%
rename from Demo/ARM7_AT91SAM7S64_IAR/settings/BasicSAM7.wsdt
rename to FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/settings/BasicSAM7.wsdt
diff --git a/Demo/ARM7_AT91SAM7S64_IAR/settings/rtosdemo.dbgdt b/FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/settings/rtosdemo.dbgdt
similarity index 100%
rename from Demo/ARM7_AT91SAM7S64_IAR/settings/rtosdemo.dbgdt
rename to FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/settings/rtosdemo.dbgdt
diff --git a/Demo/ARM7_AT91SAM7S64_IAR/settings/rtosdemo.dni b/FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/settings/rtosdemo.dni
similarity index 100%
rename from Demo/ARM7_AT91SAM7S64_IAR/settings/rtosdemo.dni
rename to FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/settings/rtosdemo.dni
diff --git a/Demo/ARM7_AT91SAM7S64_IAR/settings/rtosdemo.wsdt b/FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/settings/rtosdemo.wsdt
similarity index 100%
rename from Demo/ARM7_AT91SAM7S64_IAR/settings/rtosdemo.wsdt
rename to FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/settings/rtosdemo.wsdt
diff --git a/Demo/ARM7_AT91SAM7S64_IAR/settings/rtosdemo_lnk.par b/FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/settings/rtosdemo_lnk.par
similarity index 100%
rename from Demo/ARM7_AT91SAM7S64_IAR/settings/rtosdemo_lnk.par
rename to FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/settings/rtosdemo_lnk.par
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/.log b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/.log
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/.log
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/.log
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/shareddefaults.xml b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/shareddefaults.xml
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/shareddefaults.xml
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/shareddefaults.xml
diff --git a/Demo/Common/ethernet/lwIP_130/sys b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/.log
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/sys
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/.log
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/RTOSDemo.sc b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/RTOSDemo.sc
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/RTOSDemo.sc
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/RTOSDemo.sc
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.ui/dialog_settings.xml b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.ui/dialog_settings.xml
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.ui/dialog_settings.xml
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.ui/dialog_settings.xml
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/cHelpSettings.xml b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/cHelpSettings.xml
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/cHelpSettings.xml
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/cHelpSettings.xml
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/dialog_settings.xml b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/dialog_settings.xml
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/dialog_settings.xml
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/dialog_settings.xml
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/64/history.index b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/64/history.index
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/64/history.index
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/64/history.index
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/69/history.index b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/69/history.index
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/69/history.index
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/69/history.index
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/b3/history.index b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/b3/history.index
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/b3/history.index
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/b3/history.index
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/history.index b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/history.index
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/history.index
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/history.index
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/properties.index b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/properties.index
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/properties.index
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/properties.index
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.markers b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.markers
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.markers
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.markers
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/47.tree b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/47.tree
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/47.tree
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/47.tree
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prj-RTOSDemo.prefs b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prj-RTOSDemo.prefs
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prj-RTOSDemo.prefs
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prj-RTOSDemo.prefs
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.core.prefs b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.core.prefs
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.core.prefs
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.core.prefs
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.ui.prefs b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.ui.prefs
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.ui.prefs
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.ui.prefs
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.managedbuilder.core.prefs
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.managedbuilder.core.prefs
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.managedbuilder.core.prefs
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prefs b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prefs
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prefs
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prefs
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.core.prefs b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.core.prefs
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.core.prefs
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.core.prefs
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.help.ui.prefs b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.help.ui.prefs
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.help.ui.prefs
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.help.ui.prefs
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.search.prefs b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.search.prefs
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.search.prefs
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.search.prefs
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/OpenOCD Programmer.launch b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/OpenOCD Programmer.launch
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/OpenOCD Programmer.launch
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/OpenOCD Programmer.launch
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/OpenOCD Server.launch b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/OpenOCD Server.launch
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/OpenOCD Server.launch
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/OpenOCD Server.launch
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/RTOSDemo.elf.launch b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/RTOSDemo.elf.launch
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/RTOSDemo.elf.launch
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/RTOSDemo.elf.launch
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/RTOSDemo.launch b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/RTOSDemo.launch
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/RTOSDemo.launch
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/RTOSDemo.launch
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.help.ui/dialog_settings.xml b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.help.ui/dialog_settings.xml
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.help.ui/dialog_settings.xml
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.help.ui/dialog_settings.xml
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/Default.pref b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/Default.pref
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/Default.pref
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/Default.pref
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/relative_path.hist b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/relative_path.hist
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/relative_path.hist
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/relative_path.hist
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/working_set.hist b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/working_set.hist
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/working_set.hist
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/working_set.hist
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/working_sets.hist b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/working_sets.hist
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/working_sets.hist
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/working_sets.hist
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ltk.ui.refactoring/dialog_settings.xml b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ltk.ui.refactoring/dialog_settings.xml
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ltk.ui.refactoring/dialog_settings.xml
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ltk.ui.refactoring/dialog_settings.xml
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.search/dialog_settings.xml b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.search/dialog_settings.xml
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.search/dialog_settings.xml
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.search/dialog_settings.xml
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui.cheatsheets/dialog_settings.xml b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui.cheatsheets/dialog_settings.xml
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui.cheatsheets/dialog_settings.xml
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui.cheatsheets/dialog_settings.xml
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui.intro/dialog_settings.xml b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui.intro/dialog_settings.xml
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui.intro/dialog_settings.xml
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui.intro/dialog_settings.xml
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench.texteditor/dialog_settings.xml b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench.texteditor/dialog_settings.xml
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench.texteditor/dialog_settings.xml
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench.texteditor/dialog_settings.xml
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui/dialog_settings.xml b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui/dialog_settings.xml
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui/dialog_settings.xml
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.ui/dialog_settings.xml
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.update.ui/dialog_settings.xml b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.update.ui/dialog_settings.xml
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.update.ui/dialog_settings.xml
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/.plugins/org.eclipse.update.ui/dialog_settings.xml
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/version.ini b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/version.ini
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/version.ini
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/.metadata/version.ini
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/.cproject b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/.cproject
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/.cproject
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/.cproject
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/.project b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/.project
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/.project
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/.project
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/.settings/org.eclipse.ltk.core.refactoring.prefs b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/.settings/org.eclipse.ltk.core.refactoring.prefs
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/FreeRTOSConfig.h b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/FreeRTOSConfig.h
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/FreeRTOSConfig.h
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/FreeRTOSConfig.h
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/Makefile b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/Makefile
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/Makefile
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/Makefile
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/ParTest/ParTest.c b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/ParTest/ParTest.c
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/ParTest/ParTest.c
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/ParTest/ParTest.c
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/SrcAtmel/Board.h b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/SrcAtmel/Board.h
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/SrcAtmel/Board.h
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/SrcAtmel/Board.h
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/SrcAtmel/Cstartup.s79 b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/SrcAtmel/Cstartup.s79
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/SrcAtmel/Cstartup.s79
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/SrcAtmel/Cstartup.s79
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/SrcAtmel/Cstartup_SAM7.c b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/SrcAtmel/Cstartup_SAM7.c
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/SrcAtmel/Cstartup_SAM7.c
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/SrcAtmel/Cstartup_SAM7.c
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/SrcAtmel/Emac.h b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/SrcAtmel/Emac.h
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/SrcAtmel/Emac.h
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/SrcAtmel/Emac.h
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/SrcAtmel/mii.h b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/SrcAtmel/mii.h
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/SrcAtmel/mii.h
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/SrcAtmel/mii.h
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/USB/USBSample.c b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/USB/USBSample.c
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/USB/USBSample.c
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/USB/USBSample.c
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/USB/USBSample.h b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/USB/USBSample.h
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/USB/USBSample.h
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/USB/USBSample.h
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/USB/USB_ISR.c b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/USB/USB_ISR.c
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/USB/USB_ISR.c
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/USB/USB_ISR.c
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/atmel-rom.ld b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/atmel-rom.ld
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/atmel-rom.ld
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/atmel-rom.ld
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/boot.s b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/boot.s
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/boot.s
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/boot.s
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/main.c b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/main.c
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/main.c
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/main.c
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/syscalls.c b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/syscalls.c
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/syscalls.c
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/syscalls.c
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/EMAC_ISR.c b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/EMAC_ISR.c
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/EMAC_ISR.c
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/EMAC_ISR.c
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/Makefile.webserver b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/Makefile.webserver
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/Makefile.webserver
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/Makefile.webserver
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/SAM7_EMAC.c b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/SAM7_EMAC.c
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/SAM7_EMAC.c
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/SAM7_EMAC.c
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/SAM7_EMAC.h b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/SAM7_EMAC.h
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/SAM7_EMAC.h
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/SAM7_EMAC.h
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/clock-arch.h b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/clock-arch.h
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/clock-arch.h
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/clock-arch.h
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/emac_atmel.h b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/emac_atmel.h
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/emac_atmel.h
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/emac_atmel.h
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/http-strings b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/http-strings
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/http-strings
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/http-strings
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/http-strings.c b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/http-strings.c
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/http-strings.c
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/http-strings.c
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/http-strings.h b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/http-strings.h
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/http-strings.h
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/http-strings.h
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-cgi.c b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-cgi.c
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-cgi.c
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-cgi.c
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-cgi.h b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-cgi.h
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-cgi.h
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-cgi.h
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs.c b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs.c
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs.c
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs.c
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs.h b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs.h
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs.h
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs.h
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs/404.html b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs/404.html
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs/404.html
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs/404.html
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs/index.html b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs/index.html
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs/index.html
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs/index.html
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs/index.shtml b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs/index.shtml
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs/index.shtml
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs/index.shtml
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs/io.shtml b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs/io.shtml
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs/io.shtml
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs/io.shtml
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs/stats.shtml b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs/stats.shtml
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs/stats.shtml
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs/stats.shtml
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs/tcp.shtml b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs/tcp.shtml
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs/tcp.shtml
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fs/tcp.shtml
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fsdata.c b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fsdata.c
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fsdata.c
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fsdata.c
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fsdata.h b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fsdata.h
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fsdata.h
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd-fsdata.h
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd.c b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd.c
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd.c
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd.c
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd.h b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd.h
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd.h
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/httpd.h
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/makefsdata b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/makefsdata
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/makefsdata
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/makefsdata
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/makestrings b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/makestrings
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/makestrings
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/makestrings
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/uIP_Task.c b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/uIP_Task.c
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/uIP_Task.c
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/uIP_Task.c
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/uIP_Task.h b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/uIP_Task.h
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/uIP_Task.h
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/uIP_Task.h
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/uip-conf.h b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/uip-conf.h
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/uip-conf.h
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/uip-conf.h
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/webserver.h b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/webserver.h
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/webserver.h
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/webserver.h
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/SAM7_flash.cfg b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/SAM7_flash.cfg
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/SAM7_flash.cfg
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/SAM7_flash.cfg
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/SAM7_pp.cfg b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/SAM7_pp.cfg
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/SAM7_pp.cfg
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/SAM7_pp.cfg
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/at91sam7_ecr.cfg b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/at91sam7_ecr.cfg
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/at91sam7_ecr.cfg
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/at91sam7_ecr.cfg
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/at91sam7_ecr.script b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/at91sam7_ecr.script
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/at91sam7_ecr.script
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/at91sam7_ecr.script
diff --git a/Demo/ARM7_AT91SAM7X256_Eclipse/program.script b/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/program.script
similarity index 100%
rename from Demo/ARM7_AT91SAM7X256_Eclipse/program.script
rename to FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/program.script
diff --git a/Demo/ARM7_LPC2106_GCC/FreeRTOSConfig.h b/FreeRTOS/Demo/ARM7_LPC2106_GCC/FreeRTOSConfig.h
similarity index 100%
rename from Demo/ARM7_LPC2106_GCC/FreeRTOSConfig.h
rename to FreeRTOS/Demo/ARM7_LPC2106_GCC/FreeRTOSConfig.h
diff --git a/Demo/ARM7_LPC2106_GCC/Makefile b/FreeRTOS/Demo/ARM7_LPC2106_GCC/Makefile
similarity index 100%
rename from Demo/ARM7_LPC2106_GCC/Makefile
rename to FreeRTOS/Demo/ARM7_LPC2106_GCC/Makefile
diff --git a/Demo/ARM7_LPC2106_GCC/ParTest/ParTest.c b/FreeRTOS/Demo/ARM7_LPC2106_GCC/ParTest/ParTest.c
similarity index 100%
rename from Demo/ARM7_LPC2106_GCC/ParTest/ParTest.c
rename to FreeRTOS/Demo/ARM7_LPC2106_GCC/ParTest/ParTest.c
diff --git a/Demo/ARM7_LPC2106_GCC/boot.s b/FreeRTOS/Demo/ARM7_LPC2106_GCC/boot.s
similarity index 100%
rename from Demo/ARM7_LPC2106_GCC/boot.s
rename to FreeRTOS/Demo/ARM7_LPC2106_GCC/boot.s
diff --git a/Demo/ARM7_LPC2106_GCC/lpc2106-ram.ld b/FreeRTOS/Demo/ARM7_LPC2106_GCC/lpc2106-ram.ld
similarity index 100%
rename from Demo/ARM7_LPC2106_GCC/lpc2106-ram.ld
rename to FreeRTOS/Demo/ARM7_LPC2106_GCC/lpc2106-ram.ld
diff --git a/Demo/ARM7_LPC2106_GCC/lpc2106-rom.ld b/FreeRTOS/Demo/ARM7_LPC2106_GCC/lpc2106-rom.ld
similarity index 100%
rename from Demo/ARM7_LPC2106_GCC/lpc2106-rom.ld
rename to FreeRTOS/Demo/ARM7_LPC2106_GCC/lpc2106-rom.ld
diff --git a/Demo/ARM7_LPC2106_GCC/lpc210x.h b/FreeRTOS/Demo/ARM7_LPC2106_GCC/lpc210x.h
similarity index 100%
rename from Demo/ARM7_LPC2106_GCC/lpc210x.h
rename to FreeRTOS/Demo/ARM7_LPC2106_GCC/lpc210x.h
diff --git a/Demo/ARM7_LPC2106_GCC/lpc221x.h b/FreeRTOS/Demo/ARM7_LPC2106_GCC/lpc221x.h
similarity index 100%
rename from Demo/ARM7_LPC2106_GCC/lpc221x.h
rename to FreeRTOS/Demo/ARM7_LPC2106_GCC/lpc221x.h
diff --git a/Demo/ARM7_LPC2106_GCC/main.c b/FreeRTOS/Demo/ARM7_LPC2106_GCC/main.c
similarity index 100%
rename from Demo/ARM7_LPC2106_GCC/main.c
rename to FreeRTOS/Demo/ARM7_LPC2106_GCC/main.c
diff --git a/Demo/ARM7_LPC2106_GCC/ram_arm.bat b/FreeRTOS/Demo/ARM7_LPC2106_GCC/ram_arm.bat
similarity index 100%
rename from Demo/ARM7_LPC2106_GCC/ram_arm.bat
rename to FreeRTOS/Demo/ARM7_LPC2106_GCC/ram_arm.bat
diff --git a/Demo/ARM7_LPC2106_GCC/ram_thumb.bat b/FreeRTOS/Demo/ARM7_LPC2106_GCC/ram_thumb.bat
similarity index 100%
rename from Demo/ARM7_LPC2106_GCC/ram_thumb.bat
rename to FreeRTOS/Demo/ARM7_LPC2106_GCC/ram_thumb.bat
diff --git a/Demo/ARM7_LPC2106_GCC/readme.txt b/FreeRTOS/Demo/ARM7_LPC2106_GCC/readme.txt
similarity index 100%
rename from Demo/ARM7_LPC2106_GCC/readme.txt
rename to FreeRTOS/Demo/ARM7_LPC2106_GCC/readme.txt
diff --git a/Demo/ARM7_LPC2106_GCC/rom_arm.bat b/FreeRTOS/Demo/ARM7_LPC2106_GCC/rom_arm.bat
similarity index 100%
rename from Demo/ARM7_LPC2106_GCC/rom_arm.bat
rename to FreeRTOS/Demo/ARM7_LPC2106_GCC/rom_arm.bat
diff --git a/Demo/ARM7_LPC2106_GCC/rom_thumb.bat b/FreeRTOS/Demo/ARM7_LPC2106_GCC/rom_thumb.bat
similarity index 100%
rename from Demo/ARM7_LPC2106_GCC/rom_thumb.bat
rename to FreeRTOS/Demo/ARM7_LPC2106_GCC/rom_thumb.bat
diff --git a/Demo/ARM7_LPC2106_GCC/serial/serial.c b/FreeRTOS/Demo/ARM7_LPC2106_GCC/serial/serial.c
similarity index 100%
rename from Demo/ARM7_LPC2106_GCC/serial/serial.c
rename to FreeRTOS/Demo/ARM7_LPC2106_GCC/serial/serial.c
diff --git a/Demo/ARM7_LPC2106_GCC/serial/serialISR.c b/FreeRTOS/Demo/ARM7_LPC2106_GCC/serial/serialISR.c
similarity index 100%
rename from Demo/ARM7_LPC2106_GCC/serial/serialISR.c
rename to FreeRTOS/Demo/ARM7_LPC2106_GCC/serial/serialISR.c
diff --git a/Demo/ARM7_LPC2129_IAR/FreeRTOSConfig.h b/FreeRTOS/Demo/ARM7_LPC2129_IAR/FreeRTOSConfig.h
similarity index 100%
rename from Demo/ARM7_LPC2129_IAR/FreeRTOSConfig.h
rename to FreeRTOS/Demo/ARM7_LPC2129_IAR/FreeRTOSConfig.h
diff --git a/Demo/ARM7_LPC2129_IAR/ParTest/ParTest.c b/FreeRTOS/Demo/ARM7_LPC2129_IAR/ParTest/ParTest.c
similarity index 100%
rename from Demo/ARM7_LPC2129_IAR/ParTest/ParTest.c
rename to FreeRTOS/Demo/ARM7_LPC2129_IAR/ParTest/ParTest.c
diff --git a/Demo/ARM7_LPC2129_IAR/SrcIAR/lpc2xxx_cstartup.s b/FreeRTOS/Demo/ARM7_LPC2129_IAR/SrcIAR/lpc2xxx_cstartup.s
similarity index 100%
rename from Demo/ARM7_LPC2129_IAR/SrcIAR/lpc2xxx_cstartup.s
rename to FreeRTOS/Demo/ARM7_LPC2129_IAR/SrcIAR/lpc2xxx_cstartup.s
diff --git a/Demo/ARM7_LPC2129_IAR/main.c b/FreeRTOS/Demo/ARM7_LPC2129_IAR/main.c
similarity index 100%
rename from Demo/ARM7_LPC2129_IAR/main.c
rename to FreeRTOS/Demo/ARM7_LPC2129_IAR/main.c
diff --git a/Demo/ARM7_LPC2129_IAR/resource/lpc212x.icf b/FreeRTOS/Demo/ARM7_LPC2129_IAR/resource/lpc212x.icf
similarity index 100%
rename from Demo/ARM7_LPC2129_IAR/resource/lpc212x.icf
rename to FreeRTOS/Demo/ARM7_LPC2129_IAR/resource/lpc212x.icf
diff --git a/Demo/ARM7_LPC2129_IAR/rtosdemo.ewd b/FreeRTOS/Demo/ARM7_LPC2129_IAR/rtosdemo.ewd
similarity index 100%
rename from Demo/ARM7_LPC2129_IAR/rtosdemo.ewd
rename to FreeRTOS/Demo/ARM7_LPC2129_IAR/rtosdemo.ewd
diff --git a/Demo/ARM7_LPC2129_IAR/rtosdemo.ewp b/FreeRTOS/Demo/ARM7_LPC2129_IAR/rtosdemo.ewp
similarity index 100%
rename from Demo/ARM7_LPC2129_IAR/rtosdemo.ewp
rename to FreeRTOS/Demo/ARM7_LPC2129_IAR/rtosdemo.ewp
diff --git a/Demo/ARM7_LPC2129_IAR/rtosdemo.eww b/FreeRTOS/Demo/ARM7_LPC2129_IAR/rtosdemo.eww
similarity index 100%
rename from Demo/ARM7_LPC2129_IAR/rtosdemo.eww
rename to FreeRTOS/Demo/ARM7_LPC2129_IAR/rtosdemo.eww
diff --git a/Demo/ARM7_LPC2129_IAR/serial/serial.c b/FreeRTOS/Demo/ARM7_LPC2129_IAR/serial/serial.c
similarity index 100%
rename from Demo/ARM7_LPC2129_IAR/serial/serial.c
rename to FreeRTOS/Demo/ARM7_LPC2129_IAR/serial/serial.c
diff --git a/Demo/ARM7_LPC2129_IAR/serial/serialISR.s79 b/FreeRTOS/Demo/ARM7_LPC2129_IAR/serial/serialISR.s79
similarity index 100%
rename from Demo/ARM7_LPC2129_IAR/serial/serialISR.s79
rename to FreeRTOS/Demo/ARM7_LPC2129_IAR/serial/serialISR.s79
diff --git a/Demo/ARM7_LPC2129_IAR/settings/Basic.dbgdt b/FreeRTOS/Demo/ARM7_LPC2129_IAR/settings/Basic.dbgdt
similarity index 100%
rename from Demo/ARM7_LPC2129_IAR/settings/Basic.dbgdt
rename to FreeRTOS/Demo/ARM7_LPC2129_IAR/settings/Basic.dbgdt
diff --git a/Demo/ARM7_LPC2129_IAR/settings/Basic.dni b/FreeRTOS/Demo/ARM7_LPC2129_IAR/settings/Basic.dni
similarity index 100%
rename from Demo/ARM7_LPC2129_IAR/settings/Basic.dni
rename to FreeRTOS/Demo/ARM7_LPC2129_IAR/settings/Basic.dni
diff --git a/Demo/ARM7_LPC2129_IAR/settings/rtosdemo.dbgdt b/FreeRTOS/Demo/ARM7_LPC2129_IAR/settings/rtosdemo.dbgdt
similarity index 100%
rename from Demo/ARM7_LPC2129_IAR/settings/rtosdemo.dbgdt
rename to FreeRTOS/Demo/ARM7_LPC2129_IAR/settings/rtosdemo.dbgdt
diff --git a/Demo/ARM7_LPC2129_IAR/settings/rtosdemo.dni b/FreeRTOS/Demo/ARM7_LPC2129_IAR/settings/rtosdemo.dni
similarity index 100%
rename from Demo/ARM7_LPC2129_IAR/settings/rtosdemo.dni
rename to FreeRTOS/Demo/ARM7_LPC2129_IAR/settings/rtosdemo.dni
diff --git a/Demo/ARM7_LPC2129_IAR/settings/rtosdemo.wsdt b/FreeRTOS/Demo/ARM7_LPC2129_IAR/settings/rtosdemo.wsdt
similarity index 100%
rename from Demo/ARM7_LPC2129_IAR/settings/rtosdemo.wsdt
rename to FreeRTOS/Demo/ARM7_LPC2129_IAR/settings/rtosdemo.wsdt
diff --git a/Demo/ARM7_LPC2129_IAR/settings/rtosdemo_lnk.par b/FreeRTOS/Demo/ARM7_LPC2129_IAR/settings/rtosdemo_lnk.par
similarity index 100%
rename from Demo/ARM7_LPC2129_IAR/settings/rtosdemo_lnk.par
rename to FreeRTOS/Demo/ARM7_LPC2129_IAR/settings/rtosdemo_lnk.par
diff --git a/Demo/ARM7_LPC2129_Keil_RVDS/FreeRTOSConfig.h b/FreeRTOS/Demo/ARM7_LPC2129_Keil_RVDS/FreeRTOSConfig.h
similarity index 100%
rename from Demo/ARM7_LPC2129_Keil_RVDS/FreeRTOSConfig.h
rename to FreeRTOS/Demo/ARM7_LPC2129_Keil_RVDS/FreeRTOSConfig.h
diff --git a/Demo/ARM7_LPC2129_Keil_RVDS/ParTest/ParTest.c b/FreeRTOS/Demo/ARM7_LPC2129_Keil_RVDS/ParTest/ParTest.c
similarity index 100%
rename from Demo/ARM7_LPC2129_Keil_RVDS/ParTest/ParTest.c
rename to FreeRTOS/Demo/ARM7_LPC2129_Keil_RVDS/ParTest/ParTest.c
diff --git a/Demo/ARM7_LPC2129_Keil_RVDS/RTOSDemo.Opt b/FreeRTOS/Demo/ARM7_LPC2129_Keil_RVDS/RTOSDemo.Opt
similarity index 100%
rename from Demo/ARM7_LPC2129_Keil_RVDS/RTOSDemo.Opt
rename to FreeRTOS/Demo/ARM7_LPC2129_Keil_RVDS/RTOSDemo.Opt
diff --git a/Demo/ARM7_LPC2129_Keil_RVDS/RTOSDemo.Uv2 b/FreeRTOS/Demo/ARM7_LPC2129_Keil_RVDS/RTOSDemo.Uv2
similarity index 100%
rename from Demo/ARM7_LPC2129_Keil_RVDS/RTOSDemo.Uv2
rename to FreeRTOS/Demo/ARM7_LPC2129_Keil_RVDS/RTOSDemo.Uv2
diff --git a/Demo/ARM7_LPC2129_Keil_RVDS/RTOSDemo.sct b/FreeRTOS/Demo/ARM7_LPC2129_Keil_RVDS/RTOSDemo.sct
similarity index 100%
rename from Demo/ARM7_LPC2129_Keil_RVDS/RTOSDemo.sct
rename to FreeRTOS/Demo/ARM7_LPC2129_Keil_RVDS/RTOSDemo.sct
diff --git a/Demo/ARM7_LPC2129_Keil_RVDS/RTOSDemo.tra b/FreeRTOS/Demo/ARM7_LPC2129_Keil_RVDS/RTOSDemo.tra
similarity index 100%
rename from Demo/ARM7_LPC2129_Keil_RVDS/RTOSDemo.tra
rename to FreeRTOS/Demo/ARM7_LPC2129_Keil_RVDS/RTOSDemo.tra
diff --git a/Demo/ARM7_LPC2129_Keil_RVDS/RTOSDemoSignal.UVL b/FreeRTOS/Demo/ARM7_LPC2129_Keil_RVDS/RTOSDemoSignal.UVL
similarity index 100%
rename from Demo/ARM7_LPC2129_Keil_RVDS/RTOSDemoSignal.UVL
rename to FreeRTOS/Demo/ARM7_LPC2129_Keil_RVDS/RTOSDemoSignal.UVL
diff --git a/Demo/ARM7_LPC2129_Keil_RVDS/RTOSDemo_Target 1.dep b/FreeRTOS/Demo/ARM7_LPC2129_Keil_RVDS/RTOSDemo_Target 1.dep
similarity index 100%
rename from Demo/ARM7_LPC2129_Keil_RVDS/RTOSDemo_Target 1.dep
rename to FreeRTOS/Demo/ARM7_LPC2129_Keil_RVDS/RTOSDemo_Target 1.dep
diff --git a/Demo/ARM7_LPC2129_Keil_RVDS/Startup.s b/FreeRTOS/Demo/ARM7_LPC2129_Keil_RVDS/Startup.s
similarity index 100%
rename from Demo/ARM7_LPC2129_Keil_RVDS/Startup.s
rename to FreeRTOS/Demo/ARM7_LPC2129_Keil_RVDS/Startup.s
diff --git a/Demo/ARM7_LPC2129_Keil_RVDS/main.c b/FreeRTOS/Demo/ARM7_LPC2129_Keil_RVDS/main.c
similarity index 100%
rename from Demo/ARM7_LPC2129_Keil_RVDS/main.c
rename to FreeRTOS/Demo/ARM7_LPC2129_Keil_RVDS/main.c
diff --git a/Demo/ARM7_LPC2129_Keil_RVDS/serial/serial.c b/FreeRTOS/Demo/ARM7_LPC2129_Keil_RVDS/serial/serial.c
similarity index 100%
rename from Demo/ARM7_LPC2129_Keil_RVDS/serial/serial.c
rename to FreeRTOS/Demo/ARM7_LPC2129_Keil_RVDS/serial/serial.c
diff --git a/Demo/ARM7_LPC2129_Keil_RVDS/serial/serialISR.s b/FreeRTOS/Demo/ARM7_LPC2129_Keil_RVDS/serial/serialISR.s
similarity index 100%
rename from Demo/ARM7_LPC2129_Keil_RVDS/serial/serialISR.s
rename to FreeRTOS/Demo/ARM7_LPC2129_Keil_RVDS/serial/serialISR.s
diff --git a/Demo/ARM7_LPC2138_Rowley/FreeRTOSConfig.h b/FreeRTOS/Demo/ARM7_LPC2138_Rowley/FreeRTOSConfig.h
similarity index 100%
rename from Demo/ARM7_LPC2138_Rowley/FreeRTOSConfig.h
rename to FreeRTOS/Demo/ARM7_LPC2138_Rowley/FreeRTOSConfig.h
diff --git a/Demo/ARM7_LPC2138_Rowley/LPC21xx.h b/FreeRTOS/Demo/ARM7_LPC2138_Rowley/LPC21xx.h
similarity index 100%
rename from Demo/ARM7_LPC2138_Rowley/LPC21xx.h
rename to FreeRTOS/Demo/ARM7_LPC2138_Rowley/LPC21xx.h
diff --git a/Demo/ARM7_LPC2138_Rowley/RTOSDemo.hzp b/FreeRTOS/Demo/ARM7_LPC2138_Rowley/RTOSDemo.hzp
similarity index 100%
rename from Demo/ARM7_LPC2138_Rowley/RTOSDemo.hzp
rename to FreeRTOS/Demo/ARM7_LPC2138_Rowley/RTOSDemo.hzp
diff --git a/Demo/ARM7_LPC2138_Rowley/RTOSDemo.hzs b/FreeRTOS/Demo/ARM7_LPC2138_Rowley/RTOSDemo.hzs
similarity index 100%
rename from Demo/ARM7_LPC2138_Rowley/RTOSDemo.hzs
rename to FreeRTOS/Demo/ARM7_LPC2138_Rowley/RTOSDemo.hzs
diff --git a/Demo/ARM7_LPC2138_Rowley/main.c b/FreeRTOS/Demo/ARM7_LPC2138_Rowley/main.c
similarity index 100%
rename from Demo/ARM7_LPC2138_Rowley/main.c
rename to FreeRTOS/Demo/ARM7_LPC2138_Rowley/main.c
diff --git a/Demo/ARM7_LPC2138_Rowley/mainISR.c b/FreeRTOS/Demo/ARM7_LPC2138_Rowley/mainISR.c
similarity index 100%
rename from Demo/ARM7_LPC2138_Rowley/mainISR.c
rename to FreeRTOS/Demo/ARM7_LPC2138_Rowley/mainISR.c
diff --git a/Demo/ARM7_LPC2138_Rowley/threads.js b/FreeRTOS/Demo/ARM7_LPC2138_Rowley/threads.js
similarity index 100%
rename from Demo/ARM7_LPC2138_Rowley/threads.js
rename to FreeRTOS/Demo/ARM7_LPC2138_Rowley/threads.js
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/shareddefaults.xml b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/shareddefaults.xml
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/shareddefaults.xml
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/shareddefaults.xml
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/RTOSDemo.sc b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/RTOSDemo.sc
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/RTOSDemo.sc
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/RTOSDemo.sc
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.ui/dialog_settings.xml b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.ui/dialog_settings.xml
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.ui/dialog_settings.xml
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.ui/dialog_settings.xml
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/cHelpSettings.xml b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/cHelpSettings.xml
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/cHelpSettings.xml
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/cHelpSettings.xml
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/dialog_settings.xml b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/dialog_settings.xml
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/dialog_settings.xml
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/dialog_settings.xml
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/33/5b/e7/4/history.index b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/33/5b/e7/4/history.index
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/33/5b/e7/4/history.index
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/33/5b/e7/4/history.index
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/69/history.index b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/69/history.index
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/69/history.index
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/69/history.index
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/ad/history.index b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/ad/history.index
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/ad/history.index
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/ad/history.index
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/history.index b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/history.index
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/history.index
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/history.index
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/properties.index b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/properties.index
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/properties.index
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/properties.index
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.markers b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.markers
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.markers
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.markers
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.markers b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.markers
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.markers
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.markers
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/31.tree b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/31.tree
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/31.tree
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/31.tree
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prj-RTOSDemo.prefs b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prj-RTOSDemo.prefs
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prj-RTOSDemo.prefs
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prj-RTOSDemo.prefs
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.core.prefs b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.core.prefs
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.core.prefs
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.core.prefs
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.ui.prefs b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.ui.prefs
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.ui.prefs
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.ui.prefs
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.managedbuilder.core.prefs
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.managedbuilder.core.prefs
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.managedbuilder.core.prefs
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prefs b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prefs
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prefs
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prefs
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.core.prefs b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.core.prefs
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.core.prefs
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.core.prefs
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.help.ui.prefs b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.help.ui.prefs
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.help.ui.prefs
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.help.ui.prefs
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.search.prefs b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.search.prefs
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.search.prefs
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.search.prefs
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/OpenOCD Programmer.launch b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/OpenOCD Programmer.launch
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/OpenOCD Programmer.launch
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/OpenOCD Programmer.launch
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/OpenOCD Server.launch b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/OpenOCD Server.launch
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/OpenOCD Server.launch
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/OpenOCD Server.launch
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/RTOSDemo.launch b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/RTOSDemo.launch
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/RTOSDemo.launch
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/RTOSDemo.launch
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.help.ui/dialog_settings.xml b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.help.ui/dialog_settings.xml
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.help.ui/dialog_settings.xml
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.help.ui/dialog_settings.xml
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/Default.pref b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/Default.pref
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/Default.pref
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/Default.pref
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/relative_path.hist b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/relative_path.hist
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/relative_path.hist
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/relative_path.hist
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/working_set.hist b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/working_set.hist
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/working_set.hist
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/working_set.hist
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/working_sets.hist b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/working_sets.hist
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/working_sets.hist
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/working_sets.hist
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ltk.ui.refactoring/dialog_settings.xml b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ltk.ui.refactoring/dialog_settings.xml
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ltk.ui.refactoring/dialog_settings.xml
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ltk.ui.refactoring/dialog_settings.xml
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.search/dialog_settings.xml b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.search/dialog_settings.xml
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.search/dialog_settings.xml
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.search/dialog_settings.xml
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui.cheatsheets/dialog_settings.xml b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui.cheatsheets/dialog_settings.xml
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui.cheatsheets/dialog_settings.xml
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui.cheatsheets/dialog_settings.xml
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui.intro/dialog_settings.xml b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui.intro/dialog_settings.xml
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui.intro/dialog_settings.xml
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui.intro/dialog_settings.xml
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench.texteditor/dialog_settings.xml b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench.texteditor/dialog_settings.xml
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench.texteditor/dialog_settings.xml
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench.texteditor/dialog_settings.xml
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui/dialog_settings.xml b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui/dialog_settings.xml
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui/dialog_settings.xml
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.ui/dialog_settings.xml
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.update.ui/dialog_settings.xml b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.update.ui/dialog_settings.xml
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.update.ui/dialog_settings.xml
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/.plugins/org.eclipse.update.ui/dialog_settings.xml
diff --git a/Demo/ARM7_LPC2368_Eclipse/.metadata/version.ini b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/version.ini
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/.metadata/version.ini
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/.metadata/version.ini
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/.cproject b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/.cproject
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/.cproject
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/.cproject
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/.project b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/.project
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/.project
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/.project
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/.settings/org.eclipse.ltk.core.refactoring.prefs b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/.settings/org.eclipse.ltk.core.refactoring.prefs
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/FreeRTOSConfig.h b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/FreeRTOSConfig.h
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/FreeRTOSConfig.h
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/FreeRTOSConfig.h
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/LCD/portlcd.c b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/LCD/portlcd.c
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/LCD/portlcd.c
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/LCD/portlcd.c
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/LCD/portlcd.h b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/LCD/portlcd.h
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/LCD/portlcd.h
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/LCD/portlcd.h
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/Makefile b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/Makefile
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/Makefile
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/Makefile
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/ParTest/ParTest.c b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/ParTest/ParTest.c
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/ParTest/ParTest.c
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/ParTest/ParTest.c
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/boot.s b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/boot.s
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/boot.s
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/boot.s
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/lpc2368.ld b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/lpc2368.ld
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/lpc2368.ld
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/lpc2368.ld
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/lpc23xx.h b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/lpc23xx.h
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/lpc23xx.h
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/lpc23xx.h
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/main.c b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/main.c
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/main.c
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/main.c
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/syscalls.c b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/syscalls.c
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/syscalls.c
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/syscalls.c
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/EMAC_ISR.c b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/EMAC_ISR.c
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/EMAC_ISR.c
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/EMAC_ISR.c
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/clock-arch.h b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/clock-arch.h
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/clock-arch.h
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/clock-arch.h
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/emac.c b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/emac.c
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/emac.c
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/emac.c
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/emac.h b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/emac.h
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/emac.h
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/emac.h
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/http-strings b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/http-strings
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/http-strings
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/http-strings
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/http-strings.c b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/http-strings.c
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/http-strings.c
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/http-strings.c
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/http-strings.h b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/http-strings.h
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/http-strings.h
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/http-strings.h
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-cgi.c b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-cgi.c
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-cgi.c
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-cgi.c
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-cgi.h b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-cgi.h
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-cgi.h
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-cgi.h
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs.c b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs.c
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs.c
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs.c
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs.h b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs.h
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs.h
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs.h
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs/404.html b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs/404.html
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs/404.html
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs/404.html
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs/index.html b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs/index.html
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs/index.html
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs/index.html
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs/index.shtml b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs/index.shtml
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs/index.shtml
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs/index.shtml
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs/io.shtml b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs/io.shtml
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs/io.shtml
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs/io.shtml
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs/stats.shtml b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs/stats.shtml
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs/stats.shtml
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs/stats.shtml
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs/tcp.shtml b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs/tcp.shtml
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs/tcp.shtml
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fs/tcp.shtml
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fsdata.c b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fsdata.c
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fsdata.c
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fsdata.c
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fsdata.h b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fsdata.h
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fsdata.h
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd-fsdata.h
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd.c b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd.c
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd.c
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd.c
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd.h b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd.h
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd.h
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/httpd.h
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/makefsdata b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/makefsdata
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/makefsdata
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/makefsdata
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/makestrings b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/makestrings
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/makestrings
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/makestrings
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/uIP_Task.c b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/uIP_Task.c
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/uIP_Task.c
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/uIP_Task.c
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/uip-conf.h b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/uip-conf.h
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/uip-conf.h
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/uip-conf.h
diff --git a/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/webserver.h b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/webserver.h
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/webserver.h
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/webserver.h
diff --git a/Demo/ARM7_LPC2368_Eclipse/lpc2368_flash.cfg b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/lpc2368_flash.cfg
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/lpc2368_flash.cfg
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/lpc2368_flash.cfg
diff --git a/Demo/ARM7_LPC2368_Eclipse/lpc2xxx_pp.cfg b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/lpc2xxx_pp.cfg
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/lpc2xxx_pp.cfg
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/lpc2xxx_pp.cfg
diff --git a/Demo/ARM7_LPC2368_Eclipse/program.script b/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/program.script
similarity index 100%
rename from Demo/ARM7_LPC2368_Eclipse/program.script
rename to FreeRTOS/Demo/ARM7_LPC2368_Eclipse/program.script
diff --git a/Demo/ARM7_LPC2368_Rowley/FreeRTOSConfig.h b/FreeRTOS/Demo/ARM7_LPC2368_Rowley/FreeRTOSConfig.h
similarity index 100%
rename from Demo/ARM7_LPC2368_Rowley/FreeRTOSConfig.h
rename to FreeRTOS/Demo/ARM7_LPC2368_Rowley/FreeRTOSConfig.h
diff --git a/Demo/ARM7_LPC2368_Rowley/LCD/portlcd.c b/FreeRTOS/Demo/ARM7_LPC2368_Rowley/LCD/portlcd.c
similarity index 100%
rename from Demo/ARM7_LPC2368_Rowley/LCD/portlcd.c
rename to FreeRTOS/Demo/ARM7_LPC2368_Rowley/LCD/portlcd.c
diff --git a/Demo/ARM7_LPC2368_Rowley/LCD/portlcd.h b/FreeRTOS/Demo/ARM7_LPC2368_Rowley/LCD/portlcd.h
similarity index 100%
rename from Demo/ARM7_LPC2368_Rowley/LCD/portlcd.h
rename to FreeRTOS/Demo/ARM7_LPC2368_Rowley/LCD/portlcd.h
diff --git a/Demo/ARM7_LPC2368_Rowley/ParTest/ParTest.c b/FreeRTOS/Demo/ARM7_LPC2368_Rowley/ParTest/ParTest.c
similarity index 100%
rename from Demo/ARM7_LPC2368_Rowley/ParTest/ParTest.c
rename to FreeRTOS/Demo/ARM7_LPC2368_Rowley/ParTest/ParTest.c
diff --git a/Demo/ARM7_LPC2368_Rowley/RTOSDemo.hzp b/FreeRTOS/Demo/ARM7_LPC2368_Rowley/RTOSDemo.hzp
similarity index 100%
rename from Demo/ARM7_LPC2368_Rowley/RTOSDemo.hzp
rename to FreeRTOS/Demo/ARM7_LPC2368_Rowley/RTOSDemo.hzp
diff --git a/Demo/ARM7_LPC2368_Rowley/RTOSDemo.hzs b/FreeRTOS/Demo/ARM7_LPC2368_Rowley/RTOSDemo.hzs
similarity index 100%
rename from Demo/ARM7_LPC2368_Rowley/RTOSDemo.hzs
rename to FreeRTOS/Demo/ARM7_LPC2368_Rowley/RTOSDemo.hzs
diff --git a/Demo/ARM7_LPC2368_Rowley/main.c b/FreeRTOS/Demo/ARM7_LPC2368_Rowley/main.c
similarity index 100%
rename from Demo/ARM7_LPC2368_Rowley/main.c
rename to FreeRTOS/Demo/ARM7_LPC2368_Rowley/main.c
diff --git a/Demo/ARM7_LPC2368_Rowley/webserver/EMAC_ISR.c b/FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/EMAC_ISR.c
similarity index 100%
rename from Demo/ARM7_LPC2368_Rowley/webserver/EMAC_ISR.c
rename to FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/EMAC_ISR.c
diff --git a/Demo/ARM7_LPC2368_Rowley/webserver/clock-arch.h b/FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/clock-arch.h
similarity index 100%
rename from Demo/ARM7_LPC2368_Rowley/webserver/clock-arch.h
rename to FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/clock-arch.h
diff --git a/Demo/ARM7_LPC2368_Rowley/webserver/emac.c b/FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/emac.c
similarity index 100%
rename from Demo/ARM7_LPC2368_Rowley/webserver/emac.c
rename to FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/emac.c
diff --git a/Demo/ARM7_LPC2368_Rowley/webserver/emac.h b/FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/emac.h
similarity index 100%
rename from Demo/ARM7_LPC2368_Rowley/webserver/emac.h
rename to FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/emac.h
diff --git a/Demo/ARM7_LPC2368_Rowley/webserver/http-strings b/FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/http-strings
similarity index 100%
rename from Demo/ARM7_LPC2368_Rowley/webserver/http-strings
rename to FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/http-strings
diff --git a/Demo/ARM7_LPC2368_Rowley/webserver/http-strings.c b/FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/http-strings.c
similarity index 100%
rename from Demo/ARM7_LPC2368_Rowley/webserver/http-strings.c
rename to FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/http-strings.c
diff --git a/Demo/ARM7_LPC2368_Rowley/webserver/http-strings.h b/FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/http-strings.h
similarity index 100%
rename from Demo/ARM7_LPC2368_Rowley/webserver/http-strings.h
rename to FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/http-strings.h
diff --git a/Demo/ARM7_LPC2368_Rowley/webserver/httpd-cgi.c b/FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/httpd-cgi.c
similarity index 100%
rename from Demo/ARM7_LPC2368_Rowley/webserver/httpd-cgi.c
rename to FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/httpd-cgi.c
diff --git a/Demo/ARM7_LPC2368_Rowley/webserver/httpd-cgi.h b/FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/httpd-cgi.h
similarity index 100%
rename from Demo/ARM7_LPC2368_Rowley/webserver/httpd-cgi.h
rename to FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/httpd-cgi.h
diff --git a/Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs.c b/FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs.c
similarity index 100%
rename from Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs.c
rename to FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs.c
diff --git a/Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs.h b/FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs.h
similarity index 100%
rename from Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs.h
rename to FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs.h
diff --git a/Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs/404.html b/FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs/404.html
similarity index 100%
rename from Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs/404.html
rename to FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs/404.html
diff --git a/Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs/image.jpg b/FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs/image.jpg
similarity index 100%
rename from Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs/image.jpg
rename to FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs/image.jpg
diff --git a/Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs/index.html b/FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs/index.html
similarity index 100%
rename from Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs/index.html
rename to FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs/index.html
diff --git a/Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs/index.shtml b/FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs/index.shtml
similarity index 100%
rename from Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs/index.shtml
rename to FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs/index.shtml
diff --git a/Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs/io.shtml b/FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs/io.shtml
similarity index 100%
rename from Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs/io.shtml
rename to FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs/io.shtml
diff --git a/Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs/stats.shtml b/FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs/stats.shtml
similarity index 100%
rename from Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs/stats.shtml
rename to FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs/stats.shtml
diff --git a/Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs/tcp.shtml b/FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs/tcp.shtml
similarity index 100%
rename from Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs/tcp.shtml
rename to FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs/tcp.shtml
diff --git a/Demo/ARM7_LPC2368_Rowley/webserver/httpd-fsdata.c b/FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/httpd-fsdata.c
similarity index 100%
rename from Demo/ARM7_LPC2368_Rowley/webserver/httpd-fsdata.c
rename to FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/httpd-fsdata.c
diff --git a/Demo/ARM7_LPC2368_Rowley/webserver/httpd-fsdata.h b/FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/httpd-fsdata.h
similarity index 100%
rename from Demo/ARM7_LPC2368_Rowley/webserver/httpd-fsdata.h
rename to FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/httpd-fsdata.h
diff --git a/Demo/ARM7_LPC2368_Rowley/webserver/httpd.c b/FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/httpd.c
similarity index 100%
rename from Demo/ARM7_LPC2368_Rowley/webserver/httpd.c
rename to FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/httpd.c
diff --git a/Demo/ARM7_LPC2368_Rowley/webserver/httpd.h b/FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/httpd.h
similarity index 100%
rename from Demo/ARM7_LPC2368_Rowley/webserver/httpd.h
rename to FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/httpd.h
diff --git a/Demo/ARM7_LPC2368_Rowley/webserver/makefsdata b/FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/makefsdata
similarity index 100%
rename from Demo/ARM7_LPC2368_Rowley/webserver/makefsdata
rename to FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/makefsdata
diff --git a/Demo/ARM7_LPC2368_Rowley/webserver/makestrings b/FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/makestrings
similarity index 100%
rename from Demo/ARM7_LPC2368_Rowley/webserver/makestrings
rename to FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/makestrings
diff --git a/Demo/ARM7_LPC2368_Rowley/webserver/uIP_Task.c b/FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/uIP_Task.c
similarity index 100%
rename from Demo/ARM7_LPC2368_Rowley/webserver/uIP_Task.c
rename to FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/uIP_Task.c
diff --git a/Demo/ARM7_LPC2368_Rowley/webserver/uip-conf.h b/FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/uip-conf.h
similarity index 100%
rename from Demo/ARM7_LPC2368_Rowley/webserver/uip-conf.h
rename to FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/uip-conf.h
diff --git a/Demo/ARM7_LPC2368_Rowley/webserver/webserver.h b/FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/webserver.h
similarity index 100%
rename from Demo/ARM7_LPC2368_Rowley/webserver/webserver.h
rename to FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/webserver.h
diff --git a/Demo/ARM7_STR71x_IAR/71x_init.s b/FreeRTOS/Demo/ARM7_STR71x_IAR/71x_init.s
similarity index 100%
rename from Demo/ARM7_STR71x_IAR/71x_init.s
rename to FreeRTOS/Demo/ARM7_STR71x_IAR/71x_init.s
diff --git a/Demo/ARM7_STR71x_IAR/71x_vect.s b/FreeRTOS/Demo/ARM7_STR71x_IAR/71x_vect.s
similarity index 100%
rename from Demo/ARM7_STR71x_IAR/71x_vect.s
rename to FreeRTOS/Demo/ARM7_STR71x_IAR/71x_vect.s
diff --git a/Demo/ARM7_STR71x_IAR/FreeRTOSConfig.h b/FreeRTOS/Demo/ARM7_STR71x_IAR/FreeRTOSConfig.h
similarity index 100%
rename from Demo/ARM7_STR71x_IAR/FreeRTOSConfig.h
rename to FreeRTOS/Demo/ARM7_STR71x_IAR/FreeRTOSConfig.h
diff --git a/Demo/ARM7_STR71x_IAR/Library/71x_it.c b/FreeRTOS/Demo/ARM7_STR71x_IAR/Library/71x_it.c
similarity index 100%
rename from Demo/ARM7_STR71x_IAR/Library/71x_it.c
rename to FreeRTOS/Demo/ARM7_STR71x_IAR/Library/71x_it.c
diff --git a/Demo/ARM7_STR71x_IAR/Library/71x_lib.c b/FreeRTOS/Demo/ARM7_STR71x_IAR/Library/71x_lib.c
similarity index 100%
rename from Demo/ARM7_STR71x_IAR/Library/71x_lib.c
rename to FreeRTOS/Demo/ARM7_STR71x_IAR/Library/71x_lib.c
diff --git a/Demo/ARM7_STR71x_IAR/Library/gpio.c b/FreeRTOS/Demo/ARM7_STR71x_IAR/Library/gpio.c
similarity index 100%
rename from Demo/ARM7_STR71x_IAR/Library/gpio.c
rename to FreeRTOS/Demo/ARM7_STR71x_IAR/Library/gpio.c
diff --git a/Demo/ARM7_STR71x_IAR/Library/include/71x_conf.h b/FreeRTOS/Demo/ARM7_STR71x_IAR/Library/include/71x_conf.h
similarity index 100%
rename from Demo/ARM7_STR71x_IAR/Library/include/71x_conf.h
rename to FreeRTOS/Demo/ARM7_STR71x_IAR/Library/include/71x_conf.h
diff --git a/Demo/ARM7_STR71x_IAR/Library/include/71x_it.h b/FreeRTOS/Demo/ARM7_STR71x_IAR/Library/include/71x_it.h
similarity index 100%
rename from Demo/ARM7_STR71x_IAR/Library/include/71x_it.h
rename to FreeRTOS/Demo/ARM7_STR71x_IAR/Library/include/71x_it.h
diff --git a/Demo/ARM7_STR71x_IAR/Library/include/71x_lib.h b/FreeRTOS/Demo/ARM7_STR71x_IAR/Library/include/71x_lib.h
similarity index 100%
rename from Demo/ARM7_STR71x_IAR/Library/include/71x_lib.h
rename to FreeRTOS/Demo/ARM7_STR71x_IAR/Library/include/71x_lib.h
diff --git a/Demo/ARM7_STR71x_IAR/Library/include/71x_map.h b/FreeRTOS/Demo/ARM7_STR71x_IAR/Library/include/71x_map.h
similarity index 100%
rename from Demo/ARM7_STR71x_IAR/Library/include/71x_map.h
rename to FreeRTOS/Demo/ARM7_STR71x_IAR/Library/include/71x_map.h
diff --git a/Demo/ARM7_STR71x_IAR/Library/include/71x_type.h b/FreeRTOS/Demo/ARM7_STR71x_IAR/Library/include/71x_type.h
similarity index 100%
rename from Demo/ARM7_STR71x_IAR/Library/include/71x_type.h
rename to FreeRTOS/Demo/ARM7_STR71x_IAR/Library/include/71x_type.h
diff --git a/Demo/ARM7_STR71x_IAR/Library/include/eic.h b/FreeRTOS/Demo/ARM7_STR71x_IAR/Library/include/eic.h
similarity index 100%
rename from Demo/ARM7_STR71x_IAR/Library/include/eic.h
rename to FreeRTOS/Demo/ARM7_STR71x_IAR/Library/include/eic.h
diff --git a/Demo/ARM7_STR71x_IAR/Library/include/gpio.h b/FreeRTOS/Demo/ARM7_STR71x_IAR/Library/include/gpio.h
similarity index 100%
rename from Demo/ARM7_STR71x_IAR/Library/include/gpio.h
rename to FreeRTOS/Demo/ARM7_STR71x_IAR/Library/include/gpio.h
diff --git a/Demo/ARM7_STR71x_IAR/Library/include/pcu.h b/FreeRTOS/Demo/ARM7_STR71x_IAR/Library/include/pcu.h
similarity index 100%
rename from Demo/ARM7_STR71x_IAR/Library/include/pcu.h
rename to FreeRTOS/Demo/ARM7_STR71x_IAR/Library/include/pcu.h
diff --git a/Demo/ARM7_STR71x_IAR/Library/include/rccu.h b/FreeRTOS/Demo/ARM7_STR71x_IAR/Library/include/rccu.h
similarity index 100%
rename from Demo/ARM7_STR71x_IAR/Library/include/rccu.h
rename to FreeRTOS/Demo/ARM7_STR71x_IAR/Library/include/rccu.h
diff --git a/Demo/ARM7_STR71x_IAR/Library/include/tim.h b/FreeRTOS/Demo/ARM7_STR71x_IAR/Library/include/tim.h
similarity index 100%
rename from Demo/ARM7_STR71x_IAR/Library/include/tim.h
rename to FreeRTOS/Demo/ARM7_STR71x_IAR/Library/include/tim.h
diff --git a/Demo/ARM7_STR71x_IAR/Library/include/uart.h b/FreeRTOS/Demo/ARM7_STR71x_IAR/Library/include/uart.h
similarity index 100%
rename from Demo/ARM7_STR71x_IAR/Library/include/uart.h
rename to FreeRTOS/Demo/ARM7_STR71x_IAR/Library/include/uart.h
diff --git a/Demo/ARM7_STR71x_IAR/Library/include/wdg.h b/FreeRTOS/Demo/ARM7_STR71x_IAR/Library/include/wdg.h
similarity index 100%
rename from Demo/ARM7_STR71x_IAR/Library/include/wdg.h
rename to FreeRTOS/Demo/ARM7_STR71x_IAR/Library/include/wdg.h
diff --git a/Demo/ARM7_STR71x_IAR/Library/rccu.c b/FreeRTOS/Demo/ARM7_STR71x_IAR/Library/rccu.c
similarity index 100%
rename from Demo/ARM7_STR71x_IAR/Library/rccu.c
rename to FreeRTOS/Demo/ARM7_STR71x_IAR/Library/rccu.c
diff --git a/Demo/ARM7_STR71x_IAR/Library/uart.c b/FreeRTOS/Demo/ARM7_STR71x_IAR/Library/uart.c
similarity index 100%
rename from Demo/ARM7_STR71x_IAR/Library/uart.c
rename to FreeRTOS/Demo/ARM7_STR71x_IAR/Library/uart.c
diff --git a/Demo/ARM7_STR71x_IAR/Library/wdg.c b/FreeRTOS/Demo/ARM7_STR71x_IAR/Library/wdg.c
similarity index 100%
rename from Demo/ARM7_STR71x_IAR/Library/wdg.c
rename to FreeRTOS/Demo/ARM7_STR71x_IAR/Library/wdg.c
diff --git a/Demo/ARM7_STR71x_IAR/ParTest/ParTest.c b/FreeRTOS/Demo/ARM7_STR71x_IAR/ParTest/ParTest.c
similarity index 100%
rename from Demo/ARM7_STR71x_IAR/ParTest/ParTest.c
rename to FreeRTOS/Demo/ARM7_STR71x_IAR/ParTest/ParTest.c
diff --git a/Demo/ARM7_STR71x_IAR/RTOSDemo.ewd b/FreeRTOS/Demo/ARM7_STR71x_IAR/RTOSDemo.ewd
similarity index 100%
rename from Demo/ARM7_STR71x_IAR/RTOSDemo.ewd
rename to FreeRTOS/Demo/ARM7_STR71x_IAR/RTOSDemo.ewd
diff --git a/Demo/ARM7_STR71x_IAR/RTOSDemo.ewp b/FreeRTOS/Demo/ARM7_STR71x_IAR/RTOSDemo.ewp
similarity index 100%
rename from Demo/ARM7_STR71x_IAR/RTOSDemo.ewp
rename to FreeRTOS/Demo/ARM7_STR71x_IAR/RTOSDemo.ewp
diff --git a/Demo/ARM7_STR71x_IAR/RTOSDemo.eww b/FreeRTOS/Demo/ARM7_STR71x_IAR/RTOSDemo.eww
similarity index 100%
rename from Demo/ARM7_STR71x_IAR/RTOSDemo.eww
rename to FreeRTOS/Demo/ARM7_STR71x_IAR/RTOSDemo.eww
diff --git a/Demo/ARM7_STR71x_IAR/STR71x_FLASH.icf b/FreeRTOS/Demo/ARM7_STR71x_IAR/STR71x_FLASH.icf
similarity index 100%
rename from Demo/ARM7_STR71x_IAR/STR71x_FLASH.icf
rename to FreeRTOS/Demo/ARM7_STR71x_IAR/STR71x_FLASH.icf
diff --git a/Demo/ARM7_STR71x_IAR/main.c b/FreeRTOS/Demo/ARM7_STR71x_IAR/main.c
similarity index 100%
rename from Demo/ARM7_STR71x_IAR/main.c
rename to FreeRTOS/Demo/ARM7_STR71x_IAR/main.c
diff --git a/Demo/ARM7_STR71x_IAR/serial/serial.c b/FreeRTOS/Demo/ARM7_STR71x_IAR/serial/serial.c
similarity index 100%
rename from Demo/ARM7_STR71x_IAR/serial/serial.c
rename to FreeRTOS/Demo/ARM7_STR71x_IAR/serial/serial.c
diff --git a/Demo/ARM7_STR71x_IAR/serial/serialISR.s79 b/FreeRTOS/Demo/ARM7_STR71x_IAR/serial/serialISR.s79
similarity index 100%
rename from Demo/ARM7_STR71x_IAR/serial/serialISR.s79
rename to FreeRTOS/Demo/ARM7_STR71x_IAR/serial/serialISR.s79
diff --git a/Demo/ARM7_STR71x_IAR/settings/RTOSDemo.dbgdt b/FreeRTOS/Demo/ARM7_STR71x_IAR/settings/RTOSDemo.dbgdt
similarity index 100%
rename from Demo/ARM7_STR71x_IAR/settings/RTOSDemo.dbgdt
rename to FreeRTOS/Demo/ARM7_STR71x_IAR/settings/RTOSDemo.dbgdt
diff --git a/Demo/ARM7_STR71x_IAR/settings/RTOSDemo.dni b/FreeRTOS/Demo/ARM7_STR71x_IAR/settings/RTOSDemo.dni
similarity index 100%
rename from Demo/ARM7_STR71x_IAR/settings/RTOSDemo.dni
rename to FreeRTOS/Demo/ARM7_STR71x_IAR/settings/RTOSDemo.dni
diff --git a/Demo/ARM7_STR71x_IAR/settings/RTOSDemo.wsdt b/FreeRTOS/Demo/ARM7_STR71x_IAR/settings/RTOSDemo.wsdt
similarity index 100%
rename from Demo/ARM7_STR71x_IAR/settings/RTOSDemo.wsdt
rename to FreeRTOS/Demo/ARM7_STR71x_IAR/settings/RTOSDemo.wsdt
diff --git a/Demo/ARM7_STR75x_GCC/FreeRTOSConfig.h b/FreeRTOS/Demo/ARM7_STR75x_GCC/FreeRTOSConfig.h
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/FreeRTOSConfig.h
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/FreeRTOSConfig.h
diff --git a/Demo/ARM7_STR75x_GCC/ParTest/ParTest.c b/FreeRTOS/Demo/ARM7_STR75x_GCC/ParTest/ParTest.c
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/ParTest/ParTest.c
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/ParTest/ParTest.c
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_adc.h b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_adc.h
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_adc.h
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_adc.h
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_can.h b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_can.h
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_can.h
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_can.h
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_cfg.h b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_cfg.h
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_cfg.h
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_cfg.h
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_conf.h b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_conf.h
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_conf.h
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_conf.h
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_dma.h b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_dma.h
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_dma.h
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_dma.h
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_eic.h b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_eic.h
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_eic.h
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_eic.h
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_extit.h b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_extit.h
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_extit.h
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_extit.h
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_gpio.h b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_gpio.h
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_gpio.h
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_gpio.h
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_i2c.h b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_i2c.h
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_i2c.h
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_i2c.h
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_lib.h b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_lib.h
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_lib.h
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_lib.h
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_map.h b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_map.h
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_map.h
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_map.h
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_mrcc.h b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_mrcc.h
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_mrcc.h
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_mrcc.h
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_pwm.h b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_pwm.h
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_pwm.h
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_pwm.h
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_rtc.h b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_rtc.h
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_rtc.h
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_rtc.h
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_smi.h b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_smi.h
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_smi.h
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_smi.h
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_ssp.h b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_ssp.h
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_ssp.h
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_ssp.h
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_tb.h b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_tb.h
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_tb.h
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_tb.h
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_tim.h b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_tim.h
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_tim.h
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_tim.h
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_type.h b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_type.h
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_type.h
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_type.h
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_uart.h b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_uart.h
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_uart.h
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_uart.h
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_wdg.h b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_wdg.h
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_wdg.h
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_wdg.h
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/inc/lcd.h b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/lcd.h
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/inc/lcd.h
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/lcd.h
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_adc.c b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_adc.c
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/src/75x_adc.c
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_adc.c
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_can.c b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_can.c
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/src/75x_can.c
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_can.c
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_cfg.c b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_cfg.c
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/src/75x_cfg.c
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_cfg.c
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_dma.c b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_dma.c
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/src/75x_dma.c
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_dma.c
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_eic.c b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_eic.c
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/src/75x_eic.c
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_eic.c
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_extit.c b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_extit.c
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/src/75x_extit.c
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_extit.c
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_gpio.c b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_gpio.c
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/src/75x_gpio.c
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_gpio.c
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_i2c.c b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_i2c.c
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/src/75x_i2c.c
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_i2c.c
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_it.c b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_it.c
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/src/75x_it.c
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_it.c
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_lib.c b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_lib.c
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/src/75x_lib.c
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_lib.c
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_mrcc.c b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_mrcc.c
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/src/75x_mrcc.c
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_mrcc.c
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_pwm.c b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_pwm.c
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/src/75x_pwm.c
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_pwm.c
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_rtc.c b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_rtc.c
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/src/75x_rtc.c
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_rtc.c
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_smi.c b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_smi.c
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/src/75x_smi.c
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_smi.c
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_ssp.c b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_ssp.c
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/src/75x_ssp.c
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_ssp.c
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_tb.c b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_tb.c
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/src/75x_tb.c
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_tb.c
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_tim.c b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_tim.c
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/src/75x_tim.c
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_tim.c
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_uart.c b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_uart.c
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/src/75x_uart.c
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_uart.c
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_wdg.c b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_wdg.c
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/src/75x_wdg.c
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/75x_wdg.c
diff --git a/Demo/ARM7_STR75x_GCC/STLibrary/src/lcd.c b/FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/lcd.c
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/STLibrary/src/lcd.c
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/src/lcd.c
diff --git a/Demo/ARM7_STR75x_GCC/SystemFiles/STR75xFx0_DEF_FreeRTOS.ld b/FreeRTOS/Demo/ARM7_STR75x_GCC/SystemFiles/STR75xFx0_DEF_FreeRTOS.ld
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/SystemFiles/STR75xFx0_DEF_FreeRTOS.ld
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/SystemFiles/STR75xFx0_DEF_FreeRTOS.ld
diff --git a/Demo/ARM7_STR75x_GCC/SystemFiles/STR75xFx0_FLASH_FreeRTOS.ld b/FreeRTOS/Demo/ARM7_STR75x_GCC/SystemFiles/STR75xFx0_FLASH_FreeRTOS.ld
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/SystemFiles/STR75xFx0_FLASH_FreeRTOS.ld
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/SystemFiles/STR75xFx0_FLASH_FreeRTOS.ld
diff --git a/Demo/ARM7_STR75x_GCC/SystemFiles/STR75x_COMMON_FreeRTOS.ld b/FreeRTOS/Demo/ARM7_STR75x_GCC/SystemFiles/STR75x_COMMON_FreeRTOS.ld
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/SystemFiles/STR75x_COMMON_FreeRTOS.ld
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/SystemFiles/STR75x_COMMON_FreeRTOS.ld
diff --git a/Demo/ARM7_STR75x_GCC/SystemFiles/crt0_STR75x_FreeRTOS.s b/FreeRTOS/Demo/ARM7_STR75x_GCC/SystemFiles/crt0_STR75x_FreeRTOS.s
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/SystemFiles/crt0_STR75x_FreeRTOS.s
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/SystemFiles/crt0_STR75x_FreeRTOS.s
diff --git a/Demo/ARM7_STR75x_GCC/SystemFiles/sections_FLASH_FreeRTOS.ld b/FreeRTOS/Demo/ARM7_STR75x_GCC/SystemFiles/sections_FLASH_FreeRTOS.ld
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/SystemFiles/sections_FLASH_FreeRTOS.ld
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/SystemFiles/sections_FLASH_FreeRTOS.ld
diff --git a/Demo/ARM7_STR75x_GCC/main.c b/FreeRTOS/Demo/ARM7_STR75x_GCC/main.c
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/main.c
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/main.c
diff --git a/Demo/ARM7_STR75x_GCC/rtosdemo.prj b/FreeRTOS/Demo/ARM7_STR75x_GCC/rtosdemo.prj
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/rtosdemo.prj
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/rtosdemo.prj
diff --git a/Demo/ARM7_STR75x_GCC/serial/serial.c b/FreeRTOS/Demo/ARM7_STR75x_GCC/serial/serial.c
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/serial/serial.c
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/serial/serial.c
diff --git a/Demo/ARM7_STR75x_GCC/serial/serialISR.c b/FreeRTOS/Demo/ARM7_STR75x_GCC/serial/serialISR.c
similarity index 100%
rename from Demo/ARM7_STR75x_GCC/serial/serialISR.c
rename to FreeRTOS/Demo/ARM7_STR75x_GCC/serial/serialISR.c
diff --git a/Demo/ARM7_STR75x_IAR/75x_init.s b/FreeRTOS/Demo/ARM7_STR75x_IAR/75x_init.s
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/75x_init.s
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/75x_init.s
diff --git a/Demo/ARM7_STR75x_IAR/75x_vect.s b/FreeRTOS/Demo/ARM7_STR75x_IAR/75x_vect.s
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/75x_vect.s
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/75x_vect.s
diff --git a/Demo/ARM7_STR75x_IAR/FreeRTOSConfig.h b/FreeRTOS/Demo/ARM7_STR75x_IAR/FreeRTOSConfig.h
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/FreeRTOSConfig.h
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/FreeRTOSConfig.h
diff --git a/Demo/ARM7_STR75x_IAR/ParTest/ParTest.c b/FreeRTOS/Demo/ARM7_STR75x_IAR/ParTest/ParTest.c
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/ParTest/ParTest.c
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/ParTest/ParTest.c
diff --git a/Demo/ARM7_STR75x_IAR/RTOSDemo.ewd b/FreeRTOS/Demo/ARM7_STR75x_IAR/RTOSDemo.ewd
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/RTOSDemo.ewd
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/RTOSDemo.ewd
diff --git a/Demo/ARM7_STR75x_IAR/RTOSDemo.ewp b/FreeRTOS/Demo/ARM7_STR75x_IAR/RTOSDemo.ewp
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/RTOSDemo.ewp
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/RTOSDemo.ewp
diff --git a/Demo/ARM7_STR75x_IAR/RTOSDemo.eww b/FreeRTOS/Demo/ARM7_STR75x_IAR/RTOSDemo.eww
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/RTOSDemo.eww
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/RTOSDemo.eww
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_adc.h b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_adc.h
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_adc.h
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_adc.h
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_can.h b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_can.h
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_can.h
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_can.h
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_cfg.h b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_cfg.h
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_cfg.h
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_cfg.h
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_conf.h b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_conf.h
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_conf.h
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_conf.h
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_dma.h b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_dma.h
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_dma.h
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_dma.h
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_eic.h b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_eic.h
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_eic.h
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_eic.h
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_extit.h b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_extit.h
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_extit.h
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_extit.h
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_gpio.h b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_gpio.h
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_gpio.h
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_gpio.h
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_i2c.h b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_i2c.h
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_i2c.h
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_i2c.h
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_lib.h b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_lib.h
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_lib.h
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_lib.h
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_map.h b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_map.h
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_map.h
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_map.h
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_mrcc.h b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_mrcc.h
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_mrcc.h
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_mrcc.h
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_pwm.h b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_pwm.h
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_pwm.h
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_pwm.h
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_rtc.h b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_rtc.h
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_rtc.h
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_rtc.h
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_smi.h b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_smi.h
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_smi.h
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_smi.h
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_ssp.h b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_ssp.h
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_ssp.h
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_ssp.h
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_tb.h b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_tb.h
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_tb.h
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_tb.h
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_tim.h b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_tim.h
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_tim.h
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_tim.h
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_type.h b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_type.h
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_type.h
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_type.h
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_uart.h b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_uart.h
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_uart.h
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_uart.h
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_wdg.h b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_wdg.h
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_wdg.h
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_wdg.h
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/inc/lcd.h b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/lcd.h
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/inc/lcd.h
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/inc/lcd.h
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_adc.c b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_adc.c
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/src/75x_adc.c
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_adc.c
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_can.c b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_can.c
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/src/75x_can.c
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_can.c
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_cfg.c b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_cfg.c
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/src/75x_cfg.c
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_cfg.c
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_dma.c b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_dma.c
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/src/75x_dma.c
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_dma.c
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_eic.c b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_eic.c
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/src/75x_eic.c
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_eic.c
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_extit.c b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_extit.c
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/src/75x_extit.c
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_extit.c
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_gpio.c b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_gpio.c
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/src/75x_gpio.c
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_gpio.c
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_i2c.c b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_i2c.c
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/src/75x_i2c.c
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_i2c.c
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_it.c b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_it.c
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/src/75x_it.c
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_it.c
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_lib.c b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_lib.c
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/src/75x_lib.c
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_lib.c
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_mrcc.c b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_mrcc.c
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/src/75x_mrcc.c
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_mrcc.c
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_pwm.c b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_pwm.c
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/src/75x_pwm.c
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_pwm.c
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_rtc.c b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_rtc.c
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/src/75x_rtc.c
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_rtc.c
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_smi.c b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_smi.c
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/src/75x_smi.c
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_smi.c
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_ssp.c b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_ssp.c
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/src/75x_ssp.c
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_ssp.c
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_tb.c b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_tb.c
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/src/75x_tb.c
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_tb.c
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_tim.c b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_tim.c
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/src/75x_tim.c
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_tim.c
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_uart.c b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_uart.c
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/src/75x_uart.c
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_uart.c
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_wdg.c b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_wdg.c
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/src/75x_wdg.c
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/75x_wdg.c
diff --git a/Demo/ARM7_STR75x_IAR/STLibrary/src/lcd.c b/FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/lcd.c
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STLibrary/src/lcd.c
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STLibrary/src/lcd.c
diff --git a/Demo/ARM7_STR75x_IAR/STR75x_FLASH.icf b/FreeRTOS/Demo/ARM7_STR75x_IAR/STR75x_FLASH.icf
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/STR75x_FLASH.icf
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/STR75x_FLASH.icf
diff --git a/Demo/ARM7_STR75x_IAR/main.c b/FreeRTOS/Demo/ARM7_STR75x_IAR/main.c
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/main.c
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/main.c
diff --git a/Demo/ARM7_STR75x_IAR/serial/serial.c b/FreeRTOS/Demo/ARM7_STR75x_IAR/serial/serial.c
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/serial/serial.c
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/serial/serial.c
diff --git a/Demo/ARM7_STR75x_IAR/settings/RTOSDemo.dbgdt b/FreeRTOS/Demo/ARM7_STR75x_IAR/settings/RTOSDemo.dbgdt
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/settings/RTOSDemo.dbgdt
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/settings/RTOSDemo.dbgdt
diff --git a/Demo/ARM7_STR75x_IAR/settings/RTOSDemo.dni b/FreeRTOS/Demo/ARM7_STR75x_IAR/settings/RTOSDemo.dni
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/settings/RTOSDemo.dni
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/settings/RTOSDemo.dni
diff --git a/Demo/ARM7_STR75x_IAR/settings/RTOSDemo.wsdt b/FreeRTOS/Demo/ARM7_STR75x_IAR/settings/RTOSDemo.wsdt
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/settings/RTOSDemo.wsdt
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/settings/RTOSDemo.wsdt
diff --git a/Demo/ARM7_STR75x_IAR/settings/RTOSDemo_lnk.par b/FreeRTOS/Demo/ARM7_STR75x_IAR/settings/RTOSDemo_lnk.par
similarity index 100%
rename from Demo/ARM7_STR75x_IAR/settings/RTOSDemo_lnk.par
rename to FreeRTOS/Demo/ARM7_STR75x_IAR/settings/RTOSDemo_lnk.par
diff --git a/Demo/ARM9_AT91SAM9XE_IAR/FreeRTOSConfig.h b/FreeRTOS/Demo/ARM9_AT91SAM9XE_IAR/FreeRTOSConfig.h
similarity index 100%
rename from Demo/ARM9_AT91SAM9XE_IAR/FreeRTOSConfig.h
rename to FreeRTOS/Demo/ARM9_AT91SAM9XE_IAR/FreeRTOSConfig.h
diff --git a/Demo/ARM9_AT91SAM9XE_IAR/ParTest/ParTest.c b/FreeRTOS/Demo/ARM9_AT91SAM9XE_IAR/ParTest/ParTest.c
similarity index 100%
rename from Demo/ARM9_AT91SAM9XE_IAR/ParTest/ParTest.c
rename to FreeRTOS/Demo/ARM9_AT91SAM9XE_IAR/ParTest/ParTest.c
diff --git a/Demo/ARM9_AT91SAM9XE_IAR/RTOSDemo.eww b/FreeRTOS/Demo/ARM9_AT91SAM9XE_IAR/RTOSDemo.eww
similarity index 100%
rename from Demo/ARM9_AT91SAM9XE_IAR/RTOSDemo.eww
rename to FreeRTOS/Demo/ARM9_AT91SAM9XE_IAR/RTOSDemo.eww
diff --git a/Demo/ARM9_AT91SAM9XE_IAR/ewp/at91sam9xe-ek-flash.mac b/FreeRTOS/Demo/ARM9_AT91SAM9XE_IAR/ewp/at91sam9xe-ek-flash.mac
similarity index 100%
rename from Demo/ARM9_AT91SAM9XE_IAR/ewp/at91sam9xe-ek-flash.mac
rename to FreeRTOS/Demo/ARM9_AT91SAM9XE_IAR/ewp/at91sam9xe-ek-flash.mac
diff --git a/Demo/ARM9_AT91SAM9XE_IAR/ewp/at91sam9xe-ek-sdram.mac b/FreeRTOS/Demo/ARM9_AT91SAM9XE_IAR/ewp/at91sam9xe-ek-sdram.mac
similarity index 100%
rename from Demo/ARM9_AT91SAM9XE_IAR/ewp/at91sam9xe-ek-sdram.mac
rename to FreeRTOS/Demo/ARM9_AT91SAM9XE_IAR/ewp/at91sam9xe-ek-sdram.mac
diff --git a/Demo/ARM9_AT91SAM9XE_IAR/ewp/at91sam9xe-ek-sram.mac b/FreeRTOS/Demo/ARM9_AT91SAM9XE_IAR/ewp/at91sam9xe-ek-sram.mac
similarity index 100%
rename from Demo/ARM9_AT91SAM9XE_IAR/ewp/at91sam9xe-ek-sram.mac
rename to FreeRTOS/Demo/ARM9_AT91SAM9XE_IAR/ewp/at91sam9xe-ek-sram.mac
diff --git a/Demo/ARM9_AT91SAM9XE_IAR/ewp/at91sam9xe-ek.ewd b/FreeRTOS/Demo/ARM9_AT91SAM9XE_IAR/ewp/at91sam9xe-ek.ewd
similarity index 100%
rename from Demo/ARM9_AT91SAM9XE_IAR/ewp/at91sam9xe-ek.ewd
rename to FreeRTOS/Demo/ARM9_AT91SAM9XE_IAR/ewp/at91sam9xe-ek.ewd
diff --git a/Demo/ARM9_AT91SAM9XE_IAR/ewp/at91sam9xe-ek.ewp b/FreeRTOS/Demo/ARM9_AT91SAM9XE_IAR/ewp/at91sam9xe-ek.ewp
similarity index 100%
rename from Demo/ARM9_AT91SAM9XE_IAR/ewp/at91sam9xe-ek.ewp
rename to FreeRTOS/Demo/ARM9_AT91SAM9XE_IAR/ewp/at91sam9xe-ek.ewp
diff --git a/Demo/ARM9_AT91SAM9XE_IAR/ewp/flash.icf b/FreeRTOS/Demo/ARM9_AT91SAM9XE_IAR/ewp/flash.icf
similarity index 100%
rename from Demo/ARM9_AT91SAM9XE_IAR/ewp/flash.icf
rename to FreeRTOS/Demo/ARM9_AT91SAM9XE_IAR/ewp/flash.icf
diff --git a/Demo/ARM9_AT91SAM9XE_IAR/ewp/sdram.icf b/FreeRTOS/Demo/ARM9_AT91SAM9XE_IAR/ewp/sdram.icf
similarity index 100%
rename from Demo/ARM9_AT91SAM9XE_IAR/ewp/sdram.icf
rename to FreeRTOS/Demo/ARM9_AT91SAM9XE_IAR/ewp/sdram.icf
diff --git a/Demo/ARM9_AT91SAM9XE_IAR/ewp/settings/at91sam9xe-ek.cspy.bat b/FreeRTOS/Demo/ARM9_AT91SAM9XE_IAR/ewp/settings/at91sam9xe-ek.cspy.bat
similarity index 100%
rename from Demo/ARM9_AT91SAM9XE_IAR/ewp/settings/at91sam9xe-ek.cspy.bat
rename to FreeRTOS/Demo/ARM9_AT91SAM9XE_IAR/ewp/settings/at91sam9xe-ek.cspy.bat
diff --git a/Demo/ARM9_AT91SAM9XE_IAR/ewp/settings/at91sam9xe-ek.dbgdt b/FreeRTOS/Demo/ARM9_AT91SAM9XE_IAR/ewp/settings/at91sam9xe-ek.dbgdt
similarity index 100%
rename from Demo/ARM9_AT91SAM9XE_IAR/ewp/settings/at91sam9xe-ek.dbgdt
rename to FreeRTOS/Demo/ARM9_AT91SAM9XE_IAR/ewp/settings/at91sam9xe-ek.dbgdt
diff --git a/Demo/ARM9_AT91SAM9XE_IAR/ewp/settings/at91sam9xe-ek.dni b/FreeRTOS/Demo/ARM9_AT91SAM9XE_IAR/ewp/settings/at91sam9xe-ek.dni
similarity index 100%
rename from Demo/ARM9_AT91SAM9XE_IAR/ewp/settings/at91sam9xe-ek.dni
rename to FreeRTOS/Demo/ARM9_AT91SAM9XE_IAR/ewp/settings/at91sam9xe-ek.dni
diff --git a/Demo/ARM9_AT91SAM9XE_IAR/main.c b/FreeRTOS/Demo/ARM9_AT91SAM9XE_IAR/main.c
similarity index 100%
rename from Demo/ARM9_AT91SAM9XE_IAR/main.c
rename to FreeRTOS/Demo/ARM9_AT91SAM9XE_IAR/main.c
diff --git a/Demo/ARM9_AT91SAM9XE_IAR/serial/serial.c b/FreeRTOS/Demo/ARM9_AT91SAM9XE_IAR/serial/serial.c
similarity index 100%
rename from Demo/ARM9_AT91SAM9XE_IAR/serial/serial.c
rename to FreeRTOS/Demo/ARM9_AT91SAM9XE_IAR/serial/serial.c
diff --git a/Demo/ARM9_AT91SAM9XE_IAR/settings/rtosdemo.wsdt b/FreeRTOS/Demo/ARM9_AT91SAM9XE_IAR/settings/rtosdemo.wsdt
similarity index 100%
rename from Demo/ARM9_AT91SAM9XE_IAR/settings/rtosdemo.wsdt
rename to FreeRTOS/Demo/ARM9_AT91SAM9XE_IAR/settings/rtosdemo.wsdt
diff --git a/Demo/ARM9_STR91X_IAR/91x_init.s b/FreeRTOS/Demo/ARM9_STR91X_IAR/91x_init.s
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/91x_init.s
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/91x_init.s
diff --git a/Demo/ARM9_STR91X_IAR/91x_init_IAR.s b/FreeRTOS/Demo/ARM9_STR91X_IAR/91x_init_IAR.s
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/91x_init_IAR.s
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/91x_init_IAR.s
diff --git a/Demo/ARM9_STR91X_IAR/91x_vect.s b/FreeRTOS/Demo/ARM9_STR91X_IAR/91x_vect.s
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/91x_vect.s
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/91x_vect.s
diff --git a/Demo/ARM9_STR91X_IAR/91x_vect_IAR.s b/FreeRTOS/Demo/ARM9_STR91X_IAR/91x_vect_IAR.s
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/91x_vect_IAR.s
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/91x_vect_IAR.s
diff --git a/Demo/ARM9_STR91X_IAR/FreeRTOSConfig.h b/FreeRTOS/Demo/ARM9_STR91X_IAR/FreeRTOSConfig.h
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/FreeRTOSConfig.h
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/FreeRTOSConfig.h
diff --git a/Demo/ARM9_STR91X_IAR/Library/include/91x_ahbapb.h b/FreeRTOS/Demo/ARM9_STR91X_IAR/Library/include/91x_ahbapb.h
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/Library/include/91x_ahbapb.h
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/Library/include/91x_ahbapb.h
diff --git a/Demo/ARM9_STR91X_IAR/Library/include/91x_conf.h b/FreeRTOS/Demo/ARM9_STR91X_IAR/Library/include/91x_conf.h
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/Library/include/91x_conf.h
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/Library/include/91x_conf.h
diff --git a/Demo/ARM9_STR91X_IAR/Library/include/91x_dma.h b/FreeRTOS/Demo/ARM9_STR91X_IAR/Library/include/91x_dma.h
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/Library/include/91x_dma.h
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/Library/include/91x_dma.h
diff --git a/Demo/ARM9_STR91X_IAR/Library/include/91x_enet.h b/FreeRTOS/Demo/ARM9_STR91X_IAR/Library/include/91x_enet.h
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/Library/include/91x_enet.h
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/Library/include/91x_enet.h
diff --git a/Demo/ARM9_STR91X_IAR/Library/include/91x_fmi.h b/FreeRTOS/Demo/ARM9_STR91X_IAR/Library/include/91x_fmi.h
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/Library/include/91x_fmi.h
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/Library/include/91x_fmi.h
diff --git a/Demo/ARM9_STR91X_IAR/Library/include/91x_gpio.h b/FreeRTOS/Demo/ARM9_STR91X_IAR/Library/include/91x_gpio.h
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/Library/include/91x_gpio.h
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/Library/include/91x_gpio.h
diff --git a/Demo/ARM9_STR91X_IAR/Library/include/91x_it.h b/FreeRTOS/Demo/ARM9_STR91X_IAR/Library/include/91x_it.h
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/Library/include/91x_it.h
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/Library/include/91x_it.h
diff --git a/Demo/ARM9_STR91X_IAR/Library/include/91x_lib.h b/FreeRTOS/Demo/ARM9_STR91X_IAR/Library/include/91x_lib.h
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/Library/include/91x_lib.h
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/Library/include/91x_lib.h
diff --git a/Demo/ARM9_STR91X_IAR/Library/include/91x_map.h b/FreeRTOS/Demo/ARM9_STR91X_IAR/Library/include/91x_map.h
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/Library/include/91x_map.h
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/Library/include/91x_map.h
diff --git a/Demo/ARM9_STR91X_IAR/Library/include/91x_scu.h b/FreeRTOS/Demo/ARM9_STR91X_IAR/Library/include/91x_scu.h
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/Library/include/91x_scu.h
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/Library/include/91x_scu.h
diff --git a/Demo/ARM9_STR91X_IAR/Library/include/91x_tim.h b/FreeRTOS/Demo/ARM9_STR91X_IAR/Library/include/91x_tim.h
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/Library/include/91x_tim.h
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/Library/include/91x_tim.h
diff --git a/Demo/ARM9_STR91X_IAR/Library/include/91x_type.h b/FreeRTOS/Demo/ARM9_STR91X_IAR/Library/include/91x_type.h
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/Library/include/91x_type.h
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/Library/include/91x_type.h
diff --git a/Demo/ARM9_STR91X_IAR/Library/include/91x_uart.h b/FreeRTOS/Demo/ARM9_STR91X_IAR/Library/include/91x_uart.h
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/Library/include/91x_uart.h
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/Library/include/91x_uart.h
diff --git a/Demo/ARM9_STR91X_IAR/Library/include/91x_vic.h b/FreeRTOS/Demo/ARM9_STR91X_IAR/Library/include/91x_vic.h
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/Library/include/91x_vic.h
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/Library/include/91x_vic.h
diff --git a/Demo/ARM9_STR91X_IAR/Library/include/91x_wdg.h b/FreeRTOS/Demo/ARM9_STR91X_IAR/Library/include/91x_wdg.h
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/Library/include/91x_wdg.h
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/Library/include/91x_wdg.h
diff --git a/Demo/ARM9_STR91X_IAR/Library/source/91x_can.c b/FreeRTOS/Demo/ARM9_STR91X_IAR/Library/source/91x_can.c
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/Library/source/91x_can.c
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/Library/source/91x_can.c
diff --git a/Demo/ARM9_STR91X_IAR/Library/source/91x_enet.c b/FreeRTOS/Demo/ARM9_STR91X_IAR/Library/source/91x_enet.c
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/Library/source/91x_enet.c
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/Library/source/91x_enet.c
diff --git a/Demo/ARM9_STR91X_IAR/Library/source/91x_fmi.c b/FreeRTOS/Demo/ARM9_STR91X_IAR/Library/source/91x_fmi.c
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/Library/source/91x_fmi.c
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/Library/source/91x_fmi.c
diff --git a/Demo/ARM9_STR91X_IAR/Library/source/91x_gpio.c b/FreeRTOS/Demo/ARM9_STR91X_IAR/Library/source/91x_gpio.c
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/Library/source/91x_gpio.c
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/Library/source/91x_gpio.c
diff --git a/Demo/ARM9_STR91X_IAR/Library/source/91x_it.c b/FreeRTOS/Demo/ARM9_STR91X_IAR/Library/source/91x_it.c
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/Library/source/91x_it.c
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/Library/source/91x_it.c
diff --git a/Demo/ARM9_STR91X_IAR/Library/source/91x_lib.c b/FreeRTOS/Demo/ARM9_STR91X_IAR/Library/source/91x_lib.c
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/Library/source/91x_lib.c
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/Library/source/91x_lib.c
diff --git a/Demo/ARM9_STR91X_IAR/Library/source/91x_scu.c b/FreeRTOS/Demo/ARM9_STR91X_IAR/Library/source/91x_scu.c
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/Library/source/91x_scu.c
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/Library/source/91x_scu.c
diff --git a/Demo/ARM9_STR91X_IAR/Library/source/91x_tim.c b/FreeRTOS/Demo/ARM9_STR91X_IAR/Library/source/91x_tim.c
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/Library/source/91x_tim.c
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/Library/source/91x_tim.c
diff --git a/Demo/ARM9_STR91X_IAR/Library/source/91x_uart.c b/FreeRTOS/Demo/ARM9_STR91X_IAR/Library/source/91x_uart.c
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/Library/source/91x_uart.c
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/Library/source/91x_uart.c
diff --git a/Demo/ARM9_STR91X_IAR/Library/source/91x_vic.c b/FreeRTOS/Demo/ARM9_STR91X_IAR/Library/source/91x_vic.c
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/Library/source/91x_vic.c
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/Library/source/91x_vic.c
diff --git a/Demo/ARM9_STR91X_IAR/Library/source/91x_wdg.c b/FreeRTOS/Demo/ARM9_STR91X_IAR/Library/source/91x_wdg.c
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/Library/source/91x_wdg.c
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/Library/source/91x_wdg.c
diff --git a/Demo/ARM9_STR91X_IAR/ParTest/ParTest.c b/FreeRTOS/Demo/ARM9_STR91X_IAR/ParTest/ParTest.c
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/ParTest/ParTest.c
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/ParTest/ParTest.c
diff --git a/Demo/ARM9_STR91X_IAR/RTOSDemo.ewd b/FreeRTOS/Demo/ARM9_STR91X_IAR/RTOSDemo.ewd
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/RTOSDemo.ewd
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/RTOSDemo.ewd
diff --git a/Demo/ARM9_STR91X_IAR/RTOSDemo.ewp b/FreeRTOS/Demo/ARM9_STR91X_IAR/RTOSDemo.ewp
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/RTOSDemo.ewp
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/RTOSDemo.ewp
diff --git a/Demo/ARM9_STR91X_IAR/RTOSDemo.eww b/FreeRTOS/Demo/ARM9_STR91X_IAR/RTOSDemo.eww
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/RTOSDemo.eww
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/RTOSDemo.eww
diff --git a/Demo/ARM9_STR91X_IAR/STCode/lcd.c b/FreeRTOS/Demo/ARM9_STR91X_IAR/STCode/lcd.c
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/STCode/lcd.c
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/STCode/lcd.c
diff --git a/Demo/ARM9_STR91X_IAR/STCode/lcd.h b/FreeRTOS/Demo/ARM9_STR91X_IAR/STCode/lcd.h
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/STCode/lcd.h
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/STCode/lcd.h
diff --git a/Demo/ARM9_STR91X_IAR/STR91x_FLASH.icf b/FreeRTOS/Demo/ARM9_STR91X_IAR/STR91x_FLASH.icf
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/STR91x_FLASH.icf
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/STR91x_FLASH.icf
diff --git a/Demo/ARM9_STR91X_IAR/lwip/api/sys_arch.c b/FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/api/sys_arch.c
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/lwip/api/sys_arch.c
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/api/sys_arch.c
diff --git a/Demo/ARM9_STR91X_IAR/lwip/include/arch/cc.h b/FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/include/arch/cc.h
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/lwip/include/arch/cc.h
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/include/arch/cc.h
diff --git a/Demo/ARM9_STR91X_IAR/lwip/include/arch/cpu.h b/FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/include/arch/cpu.h
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/lwip/include/arch/cpu.h
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/include/arch/cpu.h
diff --git a/Demo/ARM9_STR91X_IAR/lwip/include/arch/lwip_errno.h b/FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/include/arch/lwip_errno.h
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/lwip/include/arch/lwip_errno.h
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/include/arch/lwip_errno.h
diff --git a/Demo/ARM9_STR91X_IAR/lwip/include/arch/perf.h b/FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/include/arch/perf.h
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/lwip/include/arch/perf.h
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/include/arch/perf.h
diff --git a/Demo/ARM9_STR91X_IAR/lwip/include/arch/sys_arch.h b/FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/include/arch/sys_arch.h
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/lwip/include/arch/sys_arch.h
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/include/arch/sys_arch.h
diff --git a/Demo/ARM9_STR91X_IAR/lwip/include/lwIPWebServer/BasicWEB.h b/FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/include/lwIPWebServer/BasicWEB.h
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/lwip/include/lwIPWebServer/BasicWEB.h
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/include/lwIPWebServer/BasicWEB.h
diff --git a/Demo/ARM9_STR91X_IAR/lwip/include/lwIPWebServer/fs.h b/FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/include/lwIPWebServer/fs.h
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/lwip/include/lwIPWebServer/fs.h
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/include/lwIPWebServer/fs.h
diff --git a/Demo/ARM9_STR91X_IAR/lwip/include/lwIPWebServer/fsdata.h b/FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/include/lwIPWebServer/fsdata.h
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/lwip/include/lwIPWebServer/fsdata.h
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/include/lwIPWebServer/fsdata.h
diff --git a/Demo/ARM9_STR91X_IAR/lwip/include/lwIPWebServer/httpd.h b/FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/include/lwIPWebServer/httpd.h
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/lwip/include/lwIPWebServer/httpd.h
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/include/lwIPWebServer/httpd.h
diff --git a/Demo/ARM9_STR91X_IAR/lwip/include/lwip/lwipopts.h b/FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/include/lwip/lwipopts.h
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/lwip/include/lwip/lwipopts.h
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/include/lwip/lwipopts.h
diff --git a/Demo/ARM9_STR91X_IAR/lwip/include/lwip/opt.h b/FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/include/lwip/opt.h
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/lwip/include/lwip/opt.h
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/include/lwip/opt.h
diff --git a/Demo/ARM9_STR91X_IAR/lwip/lwipWebServer/BasicWEB.c b/FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/lwipWebServer/BasicWEB.c
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/lwip/lwipWebServer/BasicWEB.c
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/lwipWebServer/BasicWEB.c
diff --git a/Demo/ARM9_STR91X_IAR/lwip/lwipWebServer/fs.c b/FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/lwipWebServer/fs.c
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/lwip/lwipWebServer/fs.c
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/lwipWebServer/fs.c
diff --git a/Demo/ARM9_STR91X_IAR/lwip/lwipWebServer/fs/WS1/404.html b/FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/lwipWebServer/fs/WS1/404.html
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/lwip/lwipWebServer/fs/WS1/404.html
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/lwipWebServer/fs/WS1/404.html
diff --git a/Demo/ARM9_STR91X_IAR/lwip/lwipWebServer/fs/WS1/index.html b/FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/lwipWebServer/fs/WS1/index.html
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/lwip/lwipWebServer/fs/WS1/index.html
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/lwipWebServer/fs/WS1/index.html
diff --git a/Demo/ARM9_STR91X_IAR/lwip/lwipWebServer/fs/WS1/logo.gif b/FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/lwipWebServer/fs/WS1/logo.gif
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/lwip/lwipWebServer/fs/WS1/logo.gif
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/lwipWebServer/fs/WS1/logo.gif
diff --git a/Demo/ARM9_STR91X_IAR/lwip/lwipWebServer/fsdata.c b/FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/lwipWebServer/fsdata.c
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/lwip/lwipWebServer/fsdata.c
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/lwipWebServer/fsdata.c
diff --git a/Demo/ARM9_STR91X_IAR/lwip/lwipWebServer/httpd.c b/FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/lwipWebServer/httpd.c
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/lwip/lwipWebServer/httpd.c
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/lwipWebServer/httpd.c
diff --git a/Demo/ARM9_STR91X_IAR/lwip/netif/ethernetif.c b/FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/netif/ethernetif.c
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/lwip/netif/ethernetif.c
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/netif/ethernetif.c
diff --git a/Demo/ARM9_STR91X_IAR/main.c b/FreeRTOS/Demo/ARM9_STR91X_IAR/main.c
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/main.c
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/main.c
diff --git a/Demo/ARM9_STR91X_IAR/serial/serial.c b/FreeRTOS/Demo/ARM9_STR91X_IAR/serial/serial.c
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/serial/serial.c
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/serial/serial.c
diff --git a/Demo/ARM9_STR91X_IAR/settings/FreeRTOS.wsdt b/FreeRTOS/Demo/ARM9_STR91X_IAR/settings/FreeRTOS.wsdt
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/settings/FreeRTOS.wsdt
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/settings/FreeRTOS.wsdt
diff --git a/Demo/ARM9_STR91X_IAR/settings/RTOSDemo.cspy.bat b/FreeRTOS/Demo/ARM9_STR91X_IAR/settings/RTOSDemo.cspy.bat
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/settings/RTOSDemo.cspy.bat
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/settings/RTOSDemo.cspy.bat
diff --git a/Demo/ARM9_STR91X_IAR/settings/RTOSDemo.dbgdt b/FreeRTOS/Demo/ARM9_STR91X_IAR/settings/RTOSDemo.dbgdt
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/settings/RTOSDemo.dbgdt
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/settings/RTOSDemo.dbgdt
diff --git a/Demo/ARM9_STR91X_IAR/settings/RTOSDemo.dni b/FreeRTOS/Demo/ARM9_STR91X_IAR/settings/RTOSDemo.dni
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/settings/RTOSDemo.dni
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/settings/RTOSDemo.dni
diff --git a/Demo/ARM9_STR91X_IAR/settings/RTOSDemo.wsdt b/FreeRTOS/Demo/ARM9_STR91X_IAR/settings/RTOSDemo.wsdt
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/settings/RTOSDemo.wsdt
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/settings/RTOSDemo.wsdt
diff --git a/Demo/ARM9_STR91X_IAR/webserver/Makefile.webserver b/FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/Makefile.webserver
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/webserver/Makefile.webserver
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/Makefile.webserver
diff --git a/Demo/ARM9_STR91X_IAR/webserver/clock-arch.h b/FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/clock-arch.h
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/webserver/clock-arch.h
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/clock-arch.h
diff --git a/Demo/ARM9_STR91X_IAR/webserver/http-strings b/FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/http-strings
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/webserver/http-strings
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/http-strings
diff --git a/Demo/ARM9_STR91X_IAR/webserver/http-strings.c b/FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/http-strings.c
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/webserver/http-strings.c
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/http-strings.c
diff --git a/Demo/ARM9_STR91X_IAR/webserver/http-strings.h b/FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/http-strings.h
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/webserver/http-strings.h
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/http-strings.h
diff --git a/Demo/ARM9_STR91X_IAR/webserver/httpd-cgi.c b/FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/httpd-cgi.c
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/webserver/httpd-cgi.c
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/httpd-cgi.c
diff --git a/Demo/ARM9_STR91X_IAR/webserver/httpd-cgi.h b/FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/httpd-cgi.h
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/webserver/httpd-cgi.h
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/httpd-cgi.h
diff --git a/Demo/ARM9_STR91X_IAR/webserver/httpd-fs.c b/FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/httpd-fs.c
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/webserver/httpd-fs.c
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/httpd-fs.c
diff --git a/Demo/ARM9_STR91X_IAR/webserver/httpd-fs.h b/FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/httpd-fs.h
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/webserver/httpd-fs.h
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/httpd-fs.h
diff --git a/Demo/ARM9_STR91X_IAR/webserver/httpd-fs/404.html b/FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/httpd-fs/404.html
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/webserver/httpd-fs/404.html
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/httpd-fs/404.html
diff --git a/Demo/ARM9_STR91X_IAR/webserver/httpd-fs/index.html b/FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/httpd-fs/index.html
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/webserver/httpd-fs/index.html
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/httpd-fs/index.html
diff --git a/Demo/ARM9_STR91X_IAR/webserver/httpd-fs/index.shtml b/FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/httpd-fs/index.shtml
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/webserver/httpd-fs/index.shtml
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/httpd-fs/index.shtml
diff --git a/Demo/ARM9_STR91X_IAR/webserver/httpd-fs/stats.shtml b/FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/httpd-fs/stats.shtml
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/webserver/httpd-fs/stats.shtml
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/httpd-fs/stats.shtml
diff --git a/Demo/ARM9_STR91X_IAR/webserver/httpd-fs/tcp.shtml b/FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/httpd-fs/tcp.shtml
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/webserver/httpd-fs/tcp.shtml
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/httpd-fs/tcp.shtml
diff --git a/Demo/ARM9_STR91X_IAR/webserver/httpd-fsdata.c b/FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/httpd-fsdata.c
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/webserver/httpd-fsdata.c
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/httpd-fsdata.c
diff --git a/Demo/ARM9_STR91X_IAR/webserver/httpd-fsdata.h b/FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/httpd-fsdata.h
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/webserver/httpd-fsdata.h
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/httpd-fsdata.h
diff --git a/Demo/ARM9_STR91X_IAR/webserver/httpd.c b/FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/httpd.c
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/webserver/httpd.c
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/httpd.c
diff --git a/Demo/ARM9_STR91X_IAR/webserver/httpd.h b/FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/httpd.h
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/webserver/httpd.h
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/httpd.h
diff --git a/Demo/ARM9_STR91X_IAR/webserver/makefsdata b/FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/makefsdata
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/webserver/makefsdata
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/makefsdata
diff --git a/Demo/ARM9_STR91X_IAR/webserver/makestrings b/FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/makestrings
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/webserver/makestrings
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/makestrings
diff --git a/Demo/ARM9_STR91X_IAR/webserver/uIP_Task.c b/FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/uIP_Task.c
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/webserver/uIP_Task.c
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/uIP_Task.c
diff --git a/Demo/ARM9_STR91X_IAR/webserver/uip-conf.h b/FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/uip-conf.h
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/webserver/uip-conf.h
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/uip-conf.h
diff --git a/Demo/ARM9_STR91X_IAR/webserver/webserver.h b/FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/webserver.h
similarity index 100%
rename from Demo/ARM9_STR91X_IAR/webserver/webserver.h
rename to FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/webserver.h
diff --git a/Demo/AVR32_UC3/AT32UC3A/GCC/Makefile b/FreeRTOS/Demo/AVR32_UC3/AT32UC3A/GCC/Makefile
similarity index 100%
rename from Demo/AVR32_UC3/AT32UC3A/GCC/Makefile
rename to FreeRTOS/Demo/AVR32_UC3/AT32UC3A/GCC/Makefile
diff --git a/Demo/AVR32_UC3/AT32UC3A/GCC/config.mk b/FreeRTOS/Demo/AVR32_UC3/AT32UC3A/GCC/config.mk
similarity index 100%
rename from Demo/AVR32_UC3/AT32UC3A/GCC/config.mk
rename to FreeRTOS/Demo/AVR32_UC3/AT32UC3A/GCC/config.mk
diff --git a/Demo/AVR32_UC3/AT32UC3A/GCC/gdb.ini b/FreeRTOS/Demo/AVR32_UC3/AT32UC3A/GCC/gdb.ini
similarity index 100%
rename from Demo/AVR32_UC3/AT32UC3A/GCC/gdb.ini
rename to FreeRTOS/Demo/AVR32_UC3/AT32UC3A/GCC/gdb.ini
diff --git a/Demo/AVR32_UC3/AT32UC3A/GCC/gdb_cmdfile.txt b/FreeRTOS/Demo/AVR32_UC3/AT32UC3A/GCC/gdb_cmdfile.txt
similarity index 100%
rename from Demo/AVR32_UC3/AT32UC3A/GCC/gdb_cmdfile.txt
rename to FreeRTOS/Demo/AVR32_UC3/AT32UC3A/GCC/gdb_cmdfile.txt
diff --git a/Demo/AVR32_UC3/AT32UC3A/IAR/Debug/Obj/rtosdemo.pbd b/FreeRTOS/Demo/AVR32_UC3/AT32UC3A/IAR/Debug/Obj/rtosdemo.pbd
similarity index 100%
rename from Demo/AVR32_UC3/AT32UC3A/IAR/Debug/Obj/rtosdemo.pbd
rename to FreeRTOS/Demo/AVR32_UC3/AT32UC3A/IAR/Debug/Obj/rtosdemo.pbd
diff --git a/Demo/AVR32_UC3/AT32UC3A/IAR/rtosdemo.ewd b/FreeRTOS/Demo/AVR32_UC3/AT32UC3A/IAR/rtosdemo.ewd
similarity index 100%
rename from Demo/AVR32_UC3/AT32UC3A/IAR/rtosdemo.ewd
rename to FreeRTOS/Demo/AVR32_UC3/AT32UC3A/IAR/rtosdemo.ewd
diff --git a/Demo/AVR32_UC3/AT32UC3A/IAR/rtosdemo.ewp b/FreeRTOS/Demo/AVR32_UC3/AT32UC3A/IAR/rtosdemo.ewp
similarity index 100%
rename from Demo/AVR32_UC3/AT32UC3A/IAR/rtosdemo.ewp
rename to FreeRTOS/Demo/AVR32_UC3/AT32UC3A/IAR/rtosdemo.ewp
diff --git a/Demo/AVR32_UC3/AT32UC3A/IAR/rtosdemo.eww b/FreeRTOS/Demo/AVR32_UC3/AT32UC3A/IAR/rtosdemo.eww
similarity index 100%
rename from Demo/AVR32_UC3/AT32UC3A/IAR/rtosdemo.eww
rename to FreeRTOS/Demo/AVR32_UC3/AT32UC3A/IAR/rtosdemo.eww
diff --git a/Demo/AVR32_UC3/AT32UC3A/IAR/settings/rtosdemo.cspy.bat b/FreeRTOS/Demo/AVR32_UC3/AT32UC3A/IAR/settings/rtosdemo.cspy.bat
similarity index 100%
rename from Demo/AVR32_UC3/AT32UC3A/IAR/settings/rtosdemo.cspy.bat
rename to FreeRTOS/Demo/AVR32_UC3/AT32UC3A/IAR/settings/rtosdemo.cspy.bat
diff --git a/Demo/AVR32_UC3/AT32UC3A/IAR/settings/rtosdemo.dbgdt b/FreeRTOS/Demo/AVR32_UC3/AT32UC3A/IAR/settings/rtosdemo.dbgdt
similarity index 100%
rename from Demo/AVR32_UC3/AT32UC3A/IAR/settings/rtosdemo.dbgdt
rename to FreeRTOS/Demo/AVR32_UC3/AT32UC3A/IAR/settings/rtosdemo.dbgdt
diff --git a/Demo/AVR32_UC3/AT32UC3A/IAR/settings/rtosdemo.dni b/FreeRTOS/Demo/AVR32_UC3/AT32UC3A/IAR/settings/rtosdemo.dni
similarity index 100%
rename from Demo/AVR32_UC3/AT32UC3A/IAR/settings/rtosdemo.dni
rename to FreeRTOS/Demo/AVR32_UC3/AT32UC3A/IAR/settings/rtosdemo.dni
diff --git a/Demo/AVR32_UC3/AT32UC3A/IAR/settings/rtosdemo.wsdt b/FreeRTOS/Demo/AVR32_UC3/AT32UC3A/IAR/settings/rtosdemo.wsdt
similarity index 100%
rename from Demo/AVR32_UC3/AT32UC3A/IAR/settings/rtosdemo.wsdt
rename to FreeRTOS/Demo/AVR32_UC3/AT32UC3A/IAR/settings/rtosdemo.wsdt
diff --git a/Demo/AVR32_UC3/AT32UC3A/doxyfile.doxygen b/FreeRTOS/Demo/AVR32_UC3/AT32UC3A/doxyfile.doxygen
similarity index 100%
rename from Demo/AVR32_UC3/AT32UC3A/doxyfile.doxygen
rename to FreeRTOS/Demo/AVR32_UC3/AT32UC3A/doxyfile.doxygen
diff --git a/Demo/AVR32_UC3/AT32UC3B/GCC/Makefile b/FreeRTOS/Demo/AVR32_UC3/AT32UC3B/GCC/Makefile
similarity index 100%
rename from Demo/AVR32_UC3/AT32UC3B/GCC/Makefile
rename to FreeRTOS/Demo/AVR32_UC3/AT32UC3B/GCC/Makefile
diff --git a/Demo/AVR32_UC3/AT32UC3B/GCC/config.mk b/FreeRTOS/Demo/AVR32_UC3/AT32UC3B/GCC/config.mk
similarity index 100%
rename from Demo/AVR32_UC3/AT32UC3B/GCC/config.mk
rename to FreeRTOS/Demo/AVR32_UC3/AT32UC3B/GCC/config.mk
diff --git a/Demo/AVR32_UC3/AT32UC3B/GCC/gdb_cmdfile.txt b/FreeRTOS/Demo/AVR32_UC3/AT32UC3B/GCC/gdb_cmdfile.txt
similarity index 100%
rename from Demo/AVR32_UC3/AT32UC3B/GCC/gdb_cmdfile.txt
rename to FreeRTOS/Demo/AVR32_UC3/AT32UC3B/GCC/gdb_cmdfile.txt
diff --git a/Demo/AVR32_UC3/AT32UC3B/doxyfile.doxygen b/FreeRTOS/Demo/AVR32_UC3/AT32UC3B/doxyfile.doxygen
similarity index 100%
rename from Demo/AVR32_UC3/AT32UC3B/doxyfile.doxygen
rename to FreeRTOS/Demo/AVR32_UC3/AT32UC3B/doxyfile.doxygen
diff --git a/Demo/AVR32_UC3/BOARDS/EVK1100/evk1100.h b/FreeRTOS/Demo/AVR32_UC3/BOARDS/EVK1100/evk1100.h
similarity index 100%
rename from Demo/AVR32_UC3/BOARDS/EVK1100/evk1100.h
rename to FreeRTOS/Demo/AVR32_UC3/BOARDS/EVK1100/evk1100.h
diff --git a/Demo/AVR32_UC3/BOARDS/EVK1100/evk1100_revA.h b/FreeRTOS/Demo/AVR32_UC3/BOARDS/EVK1100/evk1100_revA.h
similarity index 100%
rename from Demo/AVR32_UC3/BOARDS/EVK1100/evk1100_revA.h
rename to FreeRTOS/Demo/AVR32_UC3/BOARDS/EVK1100/evk1100_revA.h
diff --git a/Demo/AVR32_UC3/BOARDS/EVK1100/led.c b/FreeRTOS/Demo/AVR32_UC3/BOARDS/EVK1100/led.c
similarity index 100%
rename from Demo/AVR32_UC3/BOARDS/EVK1100/led.c
rename to FreeRTOS/Demo/AVR32_UC3/BOARDS/EVK1100/led.c
diff --git a/Demo/AVR32_UC3/BOARDS/EVK1100/led.h b/FreeRTOS/Demo/AVR32_UC3/BOARDS/EVK1100/led.h
similarity index 100%
rename from Demo/AVR32_UC3/BOARDS/EVK1100/led.h
rename to FreeRTOS/Demo/AVR32_UC3/BOARDS/EVK1100/led.h
diff --git a/Demo/AVR32_UC3/BOARDS/EVK1101/evk1101.h b/FreeRTOS/Demo/AVR32_UC3/BOARDS/EVK1101/evk1101.h
similarity index 100%
rename from Demo/AVR32_UC3/BOARDS/EVK1101/evk1101.h
rename to FreeRTOS/Demo/AVR32_UC3/BOARDS/EVK1101/evk1101.h
diff --git a/Demo/AVR32_UC3/BOARDS/EVK1101/led.c b/FreeRTOS/Demo/AVR32_UC3/BOARDS/EVK1101/led.c
similarity index 100%
rename from Demo/AVR32_UC3/BOARDS/EVK1101/led.c
rename to FreeRTOS/Demo/AVR32_UC3/BOARDS/EVK1101/led.c
diff --git a/Demo/AVR32_UC3/BOARDS/EVK1101/led.h b/FreeRTOS/Demo/AVR32_UC3/BOARDS/EVK1101/led.h
similarity index 100%
rename from Demo/AVR32_UC3/BOARDS/EVK1101/led.h
rename to FreeRTOS/Demo/AVR32_UC3/BOARDS/EVK1101/led.h
diff --git a/Demo/AVR32_UC3/BOARDS/board.h b/FreeRTOS/Demo/AVR32_UC3/BOARDS/board.h
similarity index 100%
rename from Demo/AVR32_UC3/BOARDS/board.h
rename to FreeRTOS/Demo/AVR32_UC3/BOARDS/board.h
diff --git a/Demo/AVR32_UC3/DRIVERS/GPIO/gpio.c b/FreeRTOS/Demo/AVR32_UC3/DRIVERS/GPIO/gpio.c
similarity index 100%
rename from Demo/AVR32_UC3/DRIVERS/GPIO/gpio.c
rename to FreeRTOS/Demo/AVR32_UC3/DRIVERS/GPIO/gpio.c
diff --git a/Demo/AVR32_UC3/DRIVERS/GPIO/gpio.h b/FreeRTOS/Demo/AVR32_UC3/DRIVERS/GPIO/gpio.h
similarity index 100%
rename from Demo/AVR32_UC3/DRIVERS/GPIO/gpio.h
rename to FreeRTOS/Demo/AVR32_UC3/DRIVERS/GPIO/gpio.h
diff --git a/Demo/AVR32_UC3/DRIVERS/INTC/intc.c b/FreeRTOS/Demo/AVR32_UC3/DRIVERS/INTC/intc.c
similarity index 100%
rename from Demo/AVR32_UC3/DRIVERS/INTC/intc.c
rename to FreeRTOS/Demo/AVR32_UC3/DRIVERS/INTC/intc.c
diff --git a/Demo/AVR32_UC3/DRIVERS/INTC/intc.h b/FreeRTOS/Demo/AVR32_UC3/DRIVERS/INTC/intc.h
similarity index 100%
rename from Demo/AVR32_UC3/DRIVERS/INTC/intc.h
rename to FreeRTOS/Demo/AVR32_UC3/DRIVERS/INTC/intc.h
diff --git a/Demo/AVR32_UC3/DRIVERS/PM/pm.c b/FreeRTOS/Demo/AVR32_UC3/DRIVERS/PM/pm.c
similarity index 100%
rename from Demo/AVR32_UC3/DRIVERS/PM/pm.c
rename to FreeRTOS/Demo/AVR32_UC3/DRIVERS/PM/pm.c
diff --git a/Demo/AVR32_UC3/DRIVERS/PM/pm.h b/FreeRTOS/Demo/AVR32_UC3/DRIVERS/PM/pm.h
similarity index 100%
rename from Demo/AVR32_UC3/DRIVERS/PM/pm.h
rename to FreeRTOS/Demo/AVR32_UC3/DRIVERS/PM/pm.h
diff --git a/Demo/AVR32_UC3/DRIVERS/TC/tc.c b/FreeRTOS/Demo/AVR32_UC3/DRIVERS/TC/tc.c
similarity index 100%
rename from Demo/AVR32_UC3/DRIVERS/TC/tc.c
rename to FreeRTOS/Demo/AVR32_UC3/DRIVERS/TC/tc.c
diff --git a/Demo/AVR32_UC3/DRIVERS/TC/tc.h b/FreeRTOS/Demo/AVR32_UC3/DRIVERS/TC/tc.h
similarity index 100%
rename from Demo/AVR32_UC3/DRIVERS/TC/tc.h
rename to FreeRTOS/Demo/AVR32_UC3/DRIVERS/TC/tc.h
diff --git a/Demo/AVR32_UC3/DRIVERS/USART/usart.c b/FreeRTOS/Demo/AVR32_UC3/DRIVERS/USART/usart.c
similarity index 100%
rename from Demo/AVR32_UC3/DRIVERS/USART/usart.c
rename to FreeRTOS/Demo/AVR32_UC3/DRIVERS/USART/usart.c
diff --git a/Demo/AVR32_UC3/DRIVERS/USART/usart.h b/FreeRTOS/Demo/AVR32_UC3/DRIVERS/USART/usart.h
similarity index 100%
rename from Demo/AVR32_UC3/DRIVERS/USART/usart.h
rename to FreeRTOS/Demo/AVR32_UC3/DRIVERS/USART/usart.h
diff --git a/Demo/AVR32_UC3/FreeRTOSConfig.h b/FreeRTOS/Demo/AVR32_UC3/FreeRTOSConfig.h
similarity index 100%
rename from Demo/AVR32_UC3/FreeRTOSConfig.h
rename to FreeRTOS/Demo/AVR32_UC3/FreeRTOSConfig.h
diff --git a/Demo/AVR32_UC3/ParTest/ParTest.c b/FreeRTOS/Demo/AVR32_UC3/ParTest/ParTest.c
similarity index 100%
rename from Demo/AVR32_UC3/ParTest/ParTest.c
rename to FreeRTOS/Demo/AVR32_UC3/ParTest/ParTest.c
diff --git a/Demo/AVR32_UC3/SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/BOOT/trampoline.S b/FreeRTOS/Demo/AVR32_UC3/SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/BOOT/trampoline.S
similarity index 100%
rename from Demo/AVR32_UC3/SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/BOOT/trampoline.S
rename to FreeRTOS/Demo/AVR32_UC3/SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/BOOT/trampoline.S
diff --git a/Demo/AVR32_UC3/SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/BOOT/trampoline.s82 b/FreeRTOS/Demo/AVR32_UC3/SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/BOOT/trampoline.s82
similarity index 100%
rename from Demo/AVR32_UC3/SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/BOOT/trampoline.s82
rename to FreeRTOS/Demo/AVR32_UC3/SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/BOOT/trampoline.s82
diff --git a/Demo/AVR32_UC3/SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/conf_isp.h b/FreeRTOS/Demo/AVR32_UC3/SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/conf_isp.h
similarity index 100%
rename from Demo/AVR32_UC3/SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/conf_isp.h
rename to FreeRTOS/Demo/AVR32_UC3/SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/conf_isp.h
diff --git a/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0128/GCC/link_uc3a0128.lds b/FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0128/GCC/link_uc3a0128.lds
similarity index 100%
rename from Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0128/GCC/link_uc3a0128.lds
rename to FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0128/GCC/link_uc3a0128.lds
diff --git a/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0128/IAR/lnkuc3a0128.xcl b/FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0128/IAR/lnkuc3a0128.xcl
similarity index 100%
rename from Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0128/IAR/lnkuc3a0128.xcl
rename to FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0128/IAR/lnkuc3a0128.xcl
diff --git a/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0256/GCC/link_uc3a0256.lds b/FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0256/GCC/link_uc3a0256.lds
similarity index 100%
rename from Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0256/GCC/link_uc3a0256.lds
rename to FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0256/GCC/link_uc3a0256.lds
diff --git a/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0256/IAR/lnkuc3a0256.xcl b/FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0256/IAR/lnkuc3a0256.xcl
similarity index 100%
rename from Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0256/IAR/lnkuc3a0256.xcl
rename to FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0256/IAR/lnkuc3a0256.xcl
diff --git a/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0512/GCC/link_uc3a0512.lds b/FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0512/GCC/link_uc3a0512.lds
similarity index 100%
rename from Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0512/GCC/link_uc3a0512.lds
rename to FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0512/GCC/link_uc3a0512.lds
diff --git a/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0512/IAR/lnkuc3a0512.xcl b/FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0512/IAR/lnkuc3a0512.xcl
similarity index 100%
rename from Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0512/IAR/lnkuc3a0512.xcl
rename to FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0512/IAR/lnkuc3a0512.xcl
diff --git a/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1128/GCC/link_uc3a1128.lds b/FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1128/GCC/link_uc3a1128.lds
similarity index 100%
rename from Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1128/GCC/link_uc3a1128.lds
rename to FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1128/GCC/link_uc3a1128.lds
diff --git a/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1128/IAR/lnkuc3a1128.xcl b/FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1128/IAR/lnkuc3a1128.xcl
similarity index 100%
rename from Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1128/IAR/lnkuc3a1128.xcl
rename to FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1128/IAR/lnkuc3a1128.xcl
diff --git a/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1256/GCC/link_uc3a1256.lds b/FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1256/GCC/link_uc3a1256.lds
similarity index 100%
rename from Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1256/GCC/link_uc3a1256.lds
rename to FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1256/GCC/link_uc3a1256.lds
diff --git a/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1256/IAR/lnkuc3a1256.xcl b/FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1256/IAR/lnkuc3a1256.xcl
similarity index 100%
rename from Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1256/IAR/lnkuc3a1256.xcl
rename to FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1256/IAR/lnkuc3a1256.xcl
diff --git a/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1512/GCC/link_uc3a1512.lds b/FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1512/GCC/link_uc3a1512.lds
similarity index 100%
rename from Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1512/GCC/link_uc3a1512.lds
rename to FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1512/GCC/link_uc3a1512.lds
diff --git a/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1512/IAR/lnkuc3a1512.xcl b/FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1512/IAR/lnkuc3a1512.xcl
similarity index 100%
rename from Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1512/IAR/lnkuc3a1512.xcl
rename to FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1512/IAR/lnkuc3a1512.xcl
diff --git a/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0128/GCC/link_uc3b0128.lds b/FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0128/GCC/link_uc3b0128.lds
similarity index 100%
rename from Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0128/GCC/link_uc3b0128.lds
rename to FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0128/GCC/link_uc3b0128.lds
diff --git a/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0128/IAR/lnkuc3b0128.xcl b/FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0128/IAR/lnkuc3b0128.xcl
similarity index 100%
rename from Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0128/IAR/lnkuc3b0128.xcl
rename to FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0128/IAR/lnkuc3b0128.xcl
diff --git a/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0256/GCC/link_uc3b0256.lds b/FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0256/GCC/link_uc3b0256.lds
similarity index 100%
rename from Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0256/GCC/link_uc3b0256.lds
rename to FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0256/GCC/link_uc3b0256.lds
diff --git a/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0256/IAR/lnkuc3b0256.xcl b/FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0256/IAR/lnkuc3b0256.xcl
similarity index 100%
rename from Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0256/IAR/lnkuc3b0256.xcl
rename to FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0256/IAR/lnkuc3b0256.xcl
diff --git a/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/064/GCC/link_uc3b064.lds b/FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/064/GCC/link_uc3b064.lds
similarity index 100%
rename from Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/064/GCC/link_uc3b064.lds
rename to FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/064/GCC/link_uc3b064.lds
diff --git a/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/064/IAR/lnkuc3b064.xcl b/FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/064/IAR/lnkuc3b064.xcl
similarity index 100%
rename from Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/064/IAR/lnkuc3b064.xcl
rename to FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/064/IAR/lnkuc3b064.xcl
diff --git a/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1128/GCC/link_uc3b1128.lds b/FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1128/GCC/link_uc3b1128.lds
similarity index 100%
rename from Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1128/GCC/link_uc3b1128.lds
rename to FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1128/GCC/link_uc3b1128.lds
diff --git a/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1128/IAR/lnkuc3b1128.xcl b/FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1128/IAR/lnkuc3b1128.xcl
similarity index 100%
rename from Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1128/IAR/lnkuc3b1128.xcl
rename to FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1128/IAR/lnkuc3b1128.xcl
diff --git a/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1256/GCC/link_uc3b1256.lds b/FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1256/GCC/link_uc3b1256.lds
similarity index 100%
rename from Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1256/GCC/link_uc3b1256.lds
rename to FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1256/GCC/link_uc3b1256.lds
diff --git a/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1256/IAR/lnkuc3b1256.xcl b/FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1256/IAR/lnkuc3b1256.xcl
similarity index 100%
rename from Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1256/IAR/lnkuc3b1256.xcl
rename to FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1256/IAR/lnkuc3b1256.xcl
diff --git a/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/164/GCC/link_uc3b164.lds b/FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/164/GCC/link_uc3b164.lds
similarity index 100%
rename from Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/164/GCC/link_uc3b164.lds
rename to FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/164/GCC/link_uc3b164.lds
diff --git a/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/164/IAR/lnkuc3b164.xcl b/FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/164/IAR/lnkuc3b164.xcl
similarity index 100%
rename from Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/164/IAR/lnkuc3b164.xcl
rename to FreeRTOS/Demo/AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/164/IAR/lnkuc3b164.xcl
diff --git a/Demo/AVR32_UC3/UTILS/PREPROCESSOR/mrepeat.h b/FreeRTOS/Demo/AVR32_UC3/UTILS/PREPROCESSOR/mrepeat.h
similarity index 100%
rename from Demo/AVR32_UC3/UTILS/PREPROCESSOR/mrepeat.h
rename to FreeRTOS/Demo/AVR32_UC3/UTILS/PREPROCESSOR/mrepeat.h
diff --git a/Demo/AVR32_UC3/UTILS/PREPROCESSOR/preprocessor.h b/FreeRTOS/Demo/AVR32_UC3/UTILS/PREPROCESSOR/preprocessor.h
similarity index 100%
rename from Demo/AVR32_UC3/UTILS/PREPROCESSOR/preprocessor.h
rename to FreeRTOS/Demo/AVR32_UC3/UTILS/PREPROCESSOR/preprocessor.h
diff --git a/Demo/AVR32_UC3/UTILS/PREPROCESSOR/stringz.h b/FreeRTOS/Demo/AVR32_UC3/UTILS/PREPROCESSOR/stringz.h
similarity index 100%
rename from Demo/AVR32_UC3/UTILS/PREPROCESSOR/stringz.h
rename to FreeRTOS/Demo/AVR32_UC3/UTILS/PREPROCESSOR/stringz.h
diff --git a/Demo/AVR32_UC3/UTILS/PREPROCESSOR/tpaste.h b/FreeRTOS/Demo/AVR32_UC3/UTILS/PREPROCESSOR/tpaste.h
similarity index 100%
rename from Demo/AVR32_UC3/UTILS/PREPROCESSOR/tpaste.h
rename to FreeRTOS/Demo/AVR32_UC3/UTILS/PREPROCESSOR/tpaste.h
diff --git a/Demo/AVR32_UC3/UTILS/compiler.h b/FreeRTOS/Demo/AVR32_UC3/UTILS/compiler.h
similarity index 100%
rename from Demo/AVR32_UC3/UTILS/compiler.h
rename to FreeRTOS/Demo/AVR32_UC3/UTILS/compiler.h
diff --git a/Demo/AVR32_UC3/documentation.h b/FreeRTOS/Demo/AVR32_UC3/documentation.h
similarity index 100%
rename from Demo/AVR32_UC3/documentation.h
rename to FreeRTOS/Demo/AVR32_UC3/documentation.h
diff --git a/Demo/AVR32_UC3/doxyfile.doxygen b/FreeRTOS/Demo/AVR32_UC3/doxyfile.doxygen
similarity index 100%
rename from Demo/AVR32_UC3/doxyfile.doxygen
rename to FreeRTOS/Demo/AVR32_UC3/doxyfile.doxygen
diff --git a/Demo/AVR32_UC3/freertos.gif b/FreeRTOS/Demo/AVR32_UC3/freertos.gif
similarity index 100%
rename from Demo/AVR32_UC3/freertos.gif
rename to FreeRTOS/Demo/AVR32_UC3/freertos.gif
diff --git a/Demo/AVR32_UC3/main.c b/FreeRTOS/Demo/AVR32_UC3/main.c
similarity index 100%
rename from Demo/AVR32_UC3/main.c
rename to FreeRTOS/Demo/AVR32_UC3/main.c
diff --git a/Demo/AVR32_UC3/serial/serial.c b/FreeRTOS/Demo/AVR32_UC3/serial/serial.c
similarity index 100%
rename from Demo/AVR32_UC3/serial/serial.c
rename to FreeRTOS/Demo/AVR32_UC3/serial/serial.c
diff --git a/Demo/AVR_ATMega323_IAR/FreeRTOSConfig.h b/FreeRTOS/Demo/AVR_ATMega323_IAR/FreeRTOSConfig.h
similarity index 100%
rename from Demo/AVR_ATMega323_IAR/FreeRTOSConfig.h
rename to FreeRTOS/Demo/AVR_ATMega323_IAR/FreeRTOSConfig.h
diff --git a/Demo/AVR_ATMega323_IAR/ParTest/ParTest.c b/FreeRTOS/Demo/AVR_ATMega323_IAR/ParTest/ParTest.c
similarity index 100%
rename from Demo/AVR_ATMega323_IAR/ParTest/ParTest.c
rename to FreeRTOS/Demo/AVR_ATMega323_IAR/ParTest/ParTest.c
diff --git a/Demo/AVR_ATMega323_IAR/main.c b/FreeRTOS/Demo/AVR_ATMega323_IAR/main.c
similarity index 100%
rename from Demo/AVR_ATMega323_IAR/main.c
rename to FreeRTOS/Demo/AVR_ATMega323_IAR/main.c
diff --git a/Demo/AVR_ATMega323_IAR/regtest.c b/FreeRTOS/Demo/AVR_ATMega323_IAR/regtest.c
similarity index 100%
rename from Demo/AVR_ATMega323_IAR/regtest.c
rename to FreeRTOS/Demo/AVR_ATMega323_IAR/regtest.c
diff --git a/Demo/AVR_ATMega323_IAR/regtest.h b/FreeRTOS/Demo/AVR_ATMega323_IAR/regtest.h
similarity index 100%
rename from Demo/AVR_ATMega323_IAR/regtest.h
rename to FreeRTOS/Demo/AVR_ATMega323_IAR/regtest.h
diff --git a/Demo/AVR_ATMega323_IAR/rtosdemo.ewd b/FreeRTOS/Demo/AVR_ATMega323_IAR/rtosdemo.ewd
similarity index 100%
rename from Demo/AVR_ATMega323_IAR/rtosdemo.ewd
rename to FreeRTOS/Demo/AVR_ATMega323_IAR/rtosdemo.ewd
diff --git a/Demo/AVR_ATMega323_IAR/rtosdemo.ewp b/FreeRTOS/Demo/AVR_ATMega323_IAR/rtosdemo.ewp
similarity index 100%
rename from Demo/AVR_ATMega323_IAR/rtosdemo.ewp
rename to FreeRTOS/Demo/AVR_ATMega323_IAR/rtosdemo.ewp
diff --git a/Demo/AVR_ATMega323_IAR/rtosdemo.eww b/FreeRTOS/Demo/AVR_ATMega323_IAR/rtosdemo.eww
similarity index 100%
rename from Demo/AVR_ATMega323_IAR/rtosdemo.eww
rename to FreeRTOS/Demo/AVR_ATMega323_IAR/rtosdemo.eww
diff --git a/Demo/AVR_ATMega323_IAR/serial/serial.c b/FreeRTOS/Demo/AVR_ATMega323_IAR/serial/serial.c
similarity index 100%
rename from Demo/AVR_ATMega323_IAR/serial/serial.c
rename to FreeRTOS/Demo/AVR_ATMega323_IAR/serial/serial.c
diff --git a/Demo/AVR_ATMega323_IAR/settings/rtosdemo.dbgdt b/FreeRTOS/Demo/AVR_ATMega323_IAR/settings/rtosdemo.dbgdt
similarity index 100%
rename from Demo/AVR_ATMega323_IAR/settings/rtosdemo.dbgdt
rename to FreeRTOS/Demo/AVR_ATMega323_IAR/settings/rtosdemo.dbgdt
diff --git a/Demo/AVR_ATMega323_IAR/settings/rtosdemo.dni b/FreeRTOS/Demo/AVR_ATMega323_IAR/settings/rtosdemo.dni
similarity index 100%
rename from Demo/AVR_ATMega323_IAR/settings/rtosdemo.dni
rename to FreeRTOS/Demo/AVR_ATMega323_IAR/settings/rtosdemo.dni
diff --git a/Demo/AVR_ATMega323_IAR/settings/rtosdemo.fmt b/FreeRTOS/Demo/AVR_ATMega323_IAR/settings/rtosdemo.fmt
similarity index 100%
rename from Demo/AVR_ATMega323_IAR/settings/rtosdemo.fmt
rename to FreeRTOS/Demo/AVR_ATMega323_IAR/settings/rtosdemo.fmt
diff --git a/Demo/AVR_ATMega323_IAR/settings/rtosdemo.ini b/FreeRTOS/Demo/AVR_ATMega323_IAR/settings/rtosdemo.ini
similarity index 100%
rename from Demo/AVR_ATMega323_IAR/settings/rtosdemo.ini
rename to FreeRTOS/Demo/AVR_ATMega323_IAR/settings/rtosdemo.ini
diff --git a/Demo/AVR_ATMega323_IAR/settings/rtosdemo.wsdt b/FreeRTOS/Demo/AVR_ATMega323_IAR/settings/rtosdemo.wsdt
similarity index 100%
rename from Demo/AVR_ATMega323_IAR/settings/rtosdemo.wsdt
rename to FreeRTOS/Demo/AVR_ATMega323_IAR/settings/rtosdemo.wsdt
diff --git a/Demo/AVR_ATMega323_WinAVR/FreeRTOSConfig.h b/FreeRTOS/Demo/AVR_ATMega323_WinAVR/FreeRTOSConfig.h
similarity index 100%
rename from Demo/AVR_ATMega323_WinAVR/FreeRTOSConfig.h
rename to FreeRTOS/Demo/AVR_ATMega323_WinAVR/FreeRTOSConfig.h
diff --git a/Demo/AVR_ATMega323_WinAVR/ParTest/ParTest.c b/FreeRTOS/Demo/AVR_ATMega323_WinAVR/ParTest/ParTest.c
similarity index 100%
rename from Demo/AVR_ATMega323_WinAVR/ParTest/ParTest.c
rename to FreeRTOS/Demo/AVR_ATMega323_WinAVR/ParTest/ParTest.c
diff --git a/Demo/AVR_ATMega323_WinAVR/main.c b/FreeRTOS/Demo/AVR_ATMega323_WinAVR/main.c
similarity index 100%
rename from Demo/AVR_ATMega323_WinAVR/main.c
rename to FreeRTOS/Demo/AVR_ATMega323_WinAVR/main.c
diff --git a/Demo/AVR_ATMega323_WinAVR/makefile b/FreeRTOS/Demo/AVR_ATMega323_WinAVR/makefile
similarity index 100%
rename from Demo/AVR_ATMega323_WinAVR/makefile
rename to FreeRTOS/Demo/AVR_ATMega323_WinAVR/makefile
diff --git a/Demo/AVR_ATMega323_WinAVR/regtest.c b/FreeRTOS/Demo/AVR_ATMega323_WinAVR/regtest.c
similarity index 100%
rename from Demo/AVR_ATMega323_WinAVR/regtest.c
rename to FreeRTOS/Demo/AVR_ATMega323_WinAVR/regtest.c
diff --git a/Demo/AVR_ATMega323_WinAVR/regtest.h b/FreeRTOS/Demo/AVR_ATMega323_WinAVR/regtest.h
similarity index 100%
rename from Demo/AVR_ATMega323_WinAVR/regtest.h
rename to FreeRTOS/Demo/AVR_ATMega323_WinAVR/regtest.h
diff --git a/Demo/AVR_ATMega323_WinAVR/serial/serial.c b/FreeRTOS/Demo/AVR_ATMega323_WinAVR/serial/serial.c
similarity index 100%
rename from Demo/AVR_ATMega323_WinAVR/serial/serial.c
rename to FreeRTOS/Demo/AVR_ATMega323_WinAVR/serial/serial.c
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/IAR_System/linker_nvm.icf b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/IAR_System/linker_nvm.icf
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/IAR_System/linker_nvm.icf
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/IAR_System/linker_nvm.icf
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/a2fxxxm3.h b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/a2fxxxm3.h
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/a2fxxxm3.h
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/a2fxxxm3.h
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/core_cm3.c b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/core_cm3.c
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/core_cm3.c
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/core_cm3.c
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/mss_assert.h b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/mss_assert.h
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/mss_assert.h
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/mss_assert.h
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/startup_iar/startup_a2fxxxm3.s b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/startup_iar/startup_a2fxxxm3.s
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/startup_iar/startup_a2fxxxm3.s
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/startup_iar/startup_a2fxxxm3.s
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/startup_keil/core_cm3.h b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/startup_keil/core_cm3.h
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/startup_keil/core_cm3.h
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/startup_keil/core_cm3.h
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/startup_keil/startus_a2fxxxm3.s b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/startup_keil/startus_a2fxxxm3.s
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/startup_keil/startus_a2fxxxm3.s
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/startup_keil/startus_a2fxxxm3.s
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/system_a2fxxxm3.c b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/system_a2fxxxm3.c
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/system_a2fxxxm3.c
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/system_a2fxxxm3.c
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/system_a2fxxxm3.h b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/system_a2fxxxm3.h
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/system_a2fxxxm3.h
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/CMSIS/system_a2fxxxm3.h
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/I2C/i2c.c b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/I2C/i2c.c
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/I2C/i2c.c
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/I2C/i2c.c
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/I2C/i2c.h b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/I2C/i2c.h
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/I2C/i2c.h
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/I2C/i2c.h
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/OLED/oled.c b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/OLED/oled.c
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/OLED/oled.c
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/OLED/oled.c
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/OLED/oled.h b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/OLED/oled.h
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/OLED/oled.h
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/OLED/oled.h
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/bsp_config.h b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/bsp_config.h
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/bsp_config.h
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/bsp_config.h
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ace/ace_convert.c b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ace/ace_convert.c
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ace/ace_convert.c
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ace/ace_convert.c
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ace/envm_layout.h b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ace/envm_layout.h
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ace/envm_layout.h
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ace/envm_layout.h
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ace/mss_ace.c b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ace/mss_ace.c
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ace/mss_ace.c
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ace/mss_ace.c
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ace/mss_ace.h b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ace/mss_ace.h
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ace/mss_ace.h
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ace/mss_ace.h
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ace/mss_ace_configurator.h b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ace/mss_ace_configurator.h
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ace/mss_ace_configurator.h
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ace/mss_ace_configurator.h
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ace/mtd_data.h b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ace/mtd_data.h
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ace/mtd_data.h
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ace/mtd_data.h
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/crc32.c b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/crc32.c
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/crc32.c
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/crc32.c
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/crc32.h b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/crc32.h
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/crc32.h
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/crc32.h
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac.c b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac.c
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac.c
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac.c
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac.h b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac.h
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac.h
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac.h
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_conf.h b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_conf.h
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_conf.h
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_conf.h
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_desc.h b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_desc.h
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_desc.h
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_desc.h
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_regs.h b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_regs.h
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_regs.h
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_regs.h
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_user_cfg.h b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_user_cfg.h
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_user_cfg.h
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_user_cfg.h
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/phy.c b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/phy.c
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/phy.c
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/phy.c
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/phy.h b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/phy.h
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/phy.h
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_ethernet_mac/phy.h
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_gpio/mss_gpio.c b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_gpio/mss_gpio.c
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_gpio/mss_gpio.c
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_gpio/mss_gpio.c
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_gpio/mss_gpio.h b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_gpio/mss_gpio.h
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_gpio/mss_gpio.h
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_gpio/mss_gpio.h
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_pdma/mss_pdma.c b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_pdma/mss_pdma.c
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_pdma/mss_pdma.c
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_pdma/mss_pdma.c
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_pdma/mss_pdma.h b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_pdma/mss_pdma.h
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_pdma/mss_pdma.h
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_pdma/mss_pdma.h
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_spi/mss_spi.c b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_spi/mss_spi.c
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_spi/mss_spi.c
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_spi/mss_spi.c
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_spi/mss_spi.h b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_spi/mss_spi.h
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_spi/mss_spi.h
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_spi/mss_spi.h
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_timer/mss_timer.h b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_timer/mss_timer.h
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_timer/mss_timer.h
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_timer/mss_timer.h
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_uart/mss_uart.c b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_uart/mss_uart.c
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_uart/mss_uart.c
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_uart/mss_uart.c
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_uart/mss_uart.h b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_uart/mss_uart.h
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_uart/mss_uart.h
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_uart/mss_uart.h
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_watchdog/mss_watchdog.h b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_watchdog/mss_watchdog.h
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_watchdog/mss_watchdog.h
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers/mss_watchdog/mss_watchdog.h
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers_config/mss_ace/ace_config.c b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers_config/mss_ace/ace_config.c
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers_config/mss_ace/ace_config.c
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers_config/mss_ace/ace_config.c
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers_config/mss_ace/ace_config.h b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers_config/mss_ace/ace_config.h
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers_config/mss_ace/ace_config.h
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers_config/mss_ace/ace_config.h
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers_config/mss_ace/ace_handles.h b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers_config/mss_ace/ace_handles.h
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers_config/mss_ace/ace_handles.h
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/MicroSemi_Code/drivers_config/mss_ace/ace_handles.h
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/ParTest.c b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/ParTest.c
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/ParTest.c
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/ParTest.c
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/RTOSDemo_IAR.ewd b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/RTOSDemo_IAR.ewd
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/RTOSDemo_IAR.ewd
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/RTOSDemo_IAR.ewd
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/RTOSDemo_IAR.ewp b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/RTOSDemo_IAR.ewp
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/RTOSDemo_IAR.ewp
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/RTOSDemo_IAR.ewp
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/RTOSDemo_IAR.eww b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/RTOSDemo_IAR.eww
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/RTOSDemo_IAR.eww
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/RTOSDemo_IAR.eww
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/RTOSDemo_Keil.uvopt b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/RTOSDemo_Keil.uvopt
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/RTOSDemo_Keil.uvopt
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/RTOSDemo_Keil.uvopt
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/RTOSDemo_Keil.uvproj b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/RTOSDemo_Keil.uvproj
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/RTOSDemo_Keil.uvproj
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/RTOSDemo_Keil.uvproj
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-cgi.c b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-cgi.c
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-cgi.c
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-cgi.c
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/404.html b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/404.html
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/404.html
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/404.html
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/index.html b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/index.html
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/index.html
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/index.html
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/index.shtml b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/index.shtml
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/index.shtml
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/index.shtml
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/io.shtml b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/io.shtml
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/io.shtml
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/io.shtml
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/logo.jpg b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/logo.jpg
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/logo.jpg
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/logo.jpg
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/runtime.shtml b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/runtime.shtml
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/runtime.shtml
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/runtime.shtml
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/stats.shtml b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/stats.shtml
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/stats.shtml
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/stats.shtml
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/tcp.shtml b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/tcp.shtml
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/tcp.shtml
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/tcp.shtml
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fsdata.c b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fsdata.c
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fsdata.c
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fsdata.c
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/makefsdata b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/makefsdata
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/makefsdata
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/makefsdata
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/uip-conf.h b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/uip-conf.h
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/uip-conf.h
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/uip-conf.h
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/webserver.h b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/webserver.h
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/webserver.h
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/webserver.h
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/main-blinky.c b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/main-blinky.c
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/main-blinky.c
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/main-blinky.c
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/main-full.c b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/main-full.c
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/main-full.c
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/main-full.c
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/printf-stdarg.c b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/printf-stdarg.c
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/printf-stdarg.c
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/printf-stdarg.c
diff --git a/Demo/CORTEX_A2F200_IAR_and_Keil/uIP_Task.c b/FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/uIP_Task.c
similarity index 100%
rename from Demo/CORTEX_A2F200_IAR_and_Keil/uIP_Task.c
rename to FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/uIP_Task.c
diff --git a/Demo/CORTEX_A2F200_SoftConsole/.cproject b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/.cproject
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/.cproject
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/.cproject
diff --git a/Demo/CORTEX_A2F200_SoftConsole/.project b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/.project
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/.project
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/.project
diff --git a/Demo/CORTEX_A2F200_SoftConsole/.settings/org.eclipse.ltk.core.refactoring.prefs b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/.settings/org.eclipse.ltk.core.refactoring.prefs
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/Demo/CORTEX_A2F200_SoftConsole/CreateProjectDirectoryStructure.bat b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/CreateProjectDirectoryStructure.bat
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/CreateProjectDirectoryStructure.bat
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/CreateProjectDirectoryStructure.bat
diff --git a/Demo/CORTEX_A2F200_SoftConsole/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/a2fxxxm3.h b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/a2fxxxm3.h
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/a2fxxxm3.h
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/a2fxxxm3.h
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/core_cm3.c b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/core_cm3.c
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/core_cm3.c
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/core_cm3.c
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/core_cm3.h b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/core_cm3.h
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/core_cm3.h
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/core_cm3.h
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/mss_assert.h b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/mss_assert.h
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/mss_assert.h
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/mss_assert.h
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/startup_gcc/debug-in-actel-smartfusion-envm.ld b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/startup_gcc/debug-in-actel-smartfusion-envm.ld
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/startup_gcc/debug-in-actel-smartfusion-envm.ld
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/startup_gcc/debug-in-actel-smartfusion-envm.ld
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/startup_gcc/debug-in-actel-smartfusion-esram.ld b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/startup_gcc/debug-in-actel-smartfusion-esram.ld
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/startup_gcc/debug-in-actel-smartfusion-esram.ld
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/startup_gcc/debug-in-actel-smartfusion-esram.ld
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/startup_gcc/debug-in-external-ram.ld b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/startup_gcc/debug-in-external-ram.ld
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/startup_gcc/debug-in-external-ram.ld
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/startup_gcc/debug-in-external-ram.ld
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/startup_gcc/newlib_stubs.c b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/startup_gcc/newlib_stubs.c
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/startup_gcc/newlib_stubs.c
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/startup_gcc/newlib_stubs.c
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/startup_gcc/production-execute-in-place.ld b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/startup_gcc/production-execute-in-place.ld
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/startup_gcc/production-execute-in-place.ld
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/startup_gcc/production-execute-in-place.ld
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/startup_gcc/production-relocate-executable.ld b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/startup_gcc/production-relocate-executable.ld
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/startup_gcc/production-relocate-executable.ld
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/startup_gcc/production-relocate-executable.ld
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/startup_gcc/startup_a2fxxxm3.s b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/startup_gcc/startup_a2fxxxm3.s
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/startup_gcc/startup_a2fxxxm3.s
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/startup_gcc/startup_a2fxxxm3.s
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/system_a2fxxxm3.c b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/system_a2fxxxm3.c
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/system_a2fxxxm3.c
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/system_a2fxxxm3.c
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/system_a2fxxxm3.h b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/system_a2fxxxm3.h
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/system_a2fxxxm3.h
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/CMSIS/system_a2fxxxm3.h
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/I2C/i2c.c b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/I2C/i2c.c
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/I2C/i2c.c
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/I2C/i2c.c
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/I2C/i2c.h b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/I2C/i2c.h
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/I2C/i2c.h
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/I2C/i2c.h
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/OLED/oled.c b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/OLED/oled.c
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/OLED/oled.c
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/OLED/oled.c
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/OLED/oled.h b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/OLED/oled.h
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/OLED/oled.h
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/OLED/oled.h
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/bsp_config.h b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/bsp_config.h
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/bsp_config.h
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/bsp_config.h
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ace/ace_convert.c b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ace/ace_convert.c
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ace/ace_convert.c
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ace/ace_convert.c
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ace/envm_layout.h b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ace/envm_layout.h
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ace/envm_layout.h
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ace/envm_layout.h
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ace/mss_ace.c b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ace/mss_ace.c
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ace/mss_ace.c
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ace/mss_ace.c
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ace/mss_ace.h b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ace/mss_ace.h
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ace/mss_ace.h
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ace/mss_ace.h
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ace/mss_ace_configurator.h b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ace/mss_ace_configurator.h
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ace/mss_ace_configurator.h
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ace/mss_ace_configurator.h
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ace/mtd_data.h b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ace/mtd_data.h
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ace/mtd_data.h
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ace/mtd_data.h
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/crc32.c b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/crc32.c
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/crc32.c
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/crc32.c
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/crc32.h b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/crc32.h
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/crc32.h
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/crc32.h
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac.c b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac.c
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac.c
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac.c
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac.h b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac.h
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac.h
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac.h
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_conf.h b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_conf.h
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_conf.h
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_conf.h
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_desc.h b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_desc.h
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_desc.h
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_desc.h
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_regs.h b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_regs.h
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_regs.h
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_regs.h
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_user_cfg.h b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_user_cfg.h
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_user_cfg.h
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/mss_ethernet_mac_user_cfg.h
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/phy.c b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/phy.c
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/phy.c
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/phy.c
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/phy.h b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/phy.h
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/phy.h
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_ethernet_mac/phy.h
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_gpio/mss_gpio.c b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_gpio/mss_gpio.c
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_gpio/mss_gpio.c
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_gpio/mss_gpio.c
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_gpio/mss_gpio.h b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_gpio/mss_gpio.h
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_gpio/mss_gpio.h
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_gpio/mss_gpio.h
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_timer/mss_timer.h b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_timer/mss_timer.h
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_timer/mss_timer.h
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_timer/mss_timer.h
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_watchdog/mss_watchdog.h b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_watchdog/mss_watchdog.h
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_watchdog/mss_watchdog.h
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers/mss_watchdog/mss_watchdog.h
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers_config/mss_ace/ace_config.c b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers_config/mss_ace/ace_config.c
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers_config/mss_ace/ace_config.c
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers_config/mss_ace/ace_config.c
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers_config/mss_ace/ace_config.h b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers_config/mss_ace/ace_config.h
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers_config/mss_ace/ace_config.h
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers_config/mss_ace/ace_config.h
diff --git a/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers_config/mss_ace/ace_handles.h b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers_config/mss_ace/ace_handles.h
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers_config/mss_ace/ace_handles.h
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/MicroSemi_Code/drivers_config/mss_ace/ace_handles.h
diff --git a/Demo/CORTEX_A2F200_SoftConsole/ParTest.c b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/ParTest.c
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/ParTest.c
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/ParTest.c
diff --git a/Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-cgi.c b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-cgi.c
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-cgi.c
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-cgi.c
diff --git a/Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/404.html b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/404.html
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/404.html
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/404.html
diff --git a/Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/index.html b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/index.html
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/index.html
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/index.html
diff --git a/Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/index.shtml b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/index.shtml
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/index.shtml
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/index.shtml
diff --git a/Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/io.shtml b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/io.shtml
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/io.shtml
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/io.shtml
diff --git a/Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/logo.jpg b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/logo.jpg
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/logo.jpg
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/logo.jpg
diff --git a/Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/runtime.shtml b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/runtime.shtml
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/runtime.shtml
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/runtime.shtml
diff --git a/Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/stats.shtml b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/stats.shtml
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/stats.shtml
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/stats.shtml
diff --git a/Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/tcp.shtml b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/tcp.shtml
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/tcp.shtml
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/tcp.shtml
diff --git a/Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-fsdata.c b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-fsdata.c
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-fsdata.c
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-fsdata.c
diff --git a/Demo/CORTEX_A2F200_SoftConsole/WebServer/makefsdata b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/WebServer/makefsdata
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/WebServer/makefsdata
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/WebServer/makefsdata
diff --git a/Demo/CORTEX_A2F200_SoftConsole/WebServer/uip-conf.h b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/WebServer/uip-conf.h
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/WebServer/uip-conf.h
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/WebServer/uip-conf.h
diff --git a/Demo/CORTEX_A2F200_SoftConsole/WebServer/webserver.h b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/WebServer/webserver.h
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/WebServer/webserver.h
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/WebServer/webserver.h
diff --git a/Demo/CORTEX_A2F200_SoftConsole/main-blinky.c b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/main-blinky.c
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/main-blinky.c
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/main-blinky.c
diff --git a/Demo/CORTEX_A2F200_SoftConsole/main-full.c b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/main-full.c
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/main-full.c
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/main-full.c
diff --git a/Demo/CORTEX_A2F200_SoftConsole/printf-stdarg.c b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/printf-stdarg.c
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/printf-stdarg.c
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/printf-stdarg.c
diff --git a/Demo/CORTEX_A2F200_SoftConsole/uIP_Task.c b/FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/uIP_Task.c
similarity index 100%
rename from Demo/CORTEX_A2F200_SoftConsole/uIP_Task.c
rename to FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/uIP_Task.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/cmsis/core_cm3.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/cmsis/core_cm3.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/cmsis/core_cm3.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/cmsis/core_cm3.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/cmsis/core_cm3.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/cmsis/core_cm3.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/cmsis/core_cm3.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/cmsis/core_cm3.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/components/hx8347/hx8347.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/components/hx8347/hx8347.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/components/hx8347/hx8347.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/components/hx8347/hx8347.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/components/hx8347/hx8347.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/components/hx8347/hx8347.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/components/hx8347/hx8347.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/components/hx8347/hx8347.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/color.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/color.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/color.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/color.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/draw.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/draw.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/draw.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/draw.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/draw_hx8347.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/draw_hx8347.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/draw_hx8347.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/draw_hx8347.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/font.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/font.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/font.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/font.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/font.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/font.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/font.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/font.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/font10x14.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/font10x14.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/font10x14.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/font10x14.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/lcdd.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/lcdd.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/lcdd.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/lcdd.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/lcdd_hx8347.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/lcdd_hx8347.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/lcdd_hx8347.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/drivers/lcd/lcdd_hx8347.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/ac97c/ac97c.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/ac97c/ac97c.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/ac97c/ac97c.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/ac97c/ac97c.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/ac97c/ac97c.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/ac97c/ac97c.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/ac97c/ac97c.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/ac97c/ac97c.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/adc/adc.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/adc/adc.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/adc/adc.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/adc/adc.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/adc/adc.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/adc/adc.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/adc/adc.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/adc/adc.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/adc/adc12.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/adc/adc12.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/adc/adc12.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/adc/adc12.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/aes/aes.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/aes/aes.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/aes/aes.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/aes/aes.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/aes/aes.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/aes/aes.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/aes/aes.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/aes/aes.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/aic/aic.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/aic/aic.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/aic/aic.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/aic/aic.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/aic/aic.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/aic/aic.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/aic/aic.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/aic/aic.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/can/can.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/can/can.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/can/can.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/can/can.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/can/can.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/can/can.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/can/can.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/can/can.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/cp15/cp15.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/cp15/cp15.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/cp15/cp15.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/cp15/cp15.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/cp15/cp15.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/cp15/cp15.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/cp15/cp15.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/cp15/cp15.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/cp15/cp15_asm_iar.s b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/cp15/cp15_asm_iar.s
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/cp15/cp15_asm_iar.s
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/cp15/cp15_asm_iar.s
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/dbgu/dbgu.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/dbgu/dbgu.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/dbgu/dbgu.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/dbgu/dbgu.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/dbgu/dbgu.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/dbgu/dbgu.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/dbgu/dbgu.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/dbgu/dbgu.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/dma/dma.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/dma/dma.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/dma/dma.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/dma/dma.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/dma/dma.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/dma/dma.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/dma/dma.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/dma/dma.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/eefc/eefc.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/eefc/eefc.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/eefc/eefc.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/eefc/eefc.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/eefc/eefc.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/eefc/eefc.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/eefc/eefc.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/eefc/eefc.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/efc/efc.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/efc/efc.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/efc/efc.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/efc/efc.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/efc/efc.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/efc/efc.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/efc/efc.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/efc/efc.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/emac/emac.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/emac/emac.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/emac/emac.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/emac/emac.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/emac/emac.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/emac/emac.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/emac/emac.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/emac/emac.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/irq/irq.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/irq/irq.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/irq/irq.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/irq/irq.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/irq/nvic.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/irq/nvic.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/irq/nvic.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/irq/nvic.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/isi/isi.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/isi/isi.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/isi/isi.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/isi/isi.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/isi/isi.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/isi/isi.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/isi/isi.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/isi/isi.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/isi/isi2.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/isi/isi2.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/isi/isi2.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/isi/isi2.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/lcd/lcd.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/lcd/lcd.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/lcd/lcd.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/lcd/lcd.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/lcd/lcd.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/lcd/lcd.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/lcd/lcd.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/lcd/lcd.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/mci/mci.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/mci/mci.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/mci/mci.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/mci/mci.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/mci/mci.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/mci/mci.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/mci/mci.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/mci/mci.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/mci/mci_hs.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/mci/mci_hs.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/mci/mci_hs.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/mci/mci_hs.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/mci/mci_hs.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/mci/mci_hs.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/mci/mci_hs.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/mci/mci_hs.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pio/pio.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pio/pio.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pio/pio.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pio/pio.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pio/pio.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pio/pio.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pio/pio.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pio/pio.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pio/pio_it.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pio/pio_it.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pio/pio_it.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pio/pio_it.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pio/pio_it.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pio/pio_it.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pio/pio_it.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pio/pio_it.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pit/pit.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pit/pit.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pit/pit.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pit/pit.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pit/pit.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pit/pit.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pit/pit.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pit/pit.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pmc/pmc.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pmc/pmc.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pmc/pmc.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pmc/pmc.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pmc/pmc.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pmc/pmc.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pmc/pmc.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pmc/pmc.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pwmc/pwmc.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pwmc/pwmc.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pwmc/pwmc.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pwmc/pwmc.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pwmc/pwmc.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pwmc/pwmc.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pwmc/pwmc.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/pwmc/pwmc.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/rstc/rstc.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/rstc/rstc.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/rstc/rstc.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/rstc/rstc.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/rstc/rstc.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/rstc/rstc.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/rstc/rstc.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/rstc/rstc.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/rtc/rtc.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/rtc/rtc.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/rtc/rtc.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/rtc/rtc.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/rtc/rtc.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/rtc/rtc.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/rtc/rtc.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/rtc/rtc.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/rtt/rtt.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/rtt/rtt.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/rtt/rtt.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/rtt/rtt.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/rtt/rtt.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/rtt/rtt.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/rtt/rtt.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/rtt/rtt.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/shdwc/shdwc.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/shdwc/shdwc.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/shdwc/shdwc.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/shdwc/shdwc.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/shdwc/shdwc.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/shdwc/shdwc.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/shdwc/shdwc.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/shdwc/shdwc.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/slcdc/slcdc.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/slcdc/slcdc.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/slcdc/slcdc.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/slcdc/slcdc.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/slcdc/slcdc.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/slcdc/slcdc.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/slcdc/slcdc.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/slcdc/slcdc.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/slck/slck.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/slck/slck.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/slck/slck.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/slck/slck.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/slck/slck.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/slck/slck.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/slck/slck.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/slck/slck.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/spi/spi.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/spi/spi.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/spi/spi.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/spi/spi.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/spi/spi.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/spi/spi.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/spi/spi.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/spi/spi.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/ssc/ssc.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/ssc/ssc.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/ssc/ssc.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/ssc/ssc.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/ssc/ssc.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/ssc/ssc.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/ssc/ssc.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/ssc/ssc.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/supc/supc.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/supc/supc.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/supc/supc.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/supc/supc.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/supc/supc.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/supc/supc.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/supc/supc.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/supc/supc.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/systick/systick.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/systick/systick.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/systick/systick.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/systick/systick.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/systick/systick.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/systick/systick.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/systick/systick.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/systick/systick.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/tc/tc.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/tc/tc.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/tc/tc.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/tc/tc.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/tc/tc.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/tc/tc.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/tc/tc.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/tc/tc.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/tdes/tdes.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/tdes/tdes.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/tdes/tdes.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/tdes/tdes.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/tdes/tdes.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/tdes/tdes.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/tdes/tdes.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/tdes/tdes.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/tsadcc/tsadcc.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/tsadcc/tsadcc.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/tsadcc/tsadcc.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/tsadcc/tsadcc.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/tsadcc/tsadcc.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/tsadcc/tsadcc.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/tsadcc/tsadcc.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/tsadcc/tsadcc.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/twi/twi.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/twi/twi.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/twi/twi.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/twi/twi.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/twi/twi.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/twi/twi.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/twi/twi.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/twi/twi.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/usart/usart.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/usart/usart.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/usart/usart.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/usart/usart.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/usart/usart.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/usart/usart.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/usart/usart.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/peripherals/usart/usart.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/utility/assert.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/utility/assert.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/utility/assert.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/utility/assert.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/utility/trace.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/utility/trace.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/utility/trace.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/AT91Lib/utility/trace.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/ParTest/ParTest.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/ParTest/ParTest.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/ParTest/ParTest.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/ParTest/ParTest.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/RTOSDemo.ewd b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/RTOSDemo.ewd
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/RTOSDemo.ewd
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/RTOSDemo.ewd
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/RTOSDemo.ewp b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/RTOSDemo.ewp
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/RTOSDemo.ewp
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/RTOSDemo.ewp
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/RTOSDemo.eww b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/RTOSDemo.eww
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/RTOSDemo.eww
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/RTOSDemo.eww
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/lcd_message.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/lcd_message.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/lcd_message.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/lcd_message.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/main.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/main.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/main.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/main.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/printf-stdarg.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/printf-stdarg.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/printf-stdarg.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/printf-stdarg.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/serial/serial.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/serial/serial.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/serial/serial.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/serial/serial.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.cspy.bat b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.cspy.bat
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.cspy.bat
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.cspy.bat
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.dbgdt b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.dbgdt
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.dbgdt
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.dbgdt
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.dni b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.dni
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.dni
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.dni
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.wsdt b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.wsdt
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.wsdt
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.wsdt
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo_Debug.jlink b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo_Debug.jlink
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo_Debug.jlink
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo_Debug.jlink
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo_Release.jlink b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo_Release.jlink
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo_Release.jlink
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo_Release.jlink
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/system/AT91SAM3U4.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/system/AT91SAM3U4.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/system/AT91SAM3U4.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/system/AT91SAM3U4.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/system/at91sam3u-ek-flash.mac b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/system/at91sam3u-ek-flash.mac
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/system/at91sam3u-ek-flash.mac
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/system/at91sam3u-ek-flash.mac
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/system/at91sam3u4/AT91SAM3U4.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/system/at91sam3u4/AT91SAM3U4.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/system/at91sam3u4/AT91SAM3U4.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/system/at91sam3u4/AT91SAM3U4.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/system/at91sam3u4/chip.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/system/at91sam3u4/chip.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/system/at91sam3u4/chip.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/system/at91sam3u4/chip.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/system/at91sam3u4/flash.icf b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/system/at91sam3u4/flash.icf
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/system/at91sam3u4/flash.icf
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/system/at91sam3u4/flash.icf
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/system/at91sam3u4/sram.icf b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/system/at91sam3u4/sram.icf
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/system/at91sam3u4/sram.icf
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/system/at91sam3u4/sram.icf
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/system/board.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/system/board.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/system/board.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/system/board.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/system/board_cstartup_iar.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/system/board_cstartup_iar.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/system/board_cstartup_iar.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/system/board_cstartup_iar.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/system/board_lowlevel.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/system/board_lowlevel.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/system/board_lowlevel.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/system/board_lowlevel.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/system/board_lowlevel.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/system/board_lowlevel.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/system/board_lowlevel.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/system/board_lowlevel.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/system/board_memories.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/system/board_memories.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/system/board_memories.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/system/board_memories.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/system/board_memories.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/system/board_memories.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/system/board_memories.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/system/board_memories.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/system/chip.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/system/chip.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/system/chip.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/system/chip.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/system/exceptions.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/system/exceptions.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/system/exceptions.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/system/exceptions.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/system/exceptions.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/system/exceptions.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/system/exceptions.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/system/exceptions.h
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/system/flash.icf b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/system/flash.icf
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/system/flash.icf
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/system/flash.icf
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/system/led.c b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/system/led.c
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/system/led.c
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/system/led.c
diff --git a/Demo/CORTEX_AT91SAM3U256_IAR/system/led.h b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/system/led.h
similarity index 100%
rename from Demo/CORTEX_AT91SAM3U256_IAR/system/led.h
rename to FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/system/led.h
diff --git a/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo Workspace.cywrk b/FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo Workspace.cywrk
similarity index 100%
rename from Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo Workspace.cywrk
rename to FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo Workspace.cywrk
diff --git a/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/FreeRTOS_Demo.cydwr b/FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/FreeRTOS_Demo.cydwr
similarity index 100%
rename from Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/FreeRTOS_Demo.cydwr
rename to FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/FreeRTOS_Demo.cydwr
diff --git a/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/FreeRTOS_Demo.cyprj b/FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/FreeRTOS_Demo.cyprj
similarity index 100%
rename from Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/FreeRTOS_Demo.cyprj
rename to FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/FreeRTOS_Demo.cyprj
diff --git a/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/IntQueueTimer.c b/FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/IntQueueTimer.c
similarity index 100%
rename from Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/IntQueueTimer.c
rename to FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/IntQueueTimer.c
diff --git a/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/IntQueueTimer.h b/FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/IntQueueTimer.h
similarity index 100%
rename from Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/IntQueueTimer.h
rename to FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/IntQueueTimer.h
diff --git a/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/ParTest.c b/FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/ParTest.c
similarity index 100%
rename from Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/ParTest.c
rename to FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/ParTest.c
diff --git a/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/Serial.c b/FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/Serial.c
similarity index 100%
rename from Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/Serial.c
rename to FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/Serial.c
diff --git a/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/TimerTest.c b/FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/TimerTest.c
similarity index 100%
rename from Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/TimerTest.c
rename to FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/TimerTest.c
diff --git a/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/TopDesign/TopDesign.cysch b/FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/TopDesign/TopDesign.cysch
similarity index 100%
rename from Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/TopDesign/TopDesign.cysch
rename to FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/TopDesign/TopDesign.cysch
diff --git a/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/device.h b/FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/device.h
similarity index 100%
rename from Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/device.h
rename to FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/device.h
diff --git a/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/main.c b/FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/main.c
similarity index 100%
rename from Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/main.c
rename to FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/main.c
diff --git a/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo Workspace.cywrk b/FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo Workspace.cywrk
similarity index 100%
rename from Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo Workspace.cywrk
rename to FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo Workspace.cywrk
diff --git a/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/FreeRTOS_Demo.cydwr b/FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/FreeRTOS_Demo.cydwr
similarity index 100%
rename from Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/FreeRTOS_Demo.cydwr
rename to FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/FreeRTOS_Demo.cydwr
diff --git a/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/FreeRTOS_Demo.cyprj b/FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/FreeRTOS_Demo.cyprj
similarity index 100%
rename from Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/FreeRTOS_Demo.cyprj
rename to FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/FreeRTOS_Demo.cyprj
diff --git a/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/IntQueueTimer.c b/FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/IntQueueTimer.c
similarity index 100%
rename from Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/IntQueueTimer.c
rename to FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/IntQueueTimer.c
diff --git a/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/IntQueueTimer.h b/FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/IntQueueTimer.h
similarity index 100%
rename from Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/IntQueueTimer.h
rename to FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/IntQueueTimer.h
diff --git a/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/ParTest.c b/FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/ParTest.c
similarity index 100%
rename from Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/ParTest.c
rename to FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/ParTest.c
diff --git a/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/Serial.c b/FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/Serial.c
similarity index 100%
rename from Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/Serial.c
rename to FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/Serial.c
diff --git a/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/TimerTest.c b/FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/TimerTest.c
similarity index 100%
rename from Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/TimerTest.c
rename to FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/TimerTest.c
diff --git a/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/TopDesign/TopDesign.cysch b/FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/TopDesign/TopDesign.cysch
similarity index 100%
rename from Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/TopDesign/TopDesign.cysch
rename to FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/TopDesign/TopDesign.cysch
diff --git a/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/device.h b/FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/device.h
similarity index 100%
rename from Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/device.h
rename to FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/device.h
diff --git a/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/main.c b/FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/main.c
similarity index 100%
rename from Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/main.c
rename to FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/main.c
diff --git a/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo Workspace.cywrk b/FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo Workspace.cywrk
similarity index 100%
rename from Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo Workspace.cywrk
rename to FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo Workspace.cywrk
diff --git a/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/FreeRTOS_Demo.cydwr b/FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/FreeRTOS_Demo.cydwr
similarity index 100%
rename from Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/FreeRTOS_Demo.cydwr
rename to FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/FreeRTOS_Demo.cydwr
diff --git a/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/FreeRTOS_Demo.cyprj b/FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/FreeRTOS_Demo.cyprj
similarity index 100%
rename from Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/FreeRTOS_Demo.cyprj
rename to FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/FreeRTOS_Demo.cyprj
diff --git a/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/IntQueueTimer.c b/FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/IntQueueTimer.c
similarity index 100%
rename from Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/IntQueueTimer.c
rename to FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/IntQueueTimer.c
diff --git a/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/IntQueueTimer.h b/FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/IntQueueTimer.h
similarity index 100%
rename from Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/IntQueueTimer.h
rename to FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/IntQueueTimer.h
diff --git a/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/ParTest.c b/FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/ParTest.c
similarity index 100%
rename from Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/ParTest.c
rename to FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/ParTest.c
diff --git a/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/Serial.c b/FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/Serial.c
similarity index 100%
rename from Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/Serial.c
rename to FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/Serial.c
diff --git a/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/TimerTest.c b/FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/TimerTest.c
similarity index 100%
rename from Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/TimerTest.c
rename to FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/TimerTest.c
diff --git a/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/TopDesign/TopDesign.cysch b/FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/TopDesign/TopDesign.cysch
similarity index 100%
rename from Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/TopDesign/TopDesign.cysch
rename to FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/TopDesign/TopDesign.cysch
diff --git a/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/device.h b/FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/device.h
similarity index 100%
rename from Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/device.h
rename to FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/device.h
diff --git a/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/main.c b/FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/main.c
similarity index 100%
rename from Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/main.c
rename to FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/main.c
diff --git a/Demo/CORTEX_EFMG890F128_IAR/CMSIS/CM3/CoreSupport/core_cm3.c b/FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/CMSIS/CM3/CoreSupport/core_cm3.c
similarity index 100%
rename from Demo/CORTEX_EFMG890F128_IAR/CMSIS/CM3/CoreSupport/core_cm3.c
rename to FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/CMSIS/CM3/CoreSupport/core_cm3.c
diff --git a/Demo/CORTEX_EFMG890F128_IAR/CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32/efm32.h b/FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32/efm32.h
similarity index 100%
rename from Demo/CORTEX_EFMG890F128_IAR/CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32/efm32.h
rename to FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32/efm32.h
diff --git a/Demo/CORTEX_EFMG890F128_IAR/CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32/efm32g890f128.h b/FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32/efm32g890f128.h
similarity index 100%
rename from Demo/CORTEX_EFMG890F128_IAR/CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32/efm32g890f128.h
rename to FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32/efm32g890f128.h
diff --git a/Demo/CORTEX_EFMG890F128_IAR/CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32/system_efm32.c b/FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32/system_efm32.c
similarity index 100%
rename from Demo/CORTEX_EFMG890F128_IAR/CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32/system_efm32.c
rename to FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32/system_efm32.c
diff --git a/Demo/CORTEX_EFMG890F128_IAR/CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32/system_efm32.h b/FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32/system_efm32.h
similarity index 100%
rename from Demo/CORTEX_EFMG890F128_IAR/CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32/system_efm32.h
rename to FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32/system_efm32.h
diff --git a/Demo/CORTEX_EFMG890F128_IAR/CMSIS/CMSIS changes.htm b/FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/CMSIS/CMSIS changes.htm
similarity index 100%
rename from Demo/CORTEX_EFMG890F128_IAR/CMSIS/CMSIS changes.htm
rename to FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/CMSIS/CMSIS changes.htm
diff --git a/Demo/CORTEX_EFMG890F128_IAR/CMSIS/CMSIS debug support.htm b/FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/CMSIS/CMSIS debug support.htm
similarity index 100%
rename from Demo/CORTEX_EFMG890F128_IAR/CMSIS/CMSIS debug support.htm
rename to FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/CMSIS/CMSIS debug support.htm
diff --git a/Demo/CORTEX_EFMG890F128_IAR/CMSIS/Documentation/CMSIS_Core.htm b/FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/CMSIS/Documentation/CMSIS_Core.htm
similarity index 100%
rename from Demo/CORTEX_EFMG890F128_IAR/CMSIS/Documentation/CMSIS_Core.htm
rename to FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/CMSIS/Documentation/CMSIS_Core.htm
diff --git a/Demo/CORTEX_EFMG890F128_IAR/CMSIS/License.doc b/FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/CMSIS/License.doc
similarity index 100%
rename from Demo/CORTEX_EFMG890F128_IAR/CMSIS/License.doc
rename to FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/CMSIS/License.doc
diff --git a/Demo/CORTEX_EFMG890F128_IAR/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_EFMG890F128_IAR/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_EFMG890F128_IAR/ParTest.c b/FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/ParTest.c
similarity index 100%
rename from Demo/CORTEX_EFMG890F128_IAR/ParTest.c
rename to FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/ParTest.c
diff --git a/Demo/CORTEX_EFMG890F128_IAR/RTOSDemo.ewd b/FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/RTOSDemo.ewd
similarity index 100%
rename from Demo/CORTEX_EFMG890F128_IAR/RTOSDemo.ewd
rename to FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/RTOSDemo.ewd
diff --git a/Demo/CORTEX_EFMG890F128_IAR/RTOSDemo.ewp b/FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/RTOSDemo.ewp
similarity index 100%
rename from Demo/CORTEX_EFMG890F128_IAR/RTOSDemo.ewp
rename to FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/RTOSDemo.ewp
diff --git a/Demo/CORTEX_EFMG890F128_IAR/RTOSDemo.eww b/FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/RTOSDemo.eww
similarity index 100%
rename from Demo/CORTEX_EFMG890F128_IAR/RTOSDemo.eww
rename to FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/RTOSDemo.eww
diff --git a/Demo/CORTEX_EFMG890F128_IAR/bsp/chip.h b/FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/bsp/chip.h
similarity index 100%
rename from Demo/CORTEX_EFMG890F128_IAR/bsp/chip.h
rename to FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/bsp/chip.h
diff --git a/Demo/CORTEX_EFMG890F128_IAR/bsp/dvk.c b/FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/bsp/dvk.c
similarity index 100%
rename from Demo/CORTEX_EFMG890F128_IAR/bsp/dvk.c
rename to FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/bsp/dvk.c
diff --git a/Demo/CORTEX_EFMG890F128_IAR/bsp/dvk.h b/FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/bsp/dvk.h
similarity index 100%
rename from Demo/CORTEX_EFMG890F128_IAR/bsp/dvk.h
rename to FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/bsp/dvk.h
diff --git a/Demo/CORTEX_EFMG890F128_IAR/bsp/dvk_bcregisters.h b/FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/bsp/dvk_bcregisters.h
similarity index 100%
rename from Demo/CORTEX_EFMG890F128_IAR/bsp/dvk_bcregisters.h
rename to FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/bsp/dvk_bcregisters.h
diff --git a/Demo/CORTEX_EFMG890F128_IAR/bsp/dvk_boardcontrol.c b/FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/bsp/dvk_boardcontrol.c
similarity index 100%
rename from Demo/CORTEX_EFMG890F128_IAR/bsp/dvk_boardcontrol.c
rename to FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/bsp/dvk_boardcontrol.c
diff --git a/Demo/CORTEX_EFMG890F128_IAR/bsp/dvk_boardcontrol.h b/FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/bsp/dvk_boardcontrol.h
similarity index 100%
rename from Demo/CORTEX_EFMG890F128_IAR/bsp/dvk_boardcontrol.h
rename to FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/bsp/dvk_boardcontrol.h
diff --git a/Demo/CORTEX_EFMG890F128_IAR/bsp/dvk_ebi.c b/FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/bsp/dvk_ebi.c
similarity index 100%
rename from Demo/CORTEX_EFMG890F128_IAR/bsp/dvk_ebi.c
rename to FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/bsp/dvk_ebi.c
diff --git a/Demo/CORTEX_EFMG890F128_IAR/bsp/dvk_spi.c b/FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/bsp/dvk_spi.c
similarity index 100%
rename from Demo/CORTEX_EFMG890F128_IAR/bsp/dvk_spi.c
rename to FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/bsp/dvk_spi.c
diff --git a/Demo/CORTEX_EFMG890F128_IAR/lcd/lcdcontroller.c b/FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/lcd/lcdcontroller.c
similarity index 100%
rename from Demo/CORTEX_EFMG890F128_IAR/lcd/lcdcontroller.c
rename to FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/lcd/lcdcontroller.c
diff --git a/Demo/CORTEX_EFMG890F128_IAR/lcd/lcdcontroller.h b/FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/lcd/lcdcontroller.h
similarity index 100%
rename from Demo/CORTEX_EFMG890F128_IAR/lcd/lcdcontroller.h
rename to FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/lcd/lcdcontroller.h
diff --git a/Demo/CORTEX_EFMG890F128_IAR/lcd/lcddisplay.h b/FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/lcd/lcddisplay.h
similarity index 100%
rename from Demo/CORTEX_EFMG890F128_IAR/lcd/lcddisplay.h
rename to FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/lcd/lcddisplay.h
diff --git a/Demo/CORTEX_EFMG890F128_IAR/lcdtest.c b/FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/lcdtest.c
similarity index 100%
rename from Demo/CORTEX_EFMG890F128_IAR/lcdtest.c
rename to FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/lcdtest.c
diff --git a/Demo/CORTEX_EFMG890F128_IAR/lcdtest.h b/FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/lcdtest.h
similarity index 100%
rename from Demo/CORTEX_EFMG890F128_IAR/lcdtest.h
rename to FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/lcdtest.h
diff --git a/Demo/CORTEX_EFMG890F128_IAR/ledtest.c b/FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/ledtest.c
similarity index 100%
rename from Demo/CORTEX_EFMG890F128_IAR/ledtest.c
rename to FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/ledtest.c
diff --git a/Demo/CORTEX_EFMG890F128_IAR/ledtest.h b/FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/ledtest.h
similarity index 100%
rename from Demo/CORTEX_EFMG890F128_IAR/ledtest.h
rename to FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/ledtest.h
diff --git a/Demo/CORTEX_EFMG890F128_IAR/main.c b/FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/main.c
similarity index 100%
rename from Demo/CORTEX_EFMG890F128_IAR/main.c
rename to FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/main.c
diff --git a/Demo/CORTEX_EFMG890F128_IAR/settings/RTOSDemo.cspy.bat b/FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/settings/RTOSDemo.cspy.bat
similarity index 100%
rename from Demo/CORTEX_EFMG890F128_IAR/settings/RTOSDemo.cspy.bat
rename to FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/settings/RTOSDemo.cspy.bat
diff --git a/Demo/CORTEX_EFMG890F128_IAR/settings/RTOSDemo.dbgdt b/FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/settings/RTOSDemo.dbgdt
similarity index 100%
rename from Demo/CORTEX_EFMG890F128_IAR/settings/RTOSDemo.dbgdt
rename to FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/settings/RTOSDemo.dbgdt
diff --git a/Demo/CORTEX_EFMG890F128_IAR/settings/RTOSDemo.dni b/FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/settings/RTOSDemo.dni
similarity index 100%
rename from Demo/CORTEX_EFMG890F128_IAR/settings/RTOSDemo.dni
rename to FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/settings/RTOSDemo.dni
diff --git a/Demo/CORTEX_EFMG890F128_IAR/settings/RTOSDemo.wsdt b/FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/settings/RTOSDemo.wsdt
similarity index 100%
rename from Demo/CORTEX_EFMG890F128_IAR/settings/RTOSDemo.wsdt
rename to FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/settings/RTOSDemo.wsdt
diff --git a/Demo/CORTEX_EFMG890F128_IAR/settings/RTOSDemo_Debug.jlink b/FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/settings/RTOSDemo_Debug.jlink
similarity index 100%
rename from Demo/CORTEX_EFMG890F128_IAR/settings/RTOSDemo_Debug.jlink
rename to FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/settings/RTOSDemo_Debug.jlink
diff --git a/Demo/CORTEX_EFMG890F128_IAR/startup_efm32.s b/FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/startup_efm32.s
similarity index 100%
rename from Demo/CORTEX_EFMG890F128_IAR/startup_efm32.s
rename to FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/startup_efm32.s
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/512KB_Pflash.icf b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/512KB_Pflash.icf
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/512KB_Pflash.icf
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/512KB_Pflash.icf
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/assert.h b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/assert.h
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/assert.h
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/assert.h
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/common.h b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/common.h
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/common.h
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/common.h
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/iar.h b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/iar.h
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/iar.h
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/iar.h
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/io.h b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/io.h
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/io.h
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/io.h
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/queue.h b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/queue.h
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/queue.h
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/queue.h
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/startup.c b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/startup.c
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/startup.c
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/startup.c
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/startup.h b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/startup.h
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/startup.h
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/common/startup.h
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/arm_cm4.c b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/arm_cm4.c
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/arm_cm4.c
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/arm_cm4.c
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/arm_cm4.h b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/arm_cm4.h
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/arm_cm4.h
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/arm_cm4.h
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/crt0.s b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/crt0.s
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/crt0.s
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/crt0.s
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/dma_channels.h b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/dma_channels.h
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/dma_channels.h
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/dma_channels.h
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/k60_tower.h b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/k60_tower.h
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/k60_tower.h
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/k60_tower.h
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/regfile.h b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/regfile.h
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/regfile.h
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/regfile.h
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/start.c b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/start.c
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/start.c
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/start.c
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/start.h b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/start.h
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/start.h
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/start.h
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/sysinit.c b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/sysinit.c
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/sysinit.c
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/sysinit.c
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/sysinit.h b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/sysinit.h
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/sysinit.h
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/sysinit.h
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/vectors.c b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/vectors.c
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/vectors.c
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/vectors.c
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/vectors.h b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/vectors.h
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/vectors.h
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/cpu/vectors.h
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/enet.c b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/enet.c
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/enet.c
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/enet.c
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/enet.h b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/enet.h
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/enet.h
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/enet.h
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/eth.h b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/eth.h
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/eth.h
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/eth.h
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/eth_phy.c b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/eth_phy.c
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/eth_phy.c
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/eth_phy.c
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/eth_phy.h b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/eth_phy.h
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/eth_phy.h
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/eth_phy.h
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/mii.c b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/mii.c
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/mii.c
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/mii.c
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/mii.h b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/mii.h
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/mii.h
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/mii.h
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/nbuf.h b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/nbuf.h
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/nbuf.h
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/enet/nbuf.h
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/mcg/mcg.c b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/mcg/mcg.c
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/mcg/mcg.c
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/mcg/mcg.c
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/mcg/mcg.h b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/mcg/mcg.h
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/mcg/mcg.h
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/mcg/mcg.h
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/uart/uart.c b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/uart/uart.c
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/uart/uart.c
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/uart/uart.c
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/uart/uart.h b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/uart/uart.h
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/uart/uart.h
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/uart/uart.h
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/wdog/wdog.c b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/wdog/wdog.c
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/wdog/wdog.c
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/wdog/wdog.c
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/wdog/wdog.h b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/wdog/wdog.h
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/wdog/wdog.h
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/Freescale_Code/drivers/wdog/wdog.h
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/ParTest.c b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/ParTest.c
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/ParTest.c
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/ParTest.c
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/RTOSDemo.ewd b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/RTOSDemo.ewd
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/RTOSDemo.ewd
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/RTOSDemo.ewd
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/RTOSDemo.ewp b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/RTOSDemo.ewp
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/RTOSDemo.ewp
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/RTOSDemo.ewp
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/RTOSDemo.eww b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/RTOSDemo.eww
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/RTOSDemo.eww
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/RTOSDemo.eww
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/main-full.c b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/main-full.c
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/main-full.c
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/main-full.c
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/main_blinky.c b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/main_blinky.c
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/main_blinky.c
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/main_blinky.c
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/uIP_Task.c b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/uIP_Task.c
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/uIP_Task.c
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/uIP_Task.c
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/EMAC.c b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/EMAC.c
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/EMAC.c
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/EMAC.c
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/EMAC.h b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/EMAC.h
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/EMAC.h
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/EMAC.h
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-cgi.c b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-cgi.c
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-cgi.c
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-cgi.c
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/404.html b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/404.html
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/404.html
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/404.html
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/index.html b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/index.html
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/index.html
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/index.html
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/index.shtml b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/index.shtml
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/index.shtml
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/index.shtml
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/io.shtml b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/io.shtml
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/io.shtml
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/io.shtml
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/logo.jpg b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/logo.jpg
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/logo.jpg
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/logo.jpg
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/runtime.shtml b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/runtime.shtml
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/runtime.shtml
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/runtime.shtml
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/stats.shtml b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/stats.shtml
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/stats.shtml
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/stats.shtml
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/tcp.shtml b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/tcp.shtml
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/tcp.shtml
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/tcp.shtml
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fsdata.c b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fsdata.c
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fsdata.c
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fsdata.c
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/makefsdata b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/makefsdata
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/makefsdata
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/makefsdata
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/uip-conf.h b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/uip-conf.h
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/uip-conf.h
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/uip-conf.h
diff --git a/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/webserver.h b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/webserver.h
similarity index 100%
rename from Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/webserver.h
rename to FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/webserver.h
diff --git a/Demo/CORTEX_LM3S102_GCC/Demo1/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_LM3S102_GCC/Demo1/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_GCC/Demo1/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_GCC/Demo1/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_LM3S102_GCC/Demo1/main.c b/FreeRTOS/Demo/CORTEX_LM3S102_GCC/Demo1/main.c
similarity index 100%
rename from Demo/CORTEX_LM3S102_GCC/Demo1/main.c
rename to FreeRTOS/Demo/CORTEX_LM3S102_GCC/Demo1/main.c
diff --git a/Demo/CORTEX_LM3S102_GCC/Demo1/readme.txt b/FreeRTOS/Demo/CORTEX_LM3S102_GCC/Demo1/readme.txt
similarity index 100%
rename from Demo/CORTEX_LM3S102_GCC/Demo1/readme.txt
rename to FreeRTOS/Demo/CORTEX_LM3S102_GCC/Demo1/readme.txt
diff --git a/Demo/CORTEX_LM3S102_GCC/Demo2/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_LM3S102_GCC/Demo2/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_GCC/Demo2/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_GCC/Demo2/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_LM3S102_GCC/Demo2/main.c b/FreeRTOS/Demo/CORTEX_LM3S102_GCC/Demo2/main.c
similarity index 100%
rename from Demo/CORTEX_LM3S102_GCC/Demo2/main.c
rename to FreeRTOS/Demo/CORTEX_LM3S102_GCC/Demo2/main.c
diff --git a/Demo/CORTEX_LM3S102_GCC/Demo2/readme.txt b/FreeRTOS/Demo/CORTEX_LM3S102_GCC/Demo2/readme.txt
similarity index 100%
rename from Demo/CORTEX_LM3S102_GCC/Demo2/readme.txt
rename to FreeRTOS/Demo/CORTEX_LM3S102_GCC/Demo2/readme.txt
diff --git a/Demo/CORTEX_LM3S102_GCC/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_LM3S102_GCC/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_GCC/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_GCC/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_LM3S102_GCC/Makefile b/FreeRTOS/Demo/CORTEX_LM3S102_GCC/Makefile
similarity index 100%
rename from Demo/CORTEX_LM3S102_GCC/Makefile
rename to FreeRTOS/Demo/CORTEX_LM3S102_GCC/Makefile
diff --git a/Demo/CORTEX_LM3S102_GCC/ParTest/ParTest.c b/FreeRTOS/Demo/CORTEX_LM3S102_GCC/ParTest/ParTest.c
similarity index 100%
rename from Demo/CORTEX_LM3S102_GCC/ParTest/ParTest.c
rename to FreeRTOS/Demo/CORTEX_LM3S102_GCC/ParTest/ParTest.c
diff --git a/Demo/CORTEX_LM3S102_GCC/hw_include/DriverLib.h b/FreeRTOS/Demo/CORTEX_LM3S102_GCC/hw_include/DriverLib.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_GCC/hw_include/DriverLib.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_GCC/hw_include/DriverLib.h
diff --git a/Demo/CORTEX_LM3S102_GCC/hw_include/debug.h b/FreeRTOS/Demo/CORTEX_LM3S102_GCC/hw_include/debug.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_GCC/hw_include/debug.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_GCC/hw_include/debug.h
diff --git a/Demo/CORTEX_LM3S102_GCC/hw_include/gpio.h b/FreeRTOS/Demo/CORTEX_LM3S102_GCC/hw_include/gpio.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_GCC/hw_include/gpio.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_GCC/hw_include/gpio.h
diff --git a/Demo/CORTEX_LM3S102_GCC/hw_include/hw_ints.h b/FreeRTOS/Demo/CORTEX_LM3S102_GCC/hw_include/hw_ints.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_GCC/hw_include/hw_ints.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_GCC/hw_include/hw_ints.h
diff --git a/Demo/CORTEX_LM3S102_GCC/hw_include/hw_memmap.h b/FreeRTOS/Demo/CORTEX_LM3S102_GCC/hw_include/hw_memmap.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_GCC/hw_include/hw_memmap.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_GCC/hw_include/hw_memmap.h
diff --git a/Demo/CORTEX_LM3S102_GCC/hw_include/hw_nvic.h b/FreeRTOS/Demo/CORTEX_LM3S102_GCC/hw_include/hw_nvic.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_GCC/hw_include/hw_nvic.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_GCC/hw_include/hw_nvic.h
diff --git a/Demo/CORTEX_LM3S102_GCC/hw_include/hw_ssi.h b/FreeRTOS/Demo/CORTEX_LM3S102_GCC/hw_include/hw_ssi.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_GCC/hw_include/hw_ssi.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_GCC/hw_include/hw_ssi.h
diff --git a/Demo/CORTEX_LM3S102_GCC/hw_include/hw_sysctl.h b/FreeRTOS/Demo/CORTEX_LM3S102_GCC/hw_include/hw_sysctl.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_GCC/hw_include/hw_sysctl.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_GCC/hw_include/hw_sysctl.h
diff --git a/Demo/CORTEX_LM3S102_GCC/hw_include/hw_types.h b/FreeRTOS/Demo/CORTEX_LM3S102_GCC/hw_include/hw_types.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_GCC/hw_include/hw_types.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_GCC/hw_include/hw_types.h
diff --git a/Demo/CORTEX_LM3S102_GCC/hw_include/hw_uart.h b/FreeRTOS/Demo/CORTEX_LM3S102_GCC/hw_include/hw_uart.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_GCC/hw_include/hw_uart.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_GCC/hw_include/hw_uart.h
diff --git a/Demo/CORTEX_LM3S102_GCC/hw_include/interrupt.h b/FreeRTOS/Demo/CORTEX_LM3S102_GCC/hw_include/interrupt.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_GCC/hw_include/interrupt.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_GCC/hw_include/interrupt.h
diff --git a/Demo/CORTEX_LM3S102_GCC/hw_include/libdriver.a b/FreeRTOS/Demo/CORTEX_LM3S102_GCC/hw_include/libdriver.a
similarity index 100%
rename from Demo/CORTEX_LM3S102_GCC/hw_include/libdriver.a
rename to FreeRTOS/Demo/CORTEX_LM3S102_GCC/hw_include/libdriver.a
diff --git a/Demo/CORTEX_LM3S102_GCC/hw_include/pdc.c b/FreeRTOS/Demo/CORTEX_LM3S102_GCC/hw_include/pdc.c
similarity index 100%
rename from Demo/CORTEX_LM3S102_GCC/hw_include/pdc.c
rename to FreeRTOS/Demo/CORTEX_LM3S102_GCC/hw_include/pdc.c
diff --git a/Demo/CORTEX_LM3S102_GCC/hw_include/pdc.h b/FreeRTOS/Demo/CORTEX_LM3S102_GCC/hw_include/pdc.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_GCC/hw_include/pdc.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_GCC/hw_include/pdc.h
diff --git a/Demo/CORTEX_LM3S102_GCC/hw_include/ssi.h b/FreeRTOS/Demo/CORTEX_LM3S102_GCC/hw_include/ssi.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_GCC/hw_include/ssi.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_GCC/hw_include/ssi.h
diff --git a/Demo/CORTEX_LM3S102_GCC/hw_include/sysctl.h b/FreeRTOS/Demo/CORTEX_LM3S102_GCC/hw_include/sysctl.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_GCC/hw_include/sysctl.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_GCC/hw_include/sysctl.h
diff --git a/Demo/CORTEX_LM3S102_GCC/hw_include/uart.h b/FreeRTOS/Demo/CORTEX_LM3S102_GCC/hw_include/uart.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_GCC/hw_include/uart.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_GCC/hw_include/uart.h
diff --git a/Demo/CORTEX_LM3S102_GCC/init/startup.c b/FreeRTOS/Demo/CORTEX_LM3S102_GCC/init/startup.c
similarity index 100%
rename from Demo/CORTEX_LM3S102_GCC/init/startup.c
rename to FreeRTOS/Demo/CORTEX_LM3S102_GCC/init/startup.c
diff --git a/Demo/CORTEX_LM3S102_GCC/main.c b/FreeRTOS/Demo/CORTEX_LM3S102_GCC/main.c
similarity index 100%
rename from Demo/CORTEX_LM3S102_GCC/main.c
rename to FreeRTOS/Demo/CORTEX_LM3S102_GCC/main.c
diff --git a/Demo/CORTEX_LM3S102_GCC/makedefs b/FreeRTOS/Demo/CORTEX_LM3S102_GCC/makedefs
similarity index 100%
rename from Demo/CORTEX_LM3S102_GCC/makedefs
rename to FreeRTOS/Demo/CORTEX_LM3S102_GCC/makedefs
diff --git a/Demo/CORTEX_LM3S102_GCC/standalone.ld b/FreeRTOS/Demo/CORTEX_LM3S102_GCC/standalone.ld
similarity index 100%
rename from Demo/CORTEX_LM3S102_GCC/standalone.ld
rename to FreeRTOS/Demo/CORTEX_LM3S102_GCC/standalone.ld
diff --git a/Demo/CORTEX_LM3S102_KEIL/Demo1/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_LM3S102_KEIL/Demo1/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_KEIL/Demo1/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_KEIL/Demo1/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_LM3S102_KEIL/Demo1/main.c b/FreeRTOS/Demo/CORTEX_LM3S102_KEIL/Demo1/main.c
similarity index 100%
rename from Demo/CORTEX_LM3S102_KEIL/Demo1/main.c
rename to FreeRTOS/Demo/CORTEX_LM3S102_KEIL/Demo1/main.c
diff --git a/Demo/CORTEX_LM3S102_KEIL/Demo1/readme.txt b/FreeRTOS/Demo/CORTEX_LM3S102_KEIL/Demo1/readme.txt
similarity index 100%
rename from Demo/CORTEX_LM3S102_KEIL/Demo1/readme.txt
rename to FreeRTOS/Demo/CORTEX_LM3S102_KEIL/Demo1/readme.txt
diff --git a/Demo/CORTEX_LM3S102_KEIL/Demo2/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_LM3S102_KEIL/Demo2/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_KEIL/Demo2/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_KEIL/Demo2/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_LM3S102_KEIL/Demo2/main.c b/FreeRTOS/Demo/CORTEX_LM3S102_KEIL/Demo2/main.c
similarity index 100%
rename from Demo/CORTEX_LM3S102_KEIL/Demo2/main.c
rename to FreeRTOS/Demo/CORTEX_LM3S102_KEIL/Demo2/main.c
diff --git a/Demo/CORTEX_LM3S102_KEIL/Demo2/readme.txt b/FreeRTOS/Demo/CORTEX_LM3S102_KEIL/Demo2/readme.txt
similarity index 100%
rename from Demo/CORTEX_LM3S102_KEIL/Demo2/readme.txt
rename to FreeRTOS/Demo/CORTEX_LM3S102_KEIL/Demo2/readme.txt
diff --git a/Demo/CORTEX_LM3S102_KEIL/FreeRTOS.Opt b/FreeRTOS/Demo/CORTEX_LM3S102_KEIL/FreeRTOS.Opt
similarity index 100%
rename from Demo/CORTEX_LM3S102_KEIL/FreeRTOS.Opt
rename to FreeRTOS/Demo/CORTEX_LM3S102_KEIL/FreeRTOS.Opt
diff --git a/Demo/CORTEX_LM3S102_KEIL/FreeRTOS.Uv2 b/FreeRTOS/Demo/CORTEX_LM3S102_KEIL/FreeRTOS.Uv2
similarity index 100%
rename from Demo/CORTEX_LM3S102_KEIL/FreeRTOS.Uv2
rename to FreeRTOS/Demo/CORTEX_LM3S102_KEIL/FreeRTOS.Uv2
diff --git a/Demo/CORTEX_LM3S102_KEIL/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_LM3S102_KEIL/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_KEIL/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_KEIL/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_LM3S102_KEIL/ParTest/ParTest.c b/FreeRTOS/Demo/CORTEX_LM3S102_KEIL/ParTest/ParTest.c
similarity index 100%
rename from Demo/CORTEX_LM3S102_KEIL/ParTest/ParTest.c
rename to FreeRTOS/Demo/CORTEX_LM3S102_KEIL/ParTest/ParTest.c
diff --git a/Demo/CORTEX_LM3S102_KEIL/include/pdc.c b/FreeRTOS/Demo/CORTEX_LM3S102_KEIL/include/pdc.c
similarity index 100%
rename from Demo/CORTEX_LM3S102_KEIL/include/pdc.c
rename to FreeRTOS/Demo/CORTEX_LM3S102_KEIL/include/pdc.c
diff --git a/Demo/CORTEX_LM3S102_KEIL/include/pdc.h b/FreeRTOS/Demo/CORTEX_LM3S102_KEIL/include/pdc.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_KEIL/include/pdc.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_KEIL/include/pdc.h
diff --git a/Demo/CORTEX_LM3S102_KEIL/init/Startup.s b/FreeRTOS/Demo/CORTEX_LM3S102_KEIL/init/Startup.s
similarity index 100%
rename from Demo/CORTEX_LM3S102_KEIL/init/Startup.s
rename to FreeRTOS/Demo/CORTEX_LM3S102_KEIL/init/Startup.s
diff --git a/Demo/CORTEX_LM3S102_KEIL/main.c b/FreeRTOS/Demo/CORTEX_LM3S102_KEIL/main.c
similarity index 100%
rename from Demo/CORTEX_LM3S102_KEIL/main.c
rename to FreeRTOS/Demo/CORTEX_LM3S102_KEIL/main.c
diff --git a/Demo/CORTEX_LM3S102_Rowley/Demo1/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/Demo1/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/Demo1/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/Demo1/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_LM3S102_Rowley/Demo1/ParTest.c b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/Demo1/ParTest.c
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/Demo1/ParTest.c
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/Demo1/ParTest.c
diff --git a/Demo/CORTEX_LM3S102_Rowley/Demo1/main.c b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/Demo1/main.c
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/Demo1/main.c
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/Demo1/main.c
diff --git a/Demo/CORTEX_LM3S102_Rowley/Demo1/vectors.s b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/Demo1/vectors.s
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/Demo1/vectors.s
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/Demo1/vectors.s
diff --git a/Demo/CORTEX_LM3S102_Rowley/Demo2/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/Demo2/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/Demo2/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/Demo2/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_LM3S102_Rowley/Demo2/ParTest.c b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/Demo2/ParTest.c
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/Demo2/ParTest.c
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/Demo2/ParTest.c
diff --git a/Demo/CORTEX_LM3S102_Rowley/Demo2/main.c b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/Demo2/main.c
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/Demo2/main.c
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/Demo2/main.c
diff --git a/Demo/CORTEX_LM3S102_Rowley/Demo2/vectors.s b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/Demo2/vectors.s
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/Demo2/vectors.s
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/Demo2/vectors.s
diff --git a/Demo/CORTEX_LM3S102_Rowley/Demo3/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/Demo3/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/Demo3/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/Demo3/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_LM3S102_Rowley/Demo3/ParTest.c b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/Demo3/ParTest.c
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/Demo3/ParTest.c
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/Demo3/ParTest.c
diff --git a/Demo/CORTEX_LM3S102_Rowley/Demo3/main.c b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/Demo3/main.c
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/Demo3/main.c
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/Demo3/main.c
diff --git a/Demo/CORTEX_LM3S102_Rowley/Demo3/vectors.s b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/Demo3/vectors.s
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/Demo3/vectors.s
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/Demo3/vectors.s
diff --git a/Demo/CORTEX_LM3S102_Rowley/RTOSDemo.hzp b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/RTOSDemo.hzp
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/RTOSDemo.hzp
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/RTOSDemo.hzp
diff --git a/Demo/CORTEX_LM3S102_Rowley/RTOSDemo.hzs b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/RTOSDemo.hzs
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/RTOSDemo.hzs
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/RTOSDemo.hzs
diff --git a/Demo/CORTEX_LM3S102_Rowley/hw_include/DriverLib.h b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/DriverLib.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/hw_include/DriverLib.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/DriverLib.h
diff --git a/Demo/CORTEX_LM3S102_Rowley/hw_include/EULA.txt b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/EULA.txt
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/hw_include/EULA.txt
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/EULA.txt
diff --git a/Demo/CORTEX_LM3S102_Rowley/hw_include/comp.h b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/comp.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/hw_include/comp.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/comp.h
diff --git a/Demo/CORTEX_LM3S102_Rowley/hw_include/cpu.h b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/cpu.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/hw_include/cpu.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/cpu.h
diff --git a/Demo/CORTEX_LM3S102_Rowley/hw_include/debug.h b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/debug.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/hw_include/debug.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/debug.h
diff --git a/Demo/CORTEX_LM3S102_Rowley/hw_include/flash.h b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/flash.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/hw_include/flash.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/flash.h
diff --git a/Demo/CORTEX_LM3S102_Rowley/hw_include/gpio.h b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/gpio.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/hw_include/gpio.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/gpio.h
diff --git a/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_comp.h b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_comp.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/hw_include/hw_comp.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_comp.h
diff --git a/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_flash.h b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_flash.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/hw_include/hw_flash.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_flash.h
diff --git a/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_gpio.h b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_gpio.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/hw_include/hw_gpio.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_gpio.h
diff --git a/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_i2c.h b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_i2c.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/hw_include/hw_i2c.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_i2c.h
diff --git a/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_ints.h b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_ints.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/hw_include/hw_ints.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_ints.h
diff --git a/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_memmap.h b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_memmap.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/hw_include/hw_memmap.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_memmap.h
diff --git a/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_nvic.h b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_nvic.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/hw_include/hw_nvic.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_nvic.h
diff --git a/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_ssi.h b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_ssi.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/hw_include/hw_ssi.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_ssi.h
diff --git a/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_sysctl.h b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_sysctl.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/hw_include/hw_sysctl.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_sysctl.h
diff --git a/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_timer.h b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_timer.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/hw_include/hw_timer.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_timer.h
diff --git a/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_types.h b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_types.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/hw_include/hw_types.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_types.h
diff --git a/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_uart.h b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_uart.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/hw_include/hw_uart.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_uart.h
diff --git a/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_watchdog.h b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_watchdog.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/hw_include/hw_watchdog.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/hw_watchdog.h
diff --git a/Demo/CORTEX_LM3S102_Rowley/hw_include/i2c.h b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/i2c.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/hw_include/i2c.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/i2c.h
diff --git a/Demo/CORTEX_LM3S102_Rowley/hw_include/interrupt.h b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/interrupt.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/hw_include/interrupt.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/interrupt.h
diff --git a/Demo/CORTEX_LM3S102_Rowley/hw_include/libdriver.a b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/libdriver.a
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/hw_include/libdriver.a
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/libdriver.a
diff --git a/Demo/CORTEX_LM3S102_Rowley/hw_include/pdc.c b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/pdc.c
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/hw_include/pdc.c
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/pdc.c
diff --git a/Demo/CORTEX_LM3S102_Rowley/hw_include/pdc.h b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/pdc.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/hw_include/pdc.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/pdc.h
diff --git a/Demo/CORTEX_LM3S102_Rowley/hw_include/ssi.h b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/ssi.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/hw_include/ssi.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/ssi.h
diff --git a/Demo/CORTEX_LM3S102_Rowley/hw_include/sysctl.h b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/sysctl.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/hw_include/sysctl.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/sysctl.h
diff --git a/Demo/CORTEX_LM3S102_Rowley/hw_include/systick.h b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/systick.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/hw_include/systick.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/systick.h
diff --git a/Demo/CORTEX_LM3S102_Rowley/hw_include/timer.h b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/timer.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/hw_include/timer.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/timer.h
diff --git a/Demo/CORTEX_LM3S102_Rowley/hw_include/uart.h b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/uart.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/hw_include/uart.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/uart.h
diff --git a/Demo/CORTEX_LM3S102_Rowley/hw_include/watchdog.h b/FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/watchdog.h
similarity index 100%
rename from Demo/CORTEX_LM3S102_Rowley/hw_include/watchdog.h
rename to FreeRTOS/Demo/CORTEX_LM3S102_Rowley/hw_include/watchdog.h
diff --git a/Demo/CORTEX_LM3S316_IAR/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_LM3S316_IAR/LM3S316.icf b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/LM3S316.icf
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/LM3S316.icf
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/LM3S316.icf
diff --git a/Demo/CORTEX_LM3S316_IAR/ParTest/ParTest.c b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/ParTest/ParTest.c
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/ParTest/ParTest.c
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/ParTest/ParTest.c
diff --git a/Demo/CORTEX_LM3S316_IAR/RTOSDemo.ewd b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/RTOSDemo.ewd
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/RTOSDemo.ewd
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/RTOSDemo.ewd
diff --git a/Demo/CORTEX_LM3S316_IAR/RTOSDemo.ewp b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/RTOSDemo.ewp
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/RTOSDemo.ewp
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/RTOSDemo.ewp
diff --git a/Demo/CORTEX_LM3S316_IAR/RTOSDemo.eww b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/RTOSDemo.eww
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/RTOSDemo.eww
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/RTOSDemo.eww
diff --git a/Demo/CORTEX_LM3S316_IAR/commstest.c b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/commstest.c
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/commstest.c
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/commstest.c
diff --git a/Demo/CORTEX_LM3S316_IAR/commstest.h b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/commstest.h
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/commstest.h
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/commstest.h
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/DriverLib.h b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/DriverLib.h
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/DriverLib.h
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/DriverLib.h
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/EULA.txt b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/EULA.txt
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/EULA.txt
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/EULA.txt
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/adc.h b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/adc.h
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/adc.h
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/adc.h
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/asmdefs.h b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/asmdefs.h
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/asmdefs.h
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/asmdefs.h
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/comp.h b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/comp.h
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/comp.h
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/comp.h
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/cpu.h b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/cpu.h
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/cpu.h
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/cpu.h
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/cspy.c b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/cspy.c
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/cspy.c
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/cspy.c
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/debug.h b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/debug.h
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/debug.h
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/debug.h
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/diag.h b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/diag.h
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/diag.h
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/diag.h
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/driverlib.r79 b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/driverlib.r79
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/driverlib.r79
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/driverlib.r79
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/flash.h b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/flash.h
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/flash.h
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/flash.h
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/gpio.h b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/gpio.h
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/gpio.h
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/gpio.h
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/hw_adc.h b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/hw_adc.h
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/hw_adc.h
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/hw_adc.h
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/hw_comp.h b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/hw_comp.h
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/hw_comp.h
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/hw_comp.h
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/hw_flash.h b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/hw_flash.h
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/hw_flash.h
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/hw_flash.h
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/hw_gpio.h b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/hw_gpio.h
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/hw_gpio.h
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/hw_gpio.h
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/hw_i2c.h b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/hw_i2c.h
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/hw_i2c.h
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/hw_i2c.h
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/hw_ints.h b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/hw_ints.h
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/hw_ints.h
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/hw_ints.h
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/hw_memmap.h b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/hw_memmap.h
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/hw_memmap.h
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/hw_memmap.h
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/hw_nvic.h b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/hw_nvic.h
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/hw_nvic.h
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/hw_nvic.h
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/hw_pwm.h b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/hw_pwm.h
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/hw_pwm.h
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/hw_pwm.h
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/hw_ssi.h b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/hw_ssi.h
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/hw_ssi.h
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/hw_ssi.h
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/hw_sysctl.h b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/hw_sysctl.h
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/hw_sysctl.h
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/hw_sysctl.h
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/hw_timer.h b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/hw_timer.h
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/hw_timer.h
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/hw_timer.h
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/hw_types.h b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/hw_types.h
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/hw_types.h
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/hw_types.h
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/hw_uart.h b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/hw_uart.h
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/hw_uart.h
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/hw_uart.h
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/hw_watchdog.h b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/hw_watchdog.h
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/hw_watchdog.h
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/hw_watchdog.h
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/i2c.h b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/i2c.h
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/i2c.h
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/i2c.h
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/interrupt.h b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/interrupt.h
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/interrupt.h
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/interrupt.h
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/libdriver.a b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/libdriver.a
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/libdriver.a
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/libdriver.a
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/pdc.c b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/pdc.c
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/pdc.c
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/pdc.c
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/pdc.h b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/pdc.h
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/pdc.h
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/pdc.h
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/pwm.h b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/pwm.h
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/pwm.h
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/pwm.h
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/ssi.h b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/ssi.h
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/ssi.h
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/ssi.h
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/startup.c b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/startup.c
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/startup.c
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/startup.c
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/sysctl.h b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/sysctl.h
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/sysctl.h
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/sysctl.h
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/systick.h b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/systick.h
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/systick.h
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/systick.h
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/timer.h b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/timer.h
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/timer.h
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/timer.h
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/uart.h b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/uart.h
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/uart.h
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/uart.h
diff --git a/Demo/CORTEX_LM3S316_IAR/hw_include/watchdog.h b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/watchdog.h
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/hw_include/watchdog.h
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/hw_include/watchdog.h
diff --git a/Demo/CORTEX_LM3S316_IAR/main.c b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/main.c
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/main.c
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/main.c
diff --git a/Demo/CORTEX_LM3S316_IAR/registertest.s b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/registertest.s
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/registertest.s
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/registertest.s
diff --git a/Demo/CORTEX_LM3S316_IAR/settings/RTOSDemo.dbgdt b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/settings/RTOSDemo.dbgdt
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/settings/RTOSDemo.dbgdt
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/settings/RTOSDemo.dbgdt
diff --git a/Demo/CORTEX_LM3S316_IAR/settings/RTOSDemo.dni b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/settings/RTOSDemo.dni
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/settings/RTOSDemo.dni
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/settings/RTOSDemo.dni
diff --git a/Demo/CORTEX_LM3S316_IAR/settings/RTOSDemo.wsdt b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/settings/RTOSDemo.wsdt
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/settings/RTOSDemo.wsdt
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/settings/RTOSDemo.wsdt
diff --git a/Demo/CORTEX_LM3S316_IAR/settings/driverlib.wsdt b/FreeRTOS/Demo/CORTEX_LM3S316_IAR/settings/driverlib.wsdt
similarity index 100%
rename from Demo/CORTEX_LM3S316_IAR/settings/driverlib.wsdt
rename to FreeRTOS/Demo/CORTEX_LM3S316_IAR/settings/driverlib.wsdt
diff --git a/Demo/CORTEX_LM3S811_GCC/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_LM3S811_GCC/Makefile b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/Makefile
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/Makefile
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/Makefile
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/DriverLib.h b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/DriverLib.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/DriverLib.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/DriverLib.h
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/EULA.txt b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/EULA.txt
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/EULA.txt
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/EULA.txt
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/adc.c b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/adc.c
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/adc.c
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/adc.c
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/adc.h b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/adc.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/adc.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/adc.h
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/comp.c b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/comp.c
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/comp.c
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/comp.c
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/comp.h b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/comp.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/comp.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/comp.h
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/cpu.h b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/cpu.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/cpu.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/cpu.h
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/debug.h b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/debug.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/debug.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/debug.h
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/driverlib.r79 b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/driverlib.r79
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/driverlib.r79
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/driverlib.r79
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/flash.c b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/flash.c
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/flash.c
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/flash.c
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/flash.h b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/flash.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/flash.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/flash.h
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/gpio.c b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/gpio.c
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/gpio.c
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/gpio.c
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/gpio.h b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/gpio.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/gpio.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/gpio.h
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/hw_adc.h b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/hw_adc.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/hw_adc.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/hw_adc.h
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/hw_comp.h b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/hw_comp.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/hw_comp.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/hw_comp.h
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/hw_flash.h b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/hw_flash.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/hw_flash.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/hw_flash.h
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/hw_gpio.h b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/hw_gpio.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/hw_gpio.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/hw_gpio.h
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/hw_i2c.h b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/hw_i2c.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/hw_i2c.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/hw_i2c.h
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/hw_ints.h b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/hw_ints.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/hw_ints.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/hw_ints.h
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/hw_memmap.h b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/hw_memmap.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/hw_memmap.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/hw_memmap.h
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/hw_nvic.h b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/hw_nvic.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/hw_nvic.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/hw_nvic.h
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/hw_pwm.h b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/hw_pwm.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/hw_pwm.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/hw_pwm.h
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/hw_qei.h b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/hw_qei.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/hw_qei.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/hw_qei.h
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/hw_ssi.h b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/hw_ssi.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/hw_ssi.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/hw_ssi.h
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/hw_sysctl.h b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/hw_sysctl.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/hw_sysctl.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/hw_sysctl.h
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/hw_timer.h b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/hw_timer.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/hw_timer.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/hw_timer.h
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/hw_types.h b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/hw_types.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/hw_types.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/hw_types.h
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/hw_uart.h b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/hw_uart.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/hw_uart.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/hw_uart.h
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/hw_watchdog.h b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/hw_watchdog.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/hw_watchdog.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/hw_watchdog.h
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/i2c.c b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/i2c.c
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/i2c.c
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/i2c.c
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/i2c.h b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/i2c.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/i2c.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/i2c.h
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/interrupt.c b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/interrupt.c
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/interrupt.c
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/interrupt.c
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/interrupt.h b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/interrupt.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/interrupt.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/interrupt.h
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/libdriver.a b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/libdriver.a
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/libdriver.a
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/libdriver.a
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/osram96x16.c b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/osram96x16.c
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/osram96x16.c
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/osram96x16.c
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/osram96x16.h b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/osram96x16.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/osram96x16.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/osram96x16.h
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/pwm.c b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/pwm.c
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/pwm.c
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/pwm.c
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/pwm.h b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/pwm.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/pwm.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/pwm.h
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/qei.c b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/qei.c
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/qei.c
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/qei.c
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/qei.h b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/qei.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/qei.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/qei.h
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/ssi.c b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/ssi.c
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/ssi.c
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/ssi.c
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/ssi.h b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/ssi.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/ssi.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/ssi.h
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/sysctl.c b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/sysctl.c
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/sysctl.c
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/sysctl.c
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/sysctl.h b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/sysctl.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/sysctl.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/sysctl.h
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/systick.c b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/systick.c
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/systick.c
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/systick.c
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/systick.h b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/systick.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/systick.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/systick.h
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/timer.c b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/timer.c
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/timer.c
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/timer.c
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/timer.h b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/timer.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/timer.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/timer.h
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/uart.c b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/uart.c
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/uart.c
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/uart.c
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/uart.h b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/uart.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/uart.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/uart.h
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/watchdog.c b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/watchdog.c
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/watchdog.c
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/watchdog.c
diff --git a/Demo/CORTEX_LM3S811_GCC/hw_include/watchdog.h b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/watchdog.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/hw_include/watchdog.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/watchdog.h
diff --git a/Demo/CORTEX_LM3S811_GCC/init/startup.c b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/init/startup.c
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/init/startup.c
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/init/startup.c
diff --git a/Demo/CORTEX_LM3S811_GCC/main.c b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/main.c
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/main.c
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/main.c
diff --git a/Demo/CORTEX_LM3S811_GCC/makedefs b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/makedefs
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/makedefs
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/makedefs
diff --git a/Demo/CORTEX_LM3S811_GCC/standalone.ld b/FreeRTOS/Demo/CORTEX_LM3S811_GCC/standalone.ld
similarity index 100%
rename from Demo/CORTEX_LM3S811_GCC/standalone.ld
rename to FreeRTOS/Demo/CORTEX_LM3S811_GCC/standalone.ld
diff --git a/Demo/CORTEX_LM3S811_IAR/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_LM3S811_IAR/LM3S811.icf b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LM3S811.icf
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LM3S811.icf
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LM3S811.icf
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/DriverLib.h b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/DriverLib.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/DriverLib.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/DriverLib.h
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/EULA.txt b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/EULA.txt
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/EULA.txt
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/EULA.txt
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/adc.c b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/adc.c
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/adc.c
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/adc.c
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/adc.h b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/adc.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/adc.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/adc.h
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/comp.c b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/comp.c
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/comp.c
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/comp.c
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/comp.h b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/comp.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/comp.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/comp.h
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/cpu.h b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/cpu.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/cpu.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/cpu.h
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/debug.h b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/debug.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/debug.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/debug.h
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/driverlib.r79 b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/driverlib.r79
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/driverlib.r79
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/driverlib.r79
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/flash.c b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/flash.c
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/flash.c
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/flash.c
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/flash.h b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/flash.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/flash.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/flash.h
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/gpio.c b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/gpio.c
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/gpio.c
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/gpio.c
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/gpio.h b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/gpio.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/gpio.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/gpio.h
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_adc.h b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_adc.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_adc.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_adc.h
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_comp.h b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_comp.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_comp.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_comp.h
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_flash.h b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_flash.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_flash.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_flash.h
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_gpio.h b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_gpio.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_gpio.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_gpio.h
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_i2c.h b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_i2c.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_i2c.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_i2c.h
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_ints.h b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_ints.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_ints.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_ints.h
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_memmap.h b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_memmap.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_memmap.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_memmap.h
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_nvic.h b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_nvic.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_nvic.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_nvic.h
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_pwm.h b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_pwm.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_pwm.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_pwm.h
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_qei.h b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_qei.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_qei.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_qei.h
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_ssi.h b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_ssi.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_ssi.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_ssi.h
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_sysctl.h b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_sysctl.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_sysctl.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_sysctl.h
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_timer.h b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_timer.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_timer.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_timer.h
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_types.h b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_types.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_types.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_types.h
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_uart.h b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_uart.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_uart.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_uart.h
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_watchdog.h b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_watchdog.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_watchdog.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/hw_watchdog.h
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/i2c.c b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/i2c.c
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/i2c.c
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/i2c.c
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/i2c.h b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/i2c.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/i2c.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/i2c.h
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/interrupt.c b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/interrupt.c
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/interrupt.c
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/interrupt.c
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/interrupt.h b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/interrupt.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/interrupt.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/interrupt.h
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/osram96x16.c b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/osram96x16.c
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/osram96x16.c
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/osram96x16.c
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/osram96x16.h b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/osram96x16.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/osram96x16.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/osram96x16.h
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/pwm.c b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/pwm.c
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/pwm.c
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/pwm.c
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/pwm.h b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/pwm.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/pwm.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/pwm.h
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/qei.c b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/qei.c
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/qei.c
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/qei.c
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/qei.h b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/qei.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/qei.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/qei.h
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/ssi.c b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/ssi.c
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/ssi.c
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/ssi.c
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/ssi.h b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/ssi.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/ssi.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/ssi.h
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/sysctl.c b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/sysctl.c
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/sysctl.c
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/sysctl.c
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/sysctl.h b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/sysctl.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/sysctl.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/sysctl.h
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/systick.c b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/systick.c
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/systick.c
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/systick.c
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/systick.h b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/systick.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/systick.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/systick.h
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/timer.c b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/timer.c
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/timer.c
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/timer.c
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/timer.h b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/timer.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/timer.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/timer.h
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/uart.c b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/uart.c
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/uart.c
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/uart.c
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/uart.h b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/uart.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/uart.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/uart.h
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/watchdog.c b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/watchdog.c
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/watchdog.c
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/watchdog.c
diff --git a/Demo/CORTEX_LM3S811_IAR/LuminaryCode/watchdog.h b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/watchdog.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/LuminaryCode/watchdog.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/LuminaryCode/watchdog.h
diff --git a/Demo/CORTEX_LM3S811_IAR/RTOSDemo.ewd b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/RTOSDemo.ewd
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/RTOSDemo.ewd
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/RTOSDemo.ewd
diff --git a/Demo/CORTEX_LM3S811_IAR/RTOSDemo.ewp b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/RTOSDemo.ewp
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/RTOSDemo.ewp
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/RTOSDemo.ewp
diff --git a/Demo/CORTEX_LM3S811_IAR/RTOSDemo.eww b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/RTOSDemo.eww
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/RTOSDemo.eww
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/RTOSDemo.eww
diff --git a/Demo/CORTEX_LM3S811_IAR/main.c b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/main.c
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/main.c
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/main.c
diff --git a/Demo/CORTEX_LM3S811_IAR/startup.c b/FreeRTOS/Demo/CORTEX_LM3S811_IAR/startup.c
similarity index 100%
rename from Demo/CORTEX_LM3S811_IAR/startup.c
rename to FreeRTOS/Demo/CORTEX_LM3S811_IAR/startup.c
diff --git a/Demo/CORTEX_LM3S811_KEIL/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/DriverLib.h b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/DriverLib.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/LuminaryCode/DriverLib.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/DriverLib.h
diff --git a/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_adc.h b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_adc.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_adc.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_adc.h
diff --git a/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_comp.h b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_comp.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_comp.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_comp.h
diff --git a/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_flash.h b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_flash.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_flash.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_flash.h
diff --git a/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_gpio.h b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_gpio.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_gpio.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_gpio.h
diff --git a/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_i2c.h b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_i2c.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_i2c.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_i2c.h
diff --git a/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_ints.h b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_ints.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_ints.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_ints.h
diff --git a/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_memmap.h b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_memmap.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_memmap.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_memmap.h
diff --git a/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_nvic.h b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_nvic.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_nvic.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_nvic.h
diff --git a/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_pwm.h b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_pwm.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_pwm.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_pwm.h
diff --git a/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_qei.h b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_qei.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_qei.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_qei.h
diff --git a/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_ssi.h b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_ssi.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_ssi.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_ssi.h
diff --git a/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_sysctl.h b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_sysctl.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_sysctl.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_sysctl.h
diff --git a/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_timer.h b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_timer.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_timer.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_timer.h
diff --git a/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_types.h b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_types.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_types.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_types.h
diff --git a/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_uart.h b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_uart.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_uart.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_uart.h
diff --git a/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_watchdog.h b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_watchdog.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_watchdog.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_watchdog.h
diff --git a/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/osram96x16.c b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/osram96x16.c
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/LuminaryCode/osram96x16.c
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/osram96x16.c
diff --git a/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/osram96x16.h b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/osram96x16.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/LuminaryCode/osram96x16.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/osram96x16.h
diff --git a/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/adc.h b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/adc.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/adc.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/adc.h
diff --git a/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/comp.h b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/comp.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/comp.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/comp.h
diff --git a/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/cpu.h b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/cpu.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/cpu.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/cpu.h
diff --git a/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/debug.h b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/debug.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/debug.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/debug.h
diff --git a/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/flash.h b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/flash.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/flash.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/flash.h
diff --git a/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/gpio.h b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/gpio.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/gpio.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/gpio.h
diff --git a/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/i2c.h b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/i2c.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/i2c.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/i2c.h
diff --git a/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/interrupt.h b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/interrupt.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/interrupt.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/interrupt.h
diff --git a/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/pwm.h b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/pwm.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/pwm.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/pwm.h
diff --git a/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/qei.h b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/qei.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/qei.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/qei.h
diff --git a/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/ssi.h b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/ssi.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/ssi.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/ssi.h
diff --git a/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/sysctl.h b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/sysctl.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/sysctl.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/sysctl.h
diff --git a/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/systick.h b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/systick.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/systick.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/systick.h
diff --git a/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/timer.h b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/timer.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/timer.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/timer.h
diff --git a/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/uart.h b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/uart.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/uart.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/uart.h
diff --git a/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/watchdog.h b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/watchdog.h
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/watchdog.h
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/LuminaryCode/src/watchdog.h
diff --git a/Demo/CORTEX_LM3S811_KEIL/RTOSDemo.Opt b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/RTOSDemo.Opt
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/RTOSDemo.Opt
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/RTOSDemo.Opt
diff --git a/Demo/CORTEX_LM3S811_KEIL/RTOSDemo.Uv2 b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/RTOSDemo.Uv2
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/RTOSDemo.Uv2
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/RTOSDemo.Uv2
diff --git a/Demo/CORTEX_LM3S811_KEIL/heap/heap_1.c b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/heap/heap_1.c
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/heap/heap_1.c
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/heap/heap_1.c
diff --git a/Demo/CORTEX_LM3S811_KEIL/main.c b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/main.c
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/main.c
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/main.c
diff --git a/Demo/CORTEX_LM3S811_KEIL/readme.txt b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/readme.txt
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/readme.txt
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/readme.txt
diff --git a/Demo/CORTEX_LM3S811_KEIL/startup_rvmdk.S b/FreeRTOS/Demo/CORTEX_LM3S811_KEIL/startup_rvmdk.S
similarity index 100%
rename from Demo/CORTEX_LM3S811_KEIL/startup_rvmdk.S
rename to FreeRTOS/Demo/CORTEX_LM3S811_KEIL/startup_rvmdk.S
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/.log b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/.log
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/.log
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/.log
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/shareddefaults.xml b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/shareddefaults.xml
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/shareddefaults.xml
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/shareddefaults.xml
diff --git a/Demo/NiosII_CycloneIII_DBC3C40_GCC/cpu_sim/dummy_file b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/.log
similarity index 100%
rename from Demo/NiosII_CycloneIII_DBC3C40_GCC/cpu_sim/dummy_file
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/.log
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/RTOSDemo.sc b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/RTOSDemo.sc
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/RTOSDemo.sc
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/RTOSDemo.sc
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.ui/dialog_settings.xml b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.ui/dialog_settings.xml
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.ui/dialog_settings.xml
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.ui/dialog_settings.xml
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/cHelpSettings.xml b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/cHelpSettings.xml
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/cHelpSettings.xml
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/cHelpSettings.xml
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/dialog_settings.xml b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/dialog_settings.xml
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/dialog_settings.xml
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/dialog_settings.xml
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/2f/4b/45/properties.index b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/2f/4b/45/properties.index
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/2f/4b/45/properties.index
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/2f/4b/45/properties.index
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/33/5b/e7/7a/properties.index b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/33/5b/e7/7a/properties.index
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/33/5b/e7/7a/properties.index
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/33/5b/e7/7a/properties.index
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/33/a8/history.index b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/33/a8/history.index
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/33/a8/history.index
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/33/a8/history.index
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/33/history.index b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/33/history.index
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/33/history.index
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/33/history.index
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/33/properties.index b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/33/properties.index
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/33/properties.index
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/33/properties.index
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/history.index b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/history.index
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/history.index
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/history.index
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/properties.index b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/properties.index
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/properties.index
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/properties.index
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.markers b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.markers
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.markers
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.markers
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/19.tree b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/19.tree
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/19.tree
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/19.tree
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/23.tree b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/23.tree
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/23.tree
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/23.tree
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prj-RTOSDemo.prefs b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prj-RTOSDemo.prefs
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prj-RTOSDemo.prefs
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prj-RTOSDemo.prefs
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.core.prefs b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.core.prefs
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.core.prefs
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.core.prefs
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.ui.prefs b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.ui.prefs
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.ui.prefs
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.ui.prefs
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.managedbuilder.core.prefs
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.managedbuilder.core.prefs
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.managedbuilder.core.prefs
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prefs b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prefs
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prefs
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prefs
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.epp.usagedata.recording.prefs b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.epp.usagedata.recording.prefs
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.epp.usagedata.recording.prefs
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.epp.usagedata.recording.prefs
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.equinox.p2.ui.sdk.prefs b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.equinox.p2.ui.sdk.prefs
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.equinox.p2.ui.sdk.prefs
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.equinox.p2.ui.sdk.prefs
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.help.ui.prefs b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.help.ui.prefs
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.help.ui.prefs
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.help.ui.prefs
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.search.prefs b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.search.prefs
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.search.prefs
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.search.prefs
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.cvs.ui.prefs b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.cvs.ui.prefs
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.cvs.ui.prefs
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.cvs.ui.prefs
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/OpenOCD Programmer.launch b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/OpenOCD Programmer.launch
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/OpenOCD Programmer.launch
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/OpenOCD Programmer.launch
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/OpenOCD Server.launch b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/OpenOCD Server.launch
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/OpenOCD Server.launch
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/OpenOCD Server.launch
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/RTOSDemo.launch b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/RTOSDemo.launch
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/RTOSDemo.launch
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/RTOSDemo.launch
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.equinox.p2.ui.sdk/dialog_settings.xml b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.equinox.p2.ui.sdk/dialog_settings.xml
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.equinox.p2.ui.sdk/dialog_settings.xml
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.equinox.p2.ui.sdk/dialog_settings.xml
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.equinox.p2.ui.sdk/licenses.xml b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.equinox.p2.ui.sdk/licenses.xml
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.equinox.p2.ui.sdk/licenses.xml
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.equinox.p2.ui.sdk/licenses.xml
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.help.ui/dialog_settings.xml b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.help.ui/dialog_settings.xml
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.help.ui/dialog_settings.xml
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.help.ui/dialog_settings.xml
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/Default.pref b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/Default.pref
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/Default.pref
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/Default.pref
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/relative_path.hist b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/relative_path.hist
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/relative_path.hist
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/relative_path.hist
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/working_set.hist b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/working_set.hist
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/working_set.hist
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/working_set.hist
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/working_sets.hist b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/working_sets.hist
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/working_sets.hist
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.help.ui/scope_sets/working_sets.hist
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ltk.ui.refactoring/dialog_settings.xml b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ltk.ui.refactoring/dialog_settings.xml
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ltk.ui.refactoring/dialog_settings.xml
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ltk.ui.refactoring/dialog_settings.xml
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.search/dialog_settings.xml b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.search/dialog_settings.xml
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.search/dialog_settings.xml
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.search/dialog_settings.xml
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui.cheatsheets/dialog_settings.xml b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui.cheatsheets/dialog_settings.xml
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui.cheatsheets/dialog_settings.xml
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui.cheatsheets/dialog_settings.xml
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui.intro/dialog_settings.xml b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui.intro/dialog_settings.xml
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui.intro/dialog_settings.xml
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui.intro/dialog_settings.xml
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench.texteditor/dialog_settings.xml b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench.texteditor/dialog_settings.xml
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench.texteditor/dialog_settings.xml
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench.texteditor/dialog_settings.xml
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui/dialog_settings.xml b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui/dialog_settings.xml
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui/dialog_settings.xml
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.ui/dialog_settings.xml
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.update.ui/dialog_settings.xml b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.update.ui/dialog_settings.xml
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.update.ui/dialog_settings.xml
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/.plugins/org.eclipse.update.ui/dialog_settings.xml
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/version.ini b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/version.ini
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/version.ini
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/.metadata/version.ini
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/.cproject b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/.cproject
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/.cproject
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/.cproject
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/.project b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/.project
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/.project
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/.project
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/.settings/org.eclipse.ltk.core.refactoring.prefs b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/.settings/org.eclipse.ltk.core.refactoring.prefs
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/IntQueueTimer.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/IntQueueTimer.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/IntQueueTimer.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/IntQueueTimer.c
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/IntQueueTimer.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/IntQueueTimer.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/IntQueueTimer.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/IntQueueTimer.h
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/Makefile b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/Makefile
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/Makefile
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/Makefile
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/ParTest/ParTest.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/ParTest/ParTest.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/ParTest/ParTest.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/ParTest/ParTest.c
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/bitmap.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/bitmap.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/bitmap.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/bitmap.h
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/formike128x128x16.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/formike128x128x16.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/formike128x128x16.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/formike128x128x16.c
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/formike128x128x16.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/formike128x128x16.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/formike128x128x16.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/formike128x128x16.h
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/lcd_message.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/lcd_message.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/lcd_message.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/lcd_message.h
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/main.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/main.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/main.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/main.c
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/osram128x64x4.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/osram128x64x4.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/osram128x64x4.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/osram128x64x4.c
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/osram128x64x4.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/osram128x64x4.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/osram128x64x4.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/osram128x64x4.h
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/pack_struct_end.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/pack_struct_end.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/pack_struct_end.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/pack_struct_end.h
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/pack_struct_start.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/pack_struct_start.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/pack_struct_start.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/pack_struct_start.h
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/rit128x96x4.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/rit128x96x4.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/rit128x96x4.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/rit128x96x4.c
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/standalone.ld b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/standalone.ld
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/standalone.ld
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/standalone.ld
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/startup.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/startup.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/startup.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/startup.c
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/timertest.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/timertest.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/timertest.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/timertest.c
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/Makefile.webserver b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/Makefile.webserver
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/Makefile.webserver
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/Makefile.webserver
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/clock-arch.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/clock-arch.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/clock-arch.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/clock-arch.h
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/emac.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/emac.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/emac.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/emac.c
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/emac.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/emac.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/emac.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/emac.h
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/http-strings b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/http-strings
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/http-strings
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/http-strings
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/http-strings.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/http-strings.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/http-strings.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/http-strings.c
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/http-strings.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/http-strings.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/http-strings.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/http-strings.h
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-cgi.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-cgi.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-cgi.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-cgi.c
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-cgi.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-cgi.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-cgi.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-cgi.h
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs.c
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs.h
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs/404.html b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs/404.html
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs/404.html
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs/404.html
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs/index.html b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs/index.html
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs/index.html
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs/index.html
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs/index.shtml b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs/index.shtml
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs/index.shtml
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs/index.shtml
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs/io.shtml b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs/io.shtml
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs/io.shtml
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs/io.shtml
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs/runtime.shtml b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs/runtime.shtml
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs/runtime.shtml
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs/runtime.shtml
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs/stats.shtml b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs/stats.shtml
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs/stats.shtml
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs/stats.shtml
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs/tcp.shtml b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs/tcp.shtml
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs/tcp.shtml
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fs/tcp.shtml
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fsdata.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fsdata.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fsdata.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fsdata.c
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fsdata.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fsdata.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fsdata.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd-fsdata.h
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd.c
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/httpd.h
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/makefsdata b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/makefsdata
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/makefsdata
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/makefsdata
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/makestrings b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/makestrings
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/makestrings
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/makestrings
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/uIP_Task.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/uIP_Task.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/uIP_Task.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/uIP_Task.c
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/uip-conf.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/uip-conf.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/uip-conf.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/uip-conf.h
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/webserver.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/webserver.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/webserver.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/webserver.h
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/fury_ft2232.cfg b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/fury_ft2232.cfg
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/fury_ft2232.cfg
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/fury_ft2232.cfg
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/fury_ft2232_flash.cfg b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/fury_ft2232_flash.cfg
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/fury_ft2232_flash.cfg
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/fury_ft2232_flash.cfg
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/program.script b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/program.script
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Eclipse/program.script
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/program.script
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/IntQueueTimer.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/IntQueueTimer.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/IntQueueTimer.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/IntQueueTimer.c
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/IntQueueTimer.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/IntQueueTimer.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/IntQueueTimer.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/IntQueueTimer.h
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/LM3Sxxxx.icf b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/LM3Sxxxx.icf
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/LM3Sxxxx.icf
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/LM3Sxxxx.icf
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/ParTest/ParTest.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/ParTest/ParTest.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/ParTest/ParTest.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/ParTest/ParTest.c
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.Opt b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.Opt
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.Opt
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.Opt
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.Uv2 b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.Uv2
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.Uv2
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.Uv2
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.ewd b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.ewd
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.ewd
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.ewd
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.ewp b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.ewp
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.ewp
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.ewp
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.eww b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.eww
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.eww
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.eww
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/bitmap.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/bitmap.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/bitmap.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/bitmap.h
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/formike128x128x16.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/formike128x128x16.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/formike128x128x16.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/formike128x128x16.c
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/formike128x128x16.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/formike128x128x16.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/formike128x128x16.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/formike128x128x16.h
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/lcd_message.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/lcd_message.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/lcd_message.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/lcd_message.h
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/main.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/main.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/main.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/main.c
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/osram128x64x4.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/osram128x64x4.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/osram128x64x4.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/osram128x64x4.c
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/osram128x64x4.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/osram128x64x4.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/osram128x64x4.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/osram128x64x4.h
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/rit128x96x4.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/rit128x96x4.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/rit128x96x4.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/rit128x96x4.c
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/settings/RTOSDemo.cspy.bat b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/settings/RTOSDemo.cspy.bat
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/settings/RTOSDemo.cspy.bat
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/settings/RTOSDemo.cspy.bat
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/settings/RTOSDemo.dbgdt b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/settings/RTOSDemo.dbgdt
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/settings/RTOSDemo.dbgdt
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/settings/RTOSDemo.dbgdt
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/settings/RTOSDemo.dni b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/settings/RTOSDemo.dni
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/settings/RTOSDemo.dni
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/settings/RTOSDemo.dni
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/settings/RTOSDemo.wsdt b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/settings/RTOSDemo.wsdt
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/settings/RTOSDemo.wsdt
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/settings/RTOSDemo.wsdt
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/startup_ewarm.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/startup_ewarm.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/startup_ewarm.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/startup_ewarm.c
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/startup_rvmdk.S b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/startup_rvmdk.S
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/startup_rvmdk.S
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/startup_rvmdk.S
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/timertest.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/timertest.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/timertest.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/timertest.c
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/Makefile.webserver b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/Makefile.webserver
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/Makefile.webserver
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/Makefile.webserver
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/clock-arch.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/clock-arch.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/clock-arch.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/clock-arch.h
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/emac.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/emac.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/emac.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/emac.c
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/emac.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/emac.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/emac.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/emac.h
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/http-strings b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/http-strings
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/http-strings
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/http-strings
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/http-strings.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/http-strings.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/http-strings.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/http-strings.c
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/http-strings.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/http-strings.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/http-strings.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/http-strings.h
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-cgi.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-cgi.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-cgi.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-cgi.c
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-cgi.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-cgi.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-cgi.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-cgi.h
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs.c
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs.h
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs/404.html b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs/404.html
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs/404.html
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs/404.html
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs/index.html b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs/index.html
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs/index.html
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs/index.html
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs/index.shtml b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs/index.shtml
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs/index.shtml
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs/index.shtml
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs/io.shtml b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs/io.shtml
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs/io.shtml
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs/io.shtml
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs/stats.shtml b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs/stats.shtml
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs/stats.shtml
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs/stats.shtml
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs/tcp.shtml b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs/tcp.shtml
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs/tcp.shtml
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fs/tcp.shtml
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fsdata.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fsdata.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fsdata.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fsdata.c
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fsdata.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fsdata.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fsdata.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd-fsdata.h
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd.c
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/httpd.h
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/makefsdata b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/makefsdata
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/makefsdata
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/makefsdata
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/makestrings b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/makestrings
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/makestrings
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/makestrings
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/uIP_Task.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/uIP_Task.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/uIP_Task.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/uIP_Task.c
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/uip-conf.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/uip-conf.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/uip-conf.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/uip-conf.h
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/webserver.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/webserver.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/webserver.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/webserver.h
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/IntQueueTimer.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/IntQueueTimer.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/IntQueueTimer.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/IntQueueTimer.c
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/IntQueueTimer.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/IntQueueTimer.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/IntQueueTimer.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/IntQueueTimer.h
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/LM3S_Startup.s b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/LM3S_Startup.s
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/LM3S_Startup.s
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/LM3S_Startup.s
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/LM3S_Target.js b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/LM3S_Target.js
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/LM3S_Target.js
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/LM3S_Target.js
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/ParTest/ParTest.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/ParTest/ParTest.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/ParTest/ParTest.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/ParTest/ParTest.c
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/RTOSDemo.hzp b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/RTOSDemo.hzp
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/RTOSDemo.hzp
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/RTOSDemo.hzp
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/RTOSDemo.hzs b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/RTOSDemo.hzs
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/RTOSDemo.hzs
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/RTOSDemo.hzs
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/bitmap.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/bitmap.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/bitmap.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/bitmap.h
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/formike128x128x16.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/formike128x128x16.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/formike128x128x16.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/formike128x128x16.c
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/formike128x128x16.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/formike128x128x16.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/formike128x128x16.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/formike128x128x16.h
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/lcd_message.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/lcd_message.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/lcd_message.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/lcd_message.h
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/main.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/main.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/main.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/main.c
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/osram128x64x4.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/osram128x64x4.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/osram128x64x4.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/osram128x64x4.c
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/osram128x64x4.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/osram128x64x4.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/osram128x64x4.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/osram128x64x4.h
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/pack_struct_end.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/pack_struct_end.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/pack_struct_end.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/pack_struct_end.h
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/pack_struct_start.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/pack_struct_start.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/pack_struct_start.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/pack_struct_start.h
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/rit128x96x4.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/rit128x96x4.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/rit128x96x4.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/rit128x96x4.c
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/thumb_crt0.s b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/thumb_crt0.s
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/thumb_crt0.s
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/thumb_crt0.s
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/timertest.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/timertest.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/timertest.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/timertest.c
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/Makefile.webserver b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/Makefile.webserver
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/webserver/Makefile.webserver
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/Makefile.webserver
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/clock-arch.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/clock-arch.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/webserver/clock-arch.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/clock-arch.h
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/emac.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/emac.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/webserver/emac.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/emac.c
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/emac.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/emac.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/webserver/emac.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/emac.h
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/http-strings b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/http-strings
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/webserver/http-strings
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/http-strings
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/http-strings.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/http-strings.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/webserver/http-strings.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/http-strings.c
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/http-strings.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/http-strings.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/webserver/http-strings.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/http-strings.h
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-cgi.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-cgi.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-cgi.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-cgi.c
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-cgi.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-cgi.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-cgi.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-cgi.h
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs.c
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs.h
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs/404.html b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs/404.html
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs/404.html
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs/404.html
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs/index.html b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs/index.html
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs/index.html
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs/index.html
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs/index.shtml b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs/index.shtml
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs/index.shtml
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs/index.shtml
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs/io.shtml b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs/io.shtml
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs/io.shtml
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs/io.shtml
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs/runtime.shtml b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs/runtime.shtml
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs/runtime.shtml
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs/runtime.shtml
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs/stats.shtml b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs/stats.shtml
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs/stats.shtml
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs/stats.shtml
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs/tcp.shtml b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs/tcp.shtml
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs/tcp.shtml
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fs/tcp.shtml
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fsdata.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fsdata.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fsdata.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fsdata.c
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fsdata.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fsdata.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fsdata.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd-fsdata.h
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd.c
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/httpd.h
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/makefsdata b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/makefsdata
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/webserver/makefsdata
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/makefsdata
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/makestrings b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/makestrings
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/webserver/makestrings
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/makestrings
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/uIP_Task.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/uIP_Task.c
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/webserver/uIP_Task.c
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/uIP_Task.c
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/uip-conf.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/uip-conf.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/webserver/uip-conf.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/uip-conf.h
diff --git a/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/webserver.h b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/webserver.h
similarity index 100%
rename from Demo/CORTEX_LM3Sxxxx_Rowley/webserver/webserver.h
rename to FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/webserver.h
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/.cproject b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/.cproject
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/.cproject
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/.cproject
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/.project b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/.project
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/.project
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/.project
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/CreateProjectDirectoryStructure.bat b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/CreateProjectDirectoryStructure.bat
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/CreateProjectDirectoryStructure.bat
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/CreateProjectDirectoryStructure.bat
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LCD/font.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LCD/font.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/LCD/font.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LCD/font.h
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LCD/lcd.c b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LCD/lcd.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/LCD/lcd.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LCD/lcd.c
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LCD/lcd.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LCD/lcd.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/LCD/lcd.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LCD/lcd.h
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LCD/lcd_commands.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LCD/lcd_commands.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/LCD/lcd_commands.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LCD/lcd_commands.h
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LCD/lcd_driver.c b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LCD/lcd_driver.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/LCD/lcd_driver.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LCD/lcd_driver.c
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LCD/lcd_driver.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LCD/lcd_driver.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/LCD/lcd_driver.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LCD/lcd_driver.h
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LCD/system_fixed_be_8_15.c b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LCD/system_fixed_be_8_15.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/LCD/system_fixed_be_8_15.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LCD/system_fixed_be_8_15.c
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPC17xx.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPC17xx.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPC17xx.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPC17xx.h
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/USB_CDC.c b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/USB_CDC.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/USB_CDC.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/USB_CDC.c
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/type.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/type.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/type.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/type.h
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbapi.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbapi.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbapi.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbapi.h
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbcontrol.c b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbcontrol.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbcontrol.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbcontrol.c
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbdebug.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbdebug.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbdebug.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbdebug.h
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbhw_lpc.c b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbhw_lpc.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbhw_lpc.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbhw_lpc.c
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbhw_lpc.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbhw_lpc.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbhw_lpc.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbhw_lpc.h
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbinit.c b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbinit.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbinit.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbinit.c
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbstdreq.c b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbstdreq.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbstdreq.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbstdreq.c
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbstruct.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbstruct.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbstruct.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/LPCUSB/usbstruct.h
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/ParTest.c b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/ParTest.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/ParTest.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/ParTest.c
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/core_cm3.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/core_cm3.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/core_cm3.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/core_cm3.h
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/cr_startup_lpc17.c b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/cr_startup_lpc17.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/cr_startup_lpc17.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/cr_startup_lpc17.c
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/main.c b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/main.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/main.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/main.c
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/printf-stdarg.c b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/printf-stdarg.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/printf-stdarg.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/printf-stdarg.c
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/rtosdemo_rdb1768_Debug.ld b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/rtosdemo_rdb1768_Debug.ld
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/rtosdemo_rdb1768_Debug.ld
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/rtosdemo_rdb1768_Debug.ld
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/system_LPC17xx.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/system_LPC17xx.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/system_LPC17xx.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/system_LPC17xx.h
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/EthDev.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/EthDev.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/EthDev.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/EthDev.h
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/EthDev_LPC17xx.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/EthDev_LPC17xx.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/EthDev_LPC17xx.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/EthDev_LPC17xx.h
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/clock-arch.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/clock-arch.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/clock-arch.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/clock-arch.h
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/clock.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/clock.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/clock.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/clock.h
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/emac.c b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/emac.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/emac.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/emac.c
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/http-strings b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/http-strings
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/http-strings
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/http-strings
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/http-strings.c b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/http-strings.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/http-strings.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/http-strings.c
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/http-strings.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/http-strings.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/http-strings.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/http-strings.h
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-cgi.c b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-cgi.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-cgi.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-cgi.c
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-cgi.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-cgi.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-cgi.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-cgi.h
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs.c b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs.c
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs.h
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs/404.html b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs/404.html
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs/404.html
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs/404.html
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs/index.html b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs/index.html
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs/index.html
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs/index.html
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs/index.shtml b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs/index.shtml
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs/index.shtml
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs/index.shtml
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs/io.shtml b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs/io.shtml
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs/io.shtml
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs/io.shtml
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs/runtime.shtml b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs/runtime.shtml
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs/runtime.shtml
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs/runtime.shtml
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs/stats.shtml b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs/stats.shtml
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs/stats.shtml
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs/stats.shtml
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs/tcp.shtml b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs/tcp.shtml
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs/tcp.shtml
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fs/tcp.shtml
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fsdata.c b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fsdata.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fsdata.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fsdata.c
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fsdata.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fsdata.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fsdata.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd-fsdata.h
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd.c b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd.c
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/httpd.h
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/lc-switch.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/lc-switch.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/lc-switch.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/lc-switch.h
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/lc.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/lc.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/lc.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/lc.h
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/makefsdata b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/makefsdata
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/makefsdata
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/makefsdata
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/makestrings b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/makestrings
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/makestrings
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/makestrings
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/psock.c b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/psock.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/psock.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/psock.c
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/psock.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/psock.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/psock.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/psock.h
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/pt.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/pt.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/pt.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/pt.h
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/timer.c b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/timer.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/timer.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/timer.c
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/timer.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/timer.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/timer.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/timer.h
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uIP_Task.c b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uIP_Task.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uIP_Task.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uIP_Task.c
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uip-conf.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uip-conf.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uip-conf.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uip-conf.h
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uip.c b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uip.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uip.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uip.c
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uip.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uip.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uip.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uip.h
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uip_arch.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uip_arch.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uip_arch.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uip_arch.h
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uip_arp.c b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uip_arp.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uip_arp.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uip_arp.c
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uip_arp.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uip_arp.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uip_arp.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uip_arp.h
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uipopt.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uipopt.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uipopt.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uipopt.h
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/webserver.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/webserver.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/webserver.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/webserver.h
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/usbser.inf b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/usbser.inf
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_RedSuite/usbser.inf
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/usbser.inf
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/LED.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/LED.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/LED.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/LED.h
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/LPC1700_Startup.s b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/LPC1700_Startup.s
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/LPC1700_Startup.s
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/LPC1700_Startup.s
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/LPC17xx.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/LPC17xx.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/LPC17xx.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/LPC17xx.h
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/USB_CDC.c b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/USB_CDC.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/USB_CDC.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/USB_CDC.c
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/type.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/type.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/type.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/type.h
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbapi.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbapi.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbapi.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbapi.h
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbcontrol.c b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbcontrol.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbcontrol.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbcontrol.c
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbdebug.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbdebug.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbdebug.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbdebug.h
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbhw_lpc.c b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbhw_lpc.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbhw_lpc.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbhw_lpc.c
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbhw_lpc.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbhw_lpc.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbhw_lpc.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbhw_lpc.h
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbinit.c b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbinit.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbinit.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbinit.c
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbstdreq.c b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbstdreq.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbstdreq.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbstdreq.c
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbstruct.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbstruct.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbstruct.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/LPCUSB/usbstruct.h
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/ParTest.c b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/ParTest.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/ParTest.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/ParTest.c
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/RTOSDemo.hzp b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/RTOSDemo.hzp
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/RTOSDemo.hzp
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/RTOSDemo.hzp
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/RTOSDemo.hzs b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/RTOSDemo.hzs
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/RTOSDemo.hzs
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/RTOSDemo.hzs
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/core_cm3.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/core_cm3.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/core_cm3.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/core_cm3.h
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/flash_placement.xml b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/flash_placement.xml
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/flash_placement.xml
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/flash_placement.xml
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/main.c b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/main.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/main.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/main.c
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/printf-stdarg.c b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/printf-stdarg.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/printf-stdarg.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/printf-stdarg.c
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/system_LPC17xx.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/system_LPC17xx.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/system_LPC17xx.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/system_LPC17xx.h
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/usbser.inf b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/usbser.inf
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/usbser.inf
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/usbser.inf
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/EthDev.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/EthDev.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/webserver/EthDev.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/EthDev.h
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/EthDev_LPC17xx.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/EthDev_LPC17xx.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/webserver/EthDev_LPC17xx.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/EthDev_LPC17xx.h
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/clock-arch.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/clock-arch.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/webserver/clock-arch.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/clock-arch.h
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/emac.c b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/emac.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/webserver/emac.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/emac.c
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/http-strings b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/http-strings
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/webserver/http-strings
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/http-strings
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/http-strings.c b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/http-strings.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/webserver/http-strings.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/http-strings.c
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/http-strings.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/http-strings.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/webserver/http-strings.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/http-strings.h
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-cgi.c b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-cgi.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-cgi.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-cgi.c
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-cgi.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-cgi.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-cgi.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-cgi.h
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs.c b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs.c
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs.h
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs/404.html b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs/404.html
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs/404.html
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs/404.html
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs/index.html b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs/index.html
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs/index.html
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs/index.html
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs/index.shtml b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs/index.shtml
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs/index.shtml
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs/index.shtml
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs/io.shtml b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs/io.shtml
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs/io.shtml
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs/io.shtml
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs/runtime.shtml b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs/runtime.shtml
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs/runtime.shtml
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs/runtime.shtml
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs/stats.shtml b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs/stats.shtml
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs/stats.shtml
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs/stats.shtml
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs/tcp.shtml b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs/tcp.shtml
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs/tcp.shtml
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fs/tcp.shtml
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fsdata.c b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fsdata.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fsdata.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fsdata.c
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fsdata.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fsdata.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fsdata.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd-fsdata.h
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd.c b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd.c
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/httpd.h
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/makefsdata b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/makefsdata
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/webserver/makefsdata
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/makefsdata
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/makestrings b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/makestrings
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/webserver/makestrings
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/makestrings
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/uIP_Task.c b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/uIP_Task.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/webserver/uIP_Task.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/uIP_Task.c
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/uip-conf.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/uip-conf.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/webserver/uip-conf.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/uip-conf.h
diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/webserver.h b/FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/webserver.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_GCC_Rowley/webserver/webserver.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/webserver.h
diff --git a/Demo/CORTEX_LPC1768_IAR/Flash.mac b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/Flash.mac
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/Flash.mac
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/Flash.mac
diff --git a/Demo/CORTEX_LPC1768_IAR/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_LPC1768_IAR/LED.h b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/LED.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/LED.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/LED.h
diff --git a/Demo/CORTEX_LPC1768_IAR/LPC1768_Flash.icf b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/LPC1768_Flash.icf
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/LPC1768_Flash.icf
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/LPC1768_Flash.icf
diff --git a/Demo/CORTEX_LPC1768_IAR/LPC17xx.h b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/LPC17xx.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/LPC17xx.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/LPC17xx.h
diff --git a/Demo/CORTEX_LPC1768_IAR/LPCUSB/USB_CDC.c b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/LPCUSB/USB_CDC.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/LPCUSB/USB_CDC.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/LPCUSB/USB_CDC.c
diff --git a/Demo/CORTEX_LPC1768_IAR/LPCUSB/type.h b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/LPCUSB/type.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/LPCUSB/type.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/LPCUSB/type.h
diff --git a/Demo/CORTEX_LPC1768_IAR/LPCUSB/usbapi.h b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/LPCUSB/usbapi.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/LPCUSB/usbapi.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/LPCUSB/usbapi.h
diff --git a/Demo/CORTEX_LPC1768_IAR/LPCUSB/usbcontrol.c b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/LPCUSB/usbcontrol.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/LPCUSB/usbcontrol.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/LPCUSB/usbcontrol.c
diff --git a/Demo/CORTEX_LPC1768_IAR/LPCUSB/usbdebug.h b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/LPCUSB/usbdebug.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/LPCUSB/usbdebug.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/LPCUSB/usbdebug.h
diff --git a/Demo/CORTEX_LPC1768_IAR/LPCUSB/usbhw_lpc.c b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/LPCUSB/usbhw_lpc.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/LPCUSB/usbhw_lpc.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/LPCUSB/usbhw_lpc.c
diff --git a/Demo/CORTEX_LPC1768_IAR/LPCUSB/usbhw_lpc.h b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/LPCUSB/usbhw_lpc.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/LPCUSB/usbhw_lpc.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/LPCUSB/usbhw_lpc.h
diff --git a/Demo/CORTEX_LPC1768_IAR/LPCUSB/usbinit.c b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/LPCUSB/usbinit.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/LPCUSB/usbinit.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/LPCUSB/usbinit.c
diff --git a/Demo/CORTEX_LPC1768_IAR/LPCUSB/usbstdreq.c b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/LPCUSB/usbstdreq.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/LPCUSB/usbstdreq.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/LPCUSB/usbstdreq.c
diff --git a/Demo/CORTEX_LPC1768_IAR/LPCUSB/usbstruct.h b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/LPCUSB/usbstruct.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/LPCUSB/usbstruct.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/LPCUSB/usbstruct.h
diff --git a/Demo/CORTEX_LPC1768_IAR/ParTest.c b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/ParTest.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/ParTest.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/ParTest.c
diff --git a/Demo/CORTEX_LPC1768_IAR/RTOSDemo.ewd b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/RTOSDemo.ewd
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/RTOSDemo.ewd
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/RTOSDemo.ewd
diff --git a/Demo/CORTEX_LPC1768_IAR/RTOSDemo.ewp b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/RTOSDemo.ewp
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/RTOSDemo.ewp
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/RTOSDemo.ewp
diff --git a/Demo/CORTEX_LPC1768_IAR/RTOSDemo.eww b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/RTOSDemo.eww
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/RTOSDemo.eww
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/RTOSDemo.eww
diff --git a/Demo/CORTEX_LPC1768_IAR/cstartup_M.s b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/cstartup_M.s
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/cstartup_M.s
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/cstartup_M.s
diff --git a/Demo/CORTEX_LPC1768_IAR/main.c b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/main.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/main.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/main.c
diff --git a/Demo/CORTEX_LPC1768_IAR/printf-stdarg.c b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/printf-stdarg.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/printf-stdarg.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/printf-stdarg.c
diff --git a/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.cspy.bat b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.cspy.bat
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.cspy.bat
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.cspy.bat
diff --git a/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.dbgdt b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.dbgdt
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.dbgdt
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.dbgdt
diff --git a/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.dni b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.dni
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.dni
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.dni
diff --git a/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.wsdt b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.wsdt
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.wsdt
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.wsdt
diff --git a/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo_Debug.jlink b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo_Debug.jlink
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo_Debug.jlink
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo_Debug.jlink
diff --git a/Demo/CORTEX_LPC1768_IAR/system_LPC17xx.h b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/system_LPC17xx.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/system_LPC17xx.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/system_LPC17xx.h
diff --git a/Demo/CORTEX_LPC1768_IAR/usbser.inf b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/usbser.inf
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/usbser.inf
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/usbser.inf
diff --git a/Demo/CORTEX_LPC1768_IAR/webserver/EthDev.h b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/EthDev.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/webserver/EthDev.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/EthDev.h
diff --git a/Demo/CORTEX_LPC1768_IAR/webserver/EthDev_LPC17xx.h b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/EthDev_LPC17xx.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/webserver/EthDev_LPC17xx.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/EthDev_LPC17xx.h
diff --git a/Demo/CORTEX_LPC1768_IAR/webserver/clock-arch.h b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/clock-arch.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/webserver/clock-arch.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/clock-arch.h
diff --git a/Demo/CORTEX_LPC1768_IAR/webserver/emac.c b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/emac.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/webserver/emac.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/emac.c
diff --git a/Demo/CORTEX_LPC1768_IAR/webserver/http-strings b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/http-strings
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/webserver/http-strings
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/http-strings
diff --git a/Demo/CORTEX_LPC1768_IAR/webserver/http-strings.c b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/http-strings.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/webserver/http-strings.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/http-strings.c
diff --git a/Demo/CORTEX_LPC1768_IAR/webserver/http-strings.h b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/http-strings.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/webserver/http-strings.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/http-strings.h
diff --git a/Demo/CORTEX_LPC1768_IAR/webserver/httpd-cgi.c b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/httpd-cgi.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/webserver/httpd-cgi.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/httpd-cgi.c
diff --git a/Demo/CORTEX_LPC1768_IAR/webserver/httpd-cgi.h b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/httpd-cgi.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/webserver/httpd-cgi.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/httpd-cgi.h
diff --git a/Demo/CORTEX_LPC1768_IAR/webserver/httpd-fs.c b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/httpd-fs.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/webserver/httpd-fs.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/httpd-fs.c
diff --git a/Demo/CORTEX_LPC1768_IAR/webserver/httpd-fs.h b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/httpd-fs.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/webserver/httpd-fs.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/httpd-fs.h
diff --git a/Demo/CORTEX_LPC1768_IAR/webserver/httpd-fs/404.html b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/httpd-fs/404.html
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/webserver/httpd-fs/404.html
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/httpd-fs/404.html
diff --git a/Demo/CORTEX_LPC1768_IAR/webserver/httpd-fs/index.html b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/httpd-fs/index.html
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/webserver/httpd-fs/index.html
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/httpd-fs/index.html
diff --git a/Demo/CORTEX_LPC1768_IAR/webserver/httpd-fs/index.shtml b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/httpd-fs/index.shtml
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/webserver/httpd-fs/index.shtml
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/httpd-fs/index.shtml
diff --git a/Demo/CORTEX_LPC1768_IAR/webserver/httpd-fs/io.shtml b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/httpd-fs/io.shtml
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/webserver/httpd-fs/io.shtml
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/httpd-fs/io.shtml
diff --git a/Demo/CORTEX_LPC1768_IAR/webserver/httpd-fs/runtime.shtml b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/httpd-fs/runtime.shtml
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/webserver/httpd-fs/runtime.shtml
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/httpd-fs/runtime.shtml
diff --git a/Demo/CORTEX_LPC1768_IAR/webserver/httpd-fs/stats.shtml b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/httpd-fs/stats.shtml
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/webserver/httpd-fs/stats.shtml
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/httpd-fs/stats.shtml
diff --git a/Demo/CORTEX_LPC1768_IAR/webserver/httpd-fs/tcp.shtml b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/httpd-fs/tcp.shtml
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/webserver/httpd-fs/tcp.shtml
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/httpd-fs/tcp.shtml
diff --git a/Demo/CORTEX_LPC1768_IAR/webserver/httpd-fsdata.c b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/httpd-fsdata.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/webserver/httpd-fsdata.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/httpd-fsdata.c
diff --git a/Demo/CORTEX_LPC1768_IAR/webserver/httpd-fsdata.h b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/httpd-fsdata.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/webserver/httpd-fsdata.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/httpd-fsdata.h
diff --git a/Demo/CORTEX_LPC1768_IAR/webserver/httpd.c b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/httpd.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/webserver/httpd.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/httpd.c
diff --git a/Demo/CORTEX_LPC1768_IAR/webserver/httpd.h b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/httpd.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/webserver/httpd.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/httpd.h
diff --git a/Demo/CORTEX_LPC1768_IAR/webserver/makefsdata b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/makefsdata
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/webserver/makefsdata
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/makefsdata
diff --git a/Demo/CORTEX_LPC1768_IAR/webserver/makestrings b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/makestrings
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/webserver/makestrings
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/makestrings
diff --git a/Demo/CORTEX_LPC1768_IAR/webserver/uIP_Task.c b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/uIP_Task.c
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/webserver/uIP_Task.c
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/uIP_Task.c
diff --git a/Demo/CORTEX_LPC1768_IAR/webserver/uip-conf.h b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/uip-conf.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/webserver/uip-conf.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/uip-conf.h
diff --git a/Demo/CORTEX_LPC1768_IAR/webserver/webserver.h b/FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/webserver.h
similarity index 100%
rename from Demo/CORTEX_LPC1768_IAR/webserver/webserver.h
rename to FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/webserver.h
diff --git a/Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/.cproject b/FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/.cproject
similarity index 100%
rename from Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/.cproject
rename to FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/.cproject
diff --git a/Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/.project b/FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/.project
similarity index 100%
rename from Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/.project
rename to FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/.project
diff --git a/Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/docs/CMSIS END USER LICENCE AGREEMENT.pdf b/FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/docs/CMSIS END USER LICENCE AGREEMENT.pdf
similarity index 100%
rename from Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/docs/CMSIS END USER LICENCE AGREEMENT.pdf
rename to FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/docs/CMSIS END USER LICENCE AGREEMENT.pdf
diff --git a/Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/docs/cmsis_readme.txt b/FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/docs/cmsis_readme.txt
similarity index 100%
rename from Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/docs/cmsis_readme.txt
rename to FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/docs/cmsis_readme.txt
diff --git a/Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/history.txt b/FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/history.txt
similarity index 100%
rename from Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/history.txt
rename to FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/history.txt
diff --git a/Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/inc/LPC11xx.h b/FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/inc/LPC11xx.h
similarity index 100%
rename from Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/inc/LPC11xx.h
rename to FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/inc/LPC11xx.h
diff --git a/Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/inc/core_cm0.h b/FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/inc/core_cm0.h
similarity index 100%
rename from Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/inc/core_cm0.h
rename to FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/inc/core_cm0.h
diff --git a/Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/inc/core_cmFunc.h b/FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/inc/core_cmFunc.h
similarity index 100%
rename from Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/inc/core_cmFunc.h
rename to FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/inc/core_cmFunc.h
diff --git a/Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/inc/core_cmInstr.h b/FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/inc/core_cmInstr.h
similarity index 100%
rename from Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/inc/core_cmInstr.h
rename to FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/inc/core_cmInstr.h
diff --git a/Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/inc/system_LPC11xx.h b/FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/inc/system_LPC11xx.h
similarity index 100%
rename from Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/inc/system_LPC11xx.h
rename to FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/inc/system_LPC11xx.h
diff --git a/Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/src/core_cm0.c b/FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/src/core_cm0.c
similarity index 100%
rename from Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/src/core_cm0.c
rename to FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/src/core_cm0.c
diff --git a/Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/src/system_LPC11xx.c b/FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/src/system_LPC11xx.c
similarity index 100%
rename from Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/src/system_LPC11xx.c
rename to FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/CMSISv2p00_LPC11xx/src/system_LPC11xx.c
diff --git a/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/.cproject b/FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/.cproject
similarity index 100%
rename from Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/.cproject
rename to FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/.cproject
diff --git a/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/.project b/FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/.project
similarity index 100%
rename from Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/.project
rename to FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/.project
diff --git a/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/CreateProjectDirectoryStructure.bat b/FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/CreateProjectDirectoryStructure.bat
similarity index 100%
rename from Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/CreateProjectDirectoryStructure.bat
rename to FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/CreateProjectDirectoryStructure.bat
diff --git a/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/IntQueueTimer.c b/FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/IntQueueTimer.c
similarity index 100%
rename from Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/IntQueueTimer.c
rename to FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/IntQueueTimer.c
diff --git a/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/IntQueueTimer.h b/FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/IntQueueTimer.h
similarity index 100%
rename from Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/IntQueueTimer.h
rename to FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/IntQueueTimer.h
diff --git a/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/RegTest.c b/FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/RegTest.c
similarity index 100%
rename from Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/RegTest.c
rename to FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/RegTest.c
diff --git a/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/cr_startup_lpc11.c b/FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/cr_startup_lpc11.c
similarity index 100%
rename from Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/cr_startup_lpc11.c
rename to FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/cr_startup_lpc11.c
diff --git a/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/main-blinky.c b/FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/main-blinky.c
similarity index 100%
rename from Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/main-blinky.c
rename to FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/main-blinky.c
diff --git a/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/main-full.c b/FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/main-full.c
similarity index 100%
rename from Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/main-full.c
rename to FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/main-full.c
diff --git a/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/main.c b/FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/main.c
similarity index 100%
rename from Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/main.c
rename to FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/main.c
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Eval-Board/stm320518_eval.c b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Eval-Board/stm320518_eval.c
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Eval-Board/stm320518_eval.c
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Eval-Board/stm320518_eval.c
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Eval-Board/stm320518_eval.h b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Eval-Board/stm320518_eval.h
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Eval-Board/stm320518_eval.h
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Eval-Board/stm320518_eval.h
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Eval-Board/stm32_eval_legacy.h b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Eval-Board/stm32_eval_legacy.h
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Eval-Board/stm32_eval_legacy.h
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Eval-Board/stm32_eval_legacy.h
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Eval-Board/stm32f0xx_conf.h b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Eval-Board/stm32f0xx_conf.h
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Eval-Board/stm32f0xx_conf.h
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Eval-Board/stm32f0xx_conf.h
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/CMSIS END USER LICENCE AGREEMENT.pdf b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/CMSIS END USER LICENCE AGREEMENT.pdf
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/CMSIS END USER LICENCE AGREEMENT.pdf
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/CMSIS END USER LICENCE AGREEMENT.pdf
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Include/stm32f0xx.h b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Include/stm32f0xx.h
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Include/stm32f0xx.h
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Include/stm32f0xx.h
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Include/system_stm32f0xx.h b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Include/system_stm32f0xx.h
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Include/system_stm32f0xx.h
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Include/system_stm32f0xx.h
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Release_Notes.html b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Release_Notes.html
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Release_Notes.html
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Release_Notes.html
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Source/Templates/TrueSTUDIO/startup_stm32f0xx.s b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Source/Templates/TrueSTUDIO/startup_stm32f0xx.s
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Source/Templates/TrueSTUDIO/startup_stm32f0xx.s
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Source/Templates/TrueSTUDIO/startup_stm32f0xx.s
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Source/Templates/arm/startup_stm32f0xx.s b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Source/Templates/arm/startup_stm32f0xx.s
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Source/Templates/arm/startup_stm32f0xx.s
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Source/Templates/arm/startup_stm32f0xx.s
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Source/Templates/gcc_ride7/startup_stm32f0xx.s b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Source/Templates/gcc_ride7/startup_stm32f0xx.s
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Source/Templates/gcc_ride7/startup_stm32f0xx.s
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Source/Templates/gcc_ride7/startup_stm32f0xx.s
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Source/Templates/iar/startup_stm32f0xx.s b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Source/Templates/iar/startup_stm32f0xx.s
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Source/Templates/iar/startup_stm32f0xx.s
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Source/Templates/iar/startup_stm32f0xx.s
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Source/Templates/system_stm32f0xx.c b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Source/Templates/system_stm32f0xx.c
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Source/Templates/system_stm32f0xx.c
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Device/ST/STM32F0xx/Source/Templates/system_stm32f0xx.c
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/arm_common_tables.h b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/arm_common_tables.h
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/arm_common_tables.h
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/arm_common_tables.h
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/arm_math.h b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/arm_math.h
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/arm_math.h
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/arm_math.h
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/core_cm0.h b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/core_cm0.h
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/core_cm0.h
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/core_cm0.h
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/core_cm3.h b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/core_cm3.h
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/core_cm3.h
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/core_cm3.h
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/core_cm4.h b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/core_cm4.h
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/core_cm4.h
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/core_cm4.h
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/core_cm4_simd.h b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/core_cm4_simd.h
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/core_cm4_simd.h
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/core_cm4_simd.h
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/core_cmFunc.h b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/core_cmFunc.h
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/core_cmFunc.h
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/core_cmFunc.h
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/core_cmInstr.h b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/core_cmInstr.h
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/core_cmInstr.h
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/Include/core_cmInstr.h
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/README.txt b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/README.txt
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/README.txt
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/CMSIS/README.txt
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/MCD-ST Liberty SW License Agreement V2.pdf b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/MCD-ST Liberty SW License Agreement V2.pdf
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/MCD-ST Liberty SW License Agreement V2.pdf
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/MCD-ST Liberty SW License Agreement V2.pdf
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/Release_Notes.html b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/Release_Notes.html
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/Release_Notes.html
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/Release_Notes.html
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_adc.h b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_adc.h
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_adc.h
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_adc.h
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_cec.h b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_cec.h
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_cec.h
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_cec.h
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_comp.h b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_comp.h
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_comp.h
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_comp.h
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_crc.h b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_crc.h
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_crc.h
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_crc.h
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_dac.h b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_dac.h
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_dac.h
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_dac.h
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_dbgmcu.h b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_dbgmcu.h
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_dbgmcu.h
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_dbgmcu.h
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_dma.h b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_dma.h
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_dma.h
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_dma.h
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_exti.h b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_exti.h
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_exti.h
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_exti.h
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_flash.h b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_flash.h
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_flash.h
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_flash.h
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_gpio.h b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_gpio.h
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_gpio.h
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_gpio.h
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_i2c.h b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_i2c.h
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_i2c.h
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_i2c.h
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_iwdg.h b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_iwdg.h
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_iwdg.h
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_iwdg.h
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_misc.h b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_misc.h
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_misc.h
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_misc.h
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_pwr.h b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_pwr.h
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_pwr.h
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_pwr.h
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_rcc.h b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_rcc.h
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_rcc.h
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_rcc.h
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_rtc.h b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_rtc.h
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_rtc.h
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_rtc.h
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_spi.h b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_spi.h
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_spi.h
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_spi.h
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_syscfg.h b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_syscfg.h
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_syscfg.h
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_syscfg.h
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_tim.h b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_tim.h
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_tim.h
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_tim.h
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_usart.h b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_usart.h
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_usart.h
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_usart.h
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_wwdg.h b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_wwdg.h
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_wwdg.h
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_wwdg.h
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_adc.c b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_adc.c
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_adc.c
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_adc.c
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_cec.c b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_cec.c
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_cec.c
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_cec.c
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_comp.c b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_comp.c
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_comp.c
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_comp.c
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_crc.c b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_crc.c
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_crc.c
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_crc.c
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_dac.c b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_dac.c
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_dac.c
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_dac.c
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_dbgmcu.c b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_dbgmcu.c
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_dbgmcu.c
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_dbgmcu.c
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_dma.c b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_dma.c
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_dma.c
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_dma.c
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_exti.c b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_exti.c
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_exti.c
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_exti.c
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_flash.c b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_flash.c
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_flash.c
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_flash.c
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_gpio.c b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_gpio.c
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_gpio.c
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_gpio.c
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_i2c.c b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_i2c.c
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_i2c.c
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_i2c.c
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_iwdg.c b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_iwdg.c
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_iwdg.c
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_iwdg.c
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_misc.c b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_misc.c
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_misc.c
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_misc.c
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_pwr.c b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_pwr.c
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_pwr.c
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_pwr.c
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_rcc.c b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_rcc.c
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_rcc.c
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_rcc.c
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_rtc.c b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_rtc.c
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_rtc.c
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_rtc.c
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_spi.c b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_spi.c
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_spi.c
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_spi.c
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_syscfg.c b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_syscfg.c
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_syscfg.c
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_syscfg.c
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_tim.c b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_tim.c
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_tim.c
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_tim.c
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_usart.c b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_usart.c
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_usart.c
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_usart.c
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_wwdg.c b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_wwdg.c
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_wwdg.c
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_wwdg.c
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/ParTest.c b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/ParTest.c
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/ParTest.c
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/ParTest.c
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/RTOSDemo.ewd b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/RTOSDemo.ewd
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/RTOSDemo.ewd
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/RTOSDemo.ewd
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/RTOSDemo.ewp b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/RTOSDemo.ewp
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/RTOSDemo.ewp
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/RTOSDemo.ewp
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/RTOSDemo.eww b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/RTOSDemo.eww
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/RTOSDemo.eww
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/RTOSDemo.eww
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/RegTest.s b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/RegTest.s
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/RegTest.s
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/RegTest.s
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/main-blinky.c b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/main-blinky.c
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/main-blinky.c
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/main-blinky.c
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/main-full.c b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/main-full.c
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/main-full.c
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/main-full.c
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/main.c b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/main.c
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/main.c
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/main.c
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/startup_stm32f0xx.s b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/startup_stm32f0xx.s
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/startup_stm32f0xx.s
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/startup_stm32f0xx.s
diff --git a/Demo/CORTEX_M0_STM32F0518_IAR/stm32f0xx_flash.icf b/FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/stm32f0xx_flash.icf
similarity index 100%
rename from Demo/CORTEX_M0_STM32F0518_IAR/stm32f0xx_flash.icf
rename to FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/stm32f0xx_flash.icf
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/.cproject b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/.cproject
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/.cproject
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/.cproject
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/.project b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/.project
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/.project
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/.project
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/.settings/com.atollic.truestudio.debug.hardware_device.prefs b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/.settings/com.atollic.truestudio.debug.hardware_device.prefs
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/.settings/com.atollic.truestudio.debug.hardware_device.prefs
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/.settings/com.atollic.truestudio.debug.hardware_device.prefs
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/.settings/org.eclipse.cdt.managedbuilder.core.prefs
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/.settings/org.eclipse.cdt.managedbuilder.core.prefs
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/.settings/org.eclipse.cdt.managedbuilder.core.prefs
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Include/arm_common_tables.h b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Include/arm_common_tables.h
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Include/arm_common_tables.h
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Include/arm_common_tables.h
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Include/arm_math.h b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Include/arm_math.h
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Include/arm_math.h
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Include/arm_math.h
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Include/core_cm4.h b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Include/core_cm4.h
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Include/core_cm4.h
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Include/core_cm4.h
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Include/core_cm4_simd.h b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Include/core_cm4_simd.h
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Include/core_cm4_simd.h
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Include/core_cm4_simd.h
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Include/core_cmFunc.h b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Include/core_cmFunc.h
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Include/core_cmFunc.h
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Include/core_cmFunc.h
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Include/core_cmInstr.h b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Include/core_cmInstr.h
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Include/core_cmInstr.h
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Include/core_cmInstr.h
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Infineon/XMC4500_series/Include/XMC4500.h b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Infineon/XMC4500_series/Include/XMC4500.h
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Infineon/XMC4500_series/Include/XMC4500.h
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Infineon/XMC4500_series/Include/XMC4500.h
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Infineon/XMC4500_series/Include/gpio.h b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Infineon/XMC4500_series/Include/gpio.h
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Infineon/XMC4500_series/Include/gpio.h
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Infineon/XMC4500_series/Include/gpio.h
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Infineon/XMC4500_series/Include/system_XMC4500.h b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Infineon/XMC4500_series/Include/system_XMC4500.h
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Infineon/XMC4500_series/Include/system_XMC4500.h
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CMSIS/Infineon/XMC4500_series/Include/system_XMC4500.h
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CreateProjectDirectoryStructure.bat b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CreateProjectDirectoryStructure.bat
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CreateProjectDirectoryStructure.bat
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CreateProjectDirectoryStructure.bat
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/src/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/src/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/src/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/src/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/src/main.c b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/src/main.c
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/src/main.c
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/src/main.c
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/src/main_blinky.c b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/src/main_blinky.c
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/src/main_blinky.c
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/src/main_blinky.c
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/src/main_full.c b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/src/main_full.c
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/src/main_full.c
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/src/main_full.c
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/src/startup_XMC4500.s b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/src/startup_XMC4500.s
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/src/startup_XMC4500.s
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/src/startup_XMC4500.s
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/src/system_XMC4500.c b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/src/system_XMC4500.c
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/src/system_XMC4500.c
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/src/system_XMC4500.c
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/xmc4500_flash.ld b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/xmc4500_flash.ld
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/xmc4500_flash.ld
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/xmc4500_flash.ld
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_IAR/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/RTOSDemo.ewd b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/RTOSDemo.ewd
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_IAR/RTOSDemo.ewd
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/RTOSDemo.ewd
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/RTOSDemo.ewp b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/RTOSDemo.ewp
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_IAR/RTOSDemo.ewp
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/RTOSDemo.ewp
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/RTOSDemo.eww b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/RTOSDemo.eww
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_IAR/RTOSDemo.eww
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/RTOSDemo.eww
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/RegTest.c b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/RegTest.c
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_IAR/RegTest.c
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/RegTest.c
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/RegTest.s b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/RegTest.s
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_IAR/RegTest.s
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/RegTest.s
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/XMC4500_Flash.icf b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/XMC4500_Flash.icf
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_IAR/XMC4500_Flash.icf
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/XMC4500_Flash.icf
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/main.c b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/main.c
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_IAR/main.c
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/main.c
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/main_blinky.c b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/main_blinky.c
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_IAR/main_blinky.c
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/main_blinky.c
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/main_full.c b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/main_full.c
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_IAR/main_full.c
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/main_full.c
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/settings/RTOSDemo.cspy.bat b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/settings/RTOSDemo.cspy.bat
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_IAR/settings/RTOSDemo.cspy.bat
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/settings/RTOSDemo.cspy.bat
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/settings/RTOSDemo.dbgdt b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/settings/RTOSDemo.dbgdt
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_IAR/settings/RTOSDemo.dbgdt
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/settings/RTOSDemo.dbgdt
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/settings/RTOSDemo.dni b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/settings/RTOSDemo.dni
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_IAR/settings/RTOSDemo.dni
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/settings/RTOSDemo.dni
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/settings/RTOSDemo.wsdt b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/settings/RTOSDemo.wsdt
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_IAR/settings/RTOSDemo.wsdt
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/settings/RTOSDemo.wsdt
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/system/CMSIS/DeviceSupport/Infineon/XMC45xx/System_XMC4500.c b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/system/CMSIS/DeviceSupport/Infineon/XMC45xx/System_XMC4500.c
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_IAR/system/CMSIS/DeviceSupport/Infineon/XMC45xx/System_XMC4500.c
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/system/CMSIS/DeviceSupport/Infineon/XMC45xx/System_XMC4500.c
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/system/CMSIS/DeviceSupport/Infineon/XMC45xx/XMC4500.h b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/system/CMSIS/DeviceSupport/Infineon/XMC45xx/XMC4500.h
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_IAR/system/CMSIS/DeviceSupport/Infineon/XMC45xx/XMC4500.h
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/system/CMSIS/DeviceSupport/Infineon/XMC45xx/XMC4500.h
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/system/CMSIS/DeviceSupport/Infineon/XMC45xx/startup/iar/vector_table_M_forXMC4500.s b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/system/CMSIS/DeviceSupport/Infineon/XMC45xx/startup/iar/vector_table_M_forXMC4500.s
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_IAR/system/CMSIS/DeviceSupport/Infineon/XMC45xx/startup/iar/vector_table_M_forXMC4500.s
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/system/CMSIS/DeviceSupport/Infineon/XMC45xx/startup/iar/vector_table_M_forXMC4500.s
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/system/CMSIS/DeviceSupport/Infineon/XMC45xx/system_XMC4500.h b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/system/CMSIS/DeviceSupport/Infineon/XMC45xx/system_XMC4500.h
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_IAR/system/CMSIS/DeviceSupport/Infineon/XMC45xx/system_XMC4500.h
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/system/CMSIS/DeviceSupport/Infineon/XMC45xx/system_XMC4500.h
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/system/low_level_init.c b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/system/low_level_init.c
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_IAR/system/low_level_init.c
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/system/low_level_init.c
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/Dbg_Flash.ini b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/Dbg_Flash.ini
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_Keil/Dbg_Flash.ini
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/Dbg_Flash.ini
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/Dbg_RAM TraceETM.ini b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/Dbg_RAM TraceETM.ini
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_Keil/Dbg_RAM TraceETM.ini
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/Dbg_RAM TraceETM.ini
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/Dbg_RAM.ini b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/Dbg_RAM.ini
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_Keil/Dbg_RAM.ini
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/Dbg_RAM.ini
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_Keil/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/RTOSDemo.uvopt b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/RTOSDemo.uvopt
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_Keil/RTOSDemo.uvopt
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/RTOSDemo.uvopt
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/RTOSDemo.uvproj b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/RTOSDemo.uvproj
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_Keil/RTOSDemo.uvproj
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/RTOSDemo.uvproj
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/RegTest.c b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/RegTest.c
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_Keil/RegTest.c
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/RegTest.c
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/System_XMC4500.c b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/System_XMC4500.c
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_Keil/System_XMC4500.c
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/System_XMC4500.c
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/Template.sct b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/Template.sct
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_Keil/Template.sct
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/Template.sct
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/main.c b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/main.c
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_Keil/main.c
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/main.c
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/main_blinky.c b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/main_blinky.c
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_Keil/main_blinky.c
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/main_blinky.c
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/main_full.c b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/main_full.c
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_Keil/main_full.c
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/main_full.c
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/startup_XMC4500.s b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/startup_XMC4500.s
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_Keil/startup_XMC4500.s
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/startup_XMC4500.s
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/.cproject b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/.cproject
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/.cproject
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/.cproject
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/.project b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/.project
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/.project
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/.project
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/CreateProjectDirectoryStructure.bat b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/CreateProjectDirectoryStructure.bat
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/CreateProjectDirectoryStructure.bat
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/CreateProjectDirectoryStructure.bat
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/RTOSDemo.lsl b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/RTOSDemo.lsl
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/RTOSDemo.lsl
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/RTOSDemo.lsl
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/Startup/Infineon/XMC4500/cstart_XMC4500.c b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/Startup/Infineon/XMC4500/cstart_XMC4500.c
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/Startup/Infineon/XMC4500/cstart_XMC4500.c
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/Startup/Infineon/XMC4500/cstart_XMC4500.c
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/Startup/Infineon/XMC4500/system_XMC4500.c b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/Startup/Infineon/XMC4500/system_XMC4500.c
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/Startup/Infineon/XMC4500/system_XMC4500.c
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/Startup/Infineon/XMC4500/system_XMC4500.c
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/main.c b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/main.c
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/main.c
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/main.c
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/main_blinky.c b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/main_blinky.c
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/main_blinky.c
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/main_blinky.c
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/main_full.c b/FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/main_full.c
similarity index 100%
rename from Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/main_full.c
rename to FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/main_full.c
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/M0/ReadMe.txt b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/M0/ReadMe.txt
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/M0/ReadMe.txt
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/M0/ReadMe.txt
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4/LPC43XX-M4-FLASH-DEBUG.ini b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4/LPC43XX-M4-FLASH-DEBUG.ini
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4/LPC43XX-M4-FLASH-DEBUG.ini
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4/LPC43XX-M4-FLASH-DEBUG.ini
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4/LPC43XX-M4-FLASH-PROGRAM.ini b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4/LPC43XX-M4-FLASH-PROGRAM.ini
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4/LPC43XX-M4-FLASH-PROGRAM.ini
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4/LPC43XX-M4-FLASH-PROGRAM.ini
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4/M4.uvopt b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4/M4.uvopt
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4/M4.uvopt
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4/M4.uvopt
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4/M4.uvproj b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4/M4.uvproj
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4/M4.uvproj
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4/M4.uvproj
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4/ParTest.c b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4/ParTest.c
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4/ParTest.c
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4/ParTest.c
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4/RegTest.c b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4/RegTest.c
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4/RegTest.c
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4/RegTest.c
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4/main.c b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4/main.c
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4/main.c
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4/main.c
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4_M0_ipc.uvmpw b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4_M0_ipc.uvmpw
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4_M0_ipc.uvmpw
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4_M0_ipc.uvmpw
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_Flash.sct b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_Flash.sct
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_Flash.sct
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_Flash.sct
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc43xx_cgu.c b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc43xx_cgu.c
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc43xx_cgu.c
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc43xx_cgu.c
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc43xx_cgu.h b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc43xx_cgu.h
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc43xx_cgu.h
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc43xx_cgu.h
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc43xx_emc.c b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc43xx_emc.c
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc43xx_emc.c
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc43xx_emc.c
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc43xx_emc.h b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc43xx_emc.h
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc43xx_emc.h
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc43xx_emc.h
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc43xx_i2c.c b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc43xx_i2c.c
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc43xx_i2c.c
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc43xx_i2c.c
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc43xx_i2c.h b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc43xx_i2c.h
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc43xx_i2c.h
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc43xx_i2c.h
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc43xx_libcfg_default.h b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc43xx_libcfg_default.h
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc43xx_libcfg_default.h
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc43xx_libcfg_default.h
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc_types.h b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc_types.h
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc_types.h
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/M4_PeripheralLibraryFiles/lpc_types.h
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/platform_check.h b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/platform_check.h
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/platform_check.h
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/platform_check.h
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/platform_config.c b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/platform_config.c
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/platform_config.c
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/platform_config.c
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/platform_config.h b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/platform_config.h
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/platform_config.h
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/platform_config.h
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/startup_LPC43xx.s b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/startup_LPC43xx.s
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/startup_LPC43xx.s
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/startup_LPC43xx.s
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/Hitex_Fast_Startup.c b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/Hitex_Fast_Startup.c
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/Hitex_Fast_Startup.c
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/Hitex_Fast_Startup.c
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/LPC43xx.h b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/LPC43xx.h
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/LPC43xx.h
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/LPC43xx.h
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/config.h b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/config.h
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/config.h
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/config.h
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/core_cm4.c b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/core_cm4.c
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/core_cm4.c
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/core_cm4.c
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/core_cm4.h b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/core_cm4.h
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/core_cm4.h
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/core_cm4.h
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/core_cmFunc.h b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/core_cmFunc.h
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/core_cmFunc.h
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/core_cmFunc.h
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/core_cmInstr.h b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/core_cmInstr.h
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/core_cmInstr.h
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/core_cmInstr.h
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/dma.h b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/dma.h
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/dma.h
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/dma.h
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/emc_LPC43xx.c b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/emc_LPC43xx.c
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/emc_LPC43xx.c
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/emc_LPC43xx.c
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/emc_LPC43xx.h b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/emc_LPC43xx.h
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/emc_LPC43xx.h
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/emc_LPC43xx.h
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/fpu_init.c b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/fpu_init.c
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/fpu_init.c
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/fpu_init.c
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/fpu_init.h b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/fpu_init.h
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/fpu_init.h
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/fpu_init.h
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/scu.c b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/scu.c
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/scu.c
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/scu.c
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/scu.h b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/scu.h
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/scu.h
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/scu.h
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/startup_LPC43xx.s b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/startup_LPC43xx.s
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/startup_LPC43xx.s
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/startup_LPC43xx.s
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/system_LPC43xx.c b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/system_LPC43xx.c
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/system_LPC43xx.c
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/system_LPC43xx.c
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/system_LPC43xx.h b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/system_LPC43xx.h
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/system_LPC43xx.h
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/system_LPC43xx.h
diff --git a/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/type.h b/FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/type.h
similarity index 100%
rename from Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/type.h
rename to FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/system/type.h
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/CMSIS/Device/ST/STM32F4xx/Release_Notes.html b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/CMSIS/Device/ST/STM32F4xx/Release_Notes.html
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/CMSIS/Device/ST/STM32F4xx/Release_Notes.html
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/CMSIS/Device/ST/STM32F4xx/Release_Notes.html
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/CMSIS/Device/ST/STM32F4xx/Source/Templates/iar/startup_stm32f4xx.s b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/CMSIS/Device/ST/STM32F4xx/Source/Templates/iar/startup_stm32f4xx.s
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/CMSIS/Device/ST/STM32F4xx/Source/Templates/iar/startup_stm32f4xx.s
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/CMSIS/Device/ST/STM32F4xx/Source/Templates/iar/startup_stm32f4xx.s
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/Release_Notes.html b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/Release_Notes.html
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/Release_Notes.html
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/Release_Notes.html
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/misc.h b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/misc.h
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/misc.h
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/misc.h
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_adc.h b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_adc.h
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_adc.h
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_adc.h
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_can.h b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_can.h
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_can.h
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_can.h
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_crc.h b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_crc.h
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_crc.h
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_crc.h
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_cryp.h b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_cryp.h
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_cryp.h
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_cryp.h
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_dac.h b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_dac.h
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_dac.h
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_dac.h
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_dbgmcu.h b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_dbgmcu.h
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_dbgmcu.h
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_dbgmcu.h
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_dcmi.h b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_dcmi.h
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_dcmi.h
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_dcmi.h
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_dma.h b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_dma.h
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_dma.h
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_dma.h
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_exti.h b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_exti.h
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_exti.h
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_exti.h
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_flash.h b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_flash.h
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_flash.h
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_flash.h
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_fsmc.h b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_fsmc.h
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_fsmc.h
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_fsmc.h
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_gpio.h b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_gpio.h
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_gpio.h
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_gpio.h
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_hash.h b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_hash.h
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_hash.h
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_hash.h
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_i2c.h b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_i2c.h
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_i2c.h
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_i2c.h
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_iwdg.h b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_iwdg.h
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_iwdg.h
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_iwdg.h
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_pwr.h b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_pwr.h
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_pwr.h
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_pwr.h
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_rcc.h b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_rcc.h
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_rcc.h
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_rcc.h
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_rng.h b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_rng.h
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_rng.h
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_rng.h
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_rtc.h b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_rtc.h
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_rtc.h
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_rtc.h
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_sdio.h b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_sdio.h
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_sdio.h
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_sdio.h
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_spi.h b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_spi.h
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_spi.h
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_spi.h
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_syscfg.h b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_syscfg.h
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_syscfg.h
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_syscfg.h
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_tim.h b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_tim.h
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_tim.h
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_tim.h
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_usart.h b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_usart.h
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_usart.h
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_usart.h
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_wwdg.h b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_wwdg.h
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_wwdg.h
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_wwdg.h
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/src/misc.c b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/src/misc.c
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/src/misc.c
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/src/misc.c
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/src/stm32f4xx_exti.c b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/src/stm32f4xx_exti.c
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/src/stm32f4xx_exti.c
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/src/stm32f4xx_exti.c
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/src/stm32f4xx_gpio.c b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/src/stm32f4xx_gpio.c
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/src/stm32f4xx_gpio.c
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/src/stm32f4xx_gpio.c
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/src/stm32f4xx_rcc.c b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/src/stm32f4xx_rcc.c
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/src/stm32f4xx_rcc.c
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/src/stm32f4xx_rcc.c
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/src/stm32f4xx_syscfg.c b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/src/stm32f4xx_syscfg.c
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/src/stm32f4xx_syscfg.c
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/Libraries/STM32F4xx_StdPeriph_Driver/src/stm32f4xx_syscfg.c
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/ParTest.c b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/ParTest.c
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/ParTest.c
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/ParTest.c
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/RTOSDemo.ewd b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/RTOSDemo.ewd
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/RTOSDemo.ewd
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/RTOSDemo.ewd
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/RTOSDemo.ewp b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/RTOSDemo.ewp
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/RTOSDemo.ewp
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/RTOSDemo.ewp
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/RTOSDemo.eww b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/RTOSDemo.eww
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/RTOSDemo.eww
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/RTOSDemo.eww
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/RegTest.s b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/RegTest.s
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/RegTest.s
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/RegTest.s
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/board/arm_comm.h b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/board/arm_comm.h
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/board/arm_comm.h
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/board/arm_comm.h
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/board/iar_stm32f407zg_sk.c b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/board/iar_stm32f407zg_sk.c
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/board/iar_stm32f407zg_sk.c
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/board/iar_stm32f407zg_sk.c
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/board/iar_stm32f407zg_sk.h b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/board/iar_stm32f407zg_sk.h
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/board/iar_stm32f407zg_sk.h
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/board/iar_stm32f407zg_sk.h
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/config/stm32f4xx_flash.icf b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/config/stm32f4xx_flash.icf
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/config/stm32f4xx_flash.icf
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/config/stm32f4xx_flash.icf
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/main.c b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/main.c
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/main.c
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/main.c
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/settings/RTOSDemo.cspy.bat b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/settings/RTOSDemo.cspy.bat
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/settings/RTOSDemo.cspy.bat
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/settings/RTOSDemo.cspy.bat
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/settings/RTOSDemo.dbgdt b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/settings/RTOSDemo.dbgdt
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/settings/RTOSDemo.dbgdt
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/settings/RTOSDemo.dbgdt
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/settings/RTOSDemo.dni b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/settings/RTOSDemo.dni
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/settings/RTOSDemo.dni
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/settings/RTOSDemo.dni
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/settings/RTOSDemo.wsdt b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/settings/RTOSDemo.wsdt
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/settings/RTOSDemo.wsdt
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/settings/RTOSDemo.wsdt
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/settings/Test.cspy.bat b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/settings/Test.cspy.bat
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/settings/Test.cspy.bat
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/settings/Test.cspy.bat
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/settings/Test.dbgdt b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/settings/Test.dbgdt
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/settings/Test.dbgdt
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/settings/Test.dbgdt
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/settings/Test.dni b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/settings/Test.dni
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/settings/Test.dni
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/settings/Test.dni
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/settings/Test.wsdt b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/settings/Test.wsdt
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/settings/Test.wsdt
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/settings/Test.wsdt
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/settings/Test_Flash Debug.jlink b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/settings/Test_Flash Debug.jlink
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/settings/Test_Flash Debug.jlink
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/settings/Test_Flash Debug.jlink
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/startup/startup_stm32f4xx.s b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/startup/startup_stm32f4xx.s
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/startup/startup_stm32f4xx.s
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/startup/startup_stm32f4xx.s
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/startup/system_stm32f4xx.c b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/startup/system_stm32f4xx.c
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/startup/system_stm32f4xx.c
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/startup/system_stm32f4xx.c
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/stm32f4xx_conf.h b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/stm32f4xx_conf.h
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/stm32f4xx_conf.h
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/stm32f4xx_conf.h
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/stm32f4xx_it.c b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/stm32f4xx_it.c
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/stm32f4xx_it.c
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/stm32f4xx_it.c
diff --git a/Demo/CORTEX_M4F_STM32F407ZG-SK/stm32f4xx_it.h b/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/stm32f4xx_it.h
similarity index 100%
rename from Demo/CORTEX_M4F_STM32F407ZG-SK/stm32f4xx_it.h
rename to FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/stm32f4xx_it.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/RTOSDemo.atsln b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/RTOSDemo.atsln
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/RTOSDemo.atsln
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/RTOSDemo.atsln
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/RTOSDemo.atsuo b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/RTOSDemo.atsuo
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/RTOSDemo.atsuo
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/RTOSDemo.atsuo
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/RTOSDemo.cproj b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/RTOSDemo.cproj
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/RTOSDemo.cproj
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/RTOSDemo.cproj
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/BlockQ.c b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/BlockQ.c
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/BlockQ.c
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/BlockQ.c
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/GenQTest.c b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/GenQTest.c
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/GenQTest.c
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/GenQTest.c
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/PollQ.c b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/PollQ.c
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/PollQ.c
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/PollQ.c
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/blocktim.c b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/blocktim.c
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/blocktim.c
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/blocktim.c
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/comtest.c b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/comtest.c
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/comtest.c
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/comtest.c
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/countsem.c b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/countsem.c
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/countsem.c
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/countsem.c
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/death.c b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/death.c
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/death.c
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/death.c
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/dynamic.c b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/dynamic.c
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/dynamic.c
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/dynamic.c
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/flash_timer.c b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/flash_timer.c
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/flash_timer.c
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/flash_timer.c
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/BlockQ.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/BlockQ.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/BlockQ.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/BlockQ.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/GenQTest.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/GenQTest.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/GenQTest.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/GenQTest.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/PollQ.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/PollQ.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/PollQ.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/PollQ.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/blocktim.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/blocktim.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/blocktim.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/blocktim.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/comtest2.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/comtest2.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/comtest2.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/comtest2.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/countsem.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/countsem.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/countsem.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/countsem.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/death.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/death.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/death.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/death.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/demo_serial.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/demo_serial.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/demo_serial.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/demo_serial.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/dynamic.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/dynamic.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/dynamic.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/dynamic.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/flash_timer.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/flash_timer.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/flash_timer.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/flash_timer.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/integer.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/integer.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/integer.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/integer.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/partest.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/partest.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/partest.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/partest.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/recmutex.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/recmutex.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/recmutex.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/recmutex.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/semtest.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/semtest.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/semtest.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/semtest.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/integer.c b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/integer.c
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/integer.c
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/integer.c
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/recmutex.c b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/recmutex.c
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/recmutex.c
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/recmutex.c
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/semtest.c b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/semtest.c
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/semtest.c
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/semtest.c
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/ParTest.c b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/ParTest.c
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/ParTest.c
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/ParTest.c
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/boards/board.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/boards/board.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/boards/board.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/boards/board.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/genclk.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/genclk.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/genclk.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/genclk.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/osc.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/osc.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/osc.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/osc.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/pll.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/pll.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/pll.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/pll.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/sam4s/genclk.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/sam4s/genclk.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/sam4s/genclk.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/sam4s/genclk.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/sam4s/osc.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/sam4s/osc.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/sam4s/osc.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/sam4s/osc.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/sam4s/pll.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/sam4s/pll.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/sam4s/pll.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/sam4s/pll.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/sam4s/sysclk.c b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/sam4s/sysclk.c
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/sam4s/sysclk.c
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/sam4s/sysclk.c
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/sam4s/sysclk.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/sam4s/sysclk.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/sam4s/sysclk.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/sam4s/sysclk.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/sysclk.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/sysclk.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/sysclk.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/clock/sysclk.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/gpio/gpio.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/gpio/gpio.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/gpio/gpio.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/gpio/gpio.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/gpio/sam_ioport/sam_gpio.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/gpio/sam_ioport/sam_gpio.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/gpio/sam_ioport/sam_gpio.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/services/gpio/sam_ioport/sam_gpio.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/utils/interrupt.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/utils/interrupt.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/utils/interrupt.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/utils/interrupt.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/utils/interrupt/interrupt_sam_nvic.c b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/utils/interrupt/interrupt_sam_nvic.c
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/utils/interrupt/interrupt_sam_nvic.c
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/utils/interrupt/interrupt_sam_nvic.c
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/utils/interrupt/interrupt_sam_nvic.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/utils/interrupt/interrupt_sam_nvic.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/utils/interrupt/interrupt_sam_nvic.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/common/utils/interrupt/interrupt_sam_nvic.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/boards/sam4s_ek/init.c b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/boards/sam4s_ek/init.c
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/boards/sam4s_ek/init.c
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/boards/sam4s_ek/init.c
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/boards/sam4s_ek/sam4s_ek.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/boards/sam4s_ek/sam4s_ek.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/boards/sam4s_ek/sam4s_ek.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/boards/sam4s_ek/sam4s_ek.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/pio/pio.c b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/pio/pio.c
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/pio/pio.c
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/pio/pio.c
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/pio/pio.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/pio/pio.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/pio/pio.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/pio/pio.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/pio/pio_handler.c b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/pio/pio_handler.c
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/pio/pio_handler.c
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/pio/pio_handler.c
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/pio/pio_handler.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/pio/pio_handler.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/pio/pio_handler.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/pio/pio_handler.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/pmc/pmc.c b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/pmc/pmc.c
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/pmc/pmc.c
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/pmc/pmc.c
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/pmc/pmc.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/pmc/pmc.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/pmc/pmc.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/pmc/pmc.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/pmc/sleep.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/pmc/sleep.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/pmc/sleep.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/pmc/sleep.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/usart/usart.c b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/usart/usart.c
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/usart/usart.c
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/usart/usart.c
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/usart/usart.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/usart/usart.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/usart/usart.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/usart/usart.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_acc.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_acc.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_acc.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_acc.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_adc.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_adc.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_adc.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_adc.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_chipid.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_chipid.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_chipid.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_chipid.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_crccu.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_crccu.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_crccu.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_crccu.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_dacc.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_dacc.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_dacc.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_dacc.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_efc.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_efc.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_efc.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_efc.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_gpbr.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_gpbr.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_gpbr.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_gpbr.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_hsmci.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_hsmci.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_hsmci.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_hsmci.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_matrix.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_matrix.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_matrix.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_matrix.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_pdc.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_pdc.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_pdc.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_pdc.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_pio.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_pio.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_pio.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_pio.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_pmc.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_pmc.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_pmc.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_pmc.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_pwm.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_pwm.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_pwm.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_pwm.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_rstc.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_rstc.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_rstc.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_rstc.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_rtc.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_rtc.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_rtc.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_rtc.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_rtt.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_rtt.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_rtt.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_rtt.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_smc.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_smc.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_smc.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_smc.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_spi.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_spi.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_spi.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_spi.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_ssc.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_ssc.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_ssc.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_ssc.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_supc.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_supc.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_supc.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_supc.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_tc.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_tc.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_tc.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_tc.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_twi.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_twi.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_twi.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_twi.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_uart.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_uart.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_uart.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_uart.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_udp.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_udp.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_udp.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_udp.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_usart.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_usart.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_usart.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_usart.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_wdt.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_wdt.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_wdt.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/component/component_wdt.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_acc.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_acc.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_acc.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_acc.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_adc.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_adc.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_adc.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_adc.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_chipid.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_chipid.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_chipid.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_chipid.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_crccu.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_crccu.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_crccu.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_crccu.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_dacc.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_dacc.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_dacc.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_dacc.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_efc.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_efc.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_efc.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_efc.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_gpbr.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_gpbr.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_gpbr.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_gpbr.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_hsmci.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_hsmci.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_hsmci.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_hsmci.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_matrix.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_matrix.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_matrix.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_matrix.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_pioa.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_pioa.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_pioa.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_pioa.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_piob.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_piob.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_piob.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_piob.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_pioc.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_pioc.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_pioc.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_pioc.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_pmc.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_pmc.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_pmc.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_pmc.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_pwm.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_pwm.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_pwm.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_pwm.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_rstc.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_rstc.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_rstc.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_rstc.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_rtc.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_rtc.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_rtc.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_rtc.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_rtt.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_rtt.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_rtt.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_rtt.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_smc.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_smc.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_smc.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_smc.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_spi.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_spi.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_spi.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_spi.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_ssc.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_ssc.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_ssc.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_ssc.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_supc.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_supc.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_supc.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_supc.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_tc0.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_tc0.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_tc0.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_tc0.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_tc1.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_tc1.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_tc1.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_tc1.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_twi0.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_twi0.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_twi0.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_twi0.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_twi1.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_twi1.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_twi1.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_twi1.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_uart0.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_uart0.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_uart0.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_uart0.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_uart1.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_uart1.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_uart1.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_uart1.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_udp.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_udp.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_udp.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_udp.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_usart0.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_usart0.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_usart0.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_usart0.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_usart1.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_usart1.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_usart1.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_usart1.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_wdt.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_wdt.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_wdt.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/instance/instance_wdt.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/pio/pio_sam4s16c.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/pio/pio_sam4s16c.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/pio/pio_sam4s16c.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/pio/pio_sam4s16c.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/sam4s.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/sam4s.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/sam4s.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/sam4s.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/sam4s16c.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/sam4s16c.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/sam4s16c.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/include/sam4s16c.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/source/templates/exceptions.c b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/source/templates/exceptions.c
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/source/templates/exceptions.c
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/source/templates/exceptions.c
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/source/templates/exceptions.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/source/templates/exceptions.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/source/templates/exceptions.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/source/templates/exceptions.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/source/templates/gcc/startup_sam4s.c b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/source/templates/gcc/startup_sam4s.c
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/source/templates/gcc/startup_sam4s.c
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/source/templates/gcc/startup_sam4s.c
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/source/templates/system_sam4s.c b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/source/templates/system_sam4s.c
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/source/templates/system_sam4s.c
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/source/templates/system_sam4s.c
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/source/templates/system_sam4s.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/source/templates/system_sam4s.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/source/templates/system_sam4s.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/cmsis/sam4s/source/templates/system_sam4s.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/compiler.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/compiler.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/compiler.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/compiler.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/header_files/io.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/header_files/io.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/header_files/io.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/header_files/io.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/linker_scripts/sam4s/sam4s16/gcc/flash.ld b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/linker_scripts/sam4s/sam4s16/gcc/flash.ld
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/linker_scripts/sam4s/sam4s16/gcc/flash.ld
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/linker_scripts/sam4s/sam4s16/gcc/flash.ld
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/make/Makefile.in b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/make/Makefile.in
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/make/Makefile.in
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/make/Makefile.in
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/parts.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/parts.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/parts.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/parts.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/preprocessor/mrepeat.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/preprocessor/mrepeat.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/preprocessor/mrepeat.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/preprocessor/mrepeat.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/preprocessor/preprocessor.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/preprocessor/preprocessor.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/preprocessor/preprocessor.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/preprocessor/preprocessor.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/preprocessor/stringz.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/preprocessor/stringz.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/preprocessor/stringz.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/preprocessor/stringz.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/preprocessor/tpaste.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/preprocessor/tpaste.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/preprocessor/tpaste.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/preprocessor/tpaste.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/status_codes.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/status_codes.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/status_codes.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/utils/status_codes.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/CMSIS END USER LICENCE AGREEMENT.pdf b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/CMSIS END USER LICENCE AGREEMENT.pdf
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/CMSIS END USER LICENCE AGREEMENT.pdf
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/CMSIS END USER LICENCE AGREEMENT.pdf
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/Include/arm_math.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/Include/arm_math.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/Include/arm_math.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/Include/arm_math.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/Include/core_cm4.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/Include/core_cm4.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/Include/core_cm4.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/Include/core_cm4.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/Include/core_cm4_simd.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/Include/core_cm4_simd.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/Include/core_cm4_simd.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/Include/core_cm4_simd.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/Include/core_cmFunc.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/Include/core_cmFunc.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/Include/core_cmFunc.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/Include/core_cmFunc.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/Include/core_cmInstr.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/Include/core_cmInstr.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/Include/core_cmInstr.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/Include/core_cmInstr.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/README.txt b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/README.txt
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/README.txt
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/README.txt
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/license.txt b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/license.txt
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/license.txt
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/CMSIS/license.txt
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/FreeRTOS.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/FreeRTOS.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/FreeRTOS.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/FreeRTOS.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/StackMacros.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/StackMacros.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/StackMacros.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/StackMacros.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/croutine.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/croutine.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/croutine.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/croutine.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/list.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/list.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/list.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/list.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/mpu_wrappers.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/mpu_wrappers.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/mpu_wrappers.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/mpu_wrappers.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/portable.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/portable.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/portable.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/portable.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/projdefs.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/projdefs.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/projdefs.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/projdefs.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/queue.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/queue.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/queue.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/queue.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/semphr.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/semphr.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/semphr.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/semphr.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/task.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/task.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/task.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/task.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/timers.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/timers.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/timers.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/include/timers.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/list.c b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/list.c
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/list.c
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/list.c
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/portable/GCC/ARM_CM3/port.c b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/portable/GCC/ARM_CM3/port.c
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/portable/GCC/ARM_CM3/port.c
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/portable/GCC/ARM_CM3/port.c
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/portable/GCC/ARM_CM3/portmacro.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/portable/GCC/ARM_CM3/portmacro.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/portable/GCC/ARM_CM3/portmacro.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/portable/GCC/ARM_CM3/portmacro.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/portable/MemMang/heap_2.c b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/portable/MemMang/heap_2.c
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/portable/MemMang/heap_2.c
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/portable/MemMang/heap_2.c
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/queue.c b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/queue.c
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/queue.c
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/queue.c
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/tasks.c b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/tasks.c
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/tasks.c
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/tasks.c
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/timers.c b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/timers.c
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/timers.c
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/thirdparty/FreeRTOS/timers.c
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/config/conf_board.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/config/conf_board.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/config/conf_board.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/config/conf_board.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/config/conf_clock.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/config/conf_clock.h
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/config/conf_clock.h
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/config/conf_clock.h
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/main.c b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/main.c
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/main.c
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/main.c
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/main_blinky.c b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/main_blinky.c
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/main_blinky.c
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/main_blinky.c
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/main_full.c b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/main_full.c
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/main_full.c
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/main_full.c
diff --git a/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/serial.c b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/serial.c
similarity index 100%
rename from Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/serial.c
rename to FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/serial.c
diff --git a/Demo/CORTEX_MB9A310_IAR_Keil/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_MB9A310_IAR_Keil/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_MB9A310_IAR_Keil/Fujitu_source/core_cm3.c b/FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/Fujitu_source/core_cm3.c
similarity index 100%
rename from Demo/CORTEX_MB9A310_IAR_Keil/Fujitu_source/core_cm3.c
rename to FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/Fujitu_source/core_cm3.c
diff --git a/Demo/CORTEX_MB9A310_IAR_Keil/Fujitu_source/mb9af314l.h b/FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/Fujitu_source/mb9af314l.h
similarity index 100%
rename from Demo/CORTEX_MB9A310_IAR_Keil/Fujitu_source/mb9af314l.h
rename to FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/Fujitu_source/mb9af314l.h
diff --git a/Demo/CORTEX_MB9A310_IAR_Keil/Fujitu_source/mcu.h b/FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/Fujitu_source/mcu.h
similarity index 100%
rename from Demo/CORTEX_MB9A310_IAR_Keil/Fujitu_source/mcu.h
rename to FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/Fujitu_source/mcu.h
diff --git a/Demo/CORTEX_MB9A310_IAR_Keil/Fujitu_source/startup_iar/startup_mb9af31x.s b/FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/Fujitu_source/startup_iar/startup_mb9af31x.s
similarity index 100%
rename from Demo/CORTEX_MB9A310_IAR_Keil/Fujitu_source/startup_iar/startup_mb9af31x.s
rename to FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/Fujitu_source/startup_iar/startup_mb9af31x.s
diff --git a/Demo/CORTEX_MB9A310_IAR_Keil/Fujitu_source/startup_keil/startup_mb9af31x.s b/FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/Fujitu_source/startup_keil/startup_mb9af31x.s
similarity index 100%
rename from Demo/CORTEX_MB9A310_IAR_Keil/Fujitu_source/startup_keil/startup_mb9af31x.s
rename to FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/Fujitu_source/startup_keil/startup_mb9af31x.s
diff --git a/Demo/CORTEX_MB9A310_IAR_Keil/Fujitu_source/system_mb9af31x.c b/FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/Fujitu_source/system_mb9af31x.c
similarity index 100%
rename from Demo/CORTEX_MB9A310_IAR_Keil/Fujitu_source/system_mb9af31x.c
rename to FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/Fujitu_source/system_mb9af31x.c
diff --git a/Demo/CORTEX_MB9A310_IAR_Keil/Fujitu_source/system_mb9af31x.h b/FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/Fujitu_source/system_mb9af31x.h
similarity index 100%
rename from Demo/CORTEX_MB9A310_IAR_Keil/Fujitu_source/system_mb9af31x.h
rename to FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/Fujitu_source/system_mb9af31x.h
diff --git a/Demo/CORTEX_MB9A310_IAR_Keil/ParTest.c b/FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/ParTest.c
similarity index 100%
rename from Demo/CORTEX_MB9A310_IAR_Keil/ParTest.c
rename to FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/ParTest.c
diff --git a/Demo/CORTEX_MB9A310_IAR_Keil/RTOSDemo_IAR.ewd b/FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/RTOSDemo_IAR.ewd
similarity index 100%
rename from Demo/CORTEX_MB9A310_IAR_Keil/RTOSDemo_IAR.ewd
rename to FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/RTOSDemo_IAR.ewd
diff --git a/Demo/CORTEX_MB9A310_IAR_Keil/RTOSDemo_IAR.ewp b/FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/RTOSDemo_IAR.ewp
similarity index 100%
rename from Demo/CORTEX_MB9A310_IAR_Keil/RTOSDemo_IAR.ewp
rename to FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/RTOSDemo_IAR.ewp
diff --git a/Demo/CORTEX_MB9A310_IAR_Keil/RTOSDemo_IAR.eww b/FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/RTOSDemo_IAR.eww
similarity index 100%
rename from Demo/CORTEX_MB9A310_IAR_Keil/RTOSDemo_IAR.eww
rename to FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/RTOSDemo_IAR.eww
diff --git a/Demo/CORTEX_MB9A310_IAR_Keil/RTOSDemo_Keil.uvopt b/FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/RTOSDemo_Keil.uvopt
similarity index 100%
rename from Demo/CORTEX_MB9A310_IAR_Keil/RTOSDemo_Keil.uvopt
rename to FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/RTOSDemo_Keil.uvopt
diff --git a/Demo/CORTEX_MB9A310_IAR_Keil/RTOSDemo_Keil.uvproj b/FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/RTOSDemo_Keil.uvproj
similarity index 100%
rename from Demo/CORTEX_MB9A310_IAR_Keil/RTOSDemo_Keil.uvproj
rename to FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/RTOSDemo_Keil.uvproj
diff --git a/Demo/CORTEX_MB9A310_IAR_Keil/config/Ram_VTOR.mac b/FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/config/Ram_VTOR.mac
similarity index 100%
rename from Demo/CORTEX_MB9A310_IAR_Keil/config/Ram_VTOR.mac
rename to FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/config/Ram_VTOR.mac
diff --git a/Demo/CORTEX_MB9A310_IAR_Keil/config/flashloader/FlashLoader.board b/FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/config/flashloader/FlashLoader.board
similarity index 100%
rename from Demo/CORTEX_MB9A310_IAR_Keil/config/flashloader/FlashLoader.board
rename to FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/config/flashloader/FlashLoader.board
diff --git a/Demo/CORTEX_MB9A310_IAR_Keil/config/flashloader/FlashMB9A310.flash b/FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/config/flashloader/FlashMB9A310.flash
similarity index 100%
rename from Demo/CORTEX_MB9A310_IAR_Keil/config/flashloader/FlashMB9A310.flash
rename to FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/config/flashloader/FlashMB9A310.flash
diff --git a/Demo/CORTEX_MB9A310_IAR_Keil/config/flashloader/FlashMB9A310.mac b/FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/config/flashloader/FlashMB9A310.mac
similarity index 100%
rename from Demo/CORTEX_MB9A310_IAR_Keil/config/flashloader/FlashMB9A310.mac
rename to FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/config/flashloader/FlashMB9A310.mac
diff --git a/Demo/CORTEX_MB9A310_IAR_Keil/config/flashloader/FlashMB9A310.out b/FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/config/flashloader/FlashMB9A310.out
similarity index 100%
rename from Demo/CORTEX_MB9A310_IAR_Keil/config/flashloader/FlashMB9A310.out
rename to FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/config/flashloader/FlashMB9A310.out
diff --git a/Demo/CORTEX_MB9A310_IAR_Keil/config/mb9af314.icf b/FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/config/mb9af314.icf
similarity index 100%
rename from Demo/CORTEX_MB9A310_IAR_Keil/config/mb9af314.icf
rename to FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/config/mb9af314.icf
diff --git a/Demo/CORTEX_MB9A310_IAR_Keil/main-full.c b/FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/main-full.c
similarity index 100%
rename from Demo/CORTEX_MB9A310_IAR_Keil/main-full.c
rename to FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/main-full.c
diff --git a/Demo/CORTEX_MB9A310_IAR_Keil/main_blinky.c b/FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/main_blinky.c
similarity index 100%
rename from Demo/CORTEX_MB9A310_IAR_Keil/main_blinky.c
rename to FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/main_blinky.c
diff --git a/Demo/CORTEX_MB9A310_IAR_Keil/serial.c b/FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/serial.c
similarity index 100%
rename from Demo/CORTEX_MB9A310_IAR_Keil/serial.c
rename to FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/serial.c
diff --git a/Demo/CORTEX_MB9B500_IAR_Keil/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_MB9B500_IAR_Keil/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_MB9B500_IAR_Keil/Fujitu_source/core_cm3.c b/FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/Fujitu_source/core_cm3.c
similarity index 100%
rename from Demo/CORTEX_MB9B500_IAR_Keil/Fujitu_source/core_cm3.c
rename to FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/Fujitu_source/core_cm3.c
diff --git a/Demo/CORTEX_MB9B500_IAR_Keil/Fujitu_source/core_cm3.h b/FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/Fujitu_source/core_cm3.h
similarity index 100%
rename from Demo/CORTEX_MB9B500_IAR_Keil/Fujitu_source/core_cm3.h
rename to FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/Fujitu_source/core_cm3.h
diff --git a/Demo/CORTEX_MB9B500_IAR_Keil/Fujitu_source/mb9bf506n.h b/FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/Fujitu_source/mb9bf506n.h
similarity index 100%
rename from Demo/CORTEX_MB9B500_IAR_Keil/Fujitu_source/mb9bf506n.h
rename to FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/Fujitu_source/mb9bf506n.h
diff --git a/Demo/CORTEX_MB9B500_IAR_Keil/Fujitu_source/startup_iar/startup_mb9bf50x.s b/FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/Fujitu_source/startup_iar/startup_mb9bf50x.s
similarity index 100%
rename from Demo/CORTEX_MB9B500_IAR_Keil/Fujitu_source/startup_iar/startup_mb9bf50x.s
rename to FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/Fujitu_source/startup_iar/startup_mb9bf50x.s
diff --git a/Demo/CORTEX_MB9B500_IAR_Keil/Fujitu_source/startup_keil/startup_mb9bf50x.s b/FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/Fujitu_source/startup_keil/startup_mb9bf50x.s
similarity index 100%
rename from Demo/CORTEX_MB9B500_IAR_Keil/Fujitu_source/startup_keil/startup_mb9bf50x.s
rename to FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/Fujitu_source/startup_keil/startup_mb9bf50x.s
diff --git a/Demo/CORTEX_MB9B500_IAR_Keil/Fujitu_source/system_mb9bf50x.c b/FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/Fujitu_source/system_mb9bf50x.c
similarity index 100%
rename from Demo/CORTEX_MB9B500_IAR_Keil/Fujitu_source/system_mb9bf50x.c
rename to FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/Fujitu_source/system_mb9bf50x.c
diff --git a/Demo/CORTEX_MB9B500_IAR_Keil/Fujitu_source/system_mb9bf50x.h b/FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/Fujitu_source/system_mb9bf50x.h
similarity index 100%
rename from Demo/CORTEX_MB9B500_IAR_Keil/Fujitu_source/system_mb9bf50x.h
rename to FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/Fujitu_source/system_mb9bf50x.h
diff --git a/Demo/CORTEX_MB9B500_IAR_Keil/ParTest.c b/FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/ParTest.c
similarity index 100%
rename from Demo/CORTEX_MB9B500_IAR_Keil/ParTest.c
rename to FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/ParTest.c
diff --git a/Demo/CORTEX_MB9B500_IAR_Keil/RTOSDemo_IAR.ewd b/FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/RTOSDemo_IAR.ewd
similarity index 100%
rename from Demo/CORTEX_MB9B500_IAR_Keil/RTOSDemo_IAR.ewd
rename to FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/RTOSDemo_IAR.ewd
diff --git a/Demo/CORTEX_MB9B500_IAR_Keil/RTOSDemo_IAR.ewp b/FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/RTOSDemo_IAR.ewp
similarity index 100%
rename from Demo/CORTEX_MB9B500_IAR_Keil/RTOSDemo_IAR.ewp
rename to FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/RTOSDemo_IAR.ewp
diff --git a/Demo/CORTEX_MB9B500_IAR_Keil/RTOSDemo_IAR.eww b/FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/RTOSDemo_IAR.eww
similarity index 100%
rename from Demo/CORTEX_MB9B500_IAR_Keil/RTOSDemo_IAR.eww
rename to FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/RTOSDemo_IAR.eww
diff --git a/Demo/CORTEX_MB9B500_IAR_Keil/RTOSDemo_Keil.uvopt b/FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/RTOSDemo_Keil.uvopt
similarity index 100%
rename from Demo/CORTEX_MB9B500_IAR_Keil/RTOSDemo_Keil.uvopt
rename to FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/RTOSDemo_Keil.uvopt
diff --git a/Demo/CORTEX_MB9B500_IAR_Keil/RTOSDemo_Keil.uvproj b/FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/RTOSDemo_Keil.uvproj
similarity index 100%
rename from Demo/CORTEX_MB9B500_IAR_Keil/RTOSDemo_Keil.uvproj
rename to FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/RTOSDemo_Keil.uvproj
diff --git a/Demo/CORTEX_MB9B500_IAR_Keil/config/MB9BF506.icf b/FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/config/MB9BF506.icf
similarity index 100%
rename from Demo/CORTEX_MB9B500_IAR_Keil/config/MB9BF506.icf
rename to FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/config/MB9BF506.icf
diff --git a/Demo/CORTEX_MB9B500_IAR_Keil/config/Ram_VTOR.mac b/FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/config/Ram_VTOR.mac
similarity index 100%
rename from Demo/CORTEX_MB9B500_IAR_Keil/config/Ram_VTOR.mac
rename to FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/config/Ram_VTOR.mac
diff --git a/Demo/CORTEX_MB9B500_IAR_Keil/config/flashloader/FlashLoader.board b/FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/config/flashloader/FlashLoader.board
similarity index 100%
rename from Demo/CORTEX_MB9B500_IAR_Keil/config/flashloader/FlashLoader.board
rename to FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/config/flashloader/FlashLoader.board
diff --git a/Demo/CORTEX_MB9B500_IAR_Keil/config/flashloader/FlashMB9BF506.flash b/FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/config/flashloader/FlashMB9BF506.flash
similarity index 100%
rename from Demo/CORTEX_MB9B500_IAR_Keil/config/flashloader/FlashMB9BF506.flash
rename to FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/config/flashloader/FlashMB9BF506.flash
diff --git a/Demo/CORTEX_MB9B500_IAR_Keil/config/flashloader/FlashMB9BF506.mac b/FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/config/flashloader/FlashMB9BF506.mac
similarity index 100%
rename from Demo/CORTEX_MB9B500_IAR_Keil/config/flashloader/FlashMB9BF506.mac
rename to FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/config/flashloader/FlashMB9BF506.mac
diff --git a/Demo/CORTEX_MB9B500_IAR_Keil/config/flashloader/FlashMB9BF506.out b/FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/config/flashloader/FlashMB9BF506.out
similarity index 100%
rename from Demo/CORTEX_MB9B500_IAR_Keil/config/flashloader/FlashMB9BF506.out
rename to FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/config/flashloader/FlashMB9BF506.out
diff --git a/Demo/CORTEX_MB9B500_IAR_Keil/config/mb9bf506_ram.icf b/FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/config/mb9bf506_ram.icf
similarity index 100%
rename from Demo/CORTEX_MB9B500_IAR_Keil/config/mb9bf506_ram.icf
rename to FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/config/mb9bf506_ram.icf
diff --git a/Demo/CORTEX_MB9B500_IAR_Keil/main-full.c b/FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/main-full.c
similarity index 100%
rename from Demo/CORTEX_MB9B500_IAR_Keil/main-full.c
rename to FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/main-full.c
diff --git a/Demo/CORTEX_MB9B500_IAR_Keil/main_blinky.c b/FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/main_blinky.c
similarity index 100%
rename from Demo/CORTEX_MB9B500_IAR_Keil/main_blinky.c
rename to FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/main_blinky.c
diff --git a/Demo/CORTEX_MB9B500_IAR_Keil/serial.c b/FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/serial.c
similarity index 100%
rename from Demo/CORTEX_MB9B500_IAR_Keil/serial.c
rename to FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/serial.c
diff --git a/Demo/CORTEX_MPU_LM3Sxxxx_Rowley/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_MPU_LM3Sxxxx_Rowley/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_MPU_LM3Sxxxx_Rowley/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_MPU_LM3Sxxxx_Rowley/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_MPU_LM3Sxxxx_Rowley/LM3S_Startup.s b/FreeRTOS/Demo/CORTEX_MPU_LM3Sxxxx_Rowley/LM3S_Startup.s
similarity index 100%
rename from Demo/CORTEX_MPU_LM3Sxxxx_Rowley/LM3S_Startup.s
rename to FreeRTOS/Demo/CORTEX_MPU_LM3Sxxxx_Rowley/LM3S_Startup.s
diff --git a/Demo/CORTEX_MPU_LM3Sxxxx_Rowley/LM3S_Target.js b/FreeRTOS/Demo/CORTEX_MPU_LM3Sxxxx_Rowley/LM3S_Target.js
similarity index 100%
rename from Demo/CORTEX_MPU_LM3Sxxxx_Rowley/LM3S_Target.js
rename to FreeRTOS/Demo/CORTEX_MPU_LM3Sxxxx_Rowley/LM3S_Target.js
diff --git a/Demo/CORTEX_MPU_LM3Sxxxx_Rowley/RTOSDemo.hzp b/FreeRTOS/Demo/CORTEX_MPU_LM3Sxxxx_Rowley/RTOSDemo.hzp
similarity index 100%
rename from Demo/CORTEX_MPU_LM3Sxxxx_Rowley/RTOSDemo.hzp
rename to FreeRTOS/Demo/CORTEX_MPU_LM3Sxxxx_Rowley/RTOSDemo.hzp
diff --git a/Demo/CORTEX_MPU_LM3Sxxxx_Rowley/RTOSDemo.hzs b/FreeRTOS/Demo/CORTEX_MPU_LM3Sxxxx_Rowley/RTOSDemo.hzs
similarity index 100%
rename from Demo/CORTEX_MPU_LM3Sxxxx_Rowley/RTOSDemo.hzs
rename to FreeRTOS/Demo/CORTEX_MPU_LM3Sxxxx_Rowley/RTOSDemo.hzs
diff --git a/Demo/CORTEX_MPU_LM3Sxxxx_Rowley/flash_placement.xml b/FreeRTOS/Demo/CORTEX_MPU_LM3Sxxxx_Rowley/flash_placement.xml
similarity index 100%
rename from Demo/CORTEX_MPU_LM3Sxxxx_Rowley/flash_placement.xml
rename to FreeRTOS/Demo/CORTEX_MPU_LM3Sxxxx_Rowley/flash_placement.xml
diff --git a/Demo/CORTEX_MPU_LM3Sxxxx_Rowley/main.c b/FreeRTOS/Demo/CORTEX_MPU_LM3Sxxxx_Rowley/main.c
similarity index 100%
rename from Demo/CORTEX_MPU_LM3Sxxxx_Rowley/main.c
rename to FreeRTOS/Demo/CORTEX_MPU_LM3Sxxxx_Rowley/main.c
diff --git a/Demo/CORTEX_MPU_LM3Sxxxx_Rowley/thumb_crt0.s b/FreeRTOS/Demo/CORTEX_MPU_LM3Sxxxx_Rowley/thumb_crt0.s
similarity index 100%
rename from Demo/CORTEX_MPU_LM3Sxxxx_Rowley/thumb_crt0.s
rename to FreeRTOS/Demo/CORTEX_MPU_LM3Sxxxx_Rowley/thumb_crt0.s
diff --git a/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/.cproject b/FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/.cproject
similarity index 100%
rename from Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/.cproject
rename to FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/.cproject
diff --git a/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/.project b/FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/.project
similarity index 100%
rename from Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/.project
rename to FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/.project
diff --git a/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/CreateProjectDirectoryStructure.bat b/FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/CreateProjectDirectoryStructure.bat
similarity index 100%
rename from Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/CreateProjectDirectoryStructure.bat
rename to FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/CreateProjectDirectoryStructure.bat
diff --git a/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LCD/font.h b/FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LCD/font.h
similarity index 100%
rename from Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LCD/font.h
rename to FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LCD/font.h
diff --git a/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LCD/lcd.c b/FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LCD/lcd.c
similarity index 100%
rename from Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LCD/lcd.c
rename to FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LCD/lcd.c
diff --git a/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LCD/lcd.h b/FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LCD/lcd.h
similarity index 100%
rename from Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LCD/lcd.h
rename to FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LCD/lcd.h
diff --git a/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LCD/lcd_commands.h b/FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LCD/lcd_commands.h
similarity index 100%
rename from Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LCD/lcd_commands.h
rename to FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LCD/lcd_commands.h
diff --git a/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LCD/lcd_driver.c b/FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LCD/lcd_driver.c
similarity index 100%
rename from Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LCD/lcd_driver.c
rename to FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LCD/lcd_driver.c
diff --git a/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LCD/lcd_driver.h b/FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LCD/lcd_driver.h
similarity index 100%
rename from Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LCD/lcd_driver.h
rename to FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LCD/lcd_driver.h
diff --git a/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LCD/system_fixed_be_8_15.c b/FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LCD/system_fixed_be_8_15.c
similarity index 100%
rename from Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LCD/system_fixed_be_8_15.c
rename to FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LCD/system_fixed_be_8_15.c
diff --git a/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LPC17xx.h b/FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LPC17xx.h
similarity index 100%
rename from Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LPC17xx.h
rename to FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/LPC17xx.h
diff --git a/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/core_cm3.h b/FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/core_cm3.h
similarity index 100%
rename from Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/core_cm3.h
rename to FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/core_cm3.h
diff --git a/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/cr_startup_lpc17.c b/FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/cr_startup_lpc17.c
similarity index 100%
rename from Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/cr_startup_lpc17.c
rename to FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/cr_startup_lpc17.c
diff --git a/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/main.c b/FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/main.c
similarity index 100%
rename from Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/main.c
rename to FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/main.c
diff --git a/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/printf-stdarg.c b/FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/printf-stdarg.c
similarity index 100%
rename from Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/printf-stdarg.c
rename to FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/printf-stdarg.c
diff --git a/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/rtosdemo_rdb1768_Debug.ld b/FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/rtosdemo_rdb1768_Debug.ld
similarity index 100%
rename from Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/rtosdemo_rdb1768_Debug.ld
rename to FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/rtosdemo_rdb1768_Debug.ld
diff --git a/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/syscalls.c b/FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/syscalls.c
similarity index 100%
rename from Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/syscalls.c
rename to FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/syscalls.c
diff --git a/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/system_LPC17xx.h b/FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/system_LPC17xx.h
similarity index 100%
rename from Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/system_LPC17xx.h
rename to FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/system_LPC17xx.h
diff --git a/Demo/CORTEX_STM32F100_Atollic/.cproject b/FreeRTOS/Demo/CORTEX_STM32F100_Atollic/.cproject
similarity index 100%
rename from Demo/CORTEX_STM32F100_Atollic/.cproject
rename to FreeRTOS/Demo/CORTEX_STM32F100_Atollic/.cproject
diff --git a/Demo/CORTEX_STM32F100_Atollic/.project b/FreeRTOS/Demo/CORTEX_STM32F100_Atollic/.project
similarity index 100%
rename from Demo/CORTEX_STM32F100_Atollic/.project
rename to FreeRTOS/Demo/CORTEX_STM32F100_Atollic/.project
diff --git a/Demo/CORTEX_STM32F100_Atollic/.settings/com.atollic.truestudio.debug.hardware_device.prefs b/FreeRTOS/Demo/CORTEX_STM32F100_Atollic/.settings/com.atollic.truestudio.debug.hardware_device.prefs
similarity index 100%
rename from Demo/CORTEX_STM32F100_Atollic/.settings/com.atollic.truestudio.debug.hardware_device.prefs
rename to FreeRTOS/Demo/CORTEX_STM32F100_Atollic/.settings/com.atollic.truestudio.debug.hardware_device.prefs
diff --git a/Demo/CORTEX_STM32F100_Atollic/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/FreeRTOS/Demo/CORTEX_STM32F100_Atollic/.settings/org.eclipse.cdt.managedbuilder.core.prefs
similarity index 100%
rename from Demo/CORTEX_STM32F100_Atollic/.settings/org.eclipse.cdt.managedbuilder.core.prefs
rename to FreeRTOS/Demo/CORTEX_STM32F100_Atollic/.settings/org.eclipse.cdt.managedbuilder.core.prefs
diff --git a/Demo/CORTEX_STM32F100_Atollic/CreateProjectDirectoryStructure.bat b/FreeRTOS/Demo/CORTEX_STM32F100_Atollic/CreateProjectDirectoryStructure.bat
similarity index 100%
rename from Demo/CORTEX_STM32F100_Atollic/CreateProjectDirectoryStructure.bat
rename to FreeRTOS/Demo/CORTEX_STM32F100_Atollic/CreateProjectDirectoryStructure.bat
diff --git a/Demo/CORTEX_STM32F100_Atollic/Libraries/CMSIS/CM3/CoreSupport/core_cm3.c b/FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Libraries/CMSIS/CM3/CoreSupport/core_cm3.c
similarity index 100%
rename from Demo/CORTEX_STM32F100_Atollic/Libraries/CMSIS/CM3/CoreSupport/core_cm3.c
rename to FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Libraries/CMSIS/CM3/CoreSupport/core_cm3.c
diff --git a/Demo/CORTEX_STM32F100_Atollic/Libraries/CMSIS/CM3/CoreSupport/core_cm3.h b/FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Libraries/CMSIS/CM3/CoreSupport/core_cm3.h
similarity index 100%
rename from Demo/CORTEX_STM32F100_Atollic/Libraries/CMSIS/CM3/CoreSupport/core_cm3.h
rename to FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Libraries/CMSIS/CM3/CoreSupport/core_cm3.h
diff --git a/Demo/CORTEX_STM32F100_Atollic/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/startup/TrueSTUDIO/startup_stm32f10x_md_vl.s b/FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/startup/TrueSTUDIO/startup_stm32f10x_md_vl.s
similarity index 100%
rename from Demo/CORTEX_STM32F100_Atollic/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/startup/TrueSTUDIO/startup_stm32f10x_md_vl.s
rename to FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/startup/TrueSTUDIO/startup_stm32f10x_md_vl.s
diff --git a/Demo/CORTEX_STM32F100_Atollic/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/stm32f10x.h b/FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/stm32f10x.h
similarity index 100%
rename from Demo/CORTEX_STM32F100_Atollic/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/stm32f10x.h
rename to FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/stm32f10x.h
diff --git a/Demo/CORTEX_STM32F100_Atollic/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.h b/FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.h
similarity index 100%
rename from Demo/CORTEX_STM32F100_Atollic/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.h
rename to FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.h
diff --git a/Demo/CORTEX_STM32F100_Atollic/Libraries/CMSIS/License.doc b/FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Libraries/CMSIS/License.doc
similarity index 100%
rename from Demo/CORTEX_STM32F100_Atollic/Libraries/CMSIS/License.doc
rename to FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Libraries/CMSIS/License.doc
diff --git a/Demo/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/inc/misc.h b/FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/inc/misc.h
similarity index 100%
rename from Demo/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/inc/misc.h
rename to FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/inc/misc.h
diff --git a/Demo/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/inc/stm32f10x_exti.h b/FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/inc/stm32f10x_exti.h
similarity index 100%
rename from Demo/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/inc/stm32f10x_exti.h
rename to FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/inc/stm32f10x_exti.h
diff --git a/Demo/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/inc/stm32f10x_gpio.h b/FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/inc/stm32f10x_gpio.h
similarity index 100%
rename from Demo/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/inc/stm32f10x_gpio.h
rename to FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/inc/stm32f10x_gpio.h
diff --git a/Demo/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/inc/stm32f10x_rcc.h b/FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/inc/stm32f10x_rcc.h
similarity index 100%
rename from Demo/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/inc/stm32f10x_rcc.h
rename to FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/inc/stm32f10x_rcc.h
diff --git a/Demo/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/src/misc.c b/FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/src/misc.c
similarity index 100%
rename from Demo/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/src/misc.c
rename to FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/src/misc.c
diff --git a/Demo/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c b/FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c
similarity index 100%
rename from Demo/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c
rename to FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c
diff --git a/Demo/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c b/FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c
similarity index 100%
rename from Demo/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c
rename to FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c
diff --git a/Demo/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c b/FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c
similarity index 100%
rename from Demo/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c
rename to FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c
diff --git a/Demo/CORTEX_STM32F100_Atollic/Simple_Demo_Source/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Simple_Demo_Source/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_STM32F100_Atollic/Simple_Demo_Source/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Simple_Demo_Source/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_STM32F100_Atollic/Simple_Demo_Source/main.c b/FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Simple_Demo_Source/main.c
similarity index 100%
rename from Demo/CORTEX_STM32F100_Atollic/Simple_Demo_Source/main.c
rename to FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Simple_Demo_Source/main.c
diff --git a/Demo/CORTEX_STM32F100_Atollic/Simple_Demo_Source/stm32f10x_conf.h b/FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Simple_Demo_Source/stm32f10x_conf.h
similarity index 100%
rename from Demo/CORTEX_STM32F100_Atollic/Simple_Demo_Source/stm32f10x_conf.h
rename to FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Simple_Demo_Source/stm32f10x_conf.h
diff --git a/Demo/CORTEX_STM32F100_Atollic/Simple_Demo_Source/stm32f10x_it.c b/FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Simple_Demo_Source/stm32f10x_it.c
similarity index 100%
rename from Demo/CORTEX_STM32F100_Atollic/Simple_Demo_Source/stm32f10x_it.c
rename to FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Simple_Demo_Source/stm32f10x_it.c
diff --git a/Demo/CORTEX_STM32F100_Atollic/Simple_Demo_Source/stm32f10x_it.h b/FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Simple_Demo_Source/stm32f10x_it.h
similarity index 100%
rename from Demo/CORTEX_STM32F100_Atollic/Simple_Demo_Source/stm32f10x_it.h
rename to FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Simple_Demo_Source/stm32f10x_it.h
diff --git a/Demo/CORTEX_STM32F100_Atollic/Simple_Demo_Source/system_stm32f10x.c b/FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Simple_Demo_Source/system_stm32f10x.c
similarity index 100%
rename from Demo/CORTEX_STM32F100_Atollic/Simple_Demo_Source/system_stm32f10x.c
rename to FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Simple_Demo_Source/system_stm32f10x.c
diff --git a/Demo/CORTEX_STM32F100_Atollic/Utilities/STM32_EVAL/STM32_Discovery/STM32vldiscovery.c b/FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Utilities/STM32_EVAL/STM32_Discovery/STM32vldiscovery.c
similarity index 100%
rename from Demo/CORTEX_STM32F100_Atollic/Utilities/STM32_EVAL/STM32_Discovery/STM32vldiscovery.c
rename to FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Utilities/STM32_EVAL/STM32_Discovery/STM32vldiscovery.c
diff --git a/Demo/CORTEX_STM32F100_Atollic/Utilities/STM32_EVAL/STM32_Discovery/STM32vldiscovery.h b/FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Utilities/STM32_EVAL/STM32_Discovery/STM32vldiscovery.h
similarity index 100%
rename from Demo/CORTEX_STM32F100_Atollic/Utilities/STM32_EVAL/STM32_Discovery/STM32vldiscovery.h
rename to FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Utilities/STM32_EVAL/STM32_Discovery/STM32vldiscovery.h
diff --git a/Demo/CORTEX_STM32F100_Atollic/stm32_flash.ld b/FreeRTOS/Demo/CORTEX_STM32F100_Atollic/stm32_flash.ld
similarity index 100%
rename from Demo/CORTEX_STM32F100_Atollic/stm32_flash.ld
rename to FreeRTOS/Demo/CORTEX_STM32F100_Atollic/stm32_flash.ld
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/Drivers/SPI_Flash_ST_Eval.c b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/Drivers/SPI_Flash_ST_Eval.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/Drivers/SPI_Flash_ST_Eval.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/Drivers/SPI_Flash_ST_Eval.c
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/Drivers/SPI_Flash_ST_Eval.h b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/Drivers/SPI_Flash_ST_Eval.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/Drivers/SPI_Flash_ST_Eval.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/Drivers/SPI_Flash_ST_Eval.h
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/Drivers/STM32_USART.c b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/Drivers/STM32_USART.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/Drivers/STM32_USART.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/Drivers/STM32_USART.c
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/Drivers/STM32_USART.h b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/Drivers/STM32_USART.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/Drivers/STM32_USART.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/Drivers/STM32_USART.h
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ParTest/ParTest_MCBSTM32.c b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ParTest/ParTest_MCBSTM32.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ParTest/ParTest_MCBSTM32.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ParTest/ParTest_MCBSTM32.c
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ParTest/ParTest_ST_Eval.c b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ParTest/ParTest_ST_Eval.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ParTest/ParTest_ST_Eval.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ParTest/ParTest_ST_Eval.c
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ParTest/ReadMe.txt b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ParTest/ReadMe.txt
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ParTest/ReadMe.txt
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ParTest/ReadMe.txt
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/RTOSDemo.hzp b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/RTOSDemo.hzp
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/RTOSDemo.hzp
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/RTOSDemo.hzp
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/RTOSDemo.hzs b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/RTOSDemo.hzs
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/RTOSDemo.hzs
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/RTOSDemo.hzs
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/STM32F10x.h b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/STM32F10x.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/STM32F10x.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/STM32F10x.h
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/cortexm3_macro.h b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/cortexm3_macro.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/cortexm3_macro.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/cortexm3_macro.h
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_adc.h b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_adc.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_adc.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_adc.h
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_bkp.h b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_bkp.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_bkp.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_bkp.h
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_can.h b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_can.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_can.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_can.h
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_crc.h b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_crc.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_crc.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_crc.h
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_dac.h b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_dac.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_dac.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_dac.h
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_dbgmcu.h b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_dbgmcu.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_dbgmcu.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_dbgmcu.h
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_dma.h b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_dma.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_dma.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_dma.h
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_exti.h b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_exti.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_exti.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_exti.h
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_flash.h b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_flash.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_flash.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_flash.h
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_fsmc.h b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_fsmc.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_fsmc.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_fsmc.h
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_gpio.h b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_gpio.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_gpio.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_gpio.h
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_i2c.h b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_i2c.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_i2c.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_i2c.h
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_iwdg.h b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_iwdg.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_iwdg.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_iwdg.h
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_lib.h b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_lib.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_lib.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_lib.h
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_map.h b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_map.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_map.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_map.h
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_nvic.h b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_nvic.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_nvic.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_nvic.h
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_pwr.h b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_pwr.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_pwr.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_pwr.h
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_rcc.h b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_rcc.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_rcc.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_rcc.h
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_rtc.h b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_rtc.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_rtc.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_rtc.h
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_sdio.h b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_sdio.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_sdio.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_sdio.h
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_spi.h b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_spi.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_spi.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_spi.h
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_systick.h b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_systick.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_systick.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_systick.h
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_tim.h b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_tim.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_tim.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_tim.h
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_type.h b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_type.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_type.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_type.h
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_usart.h b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_usart.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_usart.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_usart.h
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_wwdg.h b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_wwdg.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_wwdg.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/inc/stm32f10x_wwdg.h
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_can.c b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_can.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_can.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_can.c
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_gpio.c b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_gpio.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_gpio.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_gpio.c
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_i2c.c b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_i2c.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_i2c.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_i2c.c
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_lib.c b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_lib.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_lib.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_lib.c
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_nvic.c b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_nvic.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_nvic.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_nvic.c
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_rcc.c b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_rcc.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_rcc.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_rcc.c
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_spi.c b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_spi.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_spi.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_spi.c
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_systick.c b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_systick.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_systick.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_systick.c
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_usart.c b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_usart.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_usart.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ST Library/src/stm32f10x_usart.c
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/STM32F10x_Startup.s b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/STM32F10x_Startup.s
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/STM32F10x_Startup.s
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/STM32F10x_Startup.s
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/main.c b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/main.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/main.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/main.c
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/stm32f10x_conf.h b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/stm32f10x_conf.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/stm32f10x_conf.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/stm32f10x_conf.h
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/stm32f10x_it.h b/FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/stm32f10x_it.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_GCC_Rowley/stm32f10x_it.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/stm32f10x_it.h
diff --git a/Demo/CORTEX_STM32F103_IAR/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_STM32F103_IAR/LCD_Message.h b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/LCD_Message.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/LCD_Message.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/LCD_Message.h
diff --git a/Demo/CORTEX_STM32F103_IAR/ParTest/ParTest.c b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/ParTest/ParTest.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/ParTest/ParTest.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/ParTest/ParTest.c
diff --git a/Demo/CORTEX_STM32F103_IAR/RTOSDemo.ewd b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/RTOSDemo.ewd
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/RTOSDemo.ewd
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/RTOSDemo.ewd
diff --git a/Demo/CORTEX_STM32F103_IAR/RTOSDemo.ewp b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/RTOSDemo.ewp
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/RTOSDemo.ewp
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/RTOSDemo.ewp
diff --git a/Demo/CORTEX_STM32F103_IAR/RTOSDemo.eww b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/RTOSDemo.eww
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/RTOSDemo.eww
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/RTOSDemo.eww
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/cortexm3_macro.h b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/cortexm3_macro.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/cortexm3_macro.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/cortexm3_macro.h
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/lcd.h b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/lcd.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/lcd.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/lcd.h
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/spi_flash.h b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/spi_flash.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/spi_flash.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/spi_flash.h
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_adc.h b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_adc.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_adc.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_adc.h
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_bkp.h b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_bkp.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_bkp.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_bkp.h
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_can.h b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_can.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_can.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_can.h
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_dma.h b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_dma.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_dma.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_dma.h
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_exti.h b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_exti.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_exti.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_exti.h
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_gpio.h b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_gpio.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_gpio.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_gpio.h
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_i2c.h b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_i2c.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_i2c.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_i2c.h
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_it.h b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_it.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_it.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_it.h
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_iwdg.h b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_iwdg.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_iwdg.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_iwdg.h
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_lib.h b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_lib.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_lib.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_lib.h
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_map.h b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_map.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_map.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_map.h
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_nvic.h b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_nvic.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_nvic.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_nvic.h
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_pwr.h b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_pwr.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_pwr.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_pwr.h
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_rcc.h b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_rcc.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_rcc.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_rcc.h
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_rtc.h b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_rtc.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_rtc.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_rtc.h
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_spi.h b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_spi.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_spi.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_spi.h
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_systick.h b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_systick.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_systick.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_systick.h
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_tim.h b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_tim.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_tim.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_tim.h
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_tim1.h b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_tim1.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_tim1.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_tim1.h
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_type.h b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_type.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_type.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_type.h
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_usart.h b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_usart.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_usart.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_usart.h
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_wwdg.h b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_wwdg.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_wwdg.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/inc/stm32f10x_wwdg.h
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/cortexm3_macro.s b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/cortexm3_macro.s
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/cortexm3_macro.s
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/cortexm3_macro.s
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/lcd.c b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/lcd.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/lcd.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/lcd.c
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_adc.c b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_adc.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_adc.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_adc.c
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_bkp.c b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_bkp.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_bkp.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_bkp.c
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_can.c b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_can.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_can.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_can.c
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_dma.c b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_dma.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_dma.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_dma.c
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_exti.c b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_exti.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_exti.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_exti.c
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_gpio.c b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_gpio.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_gpio.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_gpio.c
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_i2c.c b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_i2c.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_i2c.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_i2c.c
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_iwdg.c b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_iwdg.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_iwdg.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_iwdg.c
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_lib.c b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_lib.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_lib.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_lib.c
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_nvic.c b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_nvic.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_nvic.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_nvic.c
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_pwr.c b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_pwr.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_pwr.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_pwr.c
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_rcc.c b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_rcc.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_rcc.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_rcc.c
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_rtc.c b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_rtc.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_rtc.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_rtc.c
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_spi.c b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_spi.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_spi.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_spi.c
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_systick.c b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_systick.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_systick.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_systick.c
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_tim.c b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_tim.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_tim.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_tim.c
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_tim1.c b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_tim1.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_tim1.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_tim1.c
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_usart.c b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_usart.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_usart.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_usart.c
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_wwdg.c b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_wwdg.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_wwdg.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/stm32f10x_wwdg.c
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/version.txt b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/version.txt
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/version.txt
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/version.txt
diff --git a/Demo/CORTEX_STM32F103_IAR/STM32F10x_FLASH.icf b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10x_FLASH.icf
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/STM32F10x_FLASH.icf
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/STM32F10x_FLASH.icf
diff --git a/Demo/CORTEX_STM32F103_IAR/main.c b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/main.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/main.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/main.c
diff --git a/Demo/CORTEX_STM32F103_IAR/serial/serial.c b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/serial/serial.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/serial/serial.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/serial/serial.c
diff --git a/Demo/CORTEX_STM32F103_IAR/spi_flash.c b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/spi_flash.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/spi_flash.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/spi_flash.c
diff --git a/Demo/CORTEX_STM32F103_IAR/stm32f10x_conf.h b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/stm32f10x_conf.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/stm32f10x_conf.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/stm32f10x_conf.h
diff --git a/Demo/CORTEX_STM32F103_IAR/stm32f10x_it.c b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/stm32f10x_it.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/stm32f10x_it.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/stm32f10x_it.c
diff --git a/Demo/CORTEX_STM32F103_IAR/stm32f10x_vector.c b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/stm32f10x_vector.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/stm32f10x_vector.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/stm32f10x_vector.c
diff --git a/Demo/CORTEX_STM32F103_IAR/timertest.c b/FreeRTOS/Demo/CORTEX_STM32F103_IAR/timertest.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_IAR/timertest.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_IAR/timertest.c
diff --git a/Demo/CORTEX_STM32F103_Keil/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_STM32F103_Keil/LCD_Message.h b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/LCD_Message.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/LCD_Message.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/LCD_Message.h
diff --git a/Demo/CORTEX_STM32F103_Keil/ParTest/ParTest.c b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/ParTest/ParTest.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/ParTest/ParTest.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/ParTest/ParTest.c
diff --git a/Demo/CORTEX_STM32F103_Keil/RTOSDemo.Opt b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/RTOSDemo.Opt
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/RTOSDemo.Opt
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/RTOSDemo.Opt
diff --git a/Demo/CORTEX_STM32F103_Keil/RTOSDemo.Uv2 b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/RTOSDemo.Uv2
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/RTOSDemo.Uv2
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/RTOSDemo.Uv2
diff --git a/Demo/CORTEX_STM32F103_Keil/RTOSDemo.plg b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/RTOSDemo.plg
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/RTOSDemo.plg
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/RTOSDemo.plg
diff --git a/Demo/CORTEX_STM32F103_Keil/RTOSDemo.sct b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/RTOSDemo.sct
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/RTOSDemo.sct
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/RTOSDemo.sct
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10x.s b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10x.s
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10x.s
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10x.s
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/cortexm3_macro.h b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/cortexm3_macro.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/cortexm3_macro.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/cortexm3_macro.h
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/lcd.h b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/lcd.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/lcd.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/lcd.h
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/spi_flash.h b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/spi_flash.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/spi_flash.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/spi_flash.h
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_adc.h b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_adc.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_adc.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_adc.h
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_bkp.h b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_bkp.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_bkp.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_bkp.h
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_can.h b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_can.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_can.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_can.h
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_dma.h b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_dma.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_dma.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_dma.h
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_exti.h b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_exti.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_exti.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_exti.h
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_gpio.h b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_gpio.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_gpio.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_gpio.h
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_i2c.h b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_i2c.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_i2c.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_i2c.h
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_it.h b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_it.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_it.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_it.h
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_iwdg.h b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_iwdg.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_iwdg.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_iwdg.h
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_lib.h b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_lib.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_lib.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_lib.h
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_map.h b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_map.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_map.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_map.h
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_nvic.h b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_nvic.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_nvic.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_nvic.h
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_pwr.h b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_pwr.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_pwr.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_pwr.h
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_rcc.h b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_rcc.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_rcc.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_rcc.h
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_rtc.h b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_rtc.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_rtc.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_rtc.h
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_spi.h b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_spi.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_spi.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_spi.h
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_systick.h b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_systick.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_systick.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_systick.h
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_tim.h b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_tim.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_tim.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_tim.h
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_tim1.h b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_tim1.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_tim1.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_tim1.h
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_type.h b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_type.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_type.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_type.h
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_usart.h b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_usart.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_usart.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_usart.h
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_wwdg.h b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_wwdg.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_wwdg.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/inc/stm32f10x_wwdg.h
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/cortexm3_macro.s b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/cortexm3_macro.s
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/cortexm3_macro.s
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/cortexm3_macro.s
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/lcd.c b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/lcd.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/lcd.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/lcd.c
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_adc.c b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_adc.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_adc.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_adc.c
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_bkp.c b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_bkp.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_bkp.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_bkp.c
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_can.c b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_can.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_can.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_can.c
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_dma.c b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_dma.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_dma.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_dma.c
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_exti.c b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_exti.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_exti.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_exti.c
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_gpio.c b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_gpio.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_gpio.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_gpio.c
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_i2c.c b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_i2c.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_i2c.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_i2c.c
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_iwdg.c b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_iwdg.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_iwdg.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_iwdg.c
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_lib.c b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_lib.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_lib.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_lib.c
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_nvic.c b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_nvic.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_nvic.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_nvic.c
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_pwr.c b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_pwr.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_pwr.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_pwr.c
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_rcc.c b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_rcc.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_rcc.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_rcc.c
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_rtc.c b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_rtc.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_rtc.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_rtc.c
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_spi.c b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_spi.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_spi.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_spi.c
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_systick.c b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_systick.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_systick.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_systick.c
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_tim.c b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_tim.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_tim.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_tim.c
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_tim1.c b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_tim1.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_tim1.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_tim1.c
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_usart.c b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_usart.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_usart.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_usart.c
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_wwdg.c b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_wwdg.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_wwdg.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/src/stm32f10x_wwdg.c
diff --git a/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/version.txt b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/version.txt
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/version.txt
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/STM32F10xFWLib/version.txt
diff --git a/Demo/CORTEX_STM32F103_Keil/main.c b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/main.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/main.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/main.c
diff --git a/Demo/CORTEX_STM32F103_Keil/serial/serial.c b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/serial/serial.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/serial/serial.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/serial/serial.c
diff --git a/Demo/CORTEX_STM32F103_Keil/spi_flash.c b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/spi_flash.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/spi_flash.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/spi_flash.c
diff --git a/Demo/CORTEX_STM32F103_Keil/stm32f10x_conf.h b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/stm32f10x_conf.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/stm32f10x_conf.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/stm32f10x_conf.h
diff --git a/Demo/CORTEX_STM32F103_Keil/timertest.c b/FreeRTOS/Demo/CORTEX_STM32F103_Keil/timertest.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Keil/timertest.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Keil/timertest.c
diff --git a/Demo/CORTEX_STM32F103_Primer_GCC/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_Primer_GCC/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_STM32F103_Primer_GCC/ParTest/ParTest.c b/FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/ParTest/ParTest.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Primer_GCC/ParTest/ParTest.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/ParTest/ParTest.c
diff --git a/Demo/CORTEX_STM32F103_Primer_GCC/RTOSDemo-globals.Standard.xml b/FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/RTOSDemo-globals.Standard.xml
similarity index 100%
rename from Demo/CORTEX_STM32F103_Primer_GCC/RTOSDemo-globals.Standard.xml
rename to FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/RTOSDemo-globals.Standard.xml
diff --git a/Demo/CORTEX_STM32F103_Primer_GCC/RTOSDemo.Standard.xml b/FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/RTOSDemo.Standard.xml
similarity index 100%
rename from Demo/CORTEX_STM32F103_Primer_GCC/RTOSDemo.Standard.xml
rename to FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/RTOSDemo.Standard.xml
diff --git a/Demo/CORTEX_STM32F103_Primer_GCC/RTOSDemo.rapp b/FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/RTOSDemo.rapp
similarity index 100%
rename from Demo/CORTEX_STM32F103_Primer_GCC/RTOSDemo.rapp
rename to FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/RTOSDemo.rapp
diff --git a/Demo/CORTEX_STM32F103_Primer_GCC/RTOSDemo.rprj b/FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/RTOSDemo.rprj
similarity index 100%
rename from Demo/CORTEX_STM32F103_Primer_GCC/RTOSDemo.rprj
rename to FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/RTOSDemo.rprj
diff --git a/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/Util.c b/FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/Util.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/Util.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/Util.c
diff --git a/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/adc.h b/FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/adc.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/adc.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/adc.h
diff --git a/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/buzzer.c b/FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/buzzer.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/buzzer.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/buzzer.c
diff --git a/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/circle.h b/FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/circle.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/circle.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/circle.h
diff --git a/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/circle_api.h b/FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/circle_api.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/circle_api.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/circle_api.h
diff --git a/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/crt0_STM32x.c b/FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/crt0_STM32x.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/crt0_STM32x.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/crt0_STM32x.c
diff --git a/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/draw.c b/FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/draw.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/draw.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/draw.c
diff --git a/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/lcd.c b/FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/lcd.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/lcd.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/lcd.c
diff --git a/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/lcd.h b/FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/lcd.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/lcd.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/lcd.h
diff --git a/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/led.c b/FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/led.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/led.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/led.c
diff --git a/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/mems.c b/FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/mems.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/mems.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/mems.c
diff --git a/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/pointer.c b/FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/pointer.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/pointer.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/pointer.c
diff --git a/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/scheduler.h b/FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/scheduler.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/scheduler.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/scheduler.h
diff --git a/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/stm32f10x_circle_it.c b/FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/stm32f10x_circle_it.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/stm32f10x_circle_it.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/stm32f10x_circle_it.c
diff --git a/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/stm32f10x_conf.h b/FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/stm32f10x_conf.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/stm32f10x_conf.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/stm32f10x_conf.h
diff --git a/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/stm32f10x_it.h b/FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/stm32f10x_it.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/stm32f10x_it.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/stm32f10x_it.h
diff --git a/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/stm32f10x_tim.c b/FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/stm32f10x_tim.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/stm32f10x_tim.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/ST_Code/stm32f10x_tim.c
diff --git a/Demo/CORTEX_STM32F103_Primer_GCC/bitmap.h b/FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/bitmap.h
similarity index 100%
rename from Demo/CORTEX_STM32F103_Primer_GCC/bitmap.h
rename to FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/bitmap.h
diff --git a/Demo/CORTEX_STM32F103_Primer_GCC/main.c b/FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/main.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Primer_GCC/main.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/main.c
diff --git a/Demo/CORTEX_STM32F103_Primer_GCC/printf-stdarg.c b/FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/printf-stdarg.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Primer_GCC/printf-stdarg.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/printf-stdarg.c
diff --git a/Demo/CORTEX_STM32F103_Primer_GCC/syscalls.c b/FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/syscalls.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Primer_GCC/syscalls.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/syscalls.c
diff --git a/Demo/CORTEX_STM32F103_Primer_GCC/timertest.c b/FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/timertest.c
similarity index 100%
rename from Demo/CORTEX_STM32F103_Primer_GCC/timertest.c
rename to FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/timertest.c
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/FreeRTOSConfig.h.scsc b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/FreeRTOSConfig.h.scsc
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/FreeRTOSConfig.h.scsc
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/FreeRTOSConfig.h.scsc
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/LCD/STM3210D_lcd.h b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/LCD/STM3210D_lcd.h
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/LCD/STM3210D_lcd.h
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/LCD/STM3210D_lcd.h
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/LCD/fonts.h b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/LCD/fonts.h
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/LCD/fonts.h
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/LCD/fonts.h
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/LCD/lcd.c b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/LCD/lcd.c
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/LCD/lcd.c
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/LCD/lcd.c
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/LCD_Message.h b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/LCD_Message.h
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/LCD_Message.h
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/LCD_Message.h
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/ParTest/ParTest.c b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/ParTest/ParTest.c
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/ParTest/ParTest.c
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/ParTest/ParTest.c
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/RTOSDemo.hzp b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/RTOSDemo.hzp
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/RTOSDemo.hzp
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/RTOSDemo.hzp
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/RTOSDemo.hzs b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/RTOSDemo.hzs
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/RTOSDemo.hzs
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/RTOSDemo.hzs
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/STM32F10x.s b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/STM32F10x.s
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/STM32F10x.s
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/STM32F10x.s
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/STM32F10x_Startup.s b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/STM32F10x_Startup.s
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/STM32F10x_Startup.s
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/STM32F10x_Startup.s
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/main.c b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/main.c
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/main.c
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/main.c
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/printf-stdarg.c b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/printf-stdarg.c
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/printf-stdarg.c
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/printf-stdarg.c
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/scsc.tmp b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/scsc.tmp
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/scsc.tmp
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/scsc.tmp
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/spi_flash.c b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/spi_flash.c
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/spi_flash.c
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/spi_flash.c
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/stm32f10x.h b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/stm32f10x.h
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/stm32f10x.h
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/stm32f10x.h
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/stm32f10x_conf.h b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/stm32f10x_conf.h
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/stm32f10x_conf.h
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/stm32f10x_conf.h
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/stm32f10x_connctivity_line.h b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/stm32f10x_connctivity_line.h
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/stm32f10x_connctivity_line.h
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/stm32f10x_connctivity_line.h
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/timertest.c b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/timertest.c
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/timertest.c
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/timertest.c
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/clock-arch.h b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/clock-arch.h
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/webserver/clock-arch.h
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/clock-arch.h
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/emac.c b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/emac.c
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/webserver/emac.c
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/emac.c
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/emac.c.scsc b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/emac.c.scsc
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/webserver/emac.c.scsc
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/emac.c.scsc
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/emac.h b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/emac.h
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/webserver/emac.h
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/emac.h
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/emac.h.scsc b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/emac.h.scsc
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/webserver/emac.h.scsc
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/emac.h.scsc
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/http-strings b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/http-strings
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/webserver/http-strings
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/http-strings
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/http-strings.c b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/http-strings.c
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/webserver/http-strings.c
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/http-strings.c
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/http-strings.h b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/http-strings.h
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/webserver/http-strings.h
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/http-strings.h
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-cgi.c b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-cgi.c
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-cgi.c
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-cgi.c
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-cgi.h b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-cgi.h
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-cgi.h
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-cgi.h
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs.c b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs.c
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs.c
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs.c
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs.h b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs.h
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs.h
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs.h
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs/404.html b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs/404.html
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs/404.html
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs/404.html
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs/index.html b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs/index.html
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs/index.html
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs/index.html
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs/index.shtml b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs/index.shtml
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs/index.shtml
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs/index.shtml
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs/io.shtml b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs/io.shtml
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs/io.shtml
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs/io.shtml
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs/runtime.shtml b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs/runtime.shtml
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs/runtime.shtml
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs/runtime.shtml
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs/stats.shtml b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs/stats.shtml
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs/stats.shtml
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs/stats.shtml
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs/tcp.shtml b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs/tcp.shtml
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs/tcp.shtml
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fs/tcp.shtml
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fsdata.c b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fsdata.c
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fsdata.c
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fsdata.c
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fsdata.h b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fsdata.h
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fsdata.h
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd-fsdata.h
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd.c b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd.c
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd.c
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd.c
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd.h b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd.h
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd.h
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/httpd.h
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/makefsdata b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/makefsdata
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/webserver/makefsdata
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/makefsdata
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/makestrings b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/makestrings
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/webserver/makestrings
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/makestrings
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/uIP_Task.c b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/uIP_Task.c
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/webserver/uIP_Task.c
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/uIP_Task.c
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/uip-conf.h b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/uip-conf.h
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/webserver/uip-conf.h
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/uip-conf.h
diff --git a/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/webserver.h b/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/webserver.h
similarity index 100%
rename from Demo/CORTEX_STM32F107_GCC_Rowley/webserver/webserver.h
rename to FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/webserver.h
diff --git a/Demo/CORTEX_STM32L152_IAR/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/FreeRTOSConfig.h
diff --git a/Demo/CORTEX_STM32L152_IAR/ParTest.c b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/ParTest.c
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/ParTest.c
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/ParTest.c
diff --git a/Demo/CORTEX_STM32L152_IAR/RTOSDemo.ewd b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/RTOSDemo.ewd
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/RTOSDemo.ewd
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/RTOSDemo.ewd
diff --git a/Demo/CORTEX_STM32L152_IAR/RTOSDemo.ewp b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/RTOSDemo.ewp
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/RTOSDemo.ewp
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/RTOSDemo.ewp
diff --git a/Demo/CORTEX_STM32L152_IAR/RTOSDemo.eww b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/RTOSDemo.eww
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/RTOSDemo.eww
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/RTOSDemo.eww
diff --git a/Demo/CORTEX_STM32L152_IAR/main.c b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/main.c
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/main.c
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/main.c
diff --git a/Demo/CORTEX_STM32L152_IAR/serial.c b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/serial.c
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/serial.c
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/serial.c
diff --git a/Demo/CORTEX_STM32L152_IAR/settings/RTOSDemo.cspy.bat b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/settings/RTOSDemo.cspy.bat
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/settings/RTOSDemo.cspy.bat
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/settings/RTOSDemo.cspy.bat
diff --git a/Demo/CORTEX_STM32L152_IAR/settings/RTOSDemo.dbgdt b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/settings/RTOSDemo.dbgdt
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/settings/RTOSDemo.dbgdt
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/settings/RTOSDemo.dbgdt
diff --git a/Demo/CORTEX_STM32L152_IAR/settings/RTOSDemo.dni b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/settings/RTOSDemo.dni
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/settings/RTOSDemo.dni
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/settings/RTOSDemo.dni
diff --git a/Demo/CORTEX_STM32L152_IAR/settings/RTOSDemo.wsdt b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/settings/RTOSDemo.wsdt
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/settings/RTOSDemo.wsdt
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/settings/RTOSDemo.wsdt
diff --git a/Demo/CORTEX_STM32L152_IAR/settings/RTOSDemo_Debug.jlink b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/settings/RTOSDemo_Debug.jlink
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/settings/RTOSDemo_Debug.jlink
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/settings/RTOSDemo_Debug.jlink
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CM3/CoreSupport/core_cm3.c b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CM3/CoreSupport/core_cm3.c
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CM3/CoreSupport/core_cm3.c
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CM3/CoreSupport/core_cm3.c
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CM3/DeviceSupport/ST/Release_Notes_for_STM32L1xx_CMSIS.html b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CM3/DeviceSupport/ST/Release_Notes_for_STM32L1xx_CMSIS.html
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CM3/DeviceSupport/ST/Release_Notes_for_STM32L1xx_CMSIS.html
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CM3/DeviceSupport/ST/Release_Notes_for_STM32L1xx_CMSIS.html
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CM3/DeviceSupport/ST/STM32L1xx/startup/arm/startup_stm32l1xx_md.s b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CM3/DeviceSupport/ST/STM32L1xx/startup/arm/startup_stm32l1xx_md.s
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CM3/DeviceSupport/ST/STM32L1xx/startup/arm/startup_stm32l1xx_md.s
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CM3/DeviceSupport/ST/STM32L1xx/startup/arm/startup_stm32l1xx_md.s
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CM3/DeviceSupport/ST/STM32L1xx/startup/iar/startup_stm32l1xx_md.s b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CM3/DeviceSupport/ST/STM32L1xx/startup/iar/startup_stm32l1xx_md.s
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CM3/DeviceSupport/ST/STM32L1xx/startup/iar/startup_stm32l1xx_md.s
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CM3/DeviceSupport/ST/STM32L1xx/startup/iar/startup_stm32l1xx_md.s
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CM3/DeviceSupport/ST/STM32L1xx/stm32l1xx.h b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CM3/DeviceSupport/ST/STM32L1xx/stm32l1xx.h
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CM3/DeviceSupport/ST/STM32L1xx/stm32l1xx.h
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CM3/DeviceSupport/ST/STM32L1xx/stm32l1xx.h
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CM3/DeviceSupport/ST/STM32L1xx/system_stm32l1xx.h b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CM3/DeviceSupport/ST/STM32L1xx/system_stm32l1xx.h
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CM3/DeviceSupport/ST/STM32L1xx/system_stm32l1xx.h
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CM3/DeviceSupport/ST/STM32L1xx/system_stm32l1xx.h
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CMSIS changes.htm b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CMSIS changes.htm
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CMSIS changes.htm
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CMSIS changes.htm
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CMSIS debug support.htm b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CMSIS debug support.htm
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CMSIS debug support.htm
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CMSIS debug support.htm
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CMSIS_changes.htm b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CMSIS_changes.htm
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CMSIS_changes.htm
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/CMSIS_changes.htm
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/Documentation/CMSIS_Core.htm b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/Documentation/CMSIS_Core.htm
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/Documentation/CMSIS_Core.htm
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/Documentation/CMSIS_Core.htm
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/License.doc b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/License.doc
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/License.doc
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/License.doc
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/Common/fonts.c b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/Common/fonts.c
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/Common/fonts.c
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/Common/fonts.c
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/Common/fonts.h b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/Common/fonts.h
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/Common/fonts.h
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/Common/fonts.h
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L152_EVAL/stm32l152_eval.c b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L152_EVAL/stm32l152_eval.c
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L152_EVAL/stm32l152_eval.c
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L152_EVAL/stm32l152_eval.c
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L152_EVAL/stm32l152_eval.h b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L152_EVAL/stm32l152_eval.h
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L152_EVAL/stm32l152_eval.h
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L152_EVAL/stm32l152_eval.h
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L152_EVAL/stm32l152_eval_lcd.c b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L152_EVAL/stm32l152_eval_lcd.c
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L152_EVAL/stm32l152_eval_lcd.c
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L152_EVAL/stm32l152_eval_lcd.c
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L152_EVAL/stm32l152_eval_lcd.h b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L152_EVAL/stm32l152_eval_lcd.h
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L152_EVAL/stm32l152_eval_lcd.h
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L152_EVAL/stm32l152_eval_lcd.h
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/misc.h b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/misc.h
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/misc.h
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/misc.h
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_exti.h b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_exti.h
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_exti.h
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_exti.h
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_gpio.h b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_gpio.h
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_gpio.h
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_gpio.h
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_i2c.h b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_i2c.h
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_i2c.h
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_i2c.h
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_pwr.h b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_pwr.h
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_pwr.h
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_pwr.h
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_rcc.h b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_rcc.h
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_rcc.h
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_rcc.h
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_spi.h b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_spi.h
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_spi.h
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_spi.h
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_syscfg.h b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_syscfg.h
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_syscfg.h
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_syscfg.h
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_tim.h b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_tim.h
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_tim.h
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_tim.h
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_usart.h b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_usart.h
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_usart.h
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/inc/stm32l1xx_usart.h
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/misc.c b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/misc.c
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/misc.c
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/misc.c
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_exti.c b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_exti.c
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_exti.c
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_exti.c
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_gpio.c b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_gpio.c
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_gpio.c
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_gpio.c
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_pwr.c b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_pwr.c
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_pwr.c
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_pwr.c
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_rcc.c b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_rcc.c
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_rcc.c
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_rcc.c
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_spi.c b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_spi.c
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_spi.c
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_spi.c
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_syscfg.c b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_syscfg.c
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_syscfg.c
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_syscfg.c
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_tim.c b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_tim.c
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_tim.c
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_tim.c
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_usart.c b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_usart.c
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_usart.c
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_usart.c
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/startup_stm32l1xx_md.s b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/startup_stm32l1xx_md.s
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/startup_stm32l1xx_md.s
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/startup_stm32l1xx_md.s
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/stm32_eval.h b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/stm32_eval.h
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/stm32_eval.h
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/stm32_eval.h
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/stm32l1xx_conf.h b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/stm32l1xx_conf.h
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/stm32l1xx_conf.h
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/stm32l1xx_conf.h
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/stm32l1xx_flash.icf b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/stm32l1xx_flash.icf
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/stm32l1xx_flash.icf
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/stm32l1xx_flash.icf
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/stm32l1xx_it.c b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/stm32l1xx_it.c
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/stm32l1xx_it.c
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/stm32l1xx_it.c
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/stm32l1xx_it.h b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/stm32l1xx_it.h
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/stm32l1xx_it.h
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/stm32l1xx_it.h
diff --git a/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/system_stm32l1xx.c b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/system_stm32l1xx.c
similarity index 100%
rename from Demo/CORTEX_STM32L152_IAR/system_and_ST_code/system_stm32l1xx.c
rename to FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/system_stm32l1xx.c
diff --git a/Demo/CORTUS_APS3_GCC/.cproject b/FreeRTOS/Demo/CORTUS_APS3_GCC/.cproject
similarity index 100%
rename from Demo/CORTUS_APS3_GCC/.cproject
rename to FreeRTOS/Demo/CORTUS_APS3_GCC/.cproject
diff --git a/Demo/CORTUS_APS3_GCC/.project b/FreeRTOS/Demo/CORTUS_APS3_GCC/.project
similarity index 100%
rename from Demo/CORTUS_APS3_GCC/.project
rename to FreeRTOS/Demo/CORTUS_APS3_GCC/.project
diff --git a/Demo/CORTUS_APS3_GCC/BSP_ProjectForDebugging.zip b/FreeRTOS/Demo/CORTUS_APS3_GCC/BSP_ProjectForDebugging.zip
similarity index 100%
rename from Demo/CORTUS_APS3_GCC/BSP_ProjectForDebugging.zip
rename to FreeRTOS/Demo/CORTUS_APS3_GCC/BSP_ProjectForDebugging.zip
diff --git a/Demo/CORTUS_APS3_GCC/CreateProjectDirectoryStructure.bat b/FreeRTOS/Demo/CORTUS_APS3_GCC/CreateProjectDirectoryStructure.bat
similarity index 100%
rename from Demo/CORTUS_APS3_GCC/CreateProjectDirectoryStructure.bat
rename to FreeRTOS/Demo/CORTUS_APS3_GCC/CreateProjectDirectoryStructure.bat
diff --git a/Demo/CORTUS_APS3_GCC/Demo/7seg.c b/FreeRTOS/Demo/CORTUS_APS3_GCC/Demo/7seg.c
similarity index 100%
rename from Demo/CORTUS_APS3_GCC/Demo/7seg.c
rename to FreeRTOS/Demo/CORTUS_APS3_GCC/Demo/7seg.c
diff --git a/Demo/CORTUS_APS3_GCC/Demo/7seg.h b/FreeRTOS/Demo/CORTUS_APS3_GCC/Demo/7seg.h
similarity index 100%
rename from Demo/CORTUS_APS3_GCC/Demo/7seg.h
rename to FreeRTOS/Demo/CORTUS_APS3_GCC/Demo/7seg.h
diff --git a/Demo/CORTUS_APS3_GCC/Demo/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTUS_APS3_GCC/Demo/FreeRTOSConfig.h
similarity index 100%
rename from Demo/CORTUS_APS3_GCC/Demo/FreeRTOSConfig.h
rename to FreeRTOS/Demo/CORTUS_APS3_GCC/Demo/FreeRTOSConfig.h
diff --git a/Demo/CORTUS_APS3_GCC/Demo/ParTest.c b/FreeRTOS/Demo/CORTUS_APS3_GCC/Demo/ParTest.c
similarity index 100%
rename from Demo/CORTUS_APS3_GCC/Demo/ParTest.c
rename to FreeRTOS/Demo/CORTUS_APS3_GCC/Demo/ParTest.c
diff --git a/Demo/CORTUS_APS3_GCC/Demo/RegTest.c b/FreeRTOS/Demo/CORTUS_APS3_GCC/Demo/RegTest.c
similarity index 100%
rename from Demo/CORTUS_APS3_GCC/Demo/RegTest.c
rename to FreeRTOS/Demo/CORTUS_APS3_GCC/Demo/RegTest.c
diff --git a/Demo/CORTUS_APS3_GCC/Demo/RegTest.h b/FreeRTOS/Demo/CORTUS_APS3_GCC/Demo/RegTest.h
similarity index 100%
rename from Demo/CORTUS_APS3_GCC/Demo/RegTest.h
rename to FreeRTOS/Demo/CORTUS_APS3_GCC/Demo/RegTest.h
diff --git a/Demo/CORTUS_APS3_GCC/Demo/demoGpio.h b/FreeRTOS/Demo/CORTUS_APS3_GCC/Demo/demoGpio.h
similarity index 100%
rename from Demo/CORTUS_APS3_GCC/Demo/demoGpio.h
rename to FreeRTOS/Demo/CORTUS_APS3_GCC/Demo/demoGpio.h
diff --git a/Demo/CORTUS_APS3_GCC/Demo/main.c b/FreeRTOS/Demo/CORTUS_APS3_GCC/Demo/main.c
similarity index 100%
rename from Demo/CORTUS_APS3_GCC/Demo/main.c
rename to FreeRTOS/Demo/CORTUS_APS3_GCC/Demo/main.c
diff --git a/Demo/CORTUS_APS3_GCC/Demo/serial.c b/FreeRTOS/Demo/CORTUS_APS3_GCC/Demo/serial.c
similarity index 100%
rename from Demo/CORTUS_APS3_GCC/Demo/serial.c
rename to FreeRTOS/Demo/CORTUS_APS3_GCC/Demo/serial.c
diff --git a/Demo/CORTUS_APS3_GCC/ReadMe_Set_Up.txt b/FreeRTOS/Demo/CORTUS_APS3_GCC/ReadMe_Set_Up.txt
similarity index 100%
rename from Demo/CORTUS_APS3_GCC/ReadMe_Set_Up.txt
rename to FreeRTOS/Demo/CORTUS_APS3_GCC/ReadMe_Set_Up.txt
diff --git a/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/private/private.properties b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/CFV1_BDM_P&E_Multilink_CyclonePro.hwc
similarity index 100%
rename from Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/private/private.properties
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/CFV1_BDM_P&E_Multilink_CyclonePro.hwc
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/CFV1_BDM_P&E_Multilink_CyclonePro.ini b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/CFV1_BDM_P&E_Multilink_CyclonePro.ini
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/CFV1_BDM_P&E_Multilink_CyclonePro.ini
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/CFV1_BDM_P&E_Multilink_CyclonePro.ini
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/CFV1_Full_Chip_Simulator.ini b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/CFV1_Full_Chip_Simulator.ini
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/CFV1_Full_Chip_Simulator.ini
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/CFV1_Full_Chip_Simulator.ini
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/C_Layout.hwl b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/C_Layout.hwl
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/C_Layout.hwl
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/C_Layout.hwl
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Default.mem b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Default.mem
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Default.mem
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Default.mem
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/RTOSDemo.mcp b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/RTOSDemo.mcp
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/RTOSDemo.mcp
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/RTOSDemo.mcp
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/FEC.c b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/FEC.c
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/FEC.c
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/FEC.c
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/FEC.h b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/FEC.h
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/FEC.h
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/FEC.h
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/FreeRTOSConfig.h b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/FreeRTOSConfig.h
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/FreeRTOSConfig.h
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/FreeRTOSConfig.h
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/ParTest/ParTest.c b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/ParTest/ParTest.c
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/ParTest/ParTest.c
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/ParTest/ParTest.c
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/derivative.h b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/derivative.h
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/derivative.h
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/derivative.h
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/eth.h b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/eth.h
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/eth.h
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/eth.h
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/eth_phy.h b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/eth_phy.h
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/eth_phy.h
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/eth_phy.h
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/exceptions.c b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/exceptions.c
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/exceptions.c
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/exceptions.c
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/exceptions.h b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/exceptions.h
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/exceptions.h
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/exceptions.h
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/exceptions.old0.c b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/exceptions.old0.c
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/exceptions.old0.c
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/exceptions.old0.c
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/fecbd.h b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/fecbd.h
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/fecbd.h
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/fecbd.h
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/clock-arch.h b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/clock-arch.h
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/clock-arch.h
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/clock-arch.h
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/http-strings b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/http-strings
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/http-strings
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/http-strings
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/http-strings.c b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/http-strings.c
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/http-strings.c
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/http-strings.c
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/http-strings.h b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/http-strings.h
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/http-strings.h
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/http-strings.h
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-cgi.c b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-cgi.c
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-cgi.c
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-cgi.c
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-cgi.h b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-cgi.h
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-cgi.h
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-cgi.h
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs.c b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs.c
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs.c
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs.c
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs.h b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs.h
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs.h
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs.h
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs/404.html b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs/404.html
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs/404.html
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs/404.html
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs/index.html b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs/index.html
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs/index.html
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs/index.html
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs/index.shtml b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs/index.shtml
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs/index.shtml
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs/index.shtml
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs/io.shtml b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs/io.shtml
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs/io.shtml
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs/io.shtml
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs/stats.shtml b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs/stats.shtml
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs/stats.shtml
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs/stats.shtml
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs/tcp.shtml b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs/tcp.shtml
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs/tcp.shtml
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fs/tcp.shtml
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fsdata.c b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fsdata.c
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fsdata.c
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fsdata.c
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fsdata.h b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fsdata.h
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fsdata.h
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd-fsdata.h
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd.c b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd.c
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd.c
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd.c
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd.h b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd.h
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd.h
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/httpd.h
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/makefsdata b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/makefsdata
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/makefsdata
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/makefsdata
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/makestrings b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/makestrings
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/makestrings
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/makestrings
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/pack_struct_end.h b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/pack_struct_end.h
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/pack_struct_end.h
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/pack_struct_end.h
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/pack_struct_start.h b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/pack_struct_start.h
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/pack_struct_start.h
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/pack_struct_start.h
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/uIP_Task.c b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/uIP_Task.c
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/uIP_Task.c
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/uIP_Task.c
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/uip-conf.h b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/uip-conf.h
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/uip-conf.h
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/uip-conf.h
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/webserver.h b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/webserver.h
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/webserver.h
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/webserver.h
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/main.c b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/main.c
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/main.c
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/main.c
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/mii.h b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/mii.h
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/mii.h
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/mii.h
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/printf-stdarg.c b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/printf-stdarg.c
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/printf-stdarg.c
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/printf-stdarg.c
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/startcf.c b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/startcf.c
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/startcf.c
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/startcf.c
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/startcf.h b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/startcf.h
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/startcf.h
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/startcf.h
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/stdlib.c b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/stdlib.c
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/stdlib.c
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/stdlib.c
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/stdlib.h b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/stdlib.h
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/stdlib.h
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/stdlib.h
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_BDM_P&E_Multilink_CyclonePro_Postload.cmd b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_BDM_P&E_Multilink_CyclonePro_Postload.cmd
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_BDM_P&E_Multilink_CyclonePro_Postload.cmd
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_BDM_P&E_Multilink_CyclonePro_Postload.cmd
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_BDM_P&E_Multilink_CyclonePro_Preload.cmd b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_BDM_P&E_Multilink_CyclonePro_Preload.cmd
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_BDM_P&E_Multilink_CyclonePro_Preload.cmd
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_BDM_P&E_Multilink_CyclonePro_Preload.cmd
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_BDM_P&E_Multilink_CyclonePro_Reset.cmd b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_BDM_P&E_Multilink_CyclonePro_Reset.cmd
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_BDM_P&E_Multilink_CyclonePro_Reset.cmd
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_BDM_P&E_Multilink_CyclonePro_Reset.cmd
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_BDM_P&E_Multilink_CyclonePro_Startup.cmd b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_BDM_P&E_Multilink_CyclonePro_Startup.cmd
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_BDM_P&E_Multilink_CyclonePro_Startup.cmd
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_BDM_P&E_Multilink_CyclonePro_Startup.cmd
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_Full_Chip_Simulator_Postload.cmd b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_Full_Chip_Simulator_Postload.cmd
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_Full_Chip_Simulator_Postload.cmd
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_Full_Chip_Simulator_Postload.cmd
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_Full_Chip_Simulator_Preload.cmd b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_Full_Chip_Simulator_Preload.cmd
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_Full_Chip_Simulator_Preload.cmd
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_Full_Chip_Simulator_Preload.cmd
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_Full_Chip_Simulator_Reset.cmd b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_Full_Chip_Simulator_Reset.cmd
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_Full_Chip_Simulator_Reset.cmd
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_Full_Chip_Simulator_Reset.cmd
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_Full_Chip_Simulator_Startup.cmd b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_Full_Chip_Simulator_Startup.cmd
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_Full_Chip_Simulator_Startup.cmd
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/cmd/CFV1_Full_Chip_Simulator_Startup.cmd
diff --git a/Demo/ColdFire_MCF51CN128_CodeWarrior/prm/Project.lcf b/FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/prm/Project.lcf
similarity index 100%
rename from Demo/ColdFire_MCF51CN128_CodeWarrior/prm/Project.lcf
rename to FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/prm/Project.lcf
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/RTOSDemo.mcp b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/RTOSDemo.mcp
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/RTOSDemo.mcp
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/RTOSDemo.mcp
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/RTOSDemo_Data/CWSettingsWindows.stg b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/RTOSDemo_Data/CWSettingsWindows.stg
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/RTOSDemo_Data/CWSettingsWindows.stg
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/RTOSDemo_Data/CWSettingsWindows.stg
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/RTOSDemo_Data/INTERNAL_FLASH/TargetDataWindows.tdt b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/RTOSDemo_Data/INTERNAL_FLASH/TargetDataWindows.tdt
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/RTOSDemo_Data/INTERNAL_FLASH/TargetDataWindows.tdt
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/RTOSDemo_Data/INTERNAL_FLASH/TargetDataWindows.tdt
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/cfg/MCF52221_CONSOLE_INTERNAL_RAM.cfg b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/cfg/MCF52221_CONSOLE_INTERNAL_RAM.cfg
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/cfg/MCF52221_CONSOLE_INTERNAL_RAM.cfg
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/cfg/MCF52221_CONSOLE_INTERNAL_RAM.cfg
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/cfg/MCF52221_CONSOLE_INTERNAL_RAM.mem b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/cfg/MCF52221_CONSOLE_INTERNAL_RAM.mem
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/cfg/MCF52221_CONSOLE_INTERNAL_RAM.mem
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/cfg/MCF52221_CONSOLE_INTERNAL_RAM.mem
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/cfg/MCF52221_INTERNAL_FLASH.cfg b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/cfg/MCF52221_INTERNAL_FLASH.cfg
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/cfg/MCF52221_INTERNAL_FLASH.cfg
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/cfg/MCF52221_INTERNAL_FLASH.cfg
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/cfg/MCF52221_INTERNAL_FLASH.mem b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/cfg/MCF52221_INTERNAL_FLASH.mem
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/cfg/MCF52221_INTERNAL_FLASH.mem
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/cfg/MCF52221_INTERNAL_FLASH.mem
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/cfg/MCF52221_INTERNAL_RAM.cfg b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/cfg/MCF52221_INTERNAL_RAM.cfg
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/cfg/MCF52221_INTERNAL_RAM.cfg
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/cfg/MCF52221_INTERNAL_RAM.cfg
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/cfg/MCF52221_INTERNAL_RAM.mem b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/cfg/MCF52221_INTERNAL_RAM.mem
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/cfg/MCF52221_INTERNAL_RAM.mem
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/cfg/MCF52221_INTERNAL_RAM.mem
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/cfg/MCF52221_INTFLASH.xml b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/cfg/MCF52221_INTFLASH.xml
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/cfg/MCF52221_INTFLASH.xml
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/cfg/MCF52221_INTFLASH.xml
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221.h b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221.h
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221.h
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221.h
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_ADC.h b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_ADC.h
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_ADC.h
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_ADC.h
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_CCM.h b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_CCM.h
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_CCM.h
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_CCM.h
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_CFM.h b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_CFM.h
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_CFM.h
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_CFM.h
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_CLOCK.h b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_CLOCK.h
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_CLOCK.h
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_CLOCK.h
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_DMA.h b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_DMA.h
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_DMA.h
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_DMA.h
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_DTIM.h b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_DTIM.h
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_DTIM.h
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_DTIM.h
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_EPORT.h b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_EPORT.h
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_EPORT.h
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_EPORT.h
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_GPIO.h b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_GPIO.h
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_GPIO.h
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_GPIO.h
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_GPTA.h b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_GPTA.h
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_GPTA.h
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_GPTA.h
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_I2C.h b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_I2C.h
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_I2C.h
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_I2C.h
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_INTC.h b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_INTC.h
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_INTC.h
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_INTC.h
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_PAD.h b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_PAD.h
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_PAD.h
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_PAD.h
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_PIT.h b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_PIT.h
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_PIT.h
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_PIT.h
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_PMM.h b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_PMM.h
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_PMM.h
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_PMM.h
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_PWM.h b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_PWM.h
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_PWM.h
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_PWM.h
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_QSPI.h b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_QSPI.h
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_QSPI.h
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_QSPI.h
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_RCM.h b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_RCM.h
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_RCM.h
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_RCM.h
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_RTC.h b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_RTC.h
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_RTC.h
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_RTC.h
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_SCM.h b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_SCM.h
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_SCM.h
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_SCM.h
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_UART.h b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_UART.h
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_UART.h
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_UART.h
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_USB_OTG.h b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_USB_OTG.h
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_USB_OTG.h
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/headers/MCF52221_USB_OTG.h
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/lcf/MCF52221_INTERNAL_FLASH.lcf b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/lcf/MCF52221_INTERNAL_FLASH.lcf
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/lcf/MCF52221_INTERNAL_FLASH.lcf
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/lcf/MCF52221_INTERNAL_FLASH.lcf
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/readme.txt b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/readme.txt
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/readme.txt
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/readme.txt
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/sources/FreeRTOSConfig.h b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/FreeRTOSConfig.h
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/sources/FreeRTOSConfig.h
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/FreeRTOSConfig.h
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/sources/FreeRTOS_Tick_Setup.c b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/FreeRTOS_Tick_Setup.c
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/sources/FreeRTOS_Tick_Setup.c
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/FreeRTOS_Tick_Setup.c
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/sources/MCF52221_sysinit.c b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/MCF52221_sysinit.c
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/sources/MCF52221_sysinit.c
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/MCF52221_sysinit.c
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/sources/MCF52221_sysinit.h b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/MCF52221_sysinit.h
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/sources/MCF52221_sysinit.h
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/MCF52221_sysinit.h
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/sources/ParTest/ParTest.c b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/ParTest/ParTest.c
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/sources/ParTest/ParTest.c
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/ParTest/ParTest.c
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/sources/cfm.c b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/cfm.c
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/sources/cfm.c
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/cfm.c
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/sources/exceptions.c b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/exceptions.c
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/sources/exceptions.c
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/exceptions.c
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/sources/exceptions.h b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/exceptions.h
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/sources/exceptions.h
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/exceptions.h
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/sources/lwipopts.h b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/lwipopts.h
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/sources/lwipopts.h
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/lwipopts.h
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/sources/main.c b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/main.c
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/sources/main.c
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/main.c
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/sources/printf-stdarg.c b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/printf-stdarg.c
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/sources/printf-stdarg.c
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/printf-stdarg.c
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/sources/serial/serial.c b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/serial/serial.c
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/sources/serial/serial.c
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/serial/serial.c
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/sources/startcf.c b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/startcf.c
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/sources/startcf.c
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/startcf.c
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/sources/startcf.h b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/startcf.h
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/sources/startcf.h
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/startcf.h
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/sources/stdlib.c b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/stdlib.c
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/sources/stdlib.c
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/stdlib.c
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/sources/stdlib.h b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/stdlib.h
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/sources/stdlib.h
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/stdlib.h
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/sources/support_common.h b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/support_common.h
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/sources/support_common.h
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/support_common.h
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/sources/uart_support.c b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/uart_support.c
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/sources/uart_support.c
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/uart_support.c
diff --git a/Demo/ColdFire_MCF52221_CodeWarrior/sources/uart_support.h b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/uart_support.h
similarity index 100%
rename from Demo/ColdFire_MCF52221_CodeWarrior/sources/uart_support.h
rename to FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/uart_support.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.log b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.log
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.log
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.log
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.mylyn/repositories.xml.zip b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.mylyn/repositories.xml.zip
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.mylyn/repositories.xml.zip
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.mylyn/repositories.xml.zip
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/.log b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/.log
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/.log
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/.log
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/shareddefaults.xml b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/shareddefaults.xml
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/shareddefaults.xml
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/shareddefaults.xml
diff --git a/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/project.properties b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/.log
similarity index 100%
rename from Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/project.properties
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/.log
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/RTOSDemo.sc b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/RTOSDemo.sc
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/RTOSDemo.sc
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/RTOSDemo.sc
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.ui/dialog_settings.xml b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.ui/dialog_settings.xml
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.ui/dialog_settings.xml
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.ui/dialog_settings.xml
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/dialog_settings.xml b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/dialog_settings.xml
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/dialog_settings.xml
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/dialog_settings.xml
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/properties.index b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/properties.index
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/properties.index
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/properties.index
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/2.tree b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/2.tree
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/2.tree
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/2.tree
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prefs b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prefs
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prefs
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prefs
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prj-RTOSDemo.prefs b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prj-RTOSDemo.prefs
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prj-RTOSDemo.prefs
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prj-RTOSDemo.prefs
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.core.prefs b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.core.prefs
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.core.prefs
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.core.prefs
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.managedbuilder.core.prefs
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.managedbuilder.core.prefs
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.managedbuilder.core.prefs
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prefs b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prefs
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prefs
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prefs
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.equinox.p2.ui.sdk.prefs b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.equinox.p2.ui.sdk.prefs
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.equinox.p2.ui.sdk.prefs
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.equinox.p2.ui.sdk.prefs
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/RTOSDemo.launch b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/RTOSDemo.launch
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/RTOSDemo.launch
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/RTOSDemo.launch
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.jdt.ui/OpenTypeHistory.xml b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.jdt.ui/OpenTypeHistory.xml
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.jdt.ui/OpenTypeHistory.xml
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.jdt.ui/OpenTypeHistory.xml
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/.workspace/2008/11/47/refactorings.history b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/.workspace/2008/11/47/refactorings.history
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/.workspace/2008/11/47/refactorings.history
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/.workspace/2008/11/47/refactorings.history
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/.workspace/2008/11/47/refactorings.index b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/.workspace/2008/11/47/refactorings.index
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/.workspace/2008/11/47/refactorings.index
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/.workspace/2008/11/47/refactorings.index
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ltk.ui.refactoring/dialog_settings.xml b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ltk.ui.refactoring/dialog_settings.xml
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ltk.ui.refactoring/dialog_settings.xml
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ltk.ui.refactoring/dialog_settings.xml
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ui.intro/dialog_settings.xml b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ui.intro/dialog_settings.xml
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ui.intro/dialog_settings.xml
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ui.intro/dialog_settings.xml
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml
diff --git a/Demo/ColdFire_MCF52233_Eclipse/.metadata/version.ini b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/version.ini
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/.metadata/version.ini
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/.metadata/version.ini
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/.cproject b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/.cproject
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/.cproject
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/.cproject
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/.project b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/.project
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/.project
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/.project
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/.settings/org.eclipse.ltk.core.refactoring.prefs b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/.settings/org.eclipse.ltk.core.refactoring.prefs
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/FreeRTOSConfig.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/FreeRTOSConfig.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/FreeRTOSConfig.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/FreeRTOSConfig.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/FreeRTOS_Tick_Setup.c b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/FreeRTOS_Tick_Setup.c
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/FreeRTOS_Tick_Setup.c
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/FreeRTOS_Tick_Setup.c
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_ADC.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_ADC.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_ADC.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_ADC.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_CCM.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_CCM.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_CCM.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_CCM.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_CFM.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_CFM.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_CFM.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_CFM.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_CLOCK.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_CLOCK.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_CLOCK.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_CLOCK.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_DMA.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_DMA.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_DMA.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_DMA.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_DTIM.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_DTIM.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_DTIM.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_DTIM.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_EPHY.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_EPHY.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_EPHY.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_EPHY.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_EPORT.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_EPORT.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_EPORT.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_EPORT.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_FEC.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_FEC.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_FEC.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_FEC.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_FlexCAN.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_FlexCAN.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_FlexCAN.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_FlexCAN.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_GIACR.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_GIACR.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_GIACR.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_GIACR.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_GPIO.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_GPIO.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_GPIO.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_GPIO.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_GPTA.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_GPTA.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_GPTA.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_GPTA.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_I2C.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_I2C.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_I2C.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_I2C.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_INTC.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_INTC.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_INTC.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_INTC.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_PAD.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_PAD.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_PAD.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_PAD.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_PIT.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_PIT.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_PIT.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_PIT.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_PMM.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_PMM.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_PMM.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_PMM.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_PWM.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_PWM.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_PWM.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_PWM.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_QSPI.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_QSPI.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_QSPI.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_QSPI.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_RCM.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_RCM.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_RCM.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_RCM.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_RNGA.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_RNGA.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_RNGA.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_RNGA.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_RTC.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_RTC.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_RTC.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_RTC.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_SCM.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_SCM.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_SCM.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_SCM.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_UART.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_UART.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_UART.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/MCF5223x/MCF52235_UART.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/Makefile b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/Makefile
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/Makefile
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/Makefile
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/ParTest/ParTest.c b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/ParTest/ParTest.c
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/ParTest/ParTest.c
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/ParTest/ParTest.c
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/m52235evb-rom-hosted.ld b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/m52235evb-rom-hosted.ld
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/m52235evb-rom-hosted.ld
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/m52235evb-rom-hosted.ld
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/main.c b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/main.c
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/main.c
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/main.c
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/printf-stdarg.c b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/printf-stdarg.c
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/printf-stdarg.c
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/printf-stdarg.c
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/FEC.c b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/FEC.c
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/FEC.c
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/FEC.c
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/FEC.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/FEC.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/FEC.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/FEC.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/eth.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/eth.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/eth.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/eth.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/eth_phy.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/eth_phy.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/eth_phy.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/eth_phy.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/fecbd.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/fecbd.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/fecbd.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/fecbd.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/http-strings.c b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/http-strings.c
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/http-strings.c
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/http-strings.c
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/http-strings.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/http-strings.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/http-strings.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/http-strings.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-cgi.c b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-cgi.c
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-cgi.c
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-cgi.c
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-cgi.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-cgi.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-cgi.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-cgi.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs.c b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs.c
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs.c
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs.c
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/404.html b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/404.html
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/404.html
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/404.html
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/image.html b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/image.html
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/image.html
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/image.html
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/image.jpg b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/image.jpg
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/image.jpg
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/image.jpg
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/index.html b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/index.html
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/index.html
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/index.html
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/index.shtml b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/index.shtml
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/index.shtml
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/index.shtml
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/io.shtml b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/io.shtml
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/io.shtml
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/io.shtml
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/logo.jpg b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/logo.jpg
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/logo.jpg
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/logo.jpg
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/stats.shtml b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/stats.shtml
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/stats.shtml
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/stats.shtml
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/tcp.shtml b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/tcp.shtml
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/tcp.shtml
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/tcp.shtml
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fsdata.c b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fsdata.c
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fsdata.c
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fsdata.c
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fsdata.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fsdata.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fsdata.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fsdata.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd.c b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd.c
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd.c
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd.c
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/makefsdata b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/makefsdata
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/makefsdata
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/makefsdata
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/mii.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/mii.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/mii.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/mii.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/uIP_Task.c b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/uIP_Task.c
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/uIP_Task.c
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/uIP_Task.c
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/uip-conf.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/uip-conf.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/uip-conf.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/uip-conf.h
diff --git a/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/webserver.h b/FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/webserver.h
similarity index 100%
rename from Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/webserver.h
rename to FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/webserver.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/FreeRTOSConfig.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/FreeRTOSConfig.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/FreeRTOSConfig.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/FreeRTOSConfig.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/FreeRTOS_Tick_Setup.c b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/FreeRTOS_Tick_Setup.c
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/FreeRTOS_Tick_Setup.c
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/FreeRTOS_Tick_Setup.c
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_ADC.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_ADC.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_ADC.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_ADC.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_BWT.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_BWT.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_BWT.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_BWT.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_CANMB.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_CANMB.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_CANMB.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_CANMB.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_CCM.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_CCM.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_CCM.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_CCM.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_CFM.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_CFM.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_CFM.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_CFM.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_CLOCK.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_CLOCK.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_CLOCK.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_CLOCK.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_DMA.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_DMA.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_DMA.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_DMA.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_DTIM.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_DTIM.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_DTIM.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_DTIM.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_EPORT.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_EPORT.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_EPORT.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_EPORT.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_FBCS.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_FBCS.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_FBCS.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_FBCS.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_FEC.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_FEC.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_FEC.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_FEC.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_FlexCAN.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_FlexCAN.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_FlexCAN.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_FlexCAN.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_GPIO.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_GPIO.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_GPIO.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_GPIO.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_GPT.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_GPT.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_GPT.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_GPT.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_I2C.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_I2C.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_I2C.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_I2C.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_INTC.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_INTC.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_INTC.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_INTC.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_PAD.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_PAD.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_PAD.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_PAD.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_PIT.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_PIT.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_PIT.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_PIT.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_PMM.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_PMM.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_PMM.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_PMM.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_PWM.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_PWM.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_PWM.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_PWM.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_QSPI.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_QSPI.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_QSPI.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_QSPI.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_RCM.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_RCM.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_RCM.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_RCM.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_RNGA.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_RNGA.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_RNGA.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_RNGA.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_RTC.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_RTC.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_RTC.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_RTC.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_SCM.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_SCM.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_SCM.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_SCM.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_TMR.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_TMR.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_TMR.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_TMR.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_UART.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_UART.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_UART.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_UART.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_USB_OTG.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_USB_OTG.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_USB_OTG.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_USB_OTG.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/common.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/common.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/common.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/common.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/mcf5225x.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/mcf5225x.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/mcf5225x.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/mcf5225x.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/mcf5225x_evb.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/mcf5225x_evb.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/mcf5225x_evb.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/mcf5225x_evb.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/mcf5xxx.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/mcf5xxx.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/mcf5xxx.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/mcf5xxx.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/HTTPDemo.c b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/HTTPDemo.c
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/HTTPDemo.c
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/HTTPDemo.c
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/HTTPDemo.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/HTTPDemo.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/HTTPDemo.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/HTTPDemo.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/ParTest/ParTest.c b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/ParTest/ParTest.c
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/ParTest/ParTest.c
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/ParTest/ParTest.c
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/RTOSDemo.mcp b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/RTOSDemo.mcp
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/RTOSDemo.mcp
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/RTOSDemo.mcp
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/RTOSDemo_Data/CWSettingsWindows.stg b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/RTOSDemo_Data/CWSettingsWindows.stg
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/RTOSDemo_Data/CWSettingsWindows.stg
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/RTOSDemo_Data/CWSettingsWindows.stg
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/RTOSDemo_Data/INTERNAL_FLASH/TargetDataWindows.tdt b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/RTOSDemo_Data/INTERNAL_FLASH/TargetDataWindows.tdt
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/RTOSDemo_Data/INTERNAL_FLASH/TargetDataWindows.tdt
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/RTOSDemo_Data/INTERNAL_FLASH/TargetDataWindows.tdt
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/cfg/MCF52259_INTERNAL_FLASH.cfg b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/cfg/MCF52259_INTERNAL_FLASH.cfg
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/cfg/MCF52259_INTERNAL_FLASH.cfg
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/cfg/MCF52259_INTERNAL_FLASH.cfg
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/cfg/MCF52259_INTERNAL_FLASH.mem b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/cfg/MCF52259_INTERNAL_FLASH.mem
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/cfg/MCF52259_INTERNAL_FLASH.mem
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/cfg/MCF52259_INTERNAL_FLASH.mem
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/cfg/MCF52259_INTFLASH.xml b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/cfg/MCF52259_INTFLASH.xml
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/cfg/MCF52259_INTFLASH.xml
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/cfg/MCF52259_INTFLASH.xml
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/cfg/mcf5225xEVB_PnE.cfg b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/cfg/mcf5225xEVB_PnE.cfg
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/cfg/mcf5225xEVB_PnE.cfg
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/cfg/mcf5225xEVB_PnE.cfg
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/cpu/mcf5225x.c b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/cpu/mcf5225x.c
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/cpu/mcf5225x.c
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/cpu/mcf5225x.c
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/cpu/mcf5225x.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/cpu/mcf5225x.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/cpu/mcf5225x.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/cpu/mcf5225x.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/cpu/mcf5225x_lo.s b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/cpu/mcf5225x_lo.s
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/cpu/mcf5225x_lo.s
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/cpu/mcf5225x_lo.s
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/cpu/mcf5225x_sysinit.c b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/cpu/mcf5225x_sysinit.c
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/cpu/mcf5225x_sysinit.c
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/cpu/mcf5225x_sysinit.c
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/cpu/mcf5225x_vectors.s b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/cpu/mcf5225x_vectors.s
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/cpu/mcf5225x_vectors.s
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/cpu/mcf5225x_vectors.s
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/cpu/mcf5xxx.c b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/cpu/mcf5xxx.c
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/cpu/mcf5xxx.c
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/cpu/mcf5xxx.c
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/cpu/mcf5xxx.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/cpu/mcf5xxx.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/cpu/mcf5xxx.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/cpu/mcf5xxx.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/cpu/mcf5xxx_lo.s b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/cpu/mcf5xxx_lo.s
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/cpu/mcf5xxx_lo.s
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/cpu/mcf5xxx_lo.s
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/lcf/MCF52259_INTERNAL_FLASH.lcf b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/lcf/MCF52259_INTERNAL_FLASH.lcf
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/lcf/MCF52259_INTERNAL_FLASH.lcf
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/lcf/MCF52259_INTERNAL_FLASH.lcf
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/lwipopts.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/lwipopts.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/lwipopts.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/lwipopts.h
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/main.c b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/main.c
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/main.c
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/main.c
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/printf-stdarg.c b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/printf-stdarg.c
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/printf-stdarg.c
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/printf-stdarg.c
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/readme.txt b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/readme.txt
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/readme.txt
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/readme.txt
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/stdlib.c b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/stdlib.c
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/stdlib.c
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/stdlib.c
diff --git a/Demo/ColdFire_MCF52259_CodeWarrior/stdlib.h b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/stdlib.h
similarity index 100%
rename from Demo/ColdFire_MCF52259_CodeWarrior/stdlib.h
rename to FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/stdlib.h
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.mylyn/repositories.xml.zip b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.mylyn/repositories.xml.zip
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.mylyn/repositories.xml.zip
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.mylyn/repositories.xml.zip
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/shareddefaults.xml b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/shareddefaults.xml
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/shareddefaults.xml
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.cdt.core/shareddefaults.xml
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/RTOSDemo.sc b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/RTOSDemo.sc
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/RTOSDemo.sc
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/RTOSDemo.sc
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.ui/dialog_settings.xml b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.ui/dialog_settings.xml
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.ui/dialog_settings.xml
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.cdt.make.ui/dialog_settings.xml
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/dialog_settings.xml b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/dialog_settings.xml
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/dialog_settings.xml
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/dialog_settings.xml
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/18/5b/5e/properties.index b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/18/5b/5e/properties.index
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/18/5b/5e/properties.index
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/18/5b/5e/properties.index
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/18/5b/e7/74/properties.index b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/18/5b/e7/74/properties.index
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/18/5b/e7/74/properties.index
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/18/5b/e7/74/properties.index
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/18/5b/e7/a1/history.index b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/18/5b/e7/a1/history.index
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/18/5b/e7/a1/history.index
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/18/5b/e7/a1/history.index
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/18/5b/e7/a1/properties.index b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/18/5b/e7/a1/properties.index
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/18/5b/e7/a1/properties.index
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/18/5b/e7/a1/properties.index
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/18/a8/properties.index b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/18/a8/properties.index
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/18/a8/properties.index
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/18/a8/properties.index
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/18/history.index b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/18/history.index
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/18/history.index
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/18/history.index
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/18/properties.index b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/18/properties.index
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/18/properties.index
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/18/properties.index
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/b3/history.index b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/b3/history.index
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/b3/history.index
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/b3/history.index
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/b3/properties.index b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/b3/properties.index
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/b3/properties.index
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/b3/properties.index
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/c/history.index b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/c/history.index
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/c/history.index
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/c/history.index
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/c/properties.index b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/c/properties.index
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/c/properties.index
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/c/properties.index
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/c7/properties.index b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/c7/properties.index
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/c7/properties.index
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/c7/properties.index
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/f7/29/7f/99/81/ce/1e/history.index b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/f7/29/7f/99/81/ce/1e/history.index
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/f7/29/7f/99/81/ce/1e/history.index
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/f7/29/7f/99/81/ce/1e/history.index
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/f7/29/7f/99/81/ce/1e/properties.index b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/f7/29/7f/99/81/ce/1e/properties.index
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/f7/29/7f/99/81/ce/1e/properties.index
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/f7/29/7f/99/81/ce/1e/properties.index
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/f7/29/7f/e4/1a/properties.index b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/f7/29/7f/e4/1a/properties.index
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/f7/29/7f/e4/1a/properties.index
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/f7/29/7f/e4/1a/properties.index
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/f7/7f/history.index b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/f7/7f/history.index
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/f7/7f/history.index
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/f7/7f/history.index
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/f7/7f/properties.index b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/f7/7f/properties.index
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/f7/7f/properties.index
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/f7/7f/properties.index
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/f7/a8/properties.index b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/f7/a8/properties.index
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/f7/a8/properties.index
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/f7/a8/properties.index
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/history.index b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/history.index
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/history.index
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/history.index
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/properties.index b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/properties.index
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/properties.index
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.indexes/properties.index
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.markers b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.markers
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.markers
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/RTOSDemo/.markers
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/33.tree b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/33.tree
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/33.tree
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/33.tree
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prefs b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prefs
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prefs
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prefs
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prj-RTOSDemo.prefs b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prj-RTOSDemo.prefs
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prj-RTOSDemo.prefs
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prj-RTOSDemo.prefs
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.core.prefs b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.core.prefs
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.core.prefs
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.core.prefs
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.ui.prefs b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.ui.prefs
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.ui.prefs
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.ui.prefs
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.managedbuilder.core.prefs
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.managedbuilder.core.prefs
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.managedbuilder.core.prefs
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.mylyn.ui.prefs b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.mylyn.ui.prefs
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.mylyn.ui.prefs
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.mylyn.ui.prefs
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prefs b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prefs
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prefs
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prefs
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.core.prefs b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.core.prefs
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.core.prefs
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.core.prefs
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.equinox.p2.ui.sdk.prefs b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.equinox.p2.ui.sdk.prefs
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.equinox.p2.ui.sdk.prefs
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.equinox.p2.ui.sdk.prefs
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.core.prefs b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.core.prefs
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.core.prefs
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.debug.ui.prefs b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.debug.ui.prefs
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.debug.ui.prefs
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.debug.ui.prefs
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.search.prefs b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.search.prefs
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.search.prefs
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.search.prefs
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.browser.prefs b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.browser.prefs
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.browser.prefs
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.browser.prefs
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/RTOSDemo.launch b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/RTOSDemo.launch
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/RTOSDemo.launch
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/RTOSDemo.launch
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.jdt.ui/OpenTypeHistory.xml b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.jdt.ui/OpenTypeHistory.xml
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.jdt.ui/OpenTypeHistory.xml
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.jdt.ui/OpenTypeHistory.xml
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.ltk.ui.refactoring/dialog_settings.xml b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.ltk.ui.refactoring/dialog_settings.xml
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.ltk.ui.refactoring/dialog_settings.xml
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.ltk.ui.refactoring/dialog_settings.xml
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.pde.core/.cache/clean-cache.properties b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.pde.core/.cache/clean-cache.properties
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.pde.core/.cache/clean-cache.properties
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.pde.core/.cache/clean-cache.properties
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.search/dialog_settings.xml b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.search/dialog_settings.xml
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.search/dialog_settings.xml
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.search/dialog_settings.xml
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.ui.intro/dialog_settings.xml b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.ui.intro/dialog_settings.xml
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.ui.intro/dialog_settings.xml
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.ui.intro/dialog_settings.xml
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench.texteditor/dialog_settings.xml b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench.texteditor/dialog_settings.xml
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench.texteditor/dialog_settings.xml
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench.texteditor/dialog_settings.xml
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml
diff --git a/Demo/ColdFire_MCF5282_Eclipse/.metadata/version.ini b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/version.ini
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/.metadata/version.ini
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/.metadata/version.ini
diff --git a/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/.cproject b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/.cproject
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/.cproject
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/.cproject
diff --git a/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/.project b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/.project
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/.project
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/.project
diff --git a/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/FreeRTOSConfig.h b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/FreeRTOSConfig.h
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/FreeRTOSConfig.h
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/FreeRTOSConfig.h
diff --git a/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/FreeRTOS_Tick_Setup.c b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/FreeRTOS_Tick_Setup.c
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/FreeRTOS_Tick_Setup.c
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/FreeRTOS_Tick_Setup.c
diff --git a/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/IntQueueTimer.c b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/IntQueueTimer.c
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/IntQueueTimer.c
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/IntQueueTimer.c
diff --git a/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/IntQueueTimer.h b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/IntQueueTimer.h
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/IntQueueTimer.h
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/IntQueueTimer.h
diff --git a/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282.h b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282.h
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282.h
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282.h
diff --git a/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_CCM.h b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_CCM.h
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_CCM.h
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_CCM.h
diff --git a/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_CFM.h b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_CFM.h
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_CFM.h
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_CFM.h
diff --git a/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_CLOCK.h b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_CLOCK.h
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_CLOCK.h
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_CLOCK.h
diff --git a/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_CS.h b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_CS.h
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_CS.h
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_CS.h
diff --git a/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_DMA.h b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_DMA.h
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_DMA.h
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_DMA.h
diff --git a/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_DTIM.h b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_DTIM.h
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_DTIM.h
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_DTIM.h
diff --git a/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_EPORT.h b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_EPORT.h
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_EPORT.h
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_EPORT.h
diff --git a/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_FEC.h b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_FEC.h
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_FEC.h
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_FEC.h
diff --git a/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_FlexCAN.h b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_FlexCAN.h
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_FlexCAN.h
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_FlexCAN.h
diff --git a/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_GIACR.h b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_GIACR.h
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_GIACR.h
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_GIACR.h
diff --git a/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_GPIO.h b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_GPIO.h
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_GPIO.h
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_GPIO.h
diff --git a/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_GPTA.h b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_GPTA.h
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_GPTA.h
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_GPTA.h
diff --git a/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_GPTB.h b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_GPTB.h
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_GPTB.h
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_GPTB.h
diff --git a/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_I2C.h b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_I2C.h
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_I2C.h
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_I2C.h
diff --git a/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_INTC.h b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_INTC.h
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_INTC.h
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_INTC.h
diff --git a/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_PAD.h b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_PAD.h
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_PAD.h
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_PAD.h
diff --git a/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_PIT.h b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_PIT.h
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_PIT.h
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_PIT.h
diff --git a/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_PMM.h b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_PMM.h
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_PMM.h
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_PMM.h
diff --git a/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_QADC.h b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_QADC.h
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_QADC.h
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_QADC.h
diff --git a/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_QSPI.h b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_QSPI.h
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_QSPI.h
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_QSPI.h
diff --git a/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_RCM.h b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_RCM.h
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_RCM.h
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_RCM.h
diff --git a/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_SCM.h b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_SCM.h
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_SCM.h
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_SCM.h
diff --git a/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_SDRAMC.h b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_SDRAMC.h
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_SDRAMC.h
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_SDRAMC.h
diff --git a/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_UART.h b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_UART.h
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_UART.h
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_UART.h
diff --git a/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_WTM.h b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_WTM.h
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_WTM.h
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/MCF5282/MCF5282_WTM.h
diff --git a/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/Makefile b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/Makefile
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/Makefile
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/Makefile
diff --git a/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/ParTest/ParTest.c b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/ParTest/ParTest.c
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/ParTest/ParTest.c
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/ParTest/ParTest.c
diff --git a/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/m5282evb-dram_code-rambar_data-hosted.ld b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/m5282evb-dram_code-rambar_data-hosted.ld
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/m5282evb-dram_code-rambar_data-hosted.ld
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/m5282evb-dram_code-rambar_data-hosted.ld
diff --git a/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/m5282evb-ram.ld b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/m5282evb-ram.ld
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/m5282evb-ram.ld
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/m5282evb-ram.ld
diff --git a/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/main.c b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/main.c
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/main.c
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/main.c
diff --git a/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/serial/serial.c b/FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/serial/serial.c
similarity index 100%
rename from Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/serial/serial.c
rename to FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/serial/serial.c
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/00index_e.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/00index_e.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/00index_e.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/00index_e.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/00index_j.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/00index_j.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/00index_j.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/00index_j.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/css_e.css b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/css_e.css
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/css_e.css
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/css_e.css
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/css_j.css b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/css_j.css
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/css_j.css
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/css_j.css
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/en/appnote.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/appnote.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/en/appnote.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/appnote.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/en/chdir.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/chdir.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/en/chdir.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/chdir.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/en/chdrive.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/chdrive.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/en/chdrive.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/chdrive.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/en/chmod.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/chmod.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/en/chmod.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/chmod.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/en/close.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/close.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/en/close.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/close.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/en/dinit.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/dinit.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/en/dinit.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/dinit.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/en/dioctl.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/dioctl.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/en/dioctl.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/dioctl.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/en/dread.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/dread.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/en/dread.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/dread.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/en/dstat.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/dstat.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/en/dstat.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/dstat.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/en/dwrite.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/dwrite.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/en/dwrite.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/dwrite.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/en/fattime.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/fattime.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/en/fattime.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/fattime.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/en/filename.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/filename.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/en/filename.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/filename.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/en/forward.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/forward.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/en/forward.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/forward.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/en/getfree.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/getfree.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/en/getfree.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/getfree.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/en/gets.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/gets.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/en/gets.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/gets.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/en/lseek.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/lseek.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/en/lseek.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/lseek.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/en/mkdir.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/mkdir.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/en/mkdir.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/mkdir.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/en/mkfs.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/mkfs.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/en/mkfs.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/mkfs.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/en/mount.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/mount.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/en/mount.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/mount.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/en/open.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/open.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/en/open.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/open.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/en/opendir.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/opendir.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/en/opendir.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/opendir.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/en/printf.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/printf.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/en/printf.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/printf.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/en/putc.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/putc.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/en/putc.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/putc.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/en/puts.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/puts.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/en/puts.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/puts.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/en/read.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/read.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/en/read.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/read.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/en/readdir.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/readdir.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/en/readdir.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/readdir.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/en/rename.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/rename.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/en/rename.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/rename.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/en/sdir.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/sdir.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/en/sdir.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/sdir.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/en/sfatfs.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/sfatfs.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/en/sfatfs.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/sfatfs.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/en/sfile.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/sfile.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/en/sfile.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/sfile.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/en/sfileinfo.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/sfileinfo.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/en/sfileinfo.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/sfileinfo.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/en/stat.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/stat.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/en/stat.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/stat.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/en/sync.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/sync.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/en/sync.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/sync.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/en/truncate.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/truncate.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/en/truncate.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/truncate.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/en/unlink.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/unlink.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/en/unlink.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/unlink.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/en/utime.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/utime.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/en/utime.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/utime.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/en/write.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/write.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/en/write.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/en/write.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/img/f1.png b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/img/f1.png
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/img/f1.png
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/img/f1.png
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/img/f2.png b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/img/f2.png
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/img/f2.png
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/img/f2.png
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/img/f3.png b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/img/f3.png
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/img/f3.png
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/img/f3.png
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/img/f4.png b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/img/f4.png
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/img/f4.png
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/img/f4.png
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/img/f5.png b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/img/f5.png
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/img/f5.png
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/img/f5.png
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/img/layers.png b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/img/layers.png
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/img/layers.png
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/img/layers.png
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/img/rwtest.png b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/img/rwtest.png
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/img/rwtest.png
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/img/rwtest.png
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/img/rwtest2.png b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/img/rwtest2.png
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/img/rwtest2.png
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/img/rwtest2.png
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/appnote.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/appnote.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/ja/appnote.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/appnote.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/chdir.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/chdir.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/ja/chdir.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/chdir.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/chdrive.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/chdrive.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/ja/chdrive.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/chdrive.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/chmod.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/chmod.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/ja/chmod.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/chmod.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/close.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/close.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/ja/close.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/close.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/dinit.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/dinit.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/ja/dinit.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/dinit.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/dioctl.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/dioctl.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/ja/dioctl.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/dioctl.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/dread.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/dread.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/ja/dread.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/dread.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/dstat.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/dstat.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/ja/dstat.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/dstat.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/dwrite.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/dwrite.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/ja/dwrite.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/dwrite.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/fattime.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/fattime.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/ja/fattime.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/fattime.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/filename.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/filename.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/ja/filename.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/filename.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/forward.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/forward.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/ja/forward.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/forward.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/getfree.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/getfree.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/ja/getfree.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/getfree.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/gets.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/gets.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/ja/gets.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/gets.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/lseek.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/lseek.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/ja/lseek.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/lseek.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/mkdir.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/mkdir.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/ja/mkdir.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/mkdir.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/mkfs.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/mkfs.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/ja/mkfs.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/mkfs.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/mount.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/mount.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/ja/mount.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/mount.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/open.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/open.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/ja/open.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/open.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/opendir.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/opendir.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/ja/opendir.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/opendir.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/printf.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/printf.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/ja/printf.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/printf.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/putc.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/putc.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/ja/putc.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/putc.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/puts.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/puts.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/ja/puts.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/puts.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/read.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/read.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/ja/read.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/read.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/readdir.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/readdir.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/ja/readdir.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/readdir.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/rename.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/rename.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/ja/rename.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/rename.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/sdir.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/sdir.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/ja/sdir.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/sdir.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/sfatfs.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/sfatfs.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/ja/sfatfs.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/sfatfs.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/sfile.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/sfile.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/ja/sfile.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/sfile.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/sfileinfo.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/sfileinfo.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/ja/sfileinfo.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/sfileinfo.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/stat.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/stat.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/ja/stat.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/stat.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/sync.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/sync.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/ja/sync.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/sync.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/truncate.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/truncate.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/ja/truncate.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/truncate.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/unlink.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/unlink.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/ja/unlink.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/unlink.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/utime.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/utime.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/ja/utime.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/utime.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/write.html b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/write.html
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/ja/write.html
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/ja/write.html
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/doc/updates.txt b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/updates.txt
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/doc/updates.txt
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/doc/updates.txt
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/src/00readme.txt b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/src/00readme.txt
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/src/00readme.txt
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/src/00readme.txt
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/src/Copy of ff.c b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/src/Copy of ff.c
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/src/Copy of ff.c
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/src/Copy of ff.c
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/src/fat_integer.h b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/src/fat_integer.h
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/src/fat_integer.h
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/src/fat_integer.h
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/src/ff.c b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/src/ff.c
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/src/ff.c
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/src/ff.c
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/src/ff.h b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/src/ff.h
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/src/ff.h
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/src/ff.h
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/src/option/cc932.c b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/src/option/cc932.c
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/src/option/cc932.c
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/src/option/cc932.c
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/src/option/cc936.c b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/src/option/cc936.c
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/src/option/cc936.c
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/src/option/cc936.c
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/src/option/cc949.c b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/src/option/cc949.c
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/src/option/cc949.c
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/src/option/cc949.c
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/src/option/cc950.c b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/src/option/cc950.c
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/src/option/cc950.c
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/src/option/cc950.c
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/src/option/ccsbcs.c b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/src/option/ccsbcs.c
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/src/option/ccsbcs.c
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/src/option/ccsbcs.c
diff --git a/Demo/Common/FileSystem/FatFs-0.7e/src/option/syncobj.c b/FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/src/option/syncobj.c
similarity index 100%
rename from Demo/Common/FileSystem/FatFs-0.7e/src/option/syncobj.c
rename to FreeRTOS/Demo/Common/FileSystem/FatFs-0.7e/src/option/syncobj.c
diff --git a/Demo/Common/Full/BlockQ.c b/FreeRTOS/Demo/Common/Full/BlockQ.c
similarity index 100%
rename from Demo/Common/Full/BlockQ.c
rename to FreeRTOS/Demo/Common/Full/BlockQ.c
diff --git a/Demo/Common/Full/PollQ.c b/FreeRTOS/Demo/Common/Full/PollQ.c
similarity index 100%
rename from Demo/Common/Full/PollQ.c
rename to FreeRTOS/Demo/Common/Full/PollQ.c
diff --git a/Demo/Common/Full/comtest.c b/FreeRTOS/Demo/Common/Full/comtest.c
similarity index 100%
rename from Demo/Common/Full/comtest.c
rename to FreeRTOS/Demo/Common/Full/comtest.c
diff --git a/Demo/Common/Full/death.c b/FreeRTOS/Demo/Common/Full/death.c
similarity index 100%
rename from Demo/Common/Full/death.c
rename to FreeRTOS/Demo/Common/Full/death.c
diff --git a/Demo/Common/Full/dynamic.c b/FreeRTOS/Demo/Common/Full/dynamic.c
similarity index 100%
rename from Demo/Common/Full/dynamic.c
rename to FreeRTOS/Demo/Common/Full/dynamic.c
diff --git a/Demo/Common/Full/events.c b/FreeRTOS/Demo/Common/Full/events.c
similarity index 100%
rename from Demo/Common/Full/events.c
rename to FreeRTOS/Demo/Common/Full/events.c
diff --git a/Demo/Common/Full/flash.c b/FreeRTOS/Demo/Common/Full/flash.c
similarity index 100%
rename from Demo/Common/Full/flash.c
rename to FreeRTOS/Demo/Common/Full/flash.c
diff --git a/Demo/Common/Full/flop.c b/FreeRTOS/Demo/Common/Full/flop.c
similarity index 100%
rename from Demo/Common/Full/flop.c
rename to FreeRTOS/Demo/Common/Full/flop.c
diff --git a/Demo/Common/Full/integer.c b/FreeRTOS/Demo/Common/Full/integer.c
similarity index 100%
rename from Demo/Common/Full/integer.c
rename to FreeRTOS/Demo/Common/Full/integer.c
diff --git a/Demo/Common/Full/print.c b/FreeRTOS/Demo/Common/Full/print.c
similarity index 100%
rename from Demo/Common/Full/print.c
rename to FreeRTOS/Demo/Common/Full/print.c
diff --git a/Demo/Common/Full/semtest.c b/FreeRTOS/Demo/Common/Full/semtest.c
similarity index 100%
rename from Demo/Common/Full/semtest.c
rename to FreeRTOS/Demo/Common/Full/semtest.c
diff --git a/Demo/Common/Minimal/AltBlckQ.c b/FreeRTOS/Demo/Common/Minimal/AltBlckQ.c
similarity index 100%
rename from Demo/Common/Minimal/AltBlckQ.c
rename to FreeRTOS/Demo/Common/Minimal/AltBlckQ.c
diff --git a/Demo/Common/Minimal/AltBlock.c b/FreeRTOS/Demo/Common/Minimal/AltBlock.c
similarity index 100%
rename from Demo/Common/Minimal/AltBlock.c
rename to FreeRTOS/Demo/Common/Minimal/AltBlock.c
diff --git a/Demo/Common/Minimal/AltPollQ.c b/FreeRTOS/Demo/Common/Minimal/AltPollQ.c
similarity index 100%
rename from Demo/Common/Minimal/AltPollQ.c
rename to FreeRTOS/Demo/Common/Minimal/AltPollQ.c
diff --git a/Demo/Common/Minimal/AltQTest.c b/FreeRTOS/Demo/Common/Minimal/AltQTest.c
similarity index 100%
rename from Demo/Common/Minimal/AltQTest.c
rename to FreeRTOS/Demo/Common/Minimal/AltQTest.c
diff --git a/Demo/Common/Minimal/BlockQ.c b/FreeRTOS/Demo/Common/Minimal/BlockQ.c
similarity index 100%
rename from Demo/Common/Minimal/BlockQ.c
rename to FreeRTOS/Demo/Common/Minimal/BlockQ.c
diff --git a/Demo/Common/Minimal/GenQTest.c b/FreeRTOS/Demo/Common/Minimal/GenQTest.c
similarity index 100%
rename from Demo/Common/Minimal/GenQTest.c
rename to FreeRTOS/Demo/Common/Minimal/GenQTest.c
diff --git a/Demo/Common/Minimal/IntQueue.c b/FreeRTOS/Demo/Common/Minimal/IntQueue.c
similarity index 100%
rename from Demo/Common/Minimal/IntQueue.c
rename to FreeRTOS/Demo/Common/Minimal/IntQueue.c
diff --git a/Demo/Common/Minimal/PollQ.c b/FreeRTOS/Demo/Common/Minimal/PollQ.c
similarity index 100%
rename from Demo/Common/Minimal/PollQ.c
rename to FreeRTOS/Demo/Common/Minimal/PollQ.c
diff --git a/Demo/Common/Minimal/QPeek.c b/FreeRTOS/Demo/Common/Minimal/QPeek.c
similarity index 100%
rename from Demo/Common/Minimal/QPeek.c
rename to FreeRTOS/Demo/Common/Minimal/QPeek.c
diff --git a/Demo/Common/Minimal/TimerDemo.c b/FreeRTOS/Demo/Common/Minimal/TimerDemo.c
similarity index 100%
rename from Demo/Common/Minimal/TimerDemo.c
rename to FreeRTOS/Demo/Common/Minimal/TimerDemo.c
diff --git a/Demo/Common/Minimal/blocktim.c b/FreeRTOS/Demo/Common/Minimal/blocktim.c
similarity index 100%
rename from Demo/Common/Minimal/blocktim.c
rename to FreeRTOS/Demo/Common/Minimal/blocktim.c
diff --git a/Demo/Common/Minimal/comtest.c b/FreeRTOS/Demo/Common/Minimal/comtest.c
similarity index 100%
rename from Demo/Common/Minimal/comtest.c
rename to FreeRTOS/Demo/Common/Minimal/comtest.c
diff --git a/Demo/Common/Minimal/comtest_strings.c b/FreeRTOS/Demo/Common/Minimal/comtest_strings.c
similarity index 100%
rename from Demo/Common/Minimal/comtest_strings.c
rename to FreeRTOS/Demo/Common/Minimal/comtest_strings.c
diff --git a/Demo/Common/Minimal/countsem.c b/FreeRTOS/Demo/Common/Minimal/countsem.c
similarity index 100%
rename from Demo/Common/Minimal/countsem.c
rename to FreeRTOS/Demo/Common/Minimal/countsem.c
diff --git a/Demo/Common/Minimal/crflash.c b/FreeRTOS/Demo/Common/Minimal/crflash.c
similarity index 100%
rename from Demo/Common/Minimal/crflash.c
rename to FreeRTOS/Demo/Common/Minimal/crflash.c
diff --git a/Demo/Common/Minimal/crhook.c b/FreeRTOS/Demo/Common/Minimal/crhook.c
similarity index 100%
rename from Demo/Common/Minimal/crhook.c
rename to FreeRTOS/Demo/Common/Minimal/crhook.c
diff --git a/Demo/Common/Minimal/death.c b/FreeRTOS/Demo/Common/Minimal/death.c
similarity index 100%
rename from Demo/Common/Minimal/death.c
rename to FreeRTOS/Demo/Common/Minimal/death.c
diff --git a/Demo/Common/Minimal/dynamic.c b/FreeRTOS/Demo/Common/Minimal/dynamic.c
similarity index 100%
rename from Demo/Common/Minimal/dynamic.c
rename to FreeRTOS/Demo/Common/Minimal/dynamic.c
diff --git a/Demo/Common/Minimal/flash.c b/FreeRTOS/Demo/Common/Minimal/flash.c
similarity index 100%
rename from Demo/Common/Minimal/flash.c
rename to FreeRTOS/Demo/Common/Minimal/flash.c
diff --git a/Demo/Common/Minimal/flash_timer.c b/FreeRTOS/Demo/Common/Minimal/flash_timer.c
similarity index 100%
rename from Demo/Common/Minimal/flash_timer.c
rename to FreeRTOS/Demo/Common/Minimal/flash_timer.c
diff --git a/Demo/Common/Minimal/flop.c b/FreeRTOS/Demo/Common/Minimal/flop.c
similarity index 100%
rename from Demo/Common/Minimal/flop.c
rename to FreeRTOS/Demo/Common/Minimal/flop.c
diff --git a/Demo/Common/Minimal/integer.c b/FreeRTOS/Demo/Common/Minimal/integer.c
similarity index 100%
rename from Demo/Common/Minimal/integer.c
rename to FreeRTOS/Demo/Common/Minimal/integer.c
diff --git a/Demo/Common/Minimal/recmutex.c b/FreeRTOS/Demo/Common/Minimal/recmutex.c
similarity index 100%
rename from Demo/Common/Minimal/recmutex.c
rename to FreeRTOS/Demo/Common/Minimal/recmutex.c
diff --git a/Demo/Common/Minimal/semtest.c b/FreeRTOS/Demo/Common/Minimal/semtest.c
similarity index 100%
rename from Demo/Common/Minimal/semtest.c
rename to FreeRTOS/Demo/Common/Minimal/semtest.c
diff --git a/Demo/Common/Minimal/sp_flop.c b/FreeRTOS/Demo/Common/Minimal/sp_flop.c
similarity index 100%
rename from Demo/Common/Minimal/sp_flop.c
rename to FreeRTOS/Demo/Common/Minimal/sp_flop.c
diff --git a/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe128/AT91SAM9XE128.h b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe128/AT91SAM9XE128.h
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe128/AT91SAM9XE128.h
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe128/AT91SAM9XE128.h
diff --git a/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe128/flash.icf b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe128/flash.icf
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe128/flash.icf
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe128/flash.icf
diff --git a/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe128/sdram.icf b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe128/sdram.icf
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe128/sdram.icf
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe128/sdram.icf
diff --git a/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe128/sram.icf b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe128/sram.icf
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe128/sram.icf
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe128/sram.icf
diff --git a/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe256/AT91SAM9XE256.h b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe256/AT91SAM9XE256.h
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe256/AT91SAM9XE256.h
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe256/AT91SAM9XE256.h
diff --git a/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe256/flash.icf b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe256/flash.icf
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe256/flash.icf
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe256/flash.icf
diff --git a/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe256/sdram.icf b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe256/sdram.icf
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe256/sdram.icf
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe256/sdram.icf
diff --git a/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe256/sram.icf b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe256/sram.icf
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe256/sram.icf
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe256/sram.icf
diff --git a/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe512/AT91SAM9XE512.h b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe512/AT91SAM9XE512.h
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe512/AT91SAM9XE512.h
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe512/AT91SAM9XE512.h
diff --git a/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe512/flash.icf b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe512/flash.icf
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe512/flash.icf
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe512/flash.icf
diff --git a/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe512/sdram.icf b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe512/sdram.icf
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe512/sdram.icf
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe512/sdram.icf
diff --git a/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe512/sram.icf b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe512/sram.icf
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe512/sram.icf
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/at91sam9xe512/sram.icf
diff --git a/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/board.h b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/board.h
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/board.h
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/board.h
diff --git a/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/board_cstartup_iar.s b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/board_cstartup_iar.s
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/board_cstartup_iar.s
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/board_cstartup_iar.s
diff --git a/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/board_lowlevel.c b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/board_lowlevel.c
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/board_lowlevel.c
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/board_lowlevel.c
diff --git a/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/board_memories.c b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/board_memories.c
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/board_memories.c
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/board_memories.c
diff --git a/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/board_memories.h b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/board_memories.h
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/board_memories.h
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/boards/at91sam9xe-ek/board_memories.h
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/ac97c/ac97c.c b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/ac97c/ac97c.c
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/ac97c/ac97c.c
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/ac97c/ac97c.c
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/ac97c/ac97c.h b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/ac97c/ac97c.h
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/ac97c/ac97c.h
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/ac97c/ac97c.h
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/aes/aes.c b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/aes/aes.c
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/aes/aes.c
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/aes/aes.c
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/aes/aes.h b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/aes/aes.h
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/aes/aes.h
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/aes/aes.h
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/aic/aic.c b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/aic/aic.c
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/aic/aic.c
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/aic/aic.c
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/aic/aic.h b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/aic/aic.h
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/aic/aic.h
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/aic/aic.h
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/can/can.c b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/can/can.c
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/can/can.c
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/can/can.c
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/can/can.h b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/can/can.h
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/can/can.h
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/can/can.h
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/dbgu/dbgu.c b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/dbgu/dbgu.c
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/dbgu/dbgu.c
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/dbgu/dbgu.c
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/dbgu/dbgu.h b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/dbgu/dbgu.h
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/dbgu/dbgu.h
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/dbgu/dbgu.h
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/eefc/eefc.c b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/eefc/eefc.c
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/eefc/eefc.c
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/eefc/eefc.c
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/eefc/eefc.h b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/eefc/eefc.h
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/eefc/eefc.h
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/eefc/eefc.h
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/efc/efc.c b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/efc/efc.c
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/efc/efc.c
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/efc/efc.c
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/efc/efc.h b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/efc/efc.h
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/efc/efc.h
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/efc/efc.h
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/emac/emac.c b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/emac/emac.c
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/emac/emac.c
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/emac/emac.c
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/emac/emac.h b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/emac/emac.h
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/emac/emac.h
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/emac/emac.h
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/lcd/lcd.c b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/lcd/lcd.c
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/lcd/lcd.c
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/lcd/lcd.c
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/lcd/lcd.h b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/lcd/lcd.h
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/lcd/lcd.h
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/lcd/lcd.h
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/mci/mci.c b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/mci/mci.c
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/mci/mci.c
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/mci/mci.c
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/mci/mci.h b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/mci/mci.h
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/mci/mci.h
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/mci/mci.h
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/pio/pio.c b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/pio/pio.c
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/pio/pio.c
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/pio/pio.c
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/pio/pio.h b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/pio/pio.h
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/pio/pio.h
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/pio/pio.h
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/pio/pio_it.c b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/pio/pio_it.c
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/pio/pio_it.c
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/pio/pio_it.c
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/pio/pio_it.h b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/pio/pio_it.h
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/pio/pio_it.h
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/pio/pio_it.h
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/pit/pit.c b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/pit/pit.c
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/pit/pit.c
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/pit/pit.c
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/pit/pit.h b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/pit/pit.h
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/pit/pit.h
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/pit/pit.h
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/pmc/pmc.c b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/pmc/pmc.c
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/pmc/pmc.c
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/pmc/pmc.c
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/pmc/pmc.h b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/pmc/pmc.h
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/pmc/pmc.h
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/pmc/pmc.h
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/pwmc/pwmc.c b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/pwmc/pwmc.c
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/pwmc/pwmc.c
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/pwmc/pwmc.c
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/pwmc/pwmc.h b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/pwmc/pwmc.h
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/pwmc/pwmc.h
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/pwmc/pwmc.h
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/rstc/rstc.c b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/rstc/rstc.c
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/rstc/rstc.c
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/rstc/rstc.c
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/rstc/rstc.h b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/rstc/rstc.h
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/rstc/rstc.h
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/rstc/rstc.h
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/rtc/rtc.c b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/rtc/rtc.c
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/rtc/rtc.c
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/rtc/rtc.c
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/rtc/rtc.h b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/rtc/rtc.h
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/rtc/rtc.h
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/rtc/rtc.h
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/rtt/rtt.c b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/rtt/rtt.c
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/rtt/rtt.c
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/rtt/rtt.c
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/rtt/rtt.h b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/rtt/rtt.h
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/rtt/rtt.h
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/rtt/rtt.h
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/slcdc/slcdc.c b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/slcdc/slcdc.c
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/slcdc/slcdc.c
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/slcdc/slcdc.c
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/slcdc/slcdc.h b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/slcdc/slcdc.h
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/slcdc/slcdc.h
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/slcdc/slcdc.h
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/spi/spi.c b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/spi/spi.c
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/spi/spi.c
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/spi/spi.c
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/spi/spi.h b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/spi/spi.h
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/spi/spi.h
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/spi/spi.h
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/ssc/ssc.c b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/ssc/ssc.c
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/ssc/ssc.c
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/ssc/ssc.c
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/ssc/ssc.h b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/ssc/ssc.h
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/ssc/ssc.h
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/ssc/ssc.h
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/supc/supc.c b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/supc/supc.c
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/supc/supc.c
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/supc/supc.c
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/supc/supc.h b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/supc/supc.h
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/supc/supc.h
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/supc/supc.h
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/tc/tc.c b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/tc/tc.c
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/tc/tc.c
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/tc/tc.c
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/tc/tc.h b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/tc/tc.h
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/tc/tc.h
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/tc/tc.h
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/tdes/tdes.c b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/tdes/tdes.c
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/tdes/tdes.c
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/tdes/tdes.c
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/tdes/tdes.h b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/tdes/tdes.h
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/tdes/tdes.h
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/tdes/tdes.h
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/twi/twi.c b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/twi/twi.c
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/twi/twi.c
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/twi/twi.c
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/twi/twi.h b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/twi/twi.h
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/twi/twi.h
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/twi/twi.h
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/usart/usart.c b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/usart/usart.c
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/usart/usart.c
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/usart/usart.c
diff --git a/Demo/Common/drivers/Atmel/at91lib/peripherals/usart/usart.h b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/usart/usart.h
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/peripherals/usart/usart.h
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/usart/usart.h
diff --git a/Demo/Common/drivers/Atmel/at91lib/utility/assert.h b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/utility/assert.h
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/utility/assert.h
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/utility/assert.h
diff --git a/Demo/Common/drivers/Atmel/at91lib/utility/led.c b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/utility/led.c
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/utility/led.c
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/utility/led.c
diff --git a/Demo/Common/drivers/Atmel/at91lib/utility/led.h b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/utility/led.h
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/utility/led.h
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/utility/led.h
diff --git a/Demo/Common/drivers/Atmel/at91lib/utility/trace.h b/FreeRTOS/Demo/Common/drivers/Atmel/at91lib/utility/trace.h
similarity index 100%
rename from Demo/Common/drivers/Atmel/at91lib/utility/trace.h
rename to FreeRTOS/Demo/Common/drivers/Atmel/at91lib/utility/trace.h
diff --git a/Demo/Common/drivers/LuminaryMicro/EULA.txt b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/EULA.txt
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/EULA.txt
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/EULA.txt
diff --git a/Demo/Common/drivers/LuminaryMicro/IAR/driverlib.a b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/IAR/driverlib.a
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/IAR/driverlib.a
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/IAR/driverlib.a
diff --git a/Demo/Common/drivers/LuminaryMicro/IAR/grlib.a b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/IAR/grlib.a
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/IAR/grlib.a
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/IAR/grlib.a
diff --git a/Demo/Common/drivers/LuminaryMicro/Keil/driverlib.lib b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/Keil/driverlib.lib
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/Keil/driverlib.lib
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/Keil/driverlib.lib
diff --git a/Demo/Common/drivers/LuminaryMicro/Keil/grlib.lib b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/Keil/grlib.lib
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/Keil/grlib.lib
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/Keil/grlib.lib
diff --git a/Demo/Common/drivers/LuminaryMicro/Rowley/libdriver.a b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/Rowley/libdriver.a
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/Rowley/libdriver.a
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/Rowley/libdriver.a
diff --git a/Demo/Common/drivers/LuminaryMicro/Rowley/libgr.a b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/Rowley/libgr.a
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/Rowley/libgr.a
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/Rowley/libgr.a
diff --git a/Demo/Common/drivers/LuminaryMicro/adc.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/adc.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/adc.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/adc.h
diff --git a/Demo/Common/drivers/LuminaryMicro/arm-none-eabi-gcc/libdriver.a b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/arm-none-eabi-gcc/libdriver.a
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/arm-none-eabi-gcc/libdriver.a
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/arm-none-eabi-gcc/libdriver.a
diff --git a/Demo/Common/drivers/LuminaryMicro/arm-none-eabi-gcc/libgr.a b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/arm-none-eabi-gcc/libgr.a
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/arm-none-eabi-gcc/libgr.a
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/arm-none-eabi-gcc/libgr.a
diff --git a/Demo/Common/drivers/LuminaryMicro/can.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/can.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/can.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/can.h
diff --git a/Demo/Common/drivers/LuminaryMicro/comp.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/comp.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/comp.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/comp.h
diff --git a/Demo/Common/drivers/LuminaryMicro/cpu.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/cpu.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/cpu.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/cpu.h
diff --git a/Demo/Common/drivers/LuminaryMicro/debug.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/debug.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/debug.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/debug.h
diff --git a/Demo/Common/drivers/LuminaryMicro/ethernet.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/ethernet.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/ethernet.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/ethernet.h
diff --git a/Demo/Common/drivers/LuminaryMicro/gpio.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/gpio.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/gpio.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/gpio.h
diff --git a/Demo/Common/drivers/LuminaryMicro/grlib.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/grlib.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/grlib.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/grlib.h
diff --git a/Demo/Common/drivers/LuminaryMicro/hibernate.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/hibernate.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/hibernate.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/hibernate.h
diff --git a/Demo/Common/drivers/LuminaryMicro/hw_adc.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_adc.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/hw_adc.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_adc.h
diff --git a/Demo/Common/drivers/LuminaryMicro/hw_can.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_can.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/hw_can.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_can.h
diff --git a/Demo/Common/drivers/LuminaryMicro/hw_comp.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_comp.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/hw_comp.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_comp.h
diff --git a/Demo/Common/drivers/LuminaryMicro/hw_ethernet.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_ethernet.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/hw_ethernet.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_ethernet.h
diff --git a/Demo/Common/drivers/LuminaryMicro/hw_flash.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_flash.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/hw_flash.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_flash.h
diff --git a/Demo/Common/drivers/LuminaryMicro/hw_gpio.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_gpio.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/hw_gpio.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_gpio.h
diff --git a/Demo/Common/drivers/LuminaryMicro/hw_hibernate.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_hibernate.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/hw_hibernate.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_hibernate.h
diff --git a/Demo/Common/drivers/LuminaryMicro/hw_i2c.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_i2c.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/hw_i2c.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_i2c.h
diff --git a/Demo/Common/drivers/LuminaryMicro/hw_ints.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_ints.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/hw_ints.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_ints.h
diff --git a/Demo/Common/drivers/LuminaryMicro/hw_memmap.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_memmap.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/hw_memmap.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_memmap.h
diff --git a/Demo/Common/drivers/LuminaryMicro/hw_nvic.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_nvic.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/hw_nvic.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_nvic.h
diff --git a/Demo/Common/drivers/LuminaryMicro/hw_pwm.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_pwm.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/hw_pwm.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_pwm.h
diff --git a/Demo/Common/drivers/LuminaryMicro/hw_qei.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_qei.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/hw_qei.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_qei.h
diff --git a/Demo/Common/drivers/LuminaryMicro/hw_ssi.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_ssi.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/hw_ssi.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_ssi.h
diff --git a/Demo/Common/drivers/LuminaryMicro/hw_sysctl.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_sysctl.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/hw_sysctl.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_sysctl.h
diff --git a/Demo/Common/drivers/LuminaryMicro/hw_timer.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_timer.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/hw_timer.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_timer.h
diff --git a/Demo/Common/drivers/LuminaryMicro/hw_types.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_types.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/hw_types.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_types.h
diff --git a/Demo/Common/drivers/LuminaryMicro/hw_uart.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_uart.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/hw_uart.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_uart.h
diff --git a/Demo/Common/drivers/LuminaryMicro/hw_udma.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_udma.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/hw_udma.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_udma.h
diff --git a/Demo/Common/drivers/LuminaryMicro/hw_usb.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_usb.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/hw_usb.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_usb.h
diff --git a/Demo/Common/drivers/LuminaryMicro/hw_watchdog.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_watchdog.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/hw_watchdog.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/hw_watchdog.h
diff --git a/Demo/Common/drivers/LuminaryMicro/i2c.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/i2c.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/i2c.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/i2c.h
diff --git a/Demo/Common/drivers/LuminaryMicro/interrupt.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/interrupt.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/interrupt.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/interrupt.h
diff --git a/Demo/Common/drivers/LuminaryMicro/lmi_flash.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/lmi_flash.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/lmi_flash.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/lmi_flash.h
diff --git a/Demo/Common/drivers/LuminaryMicro/lmi_timer.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/lmi_timer.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/lmi_timer.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/lmi_timer.h
diff --git a/Demo/Common/drivers/LuminaryMicro/mpu.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/mpu.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/mpu.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/mpu.h
diff --git a/Demo/Common/drivers/LuminaryMicro/pwm.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/pwm.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/pwm.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/pwm.h
diff --git a/Demo/Common/drivers/LuminaryMicro/qei.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/qei.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/qei.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/qei.h
diff --git a/Demo/Common/drivers/LuminaryMicro/rit128x96x4.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/rit128x96x4.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/rit128x96x4.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/rit128x96x4.h
diff --git a/Demo/Common/drivers/LuminaryMicro/rom.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/rom.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/rom.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/rom.h
diff --git a/Demo/Common/drivers/LuminaryMicro/ssi.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/ssi.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/ssi.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/ssi.h
diff --git a/Demo/Common/drivers/LuminaryMicro/sysctl.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/sysctl.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/sysctl.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/sysctl.h
diff --git a/Demo/Common/drivers/LuminaryMicro/systick.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/systick.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/systick.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/systick.h
diff --git a/Demo/Common/drivers/LuminaryMicro/timer.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/timer.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/timer.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/timer.h
diff --git a/Demo/Common/drivers/LuminaryMicro/uart.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/uart.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/uart.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/uart.h
diff --git a/Demo/Common/drivers/LuminaryMicro/ustdlib.c b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/ustdlib.c
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/ustdlib.c
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/ustdlib.c
diff --git a/Demo/Common/drivers/LuminaryMicro/watchdog.h b/FreeRTOS/Demo/Common/drivers/LuminaryMicro/watchdog.h
similarity index 100%
rename from Demo/Common/drivers/LuminaryMicro/watchdog.h
rename to FreeRTOS/Demo/Common/drivers/LuminaryMicro/watchdog.h
diff --git a/Demo/Common/drivers/OpenOCD/license.txt b/FreeRTOS/Demo/Common/drivers/OpenOCD/license.txt
similarity index 100%
rename from Demo/Common/drivers/OpenOCD/license.txt
rename to FreeRTOS/Demo/Common/drivers/OpenOCD/license.txt
diff --git a/Demo/Common/drivers/OpenOCD/openocd-pp.exe b/FreeRTOS/Demo/Common/drivers/OpenOCD/openocd-pp.exe
similarity index 100%
rename from Demo/Common/drivers/OpenOCD/openocd-pp.exe
rename to FreeRTOS/Demo/Common/drivers/OpenOCD/openocd-pp.exe
diff --git a/Demo/Common/drivers/OpenOCD/openocd_ftdi.exe b/FreeRTOS/Demo/Common/drivers/OpenOCD/openocd_ftdi.exe
similarity index 100%
rename from Demo/Common/drivers/OpenOCD/openocd_ftdi.exe
rename to FreeRTOS/Demo/Common/drivers/OpenOCD/openocd_ftdi.exe
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/inc/cortexm3_macro.h b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/cortexm3_macro.h
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/inc/cortexm3_macro.h
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/cortexm3_macro.h
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/inc/lcd.h b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/lcd.h
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/inc/lcd.h
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/lcd.h
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/inc/misc.h b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/misc.h
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/inc/misc.h
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/misc.h
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/inc/spi_flash.h b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/spi_flash.h
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/inc/spi_flash.h
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/spi_flash.h
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_adc.h b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_adc.h
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_adc.h
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_adc.h
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_bkp.h b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_bkp.h
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_bkp.h
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_bkp.h
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_can.h b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_can.h
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_can.h
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_can.h
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_crc.h b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_crc.h
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_crc.h
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_crc.h
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_dac.h b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_dac.h
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_dac.h
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_dac.h
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_dbgmcu.h b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_dbgmcu.h
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_dbgmcu.h
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_dbgmcu.h
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_dma.h b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_dma.h
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_dma.h
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_dma.h
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_exti.h b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_exti.h
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_exti.h
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_exti.h
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_flash.h b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_flash.h
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_flash.h
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_flash.h
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_fsmc.h b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_fsmc.h
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_fsmc.h
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_fsmc.h
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_gpio.h b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_gpio.h
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_gpio.h
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_gpio.h
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_i2c.h b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_i2c.h
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_i2c.h
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_i2c.h
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_it.h b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_it.h
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_it.h
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_it.h
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_iwdg.h b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_iwdg.h
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_iwdg.h
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_iwdg.h
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_lib.h b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_lib.h
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_lib.h
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_lib.h
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_map.h b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_map.h
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_map.h
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_map.h
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_nvic.h b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_nvic.h
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_nvic.h
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_nvic.h
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_pwr.h b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_pwr.h
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_pwr.h
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_pwr.h
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_rcc.h b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_rcc.h
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_rcc.h
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_rcc.h
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_rtc.h b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_rtc.h
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_rtc.h
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_rtc.h
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_sdio.h b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_sdio.h
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_sdio.h
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_sdio.h
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_spi.h b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_spi.h
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_spi.h
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_spi.h
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_systick.h b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_systick.h
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_systick.h
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_systick.h
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_tim.h b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_tim.h
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_tim.h
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_tim.h
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_tim1.h b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_tim1.h
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_tim1.h
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_tim1.h
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_type.h b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_type.h
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_type.h
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_type.h
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_usart.h b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_usart.h
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_usart.h
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_usart.h
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_wwdg.h b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_wwdg.h
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_wwdg.h
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_wwdg.h
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32fxxx_eth.h b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32fxxx_eth.h
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32fxxx_eth.h
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32fxxx_eth.h
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32fxxx_eth_conf.h b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32fxxx_eth_conf.h
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32fxxx_eth_conf.h
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32fxxx_eth_conf.h
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32fxxx_eth_lib.h b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32fxxx_eth_lib.h
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32fxxx_eth_lib.h
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32fxxx_eth_lib.h
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32fxxx_eth_map.h b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32fxxx_eth_map.h
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32fxxx_eth_map.h
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32fxxx_eth_map.h
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/src/cortexm3_macro_iar.s b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/cortexm3_macro_iar.s
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/src/cortexm3_macro_iar.s
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/cortexm3_macro_iar.s
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/src/cortexm3_macro_rvds.s b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/cortexm3_macro_rvds.s
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/src/cortexm3_macro_rvds.s
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/cortexm3_macro_rvds.s
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/src/lcd.c b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/lcd.c
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/src/lcd.c
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/lcd.c
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/src/misc.c b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/misc.c
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/src/misc.c
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/misc.c
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_adc.c b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_adc.c
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_adc.c
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_adc.c
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_bkp.c b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_bkp.c
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_bkp.c
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_bkp.c
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_can.c b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_can.c
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_can.c
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_can.c
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_crc.c b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_crc.c
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_crc.c
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_crc.c
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_dac.c b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_dac.c
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_dac.c
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_dac.c
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_dbgmcu.c b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_dbgmcu.c
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_dbgmcu.c
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_dbgmcu.c
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_dma.c b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_dma.c
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_dma.c
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_dma.c
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_exti.c b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_exti.c
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_exti.c
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_exti.c
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_flash.c b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_flash.c
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_flash.c
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_flash.c
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_fsmc.c b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_fsmc.c
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_fsmc.c
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_fsmc.c
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_gpio.c b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_gpio.c
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_gpio.c
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_gpio.c
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_i2c.c b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_i2c.c
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_i2c.c
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_i2c.c
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_iwdg.c b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_iwdg.c
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_iwdg.c
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_iwdg.c
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_lib.c b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_lib.c
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_lib.c
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_lib.c
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_nvic.c b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_nvic.c
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_nvic.c
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_nvic.c
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_pwr.c b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_pwr.c
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_pwr.c
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_pwr.c
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_rcc.c b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_rcc.c
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_rcc.c
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_rcc.c
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_rtc.c b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_rtc.c
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_rtc.c
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_rtc.c
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_sdio.c b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_sdio.c
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_sdio.c
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_sdio.c
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_spi.c b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_spi.c
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_spi.c
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_spi.c
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_systick.c b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_systick.c
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_systick.c
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_systick.c
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_tim.c b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_tim.c
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_tim.c
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_tim.c
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_tim1.c b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_tim1.c
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_tim1.c
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_tim1.c
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_usart.c b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_usart.c
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_usart.c
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_usart.c
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_wwdg.c b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_wwdg.c
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_wwdg.c
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_wwdg.c
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32fxxx_eth.c b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32fxxx_eth.c
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32fxxx_eth.c
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32fxxx_eth.c
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32fxxx_eth_lib.c b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32fxxx_eth_lib.c
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32fxxx_eth_lib.c
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/src/stm32fxxx_eth_lib.c
diff --git a/Demo/Common/drivers/ST/STM32F10xFWLib/version.txt b/FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/version.txt
similarity index 100%
rename from Demo/Common/drivers/ST/STM32F10xFWLib/version.txt
rename to FreeRTOS/Demo/Common/drivers/ST/STM32F10xFWLib/version.txt
diff --git a/Demo/Common/ethernet/FreeRTOS-uIP/Makefile.include b/FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/Makefile.include
similarity index 100%
rename from Demo/Common/ethernet/FreeRTOS-uIP/Makefile.include
rename to FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/Makefile.include
diff --git a/Demo/Common/ethernet/FreeRTOS-uIP/clock-arch.h b/FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/clock-arch.h
similarity index 100%
rename from Demo/Common/ethernet/FreeRTOS-uIP/clock-arch.h
rename to FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/clock-arch.h
diff --git a/Demo/Common/ethernet/FreeRTOS-uIP/clock.h b/FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/clock.h
similarity index 100%
rename from Demo/Common/ethernet/FreeRTOS-uIP/clock.h
rename to FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/clock.h
diff --git a/Demo/Common/ethernet/FreeRTOS-uIP/lc-addrlabels.h b/FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/lc-addrlabels.h
similarity index 100%
rename from Demo/Common/ethernet/FreeRTOS-uIP/lc-addrlabels.h
rename to FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/lc-addrlabels.h
diff --git a/Demo/Common/ethernet/FreeRTOS-uIP/lc-switch.h b/FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/lc-switch.h
similarity index 100%
rename from Demo/Common/ethernet/FreeRTOS-uIP/lc-switch.h
rename to FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/lc-switch.h
diff --git a/Demo/Common/ethernet/FreeRTOS-uIP/lc.h b/FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/lc.h
similarity index 100%
rename from Demo/Common/ethernet/FreeRTOS-uIP/lc.h
rename to FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/lc.h
diff --git a/Demo/Common/ethernet/FreeRTOS-uIP/psock.c b/FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/psock.c
similarity index 100%
rename from Demo/Common/ethernet/FreeRTOS-uIP/psock.c
rename to FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/psock.c
diff --git a/Demo/Common/ethernet/FreeRTOS-uIP/psock.h b/FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/psock.h
similarity index 100%
rename from Demo/Common/ethernet/FreeRTOS-uIP/psock.h
rename to FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/psock.h
diff --git a/Demo/Common/ethernet/FreeRTOS-uIP/pt.h b/FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/pt.h
similarity index 100%
rename from Demo/Common/ethernet/FreeRTOS-uIP/pt.h
rename to FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/pt.h
diff --git a/Demo/Common/ethernet/FreeRTOS-uIP/timer.c b/FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/timer.c
similarity index 100%
rename from Demo/Common/ethernet/FreeRTOS-uIP/timer.c
rename to FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/timer.c
diff --git a/Demo/Common/ethernet/FreeRTOS-uIP/timer.h b/FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/timer.h
similarity index 100%
rename from Demo/Common/ethernet/FreeRTOS-uIP/timer.h
rename to FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/timer.h
diff --git a/Demo/Common/ethernet/FreeRTOS-uIP/uip-fw.h b/FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/uip-fw.h
similarity index 100%
rename from Demo/Common/ethernet/FreeRTOS-uIP/uip-fw.h
rename to FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/uip-fw.h
diff --git a/Demo/Common/ethernet/FreeRTOS-uIP/uip-neighbor.h b/FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/uip-neighbor.h
similarity index 100%
rename from Demo/Common/ethernet/FreeRTOS-uIP/uip-neighbor.h
rename to FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/uip-neighbor.h
diff --git a/Demo/Common/ethernet/FreeRTOS-uIP/uip-split.c b/FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/uip-split.c
similarity index 100%
rename from Demo/Common/ethernet/FreeRTOS-uIP/uip-split.c
rename to FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/uip-split.c
diff --git a/Demo/Common/ethernet/FreeRTOS-uIP/uip-split.h b/FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/uip-split.h
similarity index 100%
rename from Demo/Common/ethernet/FreeRTOS-uIP/uip-split.h
rename to FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/uip-split.h
diff --git a/Demo/Common/ethernet/FreeRTOS-uIP/uip.c b/FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/uip.c
similarity index 100%
rename from Demo/Common/ethernet/FreeRTOS-uIP/uip.c
rename to FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/uip.c
diff --git a/Demo/Common/ethernet/FreeRTOS-uIP/uip.h b/FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/uip.h
similarity index 100%
rename from Demo/Common/ethernet/FreeRTOS-uIP/uip.h
rename to FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/uip.h
diff --git a/Demo/Common/ethernet/FreeRTOS-uIP/uip_arch.h b/FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/uip_arch.h
similarity index 100%
rename from Demo/Common/ethernet/FreeRTOS-uIP/uip_arch.h
rename to FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/uip_arch.h
diff --git a/Demo/Common/ethernet/FreeRTOS-uIP/uip_arp.c b/FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/uip_arp.c
similarity index 100%
rename from Demo/Common/ethernet/FreeRTOS-uIP/uip_arp.c
rename to FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/uip_arp.c
diff --git a/Demo/Common/ethernet/FreeRTOS-uIP/uip_arp.h b/FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/uip_arp.h
similarity index 100%
rename from Demo/Common/ethernet/FreeRTOS-uIP/uip_arp.h
rename to FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/uip_arp.h
diff --git a/Demo/Common/ethernet/FreeRTOS-uIP/uip_timer.h b/FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/uip_timer.h
similarity index 100%
rename from Demo/Common/ethernet/FreeRTOS-uIP/uip_timer.h
rename to FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/uip_timer.h
diff --git a/Demo/Common/ethernet/FreeRTOS-uIP/uiplib.c b/FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/uiplib.c
similarity index 100%
rename from Demo/Common/ethernet/FreeRTOS-uIP/uiplib.c
rename to FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/uiplib.c
diff --git a/Demo/Common/ethernet/FreeRTOS-uIP/uiplib.h b/FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/uiplib.h
similarity index 100%
rename from Demo/Common/ethernet/FreeRTOS-uIP/uiplib.h
rename to FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/uiplib.h
diff --git a/Demo/Common/ethernet/FreeRTOS-uIP/uipopt.h b/FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/uipopt.h
similarity index 100%
rename from Demo/Common/ethernet/FreeRTOS-uIP/uipopt.h
rename to FreeRTOS/Demo/Common/ethernet/FreeRTOS-uIP/uipopt.h
diff --git a/Demo/Common/ethernet/FreeTCPIP/apps/httpd/http-strings.c b/FreeRTOS/Demo/Common/ethernet/FreeTCPIP/apps/httpd/http-strings.c
similarity index 100%
rename from Demo/Common/ethernet/FreeTCPIP/apps/httpd/http-strings.c
rename to FreeRTOS/Demo/Common/ethernet/FreeTCPIP/apps/httpd/http-strings.c
diff --git a/Demo/Common/ethernet/FreeTCPIP/apps/httpd/http-strings.h b/FreeRTOS/Demo/Common/ethernet/FreeTCPIP/apps/httpd/http-strings.h
similarity index 100%
rename from Demo/Common/ethernet/FreeTCPIP/apps/httpd/http-strings.h
rename to FreeRTOS/Demo/Common/ethernet/FreeTCPIP/apps/httpd/http-strings.h
diff --git a/Demo/Common/ethernet/FreeTCPIP/apps/httpd/httpd-cgi.c b/FreeRTOS/Demo/Common/ethernet/FreeTCPIP/apps/httpd/httpd-cgi.c
similarity index 100%
rename from Demo/Common/ethernet/FreeTCPIP/apps/httpd/httpd-cgi.c
rename to FreeRTOS/Demo/Common/ethernet/FreeTCPIP/apps/httpd/httpd-cgi.c
diff --git a/Demo/Common/ethernet/FreeTCPIP/apps/httpd/httpd-cgi.h b/FreeRTOS/Demo/Common/ethernet/FreeTCPIP/apps/httpd/httpd-cgi.h
similarity index 100%
rename from Demo/Common/ethernet/FreeTCPIP/apps/httpd/httpd-cgi.h
rename to FreeRTOS/Demo/Common/ethernet/FreeTCPIP/apps/httpd/httpd-cgi.h
diff --git a/Demo/Common/ethernet/FreeTCPIP/apps/httpd/httpd-fs.c b/FreeRTOS/Demo/Common/ethernet/FreeTCPIP/apps/httpd/httpd-fs.c
similarity index 100%
rename from Demo/Common/ethernet/FreeTCPIP/apps/httpd/httpd-fs.c
rename to FreeRTOS/Demo/Common/ethernet/FreeTCPIP/apps/httpd/httpd-fs.c
diff --git a/Demo/Common/ethernet/FreeTCPIP/apps/httpd/httpd-fs.h b/FreeRTOS/Demo/Common/ethernet/FreeTCPIP/apps/httpd/httpd-fs.h
similarity index 100%
rename from Demo/Common/ethernet/FreeTCPIP/apps/httpd/httpd-fs.h
rename to FreeRTOS/Demo/Common/ethernet/FreeTCPIP/apps/httpd/httpd-fs.h
diff --git a/Demo/Common/ethernet/FreeTCPIP/apps/httpd/httpd-fsdata.h b/FreeRTOS/Demo/Common/ethernet/FreeTCPIP/apps/httpd/httpd-fsdata.h
similarity index 100%
rename from Demo/Common/ethernet/FreeTCPIP/apps/httpd/httpd-fsdata.h
rename to FreeRTOS/Demo/Common/ethernet/FreeTCPIP/apps/httpd/httpd-fsdata.h
diff --git a/Demo/Common/ethernet/FreeTCPIP/apps/httpd/httpd.c b/FreeRTOS/Demo/Common/ethernet/FreeTCPIP/apps/httpd/httpd.c
similarity index 100%
rename from Demo/Common/ethernet/FreeTCPIP/apps/httpd/httpd.c
rename to FreeRTOS/Demo/Common/ethernet/FreeTCPIP/apps/httpd/httpd.c
diff --git a/Demo/Common/ethernet/FreeTCPIP/apps/httpd/httpd.h b/FreeRTOS/Demo/Common/ethernet/FreeTCPIP/apps/httpd/httpd.h
similarity index 100%
rename from Demo/Common/ethernet/FreeTCPIP/apps/httpd/httpd.h
rename to FreeRTOS/Demo/Common/ethernet/FreeTCPIP/apps/httpd/httpd.h
diff --git a/Demo/Common/ethernet/FreeTCPIP/apps/httpd/makefsdata b/FreeRTOS/Demo/Common/ethernet/FreeTCPIP/apps/httpd/makefsdata
similarity index 100%
rename from Demo/Common/ethernet/FreeTCPIP/apps/httpd/makefsdata
rename to FreeRTOS/Demo/Common/ethernet/FreeTCPIP/apps/httpd/makefsdata
diff --git a/Demo/Common/ethernet/FreeTCPIP/net/clock-arch.h b/FreeRTOS/Demo/Common/ethernet/FreeTCPIP/net/clock-arch.h
similarity index 100%
rename from Demo/Common/ethernet/FreeTCPIP/net/clock-arch.h
rename to FreeRTOS/Demo/Common/ethernet/FreeTCPIP/net/clock-arch.h
diff --git a/Demo/Common/ethernet/FreeTCPIP/net/lc-switch.h b/FreeRTOS/Demo/Common/ethernet/FreeTCPIP/net/lc-switch.h
similarity index 100%
rename from Demo/Common/ethernet/FreeTCPIP/net/lc-switch.h
rename to FreeRTOS/Demo/Common/ethernet/FreeTCPIP/net/lc-switch.h
diff --git a/Demo/Common/ethernet/FreeTCPIP/net/lc.h b/FreeRTOS/Demo/Common/ethernet/FreeTCPIP/net/lc.h
similarity index 100%
rename from Demo/Common/ethernet/FreeTCPIP/net/lc.h
rename to FreeRTOS/Demo/Common/ethernet/FreeTCPIP/net/lc.h
diff --git a/Demo/Common/ethernet/FreeTCPIP/net/pack_struct_end.h b/FreeRTOS/Demo/Common/ethernet/FreeTCPIP/net/pack_struct_end.h
similarity index 100%
rename from Demo/Common/ethernet/FreeTCPIP/net/pack_struct_end.h
rename to FreeRTOS/Demo/Common/ethernet/FreeTCPIP/net/pack_struct_end.h
diff --git a/Demo/Common/ethernet/FreeTCPIP/net/pack_struct_start.h b/FreeRTOS/Demo/Common/ethernet/FreeTCPIP/net/pack_struct_start.h
similarity index 100%
rename from Demo/Common/ethernet/FreeTCPIP/net/pack_struct_start.h
rename to FreeRTOS/Demo/Common/ethernet/FreeTCPIP/net/pack_struct_start.h
diff --git a/Demo/Common/ethernet/FreeTCPIP/net/psock.h b/FreeRTOS/Demo/Common/ethernet/FreeTCPIP/net/psock.h
similarity index 100%
rename from Demo/Common/ethernet/FreeTCPIP/net/psock.h
rename to FreeRTOS/Demo/Common/ethernet/FreeTCPIP/net/psock.h
diff --git a/Demo/Common/ethernet/FreeTCPIP/net/pt.h b/FreeRTOS/Demo/Common/ethernet/FreeTCPIP/net/pt.h
similarity index 100%
rename from Demo/Common/ethernet/FreeTCPIP/net/pt.h
rename to FreeRTOS/Demo/Common/ethernet/FreeTCPIP/net/pt.h
diff --git a/Demo/Common/ethernet/FreeTCPIP/net/uip.h b/FreeRTOS/Demo/Common/ethernet/FreeTCPIP/net/uip.h
similarity index 100%
rename from Demo/Common/ethernet/FreeTCPIP/net/uip.h
rename to FreeRTOS/Demo/Common/ethernet/FreeTCPIP/net/uip.h
diff --git a/Demo/Common/ethernet/FreeTCPIP/net/uip_arch.h b/FreeRTOS/Demo/Common/ethernet/FreeTCPIP/net/uip_arch.h
similarity index 100%
rename from Demo/Common/ethernet/FreeTCPIP/net/uip_arch.h
rename to FreeRTOS/Demo/Common/ethernet/FreeTCPIP/net/uip_arch.h
diff --git a/Demo/Common/ethernet/FreeTCPIP/net/uip_arp.h b/FreeRTOS/Demo/Common/ethernet/FreeTCPIP/net/uip_arp.h
similarity index 100%
rename from Demo/Common/ethernet/FreeTCPIP/net/uip_arp.h
rename to FreeRTOS/Demo/Common/ethernet/FreeTCPIP/net/uip_arp.h
diff --git a/Demo/Common/ethernet/FreeTCPIP/net/uipopt.h b/FreeRTOS/Demo/Common/ethernet/FreeTCPIP/net/uipopt.h
similarity index 100%
rename from Demo/Common/ethernet/FreeTCPIP/net/uipopt.h
rename to FreeRTOS/Demo/Common/ethernet/FreeTCPIP/net/uipopt.h
diff --git a/Demo/Common/ethernet/FreeTCPIP/psock.c b/FreeRTOS/Demo/Common/ethernet/FreeTCPIP/psock.c
similarity index 100%
rename from Demo/Common/ethernet/FreeTCPIP/psock.c
rename to FreeRTOS/Demo/Common/ethernet/FreeTCPIP/psock.c
diff --git a/Demo/Common/ethernet/FreeTCPIP/sys/clock.h b/FreeRTOS/Demo/Common/ethernet/FreeTCPIP/sys/clock.h
similarity index 100%
rename from Demo/Common/ethernet/FreeTCPIP/sys/clock.h
rename to FreeRTOS/Demo/Common/ethernet/FreeTCPIP/sys/clock.h
diff --git a/Demo/Common/ethernet/FreeTCPIP/sys/pt.h b/FreeRTOS/Demo/Common/ethernet/FreeTCPIP/sys/pt.h
similarity index 100%
rename from Demo/Common/ethernet/FreeTCPIP/sys/pt.h
rename to FreeRTOS/Demo/Common/ethernet/FreeTCPIP/sys/pt.h
diff --git a/Demo/Common/ethernet/FreeTCPIP/sys/timer.h b/FreeRTOS/Demo/Common/ethernet/FreeTCPIP/sys/timer.h
similarity index 100%
rename from Demo/Common/ethernet/FreeTCPIP/sys/timer.h
rename to FreeRTOS/Demo/Common/ethernet/FreeTCPIP/sys/timer.h
diff --git a/Demo/Common/ethernet/FreeTCPIP/timer.c b/FreeRTOS/Demo/Common/ethernet/FreeTCPIP/timer.c
similarity index 100%
rename from Demo/Common/ethernet/FreeTCPIP/timer.c
rename to FreeRTOS/Demo/Common/ethernet/FreeTCPIP/timer.c
diff --git a/Demo/Common/ethernet/FreeTCPIP/uip.c b/FreeRTOS/Demo/Common/ethernet/FreeTCPIP/uip.c
similarity index 100%
rename from Demo/Common/ethernet/FreeTCPIP/uip.c
rename to FreeRTOS/Demo/Common/ethernet/FreeTCPIP/uip.c
diff --git a/Demo/Common/ethernet/FreeTCPIP/uip_arp.c b/FreeRTOS/Demo/Common/ethernet/FreeTCPIP/uip_arp.c
similarity index 100%
rename from Demo/Common/ethernet/FreeTCPIP/uip_arp.c
rename to FreeRTOS/Demo/Common/ethernet/FreeTCPIP/uip_arp.c
diff --git a/Demo/Common/ethernet/lwIP/FILES b/FreeRTOS/Demo/Common/ethernet/lwIP/FILES
similarity index 100%
rename from Demo/Common/ethernet/lwIP/FILES
rename to FreeRTOS/Demo/Common/ethernet/lwIP/FILES
diff --git a/Demo/Common/ethernet/lwIP/api/api_lib.c b/FreeRTOS/Demo/Common/ethernet/lwIP/api/api_lib.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/api/api_lib.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/api/api_lib.c
diff --git a/Demo/Common/ethernet/lwIP/api/api_msg.c b/FreeRTOS/Demo/Common/ethernet/lwIP/api/api_msg.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/api/api_msg.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/api/api_msg.c
diff --git a/Demo/Common/ethernet/lwIP/api/err.c b/FreeRTOS/Demo/Common/ethernet/lwIP/api/err.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/api/err.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/api/err.c
diff --git a/Demo/Common/ethernet/lwIP/api/sockets.c b/FreeRTOS/Demo/Common/ethernet/lwIP/api/sockets.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/api/sockets.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/api/sockets.c
diff --git a/Demo/Common/ethernet/lwIP/api/tcpip.c b/FreeRTOS/Demo/Common/ethernet/lwIP/api/tcpip.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/api/tcpip.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/api/tcpip.c
diff --git a/Demo/Common/ethernet/lwIP/core/dhcp.c b/FreeRTOS/Demo/Common/ethernet/lwIP/core/dhcp.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/core/dhcp.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/core/dhcp.c
diff --git a/Demo/Common/ethernet/lwIP/core/inet.c b/FreeRTOS/Demo/Common/ethernet/lwIP/core/inet.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/core/inet.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/core/inet.c
diff --git a/Demo/Common/ethernet/lwIP/core/inet6.c b/FreeRTOS/Demo/Common/ethernet/lwIP/core/inet6.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/core/inet6.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/core/inet6.c
diff --git a/Demo/Common/ethernet/lwIP/core/ipv4/icmp.c b/FreeRTOS/Demo/Common/ethernet/lwIP/core/ipv4/icmp.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/core/ipv4/icmp.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/core/ipv4/icmp.c
diff --git a/Demo/Common/ethernet/lwIP/core/ipv4/ip.c b/FreeRTOS/Demo/Common/ethernet/lwIP/core/ipv4/ip.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/core/ipv4/ip.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/core/ipv4/ip.c
diff --git a/Demo/Common/ethernet/lwIP/core/ipv4/ip_addr.c b/FreeRTOS/Demo/Common/ethernet/lwIP/core/ipv4/ip_addr.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/core/ipv4/ip_addr.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/core/ipv4/ip_addr.c
diff --git a/Demo/Common/ethernet/lwIP/core/ipv4/ip_frag.c b/FreeRTOS/Demo/Common/ethernet/lwIP/core/ipv4/ip_frag.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/core/ipv4/ip_frag.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/core/ipv4/ip_frag.c
diff --git a/Demo/Common/ethernet/lwIP/core/mem.c b/FreeRTOS/Demo/Common/ethernet/lwIP/core/mem.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/core/mem.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/core/mem.c
diff --git a/Demo/Common/ethernet/lwIP/core/memp.c b/FreeRTOS/Demo/Common/ethernet/lwIP/core/memp.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/core/memp.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/core/memp.c
diff --git a/Demo/Common/ethernet/lwIP/core/netif.c b/FreeRTOS/Demo/Common/ethernet/lwIP/core/netif.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/core/netif.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/core/netif.c
diff --git a/Demo/Common/ethernet/lwIP/core/pbuf.c b/FreeRTOS/Demo/Common/ethernet/lwIP/core/pbuf.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/core/pbuf.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/core/pbuf.c
diff --git a/Demo/Common/ethernet/lwIP/core/raw.c b/FreeRTOS/Demo/Common/ethernet/lwIP/core/raw.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/core/raw.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/core/raw.c
diff --git a/Demo/Common/ethernet/lwIP/core/snmp/asn1_dec.c b/FreeRTOS/Demo/Common/ethernet/lwIP/core/snmp/asn1_dec.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/core/snmp/asn1_dec.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/core/snmp/asn1_dec.c
diff --git a/Demo/Common/ethernet/lwIP/core/snmp/asn1_enc.c b/FreeRTOS/Demo/Common/ethernet/lwIP/core/snmp/asn1_enc.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/core/snmp/asn1_enc.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/core/snmp/asn1_enc.c
diff --git a/Demo/Common/ethernet/lwIP/core/snmp/mib2.c b/FreeRTOS/Demo/Common/ethernet/lwIP/core/snmp/mib2.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/core/snmp/mib2.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/core/snmp/mib2.c
diff --git a/Demo/Common/ethernet/lwIP/core/snmp/mib_structs.c b/FreeRTOS/Demo/Common/ethernet/lwIP/core/snmp/mib_structs.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/core/snmp/mib_structs.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/core/snmp/mib_structs.c
diff --git a/Demo/Common/ethernet/lwIP/core/snmp/msg_in.c b/FreeRTOS/Demo/Common/ethernet/lwIP/core/snmp/msg_in.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/core/snmp/msg_in.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/core/snmp/msg_in.c
diff --git a/Demo/Common/ethernet/lwIP/core/snmp/msg_out.c b/FreeRTOS/Demo/Common/ethernet/lwIP/core/snmp/msg_out.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/core/snmp/msg_out.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/core/snmp/msg_out.c
diff --git a/Demo/Common/ethernet/lwIP/core/stats.c b/FreeRTOS/Demo/Common/ethernet/lwIP/core/stats.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/core/stats.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/core/stats.c
diff --git a/Demo/Common/ethernet/lwIP/core/sys.c b/FreeRTOS/Demo/Common/ethernet/lwIP/core/sys.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/core/sys.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/core/sys.c
diff --git a/Demo/Common/ethernet/lwIP/core/tcp.c b/FreeRTOS/Demo/Common/ethernet/lwIP/core/tcp.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/core/tcp.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/core/tcp.c
diff --git a/Demo/Common/ethernet/lwIP/core/tcp_in.c b/FreeRTOS/Demo/Common/ethernet/lwIP/core/tcp_in.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/core/tcp_in.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/core/tcp_in.c
diff --git a/Demo/Common/ethernet/lwIP/core/tcp_out.c b/FreeRTOS/Demo/Common/ethernet/lwIP/core/tcp_out.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/core/tcp_out.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/core/tcp_out.c
diff --git a/Demo/Common/ethernet/lwIP/core/udp.c b/FreeRTOS/Demo/Common/ethernet/lwIP/core/udp.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/core/udp.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/core/udp.c
diff --git a/Demo/Common/ethernet/lwIP/include/ipv4/lwip/icmp.h b/FreeRTOS/Demo/Common/ethernet/lwIP/include/ipv4/lwip/icmp.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/include/ipv4/lwip/icmp.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/include/ipv4/lwip/icmp.h
diff --git a/Demo/Common/ethernet/lwIP/include/ipv4/lwip/inet.h b/FreeRTOS/Demo/Common/ethernet/lwIP/include/ipv4/lwip/inet.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/include/ipv4/lwip/inet.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/include/ipv4/lwip/inet.h
diff --git a/Demo/Common/ethernet/lwIP/include/ipv4/lwip/ip.h b/FreeRTOS/Demo/Common/ethernet/lwIP/include/ipv4/lwip/ip.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/include/ipv4/lwip/ip.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/include/ipv4/lwip/ip.h
diff --git a/Demo/Common/ethernet/lwIP/include/ipv4/lwip/ip_addr.h b/FreeRTOS/Demo/Common/ethernet/lwIP/include/ipv4/lwip/ip_addr.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/include/ipv4/lwip/ip_addr.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/include/ipv4/lwip/ip_addr.h
diff --git a/Demo/Common/ethernet/lwIP/include/ipv4/lwip/ip_frag.h b/FreeRTOS/Demo/Common/ethernet/lwIP/include/ipv4/lwip/ip_frag.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/include/ipv4/lwip/ip_frag.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/include/ipv4/lwip/ip_frag.h
diff --git a/Demo/Common/ethernet/lwIP/include/lwip/api.h b/FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/api.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/include/lwip/api.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/api.h
diff --git a/Demo/Common/ethernet/lwIP/include/lwip/api_msg.h b/FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/api_msg.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/include/lwip/api_msg.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/api_msg.h
diff --git a/Demo/Common/ethernet/lwIP/include/lwip/arch.h b/FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/arch.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/include/lwip/arch.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/arch.h
diff --git a/Demo/Common/ethernet/lwIP/include/lwip/debug.h b/FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/debug.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/include/lwip/debug.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/debug.h
diff --git a/Demo/Common/ethernet/lwIP/include/lwip/def.h b/FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/def.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/include/lwip/def.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/def.h
diff --git a/Demo/Common/ethernet/lwIP/include/lwip/dhcp.h b/FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/dhcp.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/include/lwip/dhcp.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/dhcp.h
diff --git a/Demo/Common/ethernet/lwIP/include/lwip/err.h b/FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/err.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/include/lwip/err.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/err.h
diff --git a/Demo/Common/ethernet/lwIP/include/lwip/mem.h b/FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/mem.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/include/lwip/mem.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/mem.h
diff --git a/Demo/Common/ethernet/lwIP/include/lwip/memp.h b/FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/memp.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/include/lwip/memp.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/memp.h
diff --git a/Demo/Common/ethernet/lwIP/include/lwip/netif.h b/FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/netif.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/include/lwip/netif.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/netif.h
diff --git a/Demo/Common/ethernet/lwIP/include/lwip/pbuf.h b/FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/pbuf.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/include/lwip/pbuf.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/pbuf.h
diff --git a/Demo/Common/ethernet/lwIP/include/lwip/raw.h b/FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/raw.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/include/lwip/raw.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/raw.h
diff --git a/Demo/Common/ethernet/lwIP/include/lwip/sio.h b/FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/sio.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/include/lwip/sio.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/sio.h
diff --git a/Demo/Common/ethernet/lwIP/include/lwip/snmp.h b/FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/snmp.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/include/lwip/snmp.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/snmp.h
diff --git a/Demo/Common/ethernet/lwIP/include/lwip/snmp_asn1.h b/FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/snmp_asn1.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/include/lwip/snmp_asn1.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/snmp_asn1.h
diff --git a/Demo/Common/ethernet/lwIP/include/lwip/snmp_msg.h b/FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/snmp_msg.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/include/lwip/snmp_msg.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/snmp_msg.h
diff --git a/Demo/Common/ethernet/lwIP/include/lwip/snmp_structs.h b/FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/snmp_structs.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/include/lwip/snmp_structs.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/snmp_structs.h
diff --git a/Demo/Common/ethernet/lwIP/include/lwip/sockets.h b/FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/sockets.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/include/lwip/sockets.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/sockets.h
diff --git a/Demo/Common/ethernet/lwIP/include/lwip/stats.h b/FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/stats.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/include/lwip/stats.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/stats.h
diff --git a/Demo/Common/ethernet/lwIP/include/lwip/sys.h b/FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/sys.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/include/lwip/sys.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/sys.h
diff --git a/Demo/Common/ethernet/lwIP/include/lwip/tcp.h b/FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/tcp.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/include/lwip/tcp.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/tcp.h
diff --git a/Demo/Common/ethernet/lwIP/include/lwip/tcpip.h b/FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/tcpip.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/include/lwip/tcpip.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/tcpip.h
diff --git a/Demo/Common/ethernet/lwIP/include/lwip/udp.h b/FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/udp.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/include/lwip/udp.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/include/lwip/udp.h
diff --git a/Demo/Common/ethernet/lwIP/include/netif/etharp.h b/FreeRTOS/Demo/Common/ethernet/lwIP/include/netif/etharp.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/include/netif/etharp.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/include/netif/etharp.h
diff --git a/Demo/Common/ethernet/lwIP/include/netif/loopif.h b/FreeRTOS/Demo/Common/ethernet/lwIP/include/netif/loopif.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/include/netif/loopif.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/include/netif/loopif.h
diff --git a/Demo/Common/ethernet/lwIP/include/netif/slipif.h b/FreeRTOS/Demo/Common/ethernet/lwIP/include/netif/slipif.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/include/netif/slipif.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/include/netif/slipif.h
diff --git a/Demo/Common/ethernet/lwIP/netif/FILES b/FreeRTOS/Demo/Common/ethernet/lwIP/netif/FILES
similarity index 100%
rename from Demo/Common/ethernet/lwIP/netif/FILES
rename to FreeRTOS/Demo/Common/ethernet/lwIP/netif/FILES
diff --git a/Demo/Common/ethernet/lwIP/netif/etharp.c b/FreeRTOS/Demo/Common/ethernet/lwIP/netif/etharp.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/netif/etharp.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/netif/etharp.c
diff --git a/Demo/Common/ethernet/lwIP/netif/ethernetif.c b/FreeRTOS/Demo/Common/ethernet/lwIP/netif/ethernetif.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/netif/ethernetif.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/netif/ethernetif.c
diff --git a/Demo/Common/ethernet/lwIP/netif/loopif.c b/FreeRTOS/Demo/Common/ethernet/lwIP/netif/loopif.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/netif/loopif.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/netif/loopif.c
diff --git a/Demo/Common/ethernet/lwIP/netif/ppp/auth.c b/FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/auth.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/netif/ppp/auth.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/auth.c
diff --git a/Demo/Common/ethernet/lwIP/netif/ppp/auth.h b/FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/auth.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/netif/ppp/auth.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/auth.h
diff --git a/Demo/Common/ethernet/lwIP/netif/ppp/chap.c b/FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/chap.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/netif/ppp/chap.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/chap.c
diff --git a/Demo/Common/ethernet/lwIP/netif/ppp/chap.h b/FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/chap.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/netif/ppp/chap.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/chap.h
diff --git a/Demo/Common/ethernet/lwIP/netif/ppp/chpms.c b/FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/chpms.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/netif/ppp/chpms.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/chpms.c
diff --git a/Demo/Common/ethernet/lwIP/netif/ppp/chpms.h b/FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/chpms.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/netif/ppp/chpms.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/chpms.h
diff --git a/Demo/Common/ethernet/lwIP/netif/ppp/fsm.c b/FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/fsm.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/netif/ppp/fsm.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/fsm.c
diff --git a/Demo/Common/ethernet/lwIP/netif/ppp/fsm.h b/FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/fsm.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/netif/ppp/fsm.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/fsm.h
diff --git a/Demo/Common/ethernet/lwIP/netif/ppp/ipcp.c b/FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/ipcp.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/netif/ppp/ipcp.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/ipcp.c
diff --git a/Demo/Common/ethernet/lwIP/netif/ppp/ipcp.h b/FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/ipcp.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/netif/ppp/ipcp.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/ipcp.h
diff --git a/Demo/Common/ethernet/lwIP/netif/ppp/lcp.c b/FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/lcp.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/netif/ppp/lcp.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/lcp.c
diff --git a/Demo/Common/ethernet/lwIP/netif/ppp/lcp.h b/FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/lcp.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/netif/ppp/lcp.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/lcp.h
diff --git a/Demo/Common/ethernet/lwIP/netif/ppp/magic.c b/FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/magic.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/netif/ppp/magic.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/magic.c
diff --git a/Demo/Common/ethernet/lwIP/netif/ppp/magic.h b/FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/magic.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/netif/ppp/magic.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/magic.h
diff --git a/Demo/Common/ethernet/lwIP/netif/ppp/md5.c b/FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/md5.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/netif/ppp/md5.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/md5.c
diff --git a/Demo/Common/ethernet/lwIP/netif/ppp/md5.h b/FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/md5.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/netif/ppp/md5.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/md5.h
diff --git a/Demo/Common/ethernet/lwIP/netif/ppp/pap.c b/FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/pap.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/netif/ppp/pap.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/pap.c
diff --git a/Demo/Common/ethernet/lwIP/netif/ppp/pap.h b/FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/pap.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/netif/ppp/pap.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/pap.h
diff --git a/Demo/Common/ethernet/lwIP/netif/ppp/ppp.c b/FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/ppp.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/netif/ppp/ppp.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/ppp.c
diff --git a/Demo/Common/ethernet/lwIP/netif/ppp/ppp.h b/FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/ppp.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/netif/ppp/ppp.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/ppp.h
diff --git a/Demo/Common/ethernet/lwIP/netif/ppp/pppdebug.h b/FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/pppdebug.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/netif/ppp/pppdebug.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/pppdebug.h
diff --git a/Demo/Common/ethernet/lwIP/netif/ppp/randm.c b/FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/randm.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/netif/ppp/randm.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/randm.c
diff --git a/Demo/Common/ethernet/lwIP/netif/ppp/randm.h b/FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/randm.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/netif/ppp/randm.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/randm.h
diff --git a/Demo/Common/ethernet/lwIP/netif/ppp/vj.c b/FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/vj.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/netif/ppp/vj.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/vj.c
diff --git a/Demo/Common/ethernet/lwIP/netif/ppp/vj.h b/FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/vj.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/netif/ppp/vj.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/vj.h
diff --git a/Demo/Common/ethernet/lwIP/netif/ppp/vjbsdhdr.h b/FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/vjbsdhdr.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP/netif/ppp/vjbsdhdr.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP/netif/ppp/vjbsdhdr.h
diff --git a/Demo/Common/ethernet/lwIP/netif/slipif.c b/FreeRTOS/Demo/Common/ethernet/lwIP/netif/slipif.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP/netif/slipif.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP/netif/slipif.c
diff --git a/Demo/Common/ethernet/lwIP_130/CHANGELOG b/FreeRTOS/Demo/Common/ethernet/lwIP_130/CHANGELOG
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/CHANGELOG
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/CHANGELOG
diff --git a/Demo/Common/ethernet/lwIP_130/COPYING b/FreeRTOS/Demo/Common/ethernet/lwIP_130/COPYING
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/COPYING
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/COPYING
diff --git a/Demo/Common/ethernet/lwIP_130/FILES b/FreeRTOS/Demo/Common/ethernet/lwIP_130/FILES
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/FILES
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/FILES
diff --git a/Demo/Common/ethernet/lwIP_130/README b/FreeRTOS/Demo/Common/ethernet/lwIP_130/README
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/README
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/README
diff --git a/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/MCF5225x_ethernetif.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/MCF5225x_ethernetif.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/MCF5225x_ethernetif.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/MCF5225x_ethernetif.c
diff --git a/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/__sys_arch.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/__sys_arch.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/__sys_arch.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/__sys_arch.c
diff --git a/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/arch/cc.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/arch/cc.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/arch/cc.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/arch/cc.h
diff --git a/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/arch/cpu.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/arch/cpu.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/arch/cpu.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/arch/cpu.h
diff --git a/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/arch/perf.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/arch/perf.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/arch/perf.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/arch/perf.h
diff --git a/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/arch/sys_arch.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/arch/sys_arch.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/arch/sys_arch.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/arch/sys_arch.h
diff --git a/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/eth.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/eth.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/eth.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/eth.h
diff --git a/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/eth_phy.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/eth_phy.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/eth_phy.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/eth_phy.h
diff --git a/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/fec.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/fec.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/fec.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/fec.h
diff --git a/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/fecbd.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/fecbd.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/fecbd.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/fecbd.h
diff --git a/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/mii.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/mii.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/mii.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/mii.h
diff --git a/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/STR91x/arch/cc.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/STR91x/arch/cc.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/STR91x/arch/cc.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/STR91x/arch/cc.h
diff --git a/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/STR91x/arch/cpu.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/STR91x/arch/cpu.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/STR91x/arch/cpu.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/STR91x/arch/cpu.h
diff --git a/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/STR91x/arch/init.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/STR91x/arch/init.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/STR91x/arch/init.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/STR91x/arch/init.h
diff --git a/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/STR91x/arch/lib.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/STR91x/arch/lib.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/STR91x/arch/lib.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/STR91x/arch/lib.h
diff --git a/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/STR91x/arch/perf.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/STR91x/arch/perf.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/STR91x/arch/perf.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/STR91x/arch/perf.h
diff --git a/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/STR91x/arch/sys_arch.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/STR91x/arch/sys_arch.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/STR91x/arch/sys_arch.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/STR91x/arch/sys_arch.h
diff --git a/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/sys_arch.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/sys_arch.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/sys_arch.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/sys_arch.c
diff --git a/Demo/Common/ethernet/lwIP_130/doc/FILES b/FreeRTOS/Demo/Common/ethernet/lwIP_130/doc/FILES
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/doc/FILES
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/doc/FILES
diff --git a/Demo/Common/ethernet/lwIP_130/doc/contrib.txt b/FreeRTOS/Demo/Common/ethernet/lwIP_130/doc/contrib.txt
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/doc/contrib.txt
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/doc/contrib.txt
diff --git a/Demo/Common/ethernet/lwIP_130/doc/rawapi.txt b/FreeRTOS/Demo/Common/ethernet/lwIP_130/doc/rawapi.txt
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/doc/rawapi.txt
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/doc/rawapi.txt
diff --git a/Demo/Common/ethernet/lwIP_130/doc/savannah.txt b/FreeRTOS/Demo/Common/ethernet/lwIP_130/doc/savannah.txt
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/doc/savannah.txt
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/doc/savannah.txt
diff --git a/Demo/Common/ethernet/lwIP_130/doc/snmp_agent.txt b/FreeRTOS/Demo/Common/ethernet/lwIP_130/doc/snmp_agent.txt
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/doc/snmp_agent.txt
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/doc/snmp_agent.txt
diff --git a/Demo/Common/ethernet/lwIP_130/doc/sys_arch.txt b/FreeRTOS/Demo/Common/ethernet/lwIP_130/doc/sys_arch.txt
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/doc/sys_arch.txt
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/doc/sys_arch.txt
diff --git a/Demo/Common/ethernet/lwIP_130/src/FILES b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/FILES
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/FILES
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/FILES
diff --git a/Demo/Common/ethernet/lwIP_130/src/api/api_lib.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/api/api_lib.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/api/api_lib.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/api/api_lib.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/api/api_msg.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/api/api_msg.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/api/api_msg.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/api/api_msg.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/api/err.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/api/err.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/api/err.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/api/err.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/api/netbuf.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/api/netbuf.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/api/netbuf.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/api/netbuf.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/api/netdb.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/api/netdb.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/api/netdb.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/api/netdb.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/api/netifapi.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/api/netifapi.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/api/netifapi.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/api/netifapi.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/api/sockets.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/api/sockets.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/api/sockets.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/api/sockets.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/api/tcpip.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/api/tcpip.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/api/tcpip.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/api/tcpip.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/core/dhcp.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/dhcp.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/core/dhcp.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/dhcp.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/core/dns.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/dns.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/core/dns.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/dns.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/core/init.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/init.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/core/init.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/init.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/core/ipv4/autoip.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/ipv4/autoip.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/core/ipv4/autoip.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/ipv4/autoip.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/core/ipv4/icmp.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/ipv4/icmp.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/core/ipv4/icmp.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/ipv4/icmp.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/core/ipv4/igmp.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/ipv4/igmp.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/core/ipv4/igmp.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/ipv4/igmp.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/core/ipv4/inet.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/ipv4/inet.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/core/ipv4/inet.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/ipv4/inet.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/core/ipv4/inet_chksum.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/ipv4/inet_chksum.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/core/ipv4/inet_chksum.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/ipv4/inet_chksum.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/core/ipv4/ip.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/ipv4/ip.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/core/ipv4/ip.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/ipv4/ip.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/core/ipv4/ip_addr.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/ipv4/ip_addr.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/core/ipv4/ip_addr.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/ipv4/ip_addr.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/core/ipv4/ip_frag.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/ipv4/ip_frag.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/core/ipv4/ip_frag.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/ipv4/ip_frag.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/core/ipv6/README b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/ipv6/README
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/core/ipv6/README
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/ipv6/README
diff --git a/Demo/Common/ethernet/lwIP_130/src/core/ipv6/icmp6.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/ipv6/icmp6.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/core/ipv6/icmp6.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/ipv6/icmp6.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/core/ipv6/inet6.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/ipv6/inet6.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/core/ipv6/inet6.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/ipv6/inet6.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/core/ipv6/ip6.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/ipv6/ip6.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/core/ipv6/ip6.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/ipv6/ip6.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/core/ipv6/ip6_addr.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/ipv6/ip6_addr.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/core/ipv6/ip6_addr.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/ipv6/ip6_addr.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/core/mem.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/mem.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/core/mem.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/mem.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/core/memp.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/memp.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/core/memp.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/memp.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/core/netif.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/netif.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/core/netif.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/netif.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/core/pbuf.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/pbuf.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/core/pbuf.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/pbuf.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/core/raw.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/raw.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/core/raw.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/raw.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/core/snmp/asn1_dec.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/snmp/asn1_dec.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/core/snmp/asn1_dec.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/snmp/asn1_dec.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/core/snmp/asn1_enc.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/snmp/asn1_enc.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/core/snmp/asn1_enc.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/snmp/asn1_enc.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/core/snmp/mib2.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/snmp/mib2.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/core/snmp/mib2.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/snmp/mib2.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/core/snmp/mib_structs.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/snmp/mib_structs.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/core/snmp/mib_structs.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/snmp/mib_structs.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/core/snmp/msg_in.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/snmp/msg_in.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/core/snmp/msg_in.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/snmp/msg_in.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/core/snmp/msg_out.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/snmp/msg_out.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/core/snmp/msg_out.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/snmp/msg_out.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/core/stats.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/stats.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/core/stats.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/stats.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/core/sys.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/sys.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/core/sys.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/sys.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/core/tcp.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/tcp.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/core/tcp.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/tcp.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/core/tcp_in.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/tcp_in.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/core/tcp_in.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/tcp_in.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/core/tcp_out.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/tcp_out.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/core/tcp_out.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/tcp_out.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/core/udp.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/udp.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/core/udp.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/core/udp.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/ipv4/lwip/autoip.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/ipv4/lwip/autoip.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/ipv4/lwip/autoip.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/ipv4/lwip/autoip.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/ipv4/lwip/icmp.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/ipv4/lwip/icmp.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/ipv4/lwip/icmp.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/ipv4/lwip/icmp.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/ipv4/lwip/igmp.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/ipv4/lwip/igmp.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/ipv4/lwip/igmp.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/ipv4/lwip/igmp.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/ipv4/lwip/inet.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/ipv4/lwip/inet.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/ipv4/lwip/inet.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/ipv4/lwip/inet.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/ipv4/lwip/inet_chksum.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/ipv4/lwip/inet_chksum.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/ipv4/lwip/inet_chksum.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/ipv4/lwip/inet_chksum.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/ipv4/lwip/ip.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/ipv4/lwip/ip.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/ipv4/lwip/ip.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/ipv4/lwip/ip.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/ipv4/lwip/ip_addr.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/ipv4/lwip/ip_addr.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/ipv4/lwip/ip_addr.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/ipv4/lwip/ip_addr.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/ipv4/lwip/ip_frag.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/ipv4/lwip/ip_frag.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/ipv4/lwip/ip_frag.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/ipv4/lwip/ip_frag.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/ipv6/lwip/icmp.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/ipv6/lwip/icmp.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/ipv6/lwip/icmp.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/ipv6/lwip/icmp.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/ipv6/lwip/inet.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/ipv6/lwip/inet.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/ipv6/lwip/inet.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/ipv6/lwip/inet.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/ipv6/lwip/ip.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/ipv6/lwip/ip.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/ipv6/lwip/ip.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/ipv6/lwip/ip.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/ipv6/lwip/ip_addr.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/ipv6/lwip/ip_addr.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/ipv6/lwip/ip_addr.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/ipv6/lwip/ip_addr.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/lwip/api.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/api.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/lwip/api.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/api.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/lwip/api_msg.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/api_msg.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/lwip/api_msg.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/api_msg.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/lwip/arch.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/arch.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/lwip/arch.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/arch.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/lwip/debug.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/debug.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/lwip/debug.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/debug.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/lwip/def.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/def.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/lwip/def.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/def.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/lwip/dhcp.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/dhcp.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/lwip/dhcp.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/dhcp.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/lwip/dns.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/dns.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/lwip/dns.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/dns.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/lwip/err.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/err.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/lwip/err.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/err.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/lwip/init.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/init.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/lwip/init.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/init.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/lwip/mem.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/mem.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/lwip/mem.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/mem.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/lwip/memp.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/memp.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/lwip/memp.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/memp.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/lwip/memp_std.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/memp_std.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/lwip/memp_std.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/memp_std.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/lwip/netbuf.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/netbuf.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/lwip/netbuf.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/netbuf.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/lwip/netdb.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/netdb.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/lwip/netdb.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/netdb.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/lwip/netif.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/netif.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/lwip/netif.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/netif.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/lwip/netifapi.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/netifapi.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/lwip/netifapi.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/netifapi.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/lwip/opt.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/opt.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/lwip/opt.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/opt.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/lwip/pbuf.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/pbuf.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/lwip/pbuf.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/pbuf.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/lwip/raw.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/raw.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/lwip/raw.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/raw.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/lwip/sio.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/sio.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/lwip/sio.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/sio.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/lwip/snmp.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/snmp.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/lwip/snmp.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/snmp.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/lwip/snmp_asn1.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/snmp_asn1.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/lwip/snmp_asn1.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/snmp_asn1.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/lwip/snmp_msg.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/snmp_msg.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/lwip/snmp_msg.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/snmp_msg.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/lwip/snmp_structs.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/snmp_structs.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/lwip/snmp_structs.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/snmp_structs.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/lwip/sockets.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/sockets.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/lwip/sockets.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/sockets.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/lwip/stats.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/stats.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/lwip/stats.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/stats.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/lwip/sys.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/sys.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/lwip/sys.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/sys.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/lwip/tcp.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/tcp.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/lwip/tcp.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/tcp.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/lwip/tcpip.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/tcpip.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/lwip/tcpip.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/tcpip.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/lwip/udp.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/udp.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/lwip/udp.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/lwip/udp.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/netif/etharp.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/netif/etharp.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/netif/etharp.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/netif/etharp.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/netif/loopif.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/netif/loopif.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/netif/loopif.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/netif/loopif.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/netif/ppp_oe.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/netif/ppp_oe.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/netif/ppp_oe.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/netif/ppp_oe.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/include/netif/slipif.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/netif/slipif.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/include/netif/slipif.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/include/netif/slipif.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/netif/FILES b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/FILES
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/netif/FILES
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/FILES
diff --git a/Demo/Common/ethernet/lwIP_130/src/netif/etharp.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/etharp.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/netif/etharp.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/etharp.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/netif/ethernetif.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ethernetif.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/netif/ethernetif.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ethernetif.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/netif/loopif.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/loopif.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/netif/loopif.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/loopif.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/netif/ppp/auth.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/auth.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/netif/ppp/auth.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/auth.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/netif/ppp/auth.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/auth.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/netif/ppp/auth.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/auth.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/netif/ppp/chap.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/chap.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/netif/ppp/chap.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/chap.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/netif/ppp/chap.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/chap.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/netif/ppp/chap.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/chap.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/netif/ppp/chpms.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/chpms.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/netif/ppp/chpms.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/chpms.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/netif/ppp/chpms.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/chpms.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/netif/ppp/chpms.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/chpms.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/netif/ppp/fsm.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/fsm.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/netif/ppp/fsm.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/fsm.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/netif/ppp/fsm.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/fsm.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/netif/ppp/fsm.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/fsm.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/netif/ppp/ipcp.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/ipcp.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/netif/ppp/ipcp.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/ipcp.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/netif/ppp/ipcp.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/ipcp.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/netif/ppp/ipcp.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/ipcp.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/netif/ppp/lcp.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/lcp.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/netif/ppp/lcp.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/lcp.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/netif/ppp/lcp.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/lcp.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/netif/ppp/lcp.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/lcp.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/netif/ppp/magic.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/magic.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/netif/ppp/magic.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/magic.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/netif/ppp/magic.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/magic.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/netif/ppp/magic.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/magic.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/netif/ppp/md5.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/md5.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/netif/ppp/md5.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/md5.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/netif/ppp/md5.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/md5.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/netif/ppp/md5.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/md5.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/netif/ppp/pap.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/pap.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/netif/ppp/pap.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/pap.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/netif/ppp/pap.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/pap.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/netif/ppp/pap.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/pap.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/netif/ppp/ppp.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/ppp.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/netif/ppp/ppp.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/ppp.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/netif/ppp/ppp.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/ppp.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/netif/ppp/ppp.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/ppp.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/netif/ppp/ppp_oe.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/ppp_oe.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/netif/ppp/ppp_oe.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/ppp_oe.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/netif/ppp/pppdebug.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/pppdebug.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/netif/ppp/pppdebug.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/pppdebug.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/netif/ppp/randm.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/randm.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/netif/ppp/randm.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/randm.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/netif/ppp/randm.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/randm.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/netif/ppp/randm.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/randm.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/netif/ppp/vj.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/vj.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/netif/ppp/vj.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/vj.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/netif/ppp/vj.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/vj.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/netif/ppp/vj.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/vj.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/netif/ppp/vjbsdhdr.h b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/vjbsdhdr.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/netif/ppp/vjbsdhdr.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/ppp/vjbsdhdr.h
diff --git a/Demo/Common/ethernet/lwIP_130/src/netif/slipif.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/slipif.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/netif/slipif.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/slipif.c
diff --git a/Demo/Common/ethernet/lwIP_130/src/netif/stf91x_ethernetif.c b/FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/stf91x_ethernetif.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_130/src/netif/stf91x_ethernetif.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/src/netif/stf91x_ethernetif.c
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/system_routed b/FreeRTOS/Demo/Common/ethernet/lwIP_130/sys
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/system_routed
rename to FreeRTOS/Demo/Common/ethernet/lwIP_130/sys
diff --git a/Demo/Common/ethernet/lwIP_132/CHANGELOG b/FreeRTOS/Demo/Common/ethernet/lwIP_132/CHANGELOG
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/CHANGELOG
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/CHANGELOG
diff --git a/Demo/Common/ethernet/lwIP_132/COPYING b/FreeRTOS/Demo/Common/ethernet/lwIP_132/COPYING
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/COPYING
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/COPYING
diff --git a/Demo/Common/ethernet/lwIP_132/FILES b/FreeRTOS/Demo/Common/ethernet/lwIP_132/FILES
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/FILES
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/FILES
diff --git a/Demo/Common/ethernet/lwIP_132/README b/FreeRTOS/Demo/Common/ethernet/lwIP_132/README
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/README
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/README
diff --git a/Demo/Common/ethernet/lwIP_132/doc/FILES b/FreeRTOS/Demo/Common/ethernet/lwIP_132/doc/FILES
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/doc/FILES
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/doc/FILES
diff --git a/Demo/Common/ethernet/lwIP_132/doc/contrib.txt b/FreeRTOS/Demo/Common/ethernet/lwIP_132/doc/contrib.txt
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/doc/contrib.txt
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/doc/contrib.txt
diff --git a/Demo/Common/ethernet/lwIP_132/doc/rawapi.txt b/FreeRTOS/Demo/Common/ethernet/lwIP_132/doc/rawapi.txt
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/doc/rawapi.txt
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/doc/rawapi.txt
diff --git a/Demo/Common/ethernet/lwIP_132/doc/savannah.txt b/FreeRTOS/Demo/Common/ethernet/lwIP_132/doc/savannah.txt
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/doc/savannah.txt
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/doc/savannah.txt
diff --git a/Demo/Common/ethernet/lwIP_132/doc/snmp_agent.txt b/FreeRTOS/Demo/Common/ethernet/lwIP_132/doc/snmp_agent.txt
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/doc/snmp_agent.txt
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/doc/snmp_agent.txt
diff --git a/Demo/Common/ethernet/lwIP_132/doc/sys_arch.txt b/FreeRTOS/Demo/Common/ethernet/lwIP_132/doc/sys_arch.txt
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/doc/sys_arch.txt
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/doc/sys_arch.txt
diff --git a/Demo/Common/ethernet/lwIP_132/src/FILES b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/FILES
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/FILES
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/FILES
diff --git a/Demo/Common/ethernet/lwIP_132/src/api/api_lib.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/api/api_lib.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/api/api_lib.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/api/api_lib.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/api/api_msg.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/api/api_msg.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/api/api_msg.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/api/api_msg.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/api/err.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/api/err.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/api/err.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/api/err.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/api/netbuf.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/api/netbuf.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/api/netbuf.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/api/netbuf.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/api/netdb.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/api/netdb.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/api/netdb.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/api/netdb.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/api/netifapi.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/api/netifapi.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/api/netifapi.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/api/netifapi.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/api/sockets.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/api/sockets.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/api/sockets.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/api/sockets.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/api/tcpip.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/api/tcpip.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/api/tcpip.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/api/tcpip.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/core/dhcp.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/dhcp.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/core/dhcp.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/dhcp.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/core/dns.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/dns.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/core/dns.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/dns.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/core/init.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/init.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/core/init.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/init.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/core/ipv4/autoip.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/ipv4/autoip.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/core/ipv4/autoip.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/ipv4/autoip.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/core/ipv4/icmp.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/ipv4/icmp.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/core/ipv4/icmp.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/ipv4/icmp.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/core/ipv4/igmp.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/ipv4/igmp.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/core/ipv4/igmp.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/ipv4/igmp.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/core/ipv4/inet.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/ipv4/inet.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/core/ipv4/inet.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/ipv4/inet.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/core/ipv4/inet_chksum.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/ipv4/inet_chksum.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/core/ipv4/inet_chksum.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/ipv4/inet_chksum.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/core/ipv4/ip.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/ipv4/ip.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/core/ipv4/ip.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/ipv4/ip.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/core/ipv4/ip_addr.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/ipv4/ip_addr.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/core/ipv4/ip_addr.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/ipv4/ip_addr.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/core/ipv4/ip_frag.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/ipv4/ip_frag.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/core/ipv4/ip_frag.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/ipv4/ip_frag.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/core/ipv6/README b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/ipv6/README
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/core/ipv6/README
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/ipv6/README
diff --git a/Demo/Common/ethernet/lwIP_132/src/core/ipv6/icmp6.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/ipv6/icmp6.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/core/ipv6/icmp6.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/ipv6/icmp6.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/core/ipv6/inet6.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/ipv6/inet6.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/core/ipv6/inet6.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/ipv6/inet6.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/core/ipv6/ip6.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/ipv6/ip6.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/core/ipv6/ip6.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/ipv6/ip6.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/core/ipv6/ip6_addr.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/ipv6/ip6_addr.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/core/ipv6/ip6_addr.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/ipv6/ip6_addr.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/core/mem.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/mem.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/core/mem.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/mem.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/core/memp.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/memp.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/core/memp.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/memp.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/core/netif.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/netif.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/core/netif.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/netif.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/core/pbuf.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/pbuf.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/core/pbuf.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/pbuf.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/core/raw.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/raw.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/core/raw.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/raw.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/core/snmp/asn1_dec.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/snmp/asn1_dec.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/core/snmp/asn1_dec.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/snmp/asn1_dec.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/core/snmp/asn1_enc.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/snmp/asn1_enc.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/core/snmp/asn1_enc.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/snmp/asn1_enc.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/core/snmp/mib2.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/snmp/mib2.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/core/snmp/mib2.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/snmp/mib2.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/core/snmp/mib_structs.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/snmp/mib_structs.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/core/snmp/mib_structs.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/snmp/mib_structs.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/core/snmp/msg_in.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/snmp/msg_in.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/core/snmp/msg_in.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/snmp/msg_in.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/core/snmp/msg_out.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/snmp/msg_out.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/core/snmp/msg_out.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/snmp/msg_out.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/core/stats.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/stats.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/core/stats.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/stats.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/core/sys.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/sys.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/core/sys.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/sys.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/core/tcp.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/tcp.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/core/tcp.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/tcp.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/core/tcp_in.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/tcp_in.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/core/tcp_in.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/tcp_in.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/core/tcp_out.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/tcp_out.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/core/tcp_out.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/tcp_out.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/core/udp.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/udp.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/core/udp.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/core/udp.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/ipv4/lwip/autoip.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/ipv4/lwip/autoip.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/ipv4/lwip/autoip.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/ipv4/lwip/autoip.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/ipv4/lwip/icmp.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/ipv4/lwip/icmp.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/ipv4/lwip/icmp.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/ipv4/lwip/icmp.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/ipv4/lwip/igmp.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/ipv4/lwip/igmp.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/ipv4/lwip/igmp.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/ipv4/lwip/igmp.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/ipv4/lwip/inet.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/ipv4/lwip/inet.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/ipv4/lwip/inet.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/ipv4/lwip/inet.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/ipv4/lwip/inet_chksum.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/ipv4/lwip/inet_chksum.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/ipv4/lwip/inet_chksum.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/ipv4/lwip/inet_chksum.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/ipv4/lwip/ip.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/ipv4/lwip/ip.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/ipv4/lwip/ip.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/ipv4/lwip/ip.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/ipv4/lwip/ip_addr.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/ipv4/lwip/ip_addr.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/ipv4/lwip/ip_addr.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/ipv4/lwip/ip_addr.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/ipv4/lwip/ip_frag.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/ipv4/lwip/ip_frag.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/ipv4/lwip/ip_frag.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/ipv4/lwip/ip_frag.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/ipv6/lwip/icmp.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/ipv6/lwip/icmp.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/ipv6/lwip/icmp.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/ipv6/lwip/icmp.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/ipv6/lwip/inet.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/ipv6/lwip/inet.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/ipv6/lwip/inet.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/ipv6/lwip/inet.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/ipv6/lwip/ip.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/ipv6/lwip/ip.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/ipv6/lwip/ip.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/ipv6/lwip/ip.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/ipv6/lwip/ip_addr.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/ipv6/lwip/ip_addr.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/ipv6/lwip/ip_addr.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/ipv6/lwip/ip_addr.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/lwip/api.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/api.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/lwip/api.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/api.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/lwip/api_msg.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/api_msg.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/lwip/api_msg.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/api_msg.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/lwip/arch.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/arch.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/lwip/arch.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/arch.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/lwip/debug.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/debug.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/lwip/debug.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/debug.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/lwip/def.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/def.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/lwip/def.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/def.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/lwip/dhcp.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/dhcp.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/lwip/dhcp.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/dhcp.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/lwip/dns.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/dns.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/lwip/dns.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/dns.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/lwip/err.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/err.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/lwip/err.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/err.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/lwip/init.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/init.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/lwip/init.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/init.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/lwip/mem.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/mem.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/lwip/mem.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/mem.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/lwip/memp.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/memp.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/lwip/memp.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/memp.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/lwip/memp_std.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/memp_std.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/lwip/memp_std.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/memp_std.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/lwip/netbuf.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/netbuf.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/lwip/netbuf.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/netbuf.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/lwip/netdb.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/netdb.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/lwip/netdb.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/netdb.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/lwip/netif.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/netif.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/lwip/netif.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/netif.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/lwip/netifapi.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/netifapi.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/lwip/netifapi.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/netifapi.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/lwip/opt.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/opt.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/lwip/opt.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/opt.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/lwip/pbuf.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/pbuf.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/lwip/pbuf.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/pbuf.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/lwip/raw.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/raw.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/lwip/raw.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/raw.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/lwip/sio.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/sio.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/lwip/sio.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/sio.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/lwip/snmp.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/snmp.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/lwip/snmp.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/snmp.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/lwip/snmp_asn1.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/snmp_asn1.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/lwip/snmp_asn1.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/snmp_asn1.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/lwip/snmp_msg.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/snmp_msg.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/lwip/snmp_msg.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/snmp_msg.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/lwip/snmp_structs.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/snmp_structs.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/lwip/snmp_structs.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/snmp_structs.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/lwip/sockets.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/sockets.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/lwip/sockets.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/sockets.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/lwip/stats.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/stats.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/lwip/stats.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/stats.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/lwip/sys.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/sys.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/lwip/sys.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/sys.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/lwip/tcp.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/tcp.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/lwip/tcp.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/tcp.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/lwip/tcpip.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/tcpip.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/lwip/tcpip.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/tcpip.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/lwip/udp.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/udp.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/lwip/udp.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/lwip/udp.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/netif/etharp.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/netif/etharp.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/netif/etharp.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/netif/etharp.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/netif/loopif.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/netif/loopif.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/netif/loopif.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/netif/loopif.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/netif/ppp_oe.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/netif/ppp_oe.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/netif/ppp_oe.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/netif/ppp_oe.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/include/netif/slipif.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/netif/slipif.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/include/netif/slipif.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/include/netif/slipif.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/netif/FILES b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/FILES
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/netif/FILES
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/FILES
diff --git a/Demo/Common/ethernet/lwIP_132/src/netif/etharp.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/etharp.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/netif/etharp.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/etharp.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/netif/ethernetif.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ethernetif.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/netif/ethernetif.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ethernetif.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/netif/loopif.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/loopif.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/netif/loopif.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/loopif.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/netif/ppp/auth.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/auth.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/netif/ppp/auth.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/auth.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/netif/ppp/auth.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/auth.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/netif/ppp/auth.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/auth.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/netif/ppp/chap.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/chap.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/netif/ppp/chap.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/chap.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/netif/ppp/chap.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/chap.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/netif/ppp/chap.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/chap.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/netif/ppp/chpms.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/chpms.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/netif/ppp/chpms.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/chpms.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/netif/ppp/chpms.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/chpms.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/netif/ppp/chpms.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/chpms.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/netif/ppp/fsm.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/fsm.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/netif/ppp/fsm.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/fsm.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/netif/ppp/fsm.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/fsm.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/netif/ppp/fsm.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/fsm.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/netif/ppp/ipcp.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/ipcp.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/netif/ppp/ipcp.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/ipcp.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/netif/ppp/ipcp.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/ipcp.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/netif/ppp/ipcp.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/ipcp.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/netif/ppp/lcp.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/lcp.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/netif/ppp/lcp.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/lcp.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/netif/ppp/lcp.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/lcp.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/netif/ppp/lcp.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/lcp.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/netif/ppp/magic.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/magic.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/netif/ppp/magic.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/magic.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/netif/ppp/magic.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/magic.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/netif/ppp/magic.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/magic.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/netif/ppp/md5.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/md5.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/netif/ppp/md5.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/md5.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/netif/ppp/md5.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/md5.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/netif/ppp/md5.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/md5.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/netif/ppp/pap.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/pap.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/netif/ppp/pap.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/pap.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/netif/ppp/pap.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/pap.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/netif/ppp/pap.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/pap.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/netif/ppp/ppp.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/ppp.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/netif/ppp/ppp.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/ppp.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/netif/ppp/ppp.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/ppp.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/netif/ppp/ppp.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/ppp.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/netif/ppp/ppp_oe.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/ppp_oe.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/netif/ppp/ppp_oe.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/ppp_oe.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/netif/ppp/pppdebug.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/pppdebug.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/netif/ppp/pppdebug.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/pppdebug.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/netif/ppp/randm.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/randm.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/netif/ppp/randm.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/randm.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/netif/ppp/randm.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/randm.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/netif/ppp/randm.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/randm.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/netif/ppp/vj.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/vj.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/netif/ppp/vj.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/vj.c
diff --git a/Demo/Common/ethernet/lwIP_132/src/netif/ppp/vj.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/vj.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/netif/ppp/vj.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/vj.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/netif/ppp/vjbsdhdr.h b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/vjbsdhdr.h
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/netif/ppp/vjbsdhdr.h
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/ppp/vjbsdhdr.h
diff --git a/Demo/Common/ethernet/lwIP_132/src/netif/slipif.c b/FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/slipif.c
similarity index 100%
rename from Demo/Common/ethernet/lwIP_132/src/netif/slipif.c
rename to FreeRTOS/Demo/Common/ethernet/lwIP_132/src/netif/slipif.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/CHANGELOG b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/CHANGELOG
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/CHANGELOG
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/CHANGELOG
diff --git a/Demo/Common/ethernet/lwip-1.4.0/COPYING b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/COPYING
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/COPYING
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/COPYING
diff --git a/Demo/Common/ethernet/lwip-1.4.0/FILES b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/FILES
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/FILES
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/FILES
diff --git a/Demo/Common/ethernet/lwip-1.4.0/README b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/README
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/README
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/README
diff --git a/Demo/Common/ethernet/lwip-1.4.0/UPGRADING b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/UPGRADING
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/UPGRADING
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/UPGRADING
diff --git a/Demo/Common/ethernet/lwip-1.4.0/doc/FILES b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/doc/FILES
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/doc/FILES
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/doc/FILES
diff --git a/Demo/Common/ethernet/lwip-1.4.0/doc/contrib.txt b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/doc/contrib.txt
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/doc/contrib.txt
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/doc/contrib.txt
diff --git a/Demo/Common/ethernet/lwip-1.4.0/doc/rawapi.txt b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/doc/rawapi.txt
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/doc/rawapi.txt
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/doc/rawapi.txt
diff --git a/Demo/Common/ethernet/lwip-1.4.0/doc/savannah.txt b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/doc/savannah.txt
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/doc/savannah.txt
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/doc/savannah.txt
diff --git a/Demo/Common/ethernet/lwip-1.4.0/doc/snmp_agent.txt b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/doc/snmp_agent.txt
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/doc/snmp_agent.txt
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/doc/snmp_agent.txt
diff --git a/Demo/Common/ethernet/lwip-1.4.0/doc/sys_arch.txt b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/doc/sys_arch.txt
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/doc/sys_arch.txt
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/doc/sys_arch.txt
diff --git a/Demo/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/SP605_PHY.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/SP605_PHY.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/SP605_PHY.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/SP605_PHY.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/ethernetif.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/ethernetif.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/ethernetif.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/ethernetif.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/include/arch/bpstruct.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/include/arch/bpstruct.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/include/arch/bpstruct.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/include/arch/bpstruct.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/include/arch/cc.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/include/arch/cc.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/include/arch/cc.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/include/arch/cc.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/include/arch/epstruct.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/include/arch/epstruct.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/include/arch/epstruct.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/include/arch/epstruct.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/include/arch/perf.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/include/arch/perf.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/include/arch/perf.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/include/arch/perf.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/include/arch/sys_arch.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/include/arch/sys_arch.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/include/arch/sys_arch.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/include/arch/sys_arch.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/sys_arch.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/sys_arch.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/sys_arch.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/sys_arch.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/Packet32.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/Packet32.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/Packet32.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/Packet32.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/PacketData.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/PacketData.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/PacketData.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/PacketData.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/Win32-Extensions.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/Win32-Extensions.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/Win32-Extensions.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/Win32-Extensions.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/arch.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/arch.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/arch.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/arch.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/bittypes.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/bittypes.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/bittypes.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/bittypes.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/ip6_misc.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/ip6_misc.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/ip6_misc.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/ip6_misc.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/netif.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/netif.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/netif.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/netif.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap-bpf.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap-bpf.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap-bpf.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap-bpf.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap-namedb.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap-namedb.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap-namedb.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap-namedb.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap-stdinc.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap-stdinc.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap-stdinc.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap-stdinc.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap/bluetooth.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap/bluetooth.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap/bluetooth.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap/bluetooth.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap/bpf.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap/bpf.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap/bpf.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap/bpf.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap/namedb.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap/namedb.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap/namedb.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap/namedb.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap/sll.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap/sll.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap/sll.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap/sll.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap/usb.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap/usb.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap/usb.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap/usb.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap/vlan.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap/vlan.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap/vlan.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/pcap/vlan.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/remote-ext.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/remote-ext.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/remote-ext.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/remote-ext.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/wpcap.lib b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/wpcap.lib
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/wpcap.lib
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/wpcap.lib
diff --git a/Demo/Common/ethernet/lwip-1.4.0/ports/win32/ethernetif.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/ethernetif.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/ports/win32/ethernetif.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/ethernetif.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/ports/win32/include/arch/bpstruct.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/include/arch/bpstruct.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/ports/win32/include/arch/bpstruct.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/include/arch/bpstruct.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/ports/win32/include/arch/cc.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/include/arch/cc.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/ports/win32/include/arch/cc.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/include/arch/cc.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/ports/win32/include/arch/epstruct.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/include/arch/epstruct.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/ports/win32/include/arch/epstruct.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/include/arch/epstruct.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/ports/win32/include/arch/perf.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/include/arch/perf.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/ports/win32/include/arch/perf.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/include/arch/perf.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/ports/win32/include/arch/sys_arch.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/include/arch/sys_arch.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/ports/win32/include/arch/sys_arch.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/include/arch/sys_arch.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/ports/win32/lwipcfg_msvc.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/lwipcfg_msvc.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/ports/win32/lwipcfg_msvc.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/lwipcfg_msvc.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/ports/win32/sys_arch.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/sys_arch.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/ports/win32/sys_arch.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/sys_arch.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/.hgignore b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/.hgignore
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/.hgignore
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/.hgignore
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/FILES b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/FILES
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/FILES
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/FILES
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/api/api_lib.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/api/api_lib.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/api/api_lib.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/api/api_lib.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/api/api_msg.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/api/api_msg.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/api/api_msg.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/api/api_msg.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/api/err.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/api/err.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/api/err.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/api/err.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/api/netbuf.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/api/netbuf.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/api/netbuf.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/api/netbuf.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/api/netdb.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/api/netdb.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/api/netdb.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/api/netdb.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/api/netifapi.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/api/netifapi.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/api/netifapi.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/api/netifapi.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/api/sockets.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/api/sockets.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/api/sockets.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/api/sockets.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/api/tcpip.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/api/tcpip.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/api/tcpip.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/api/tcpip.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/core/def.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/def.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/core/def.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/def.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/core/dhcp.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/dhcp.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/core/dhcp.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/dhcp.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/core/dns.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/dns.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/core/dns.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/dns.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/core/init.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/init.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/core/init.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/init.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv4/autoip.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv4/autoip.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/core/ipv4/autoip.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv4/autoip.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv4/icmp.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv4/icmp.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/core/ipv4/icmp.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv4/icmp.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv4/igmp.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv4/igmp.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/core/ipv4/igmp.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv4/igmp.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv4/inet.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv4/inet.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/core/ipv4/inet.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv4/inet.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv4/inet_chksum.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv4/inet_chksum.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/core/ipv4/inet_chksum.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv4/inet_chksum.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv4/ip.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv4/ip.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/core/ipv4/ip.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv4/ip.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv4/ip_addr.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv4/ip_addr.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/core/ipv4/ip_addr.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv4/ip_addr.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv4/ip_frag.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv4/ip_frag.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/core/ipv4/ip_frag.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv4/ip_frag.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv6/README b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv6/README
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/core/ipv6/README
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv6/README
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv6/icmp6.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv6/icmp6.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/core/ipv6/icmp6.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv6/icmp6.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv6/inet6.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv6/inet6.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/core/ipv6/inet6.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv6/inet6.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv6/ip6.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv6/ip6.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/core/ipv6/ip6.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv6/ip6.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv6/ip6_addr.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv6/ip6_addr.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/core/ipv6/ip6_addr.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/ipv6/ip6_addr.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/core/lwip_timers.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/lwip_timers.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/core/lwip_timers.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/lwip_timers.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/core/mem.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/mem.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/core/mem.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/mem.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/core/memp.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/memp.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/core/memp.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/memp.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/core/netif.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/netif.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/core/netif.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/netif.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/core/pbuf.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/pbuf.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/core/pbuf.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/pbuf.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/core/raw.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/raw.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/core/raw.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/raw.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/core/snmp/asn1_dec.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/snmp/asn1_dec.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/core/snmp/asn1_dec.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/snmp/asn1_dec.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/core/snmp/asn1_enc.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/snmp/asn1_enc.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/core/snmp/asn1_enc.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/snmp/asn1_enc.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/core/snmp/mib2.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/snmp/mib2.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/core/snmp/mib2.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/snmp/mib2.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/core/snmp/mib_structs.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/snmp/mib_structs.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/core/snmp/mib_structs.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/snmp/mib_structs.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/core/snmp/msg_in.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/snmp/msg_in.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/core/snmp/msg_in.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/snmp/msg_in.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/core/snmp/msg_out.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/snmp/msg_out.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/core/snmp/msg_out.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/snmp/msg_out.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/core/stats.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/stats.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/core/stats.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/stats.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/core/sys.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/sys.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/core/sys.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/sys.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/core/tcp.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/tcp.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/core/tcp.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/tcp.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/core/tcp_in.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/tcp_in.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/core/tcp_in.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/tcp_in.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/core/tcp_out.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/tcp_out.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/core/tcp_out.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/tcp_out.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/core/udp.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/udp.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/core/udp.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/core/udp.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/autoip.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/autoip.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/autoip.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/autoip.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/icmp.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/icmp.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/icmp.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/icmp.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/igmp.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/igmp.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/igmp.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/igmp.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/inet.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/inet.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/inet.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/inet.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/inet_chksum.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/inet_chksum.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/inet_chksum.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/inet_chksum.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/ip.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/ip.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/ip.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/ip.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/ip_addr.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/ip_addr.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/ip_addr.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/ip_addr.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/ip_frag.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/ip_frag.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/ip_frag.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/ipv4/lwip/ip_frag.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/ipv6/lwip/icmp.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/ipv6/lwip/icmp.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/ipv6/lwip/icmp.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/ipv6/lwip/icmp.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/ipv6/lwip/inet.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/ipv6/lwip/inet.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/ipv6/lwip/inet.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/ipv6/lwip/inet.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/ipv6/lwip/ip.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/ipv6/lwip/ip.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/ipv6/lwip/ip.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/ipv6/lwip/ip.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/ipv6/lwip/ip_addr.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/ipv6/lwip/ip_addr.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/ipv6/lwip/ip_addr.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/ipv6/lwip/ip_addr.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/api.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/api.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/api.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/api.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/api_msg.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/api_msg.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/api_msg.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/api_msg.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/arch.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/arch.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/arch.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/arch.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/debug.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/debug.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/debug.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/debug.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/def.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/def.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/def.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/def.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/dhcp.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/dhcp.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/dhcp.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/dhcp.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/dns.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/dns.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/dns.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/dns.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/err.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/err.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/err.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/err.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/init.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/init.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/init.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/init.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/mem.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/mem.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/mem.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/mem.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/memp.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/memp.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/memp.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/memp.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/memp_std.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/memp_std.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/memp_std.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/memp_std.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/netbuf.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/netbuf.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/netbuf.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/netbuf.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/netdb.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/netdb.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/netdb.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/netdb.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/netif.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/netif.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/netif.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/netif.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/netifapi.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/netifapi.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/netifapi.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/netifapi.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/opt.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/opt.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/opt.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/opt.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/pbuf.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/pbuf.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/pbuf.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/pbuf.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/raw.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/raw.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/raw.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/raw.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/sio.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/sio.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/sio.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/sio.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/snmp.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/snmp.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/snmp.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/snmp.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/snmp_asn1.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/snmp_asn1.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/snmp_asn1.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/snmp_asn1.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/snmp_msg.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/snmp_msg.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/snmp_msg.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/snmp_msg.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/snmp_structs.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/snmp_structs.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/snmp_structs.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/snmp_structs.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/sockets.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/sockets.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/sockets.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/sockets.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/stats.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/stats.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/stats.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/stats.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/sys.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/sys.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/sys.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/sys.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/tcp.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/tcp.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/tcp.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/tcp.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/tcp_impl.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/tcp_impl.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/tcp_impl.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/tcp_impl.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/tcpip.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/tcpip.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/tcpip.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/tcpip.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/timers.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/timers.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/timers.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/timers.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/udp.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/udp.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/udp.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/lwip/udp.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/netif/etharp.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/netif/etharp.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/netif/etharp.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/netif/etharp.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/netif/ppp_oe.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/netif/ppp_oe.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/netif/ppp_oe.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/netif/ppp_oe.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/include/netif/slipif.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/netif/slipif.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/include/netif/slipif.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/include/netif/slipif.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/netif/FILES b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/FILES
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/netif/FILES
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/FILES
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/netif/etharp.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/etharp.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/netif/etharp.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/etharp.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/netif/ethernetif.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ethernetif.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/netif/ethernetif.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ethernetif.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/auth.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/auth.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/auth.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/auth.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/auth.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/auth.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/auth.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/auth.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/chap.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/chap.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/chap.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/chap.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/chap.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/chap.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/chap.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/chap.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/chpms.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/chpms.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/chpms.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/chpms.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/chpms.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/chpms.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/chpms.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/chpms.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/fsm.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/fsm.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/fsm.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/fsm.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/fsm.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/fsm.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/fsm.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/fsm.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/ipcp.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/ipcp.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/ipcp.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/ipcp.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/ipcp.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/ipcp.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/ipcp.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/ipcp.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/lcp.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/lcp.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/lcp.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/lcp.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/lcp.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/lcp.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/lcp.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/lcp.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/magic.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/magic.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/magic.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/magic.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/magic.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/magic.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/magic.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/magic.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/md5.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/md5.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/md5.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/md5.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/md5.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/md5.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/md5.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/md5.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/pap.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/pap.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/pap.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/pap.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/pap.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/pap.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/pap.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/pap.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/ppp.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/ppp.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/ppp.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/ppp.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/ppp.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/ppp.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/ppp.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/ppp.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/ppp_oe.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/ppp_oe.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/ppp_oe.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/ppp_oe.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/pppdebug.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/pppdebug.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/pppdebug.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/pppdebug.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/randm.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/randm.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/randm.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/randm.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/randm.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/randm.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/randm.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/randm.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/vj.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/vj.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/vj.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/vj.c
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/vj.h b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/vj.h
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/vj.h
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/ppp/vj.h
diff --git a/Demo/Common/ethernet/lwip-1.4.0/src/netif/slipif.c b/FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/slipif.c
similarity index 100%
rename from Demo/Common/ethernet/lwip-1.4.0/src/netif/slipif.c
rename to FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/src/netif/slipif.c
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/README b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/README
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/README
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/README
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/apps/README b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/README
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/apps/README
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/README
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/Makefile.webserver b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/Makefile.webserver
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/Makefile.webserver
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/Makefile.webserver
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/http-strings b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/http-strings
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/http-strings
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/http-strings
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/http-strings.c b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/http-strings.c
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/http-strings.c
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/http-strings.c
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/http-strings.h b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/http-strings.h
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/http-strings.h
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/http-strings.h
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-cgi.c b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-cgi.c
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-cgi.c
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-cgi.c
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-cgi.h b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-cgi.h
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-cgi.h
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-cgi.h
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs.c b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs.c
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs.c
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs.c
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs.h b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs.h
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs.h
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs.h
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/404.html b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/404.html
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/404.html
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/404.html
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/fade.png b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/fade.png
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/fade.png
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/fade.png
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/files.shtml b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/files.shtml
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/files.shtml
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/files.shtml
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/footer.html b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/footer.html
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/footer.html
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/footer.html
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/header.html b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/header.html
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/header.html
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/header.html
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/index.html b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/index.html
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/index.html
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/index.html
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/processes.shtml b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/processes.shtml
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/processes.shtml
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/processes.shtml
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/stats.shtml b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/stats.shtml
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/stats.shtml
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/stats.shtml
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/style.css b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/style.css
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/style.css
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/style.css
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/tcp.shtml b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/tcp.shtml
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/tcp.shtml
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fs/tcp.shtml
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fsdata.c b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fsdata.c
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fsdata.c
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fsdata.c
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fsdata.h b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fsdata.h
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fsdata.h
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd-fsdata.h
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd.c b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd.c
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd.c
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd.c
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd.h b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd.h
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd.h
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/httpd.h
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/makefsdata b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/makefsdata
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/makefsdata
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/makefsdata
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/makestrings b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/makestrings
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/makestrings
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/makestrings
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/webserver.h b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/webserver.h
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/webserver.h
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/apps/webserver/webserver.h
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/uip-1.0-changelog.txt b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip-1.0-changelog.txt
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/uip-1.0-changelog.txt
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip-1.0-changelog.txt
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/uip/Makefile.include b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/Makefile.include
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/uip/Makefile.include
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/Makefile.include
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/uip/clock.h b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/clock.h
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/uip/clock.h
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/clock.h
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/uip/lc-addrlabels.h b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/lc-addrlabels.h
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/uip/lc-addrlabels.h
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/lc-addrlabels.h
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/uip/lc-switch.h b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/lc-switch.h
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/uip/lc-switch.h
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/lc-switch.h
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/uip/lc.h b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/lc.h
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/uip/lc.h
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/lc.h
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/uip/psock.c b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/psock.c
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/uip/psock.c
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/psock.c
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/uip/psock.h b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/psock.h
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/uip/psock.h
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/psock.h
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/uip/pt.h b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/pt.h
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/uip/pt.h
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/pt.h
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/uip/timer.c b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/timer.c
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/uip/timer.c
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/timer.c
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/uip/timer.h b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/timer.h
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/uip/timer.h
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/timer.h
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/uip/uip-fw.c b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/uip-fw.c
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/uip/uip-fw.c
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/uip-fw.c
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/uip/uip-fw.h b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/uip-fw.h
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/uip/uip-fw.h
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/uip-fw.h
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/uip/uip-neighbor.c b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/uip-neighbor.c
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/uip/uip-neighbor.c
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/uip-neighbor.c
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/uip/uip-neighbor.h b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/uip-neighbor.h
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/uip/uip-neighbor.h
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/uip-neighbor.h
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/uip/uip-split.c b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/uip-split.c
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/uip/uip-split.c
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/uip-split.c
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/uip/uip-split.h b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/uip-split.h
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/uip/uip-split.h
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/uip-split.h
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/uip/uip.c b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/uip.c
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/uip/uip.c
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/uip.c
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/uip/uip.h b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/uip.h
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/uip/uip.h
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/uip.h
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/uip/uip_arch.h b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/uip_arch.h
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/uip/uip_arch.h
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/uip_arch.h
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/uip/uip_arp.c b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/uip_arp.c
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/uip/uip_arp.c
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/uip_arp.c
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/uip/uip_arp.h b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/uip_arp.h
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/uip/uip_arp.h
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/uip_arp.h
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/uip/uiplib.c b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/uiplib.c
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/uip/uiplib.c
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/uiplib.c
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/uip/uiplib.h b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/uiplib.h
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/uip/uiplib.h
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/uiplib.h
diff --git a/Demo/Common/ethernet/uIP/uip-1.0/uip/uipopt.h b/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/uipopt.h
similarity index 100%
rename from Demo/Common/ethernet/uIP/uip-1.0/uip/uipopt.h
rename to FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip/uipopt.h
diff --git a/Demo/Common/include/AltBlckQ.h b/FreeRTOS/Demo/Common/include/AltBlckQ.h
similarity index 100%
rename from Demo/Common/include/AltBlckQ.h
rename to FreeRTOS/Demo/Common/include/AltBlckQ.h
diff --git a/Demo/Common/include/AltBlock.h b/FreeRTOS/Demo/Common/include/AltBlock.h
similarity index 100%
rename from Demo/Common/include/AltBlock.h
rename to FreeRTOS/Demo/Common/include/AltBlock.h
diff --git a/Demo/Common/include/AltPollQ.h b/FreeRTOS/Demo/Common/include/AltPollQ.h
similarity index 100%
rename from Demo/Common/include/AltPollQ.h
rename to FreeRTOS/Demo/Common/include/AltPollQ.h
diff --git a/Demo/Common/include/AltQTest.h b/FreeRTOS/Demo/Common/include/AltQTest.h
similarity index 100%
rename from Demo/Common/include/AltQTest.h
rename to FreeRTOS/Demo/Common/include/AltQTest.h
diff --git a/Demo/Common/include/BlockQ.h b/FreeRTOS/Demo/Common/include/BlockQ.h
similarity index 100%
rename from Demo/Common/include/BlockQ.h
rename to FreeRTOS/Demo/Common/include/BlockQ.h
diff --git a/Demo/Common/include/GenQTest.h b/FreeRTOS/Demo/Common/include/GenQTest.h
similarity index 100%
rename from Demo/Common/include/GenQTest.h
rename to FreeRTOS/Demo/Common/include/GenQTest.h
diff --git a/Demo/Common/include/IntQueue.h b/FreeRTOS/Demo/Common/include/IntQueue.h
similarity index 100%
rename from Demo/Common/include/IntQueue.h
rename to FreeRTOS/Demo/Common/include/IntQueue.h
diff --git a/Demo/Common/include/PollQ.h b/FreeRTOS/Demo/Common/include/PollQ.h
similarity index 100%
rename from Demo/Common/include/PollQ.h
rename to FreeRTOS/Demo/Common/include/PollQ.h
diff --git a/Demo/Common/include/QPeek.h b/FreeRTOS/Demo/Common/include/QPeek.h
similarity index 100%
rename from Demo/Common/include/QPeek.h
rename to FreeRTOS/Demo/Common/include/QPeek.h
diff --git a/Demo/Common/include/TimerDemo.h b/FreeRTOS/Demo/Common/include/TimerDemo.h
similarity index 100%
rename from Demo/Common/include/TimerDemo.h
rename to FreeRTOS/Demo/Common/include/TimerDemo.h
diff --git a/Demo/Common/include/blocktim.h b/FreeRTOS/Demo/Common/include/blocktim.h
similarity index 100%
rename from Demo/Common/include/blocktim.h
rename to FreeRTOS/Demo/Common/include/blocktim.h
diff --git a/Demo/Common/include/comtest.h b/FreeRTOS/Demo/Common/include/comtest.h
similarity index 100%
rename from Demo/Common/include/comtest.h
rename to FreeRTOS/Demo/Common/include/comtest.h
diff --git a/Demo/Common/include/comtest2.h b/FreeRTOS/Demo/Common/include/comtest2.h
similarity index 100%
rename from Demo/Common/include/comtest2.h
rename to FreeRTOS/Demo/Common/include/comtest2.h
diff --git a/Demo/Common/include/comtest_strings.h b/FreeRTOS/Demo/Common/include/comtest_strings.h
similarity index 100%
rename from Demo/Common/include/comtest_strings.h
rename to FreeRTOS/Demo/Common/include/comtest_strings.h
diff --git a/Demo/Common/include/countsem.h b/FreeRTOS/Demo/Common/include/countsem.h
similarity index 100%
rename from Demo/Common/include/countsem.h
rename to FreeRTOS/Demo/Common/include/countsem.h
diff --git a/Demo/Common/include/crflash.h b/FreeRTOS/Demo/Common/include/crflash.h
similarity index 100%
rename from Demo/Common/include/crflash.h
rename to FreeRTOS/Demo/Common/include/crflash.h
diff --git a/Demo/Common/include/crhook.h b/FreeRTOS/Demo/Common/include/crhook.h
similarity index 100%
rename from Demo/Common/include/crhook.h
rename to FreeRTOS/Demo/Common/include/crhook.h
diff --git a/Demo/Common/include/death.h b/FreeRTOS/Demo/Common/include/death.h
similarity index 100%
rename from Demo/Common/include/death.h
rename to FreeRTOS/Demo/Common/include/death.h
diff --git a/Demo/Common/include/dynamic.h b/FreeRTOS/Demo/Common/include/dynamic.h
similarity index 100%
rename from Demo/Common/include/dynamic.h
rename to FreeRTOS/Demo/Common/include/dynamic.h
diff --git a/Demo/Common/include/fileIO.h b/FreeRTOS/Demo/Common/include/fileIO.h
similarity index 100%
rename from Demo/Common/include/fileIO.h
rename to FreeRTOS/Demo/Common/include/fileIO.h
diff --git a/Demo/Common/include/flash.h b/FreeRTOS/Demo/Common/include/flash.h
similarity index 100%
rename from Demo/Common/include/flash.h
rename to FreeRTOS/Demo/Common/include/flash.h
diff --git a/Demo/Common/include/flash_timer.h b/FreeRTOS/Demo/Common/include/flash_timer.h
similarity index 100%
rename from Demo/Common/include/flash_timer.h
rename to FreeRTOS/Demo/Common/include/flash_timer.h
diff --git a/Demo/Common/include/flop.h b/FreeRTOS/Demo/Common/include/flop.h
similarity index 100%
rename from Demo/Common/include/flop.h
rename to FreeRTOS/Demo/Common/include/flop.h
diff --git a/Demo/Common/include/integer.h b/FreeRTOS/Demo/Common/include/integer.h
similarity index 100%
rename from Demo/Common/include/integer.h
rename to FreeRTOS/Demo/Common/include/integer.h
diff --git a/Demo/Common/include/mevents.h b/FreeRTOS/Demo/Common/include/mevents.h
similarity index 100%
rename from Demo/Common/include/mevents.h
rename to FreeRTOS/Demo/Common/include/mevents.h
diff --git a/Demo/Common/include/partest.h b/FreeRTOS/Demo/Common/include/partest.h
similarity index 100%
rename from Demo/Common/include/partest.h
rename to FreeRTOS/Demo/Common/include/partest.h
diff --git a/Demo/Common/include/print.h b/FreeRTOS/Demo/Common/include/print.h
similarity index 100%
rename from Demo/Common/include/print.h
rename to FreeRTOS/Demo/Common/include/print.h
diff --git a/Demo/Common/include/recmutex.h b/FreeRTOS/Demo/Common/include/recmutex.h
similarity index 100%
rename from Demo/Common/include/recmutex.h
rename to FreeRTOS/Demo/Common/include/recmutex.h
diff --git a/Demo/Common/include/semtest.h b/FreeRTOS/Demo/Common/include/semtest.h
similarity index 100%
rename from Demo/Common/include/semtest.h
rename to FreeRTOS/Demo/Common/include/semtest.h
diff --git a/Demo/Common/include/serial.h b/FreeRTOS/Demo/Common/include/serial.h
similarity index 100%
rename from Demo/Common/include/serial.h
rename to FreeRTOS/Demo/Common/include/serial.h
diff --git a/Demo/Cygnal/FreeRTOSConfig.h b/FreeRTOS/Demo/Cygnal/FreeRTOSConfig.h
similarity index 100%
rename from Demo/Cygnal/FreeRTOSConfig.h
rename to FreeRTOS/Demo/Cygnal/FreeRTOSConfig.h
diff --git a/Demo/Cygnal/Makefile b/FreeRTOS/Demo/Cygnal/Makefile
similarity index 100%
rename from Demo/Cygnal/Makefile
rename to FreeRTOS/Demo/Cygnal/Makefile
diff --git a/Demo/Cygnal/ParTest/ParTest.c b/FreeRTOS/Demo/Cygnal/ParTest/ParTest.c
similarity index 100%
rename from Demo/Cygnal/ParTest/ParTest.c
rename to FreeRTOS/Demo/Cygnal/ParTest/ParTest.c
diff --git a/Demo/Cygnal/c8051f120.h b/FreeRTOS/Demo/Cygnal/c8051f120.h
similarity index 100%
rename from Demo/Cygnal/c8051f120.h
rename to FreeRTOS/Demo/Cygnal/c8051f120.h
diff --git a/Demo/Cygnal/main.c b/FreeRTOS/Demo/Cygnal/main.c
similarity index 100%
rename from Demo/Cygnal/main.c
rename to FreeRTOS/Demo/Cygnal/main.c
diff --git a/Demo/Cygnal/sdcc.wsp b/FreeRTOS/Demo/Cygnal/sdcc.wsp
similarity index 100%
rename from Demo/Cygnal/sdcc.wsp
rename to FreeRTOS/Demo/Cygnal/sdcc.wsp
diff --git a/Demo/Cygnal/serial/serial.c b/FreeRTOS/Demo/Cygnal/serial/serial.c
similarity index 100%
rename from Demo/Cygnal/serial/serial.c
rename to FreeRTOS/Demo/Cygnal/serial/serial.c
diff --git a/Demo/Flshlite/FRConfig.h b/FreeRTOS/Demo/Flshlite/FRConfig.h
similarity index 100%
rename from Demo/Flshlite/FRConfig.h
rename to FreeRTOS/Demo/Flshlite/FRConfig.h
diff --git a/Demo/Flshlite/FileIO/fileIO.c b/FreeRTOS/Demo/Flshlite/FileIO/fileIO.c
similarity index 100%
rename from Demo/Flshlite/FileIO/fileIO.c
rename to FreeRTOS/Demo/Flshlite/FileIO/fileIO.c
diff --git a/Demo/Flshlite/FreeRTOSConfig.h b/FreeRTOS/Demo/Flshlite/FreeRTOSConfig.h
similarity index 100%
rename from Demo/Flshlite/FreeRTOSConfig.h
rename to FreeRTOS/Demo/Flshlite/FreeRTOSConfig.h
diff --git a/Demo/Flshlite/ParTest/ParTest.c b/FreeRTOS/Demo/Flshlite/ParTest/ParTest.c
similarity index 100%
rename from Demo/Flshlite/ParTest/ParTest.c
rename to FreeRTOS/Demo/Flshlite/ParTest/ParTest.c
diff --git a/Demo/Flshlite/RTOSDEMO.IDE b/FreeRTOS/Demo/Flshlite/RTOSDEMO.IDE
similarity index 100%
rename from Demo/Flshlite/RTOSDEMO.IDE
rename to FreeRTOS/Demo/Flshlite/RTOSDEMO.IDE
diff --git a/Demo/Flshlite/main.c b/FreeRTOS/Demo/Flshlite/main.c
similarity index 100%
rename from Demo/Flshlite/main.c
rename to FreeRTOS/Demo/Flshlite/main.c
diff --git a/Demo/Flshlite/rtosdemo.DSW b/FreeRTOS/Demo/Flshlite/rtosdemo.DSW
similarity index 100%
rename from Demo/Flshlite/rtosdemo.DSW
rename to FreeRTOS/Demo/Flshlite/rtosdemo.DSW
diff --git a/Demo/Flshlite/rtosdemo.lk1 b/FreeRTOS/Demo/Flshlite/rtosdemo.lk1
similarity index 100%
rename from Demo/Flshlite/rtosdemo.lk1
rename to FreeRTOS/Demo/Flshlite/rtosdemo.lk1
diff --git a/Demo/Flshlite/rtosdemo.mk b/FreeRTOS/Demo/Flshlite/rtosdemo.mk
similarity index 100%
rename from Demo/Flshlite/rtosdemo.mk
rename to FreeRTOS/Demo/Flshlite/rtosdemo.mk
diff --git a/Demo/Flshlite/rtosdemo.mk1 b/FreeRTOS/Demo/Flshlite/rtosdemo.mk1
similarity index 100%
rename from Demo/Flshlite/rtosdemo.mk1
rename to FreeRTOS/Demo/Flshlite/rtosdemo.mk1
diff --git a/Demo/Flshlite/rtosdemo.tgt b/FreeRTOS/Demo/Flshlite/rtosdemo.tgt
similarity index 100%
rename from Demo/Flshlite/rtosdemo.tgt
rename to FreeRTOS/Demo/Flshlite/rtosdemo.tgt
diff --git a/Demo/Flshlite/rtosdemo.wpj b/FreeRTOS/Demo/Flshlite/rtosdemo.wpj
similarity index 100%
rename from Demo/Flshlite/rtosdemo.wpj
rename to FreeRTOS/Demo/Flshlite/rtosdemo.wpj
diff --git a/Demo/Flshlite/serial/serial.c b/FreeRTOS/Demo/Flshlite/serial/serial.c
similarity index 100%
rename from Demo/Flshlite/serial/serial.c
rename to FreeRTOS/Demo/Flshlite/serial/serial.c
diff --git a/Demo/H8S/RTOSDemo.hws b/FreeRTOS/Demo/H8S/RTOSDemo.hws
similarity index 100%
rename from Demo/H8S/RTOSDemo.hws
rename to FreeRTOS/Demo/H8S/RTOSDemo.hws
diff --git a/Demo/H8S/RTOSDemo.tws b/FreeRTOS/Demo/H8S/RTOSDemo.tws
similarity index 100%
rename from Demo/H8S/RTOSDemo.tws
rename to FreeRTOS/Demo/H8S/RTOSDemo.tws
diff --git a/Demo/H8S/RTOSDemo/2329S.h b/FreeRTOS/Demo/H8S/RTOSDemo/2329S.h
similarity index 100%
rename from Demo/H8S/RTOSDemo/2329S.h
rename to FreeRTOS/Demo/H8S/RTOSDemo/2329S.h
diff --git a/Demo/H8S/RTOSDemo/Debug/Debug.hdp b/FreeRTOS/Demo/H8S/RTOSDemo/Debug/Debug.hdp
similarity index 100%
rename from Demo/H8S/RTOSDemo/Debug/Debug.hdp
rename to FreeRTOS/Demo/H8S/RTOSDemo/Debug/Debug.hdp
diff --git a/Demo/H8S/RTOSDemo/Debug/RTOSDemo.x b/FreeRTOS/Demo/H8S/RTOSDemo/Debug/RTOSDemo.x
similarity index 100%
rename from Demo/H8S/RTOSDemo/Debug/RTOSDemo.x
rename to FreeRTOS/Demo/H8S/RTOSDemo/Debug/RTOSDemo.x
diff --git a/Demo/H8S/RTOSDemo/Debug/gnuconfig.ini b/FreeRTOS/Demo/H8S/RTOSDemo/Debug/gnuconfig.ini
similarity index 100%
rename from Demo/H8S/RTOSDemo/Debug/gnuconfig.ini
rename to FreeRTOS/Demo/H8S/RTOSDemo/Debug/gnuconfig.ini
diff --git a/Demo/H8S/RTOSDemo/FreeRTOSConfig.h b/FreeRTOS/Demo/H8S/RTOSDemo/FreeRTOSConfig.h
similarity index 100%
rename from Demo/H8S/RTOSDemo/FreeRTOSConfig.h
rename to FreeRTOS/Demo/H8S/RTOSDemo/FreeRTOSConfig.h
diff --git a/Demo/H8S/RTOSDemo/ParTest/ParTest.c b/FreeRTOS/Demo/H8S/RTOSDemo/ParTest/ParTest.c
similarity index 100%
rename from Demo/H8S/RTOSDemo/ParTest/ParTest.c
rename to FreeRTOS/Demo/H8S/RTOSDemo/ParTest/ParTest.c
diff --git a/Demo/H8S/RTOSDemo/RTOSDemo.hwp b/FreeRTOS/Demo/H8S/RTOSDemo/RTOSDemo.hwp
similarity index 100%
rename from Demo/H8S/RTOSDemo/RTOSDemo.hwp
rename to FreeRTOS/Demo/H8S/RTOSDemo/RTOSDemo.hwp
diff --git a/Demo/H8S/RTOSDemo/RTOSDemo.tps b/FreeRTOS/Demo/H8S/RTOSDemo/RTOSDemo.tps
similarity index 100%
rename from Demo/H8S/RTOSDemo/RTOSDemo.tps
rename to FreeRTOS/Demo/H8S/RTOSDemo/RTOSDemo.tps
diff --git a/Demo/H8S/RTOSDemo/Release session.hsf b/FreeRTOS/Demo/H8S/RTOSDemo/Release session.hsf
similarity index 100%
rename from Demo/H8S/RTOSDemo/Release session.hsf
rename to FreeRTOS/Demo/H8S/RTOSDemo/Release session.hsf
diff --git a/Demo/H8S/RTOSDemo/Release/gnuconfig.ini b/FreeRTOS/Demo/H8S/RTOSDemo/Release/gnuconfig.ini
similarity index 100%
rename from Demo/H8S/RTOSDemo/Release/gnuconfig.ini
rename to FreeRTOS/Demo/H8S/RTOSDemo/Release/gnuconfig.ini
diff --git a/Demo/H8S/RTOSDemo/Simulator sessions.hsf b/FreeRTOS/Demo/H8S/RTOSDemo/Simulator sessions.hsf
similarity index 100%
rename from Demo/H8S/RTOSDemo/Simulator sessions.hsf
rename to FreeRTOS/Demo/H8S/RTOSDemo/Simulator sessions.hsf
diff --git a/Demo/H8S/RTOSDemo/main.c b/FreeRTOS/Demo/H8S/RTOSDemo/main.c
similarity index 100%
rename from Demo/H8S/RTOSDemo/main.c
rename to FreeRTOS/Demo/H8S/RTOSDemo/main.c
diff --git a/Demo/H8S/RTOSDemo/serial/serial.c b/FreeRTOS/Demo/H8S/RTOSDemo/serial/serial.c
similarity index 100%
rename from Demo/H8S/RTOSDemo/serial/serial.c
rename to FreeRTOS/Demo/H8S/RTOSDemo/serial/serial.c
diff --git a/Demo/H8S/RTOSDemo/start.asm b/FreeRTOS/Demo/H8S/RTOSDemo/start.asm
similarity index 100%
rename from Demo/H8S/RTOSDemo/start.asm
rename to FreeRTOS/Demo/H8S/RTOSDemo/start.asm
diff --git a/Demo/H8S/RTOSDemo/vects.c b/FreeRTOS/Demo/H8S/RTOSDemo/vects.c
similarity index 100%
rename from Demo/H8S/RTOSDemo/vects.c
rename to FreeRTOS/Demo/H8S/RTOSDemo/vects.c
diff --git a/Demo/HCS12_CodeWarrior_banked/CODE/Byte1.C b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/Byte1.C
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/CODE/Byte1.C
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/Byte1.C
diff --git a/Demo/HCS12_CodeWarrior_banked/CODE/Byte1.H b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/Byte1.H
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/CODE/Byte1.H
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/Byte1.H
diff --git a/Demo/HCS12_CodeWarrior_banked/CODE/COM0.C b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/COM0.C
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/CODE/COM0.C
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/COM0.C
diff --git a/Demo/HCS12_CodeWarrior_banked/CODE/COM0.H b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/COM0.H
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/CODE/COM0.H
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/COM0.H
diff --git a/Demo/HCS12_CodeWarrior_banked/CODE/Copy of Vectors.c b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/Copy of Vectors.c
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/CODE/Copy of Vectors.c
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/Copy of Vectors.c
diff --git a/Demo/HCS12_CodeWarrior_banked/CODE/Cpu.C b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/Cpu.C
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/CODE/Cpu.C
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/Cpu.C
diff --git a/Demo/HCS12_CodeWarrior_banked/CODE/Cpu.H b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/Cpu.H
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/CODE/Cpu.H
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/Cpu.H
diff --git a/Demo/HCS12_CodeWarrior_banked/CODE/Events.C b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/Events.C
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/CODE/Events.C
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/Events.C
diff --git a/Demo/HCS12_CodeWarrior_banked/CODE/Events.H b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/Events.H
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/CODE/Events.H
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/Events.H
diff --git a/Demo/HCS12_CodeWarrior_banked/CODE/IO_Map.C b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/IO_Map.C
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/CODE/IO_Map.C
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/IO_Map.C
diff --git a/Demo/HCS12_CodeWarrior_banked/CODE/IO_Map.H b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/IO_Map.H
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/CODE/IO_Map.H
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/IO_Map.H
diff --git a/Demo/HCS12_CodeWarrior_banked/CODE/PESL.h b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/PESL.h
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/CODE/PESL.h
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/PESL.h
diff --git a/Demo/HCS12_CodeWarrior_banked/CODE/PE_Const.H b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/PE_Const.H
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/CODE/PE_Const.H
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/PE_Const.H
diff --git a/Demo/HCS12_CodeWarrior_banked/CODE/PE_Error.H b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/PE_Error.H
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/CODE/PE_Error.H
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/PE_Error.H
diff --git a/Demo/HCS12_CodeWarrior_banked/CODE/PE_Timer.C b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/PE_Timer.C
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/CODE/PE_Timer.C
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/PE_Timer.C
diff --git a/Demo/HCS12_CodeWarrior_banked/CODE/PE_Timer.H b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/PE_Timer.H
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/CODE/PE_Timer.H
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/PE_Timer.H
diff --git a/Demo/HCS12_CodeWarrior_banked/CODE/PE_Types.H b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/PE_Types.H
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/CODE/PE_Types.H
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/PE_Types.H
diff --git a/Demo/HCS12_CodeWarrior_banked/CODE/RTOSDemo.C b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/RTOSDemo.C
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/CODE/RTOSDemo.C
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/RTOSDemo.C
diff --git a/Demo/HCS12_CodeWarrior_banked/CODE/RTOSDemo.PRM b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/RTOSDemo.PRM
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/CODE/RTOSDemo.PRM
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/RTOSDemo.PRM
diff --git a/Demo/HCS12_CodeWarrior_banked/CODE/TickTimer.C b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/TickTimer.C
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/CODE/TickTimer.C
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/TickTimer.C
diff --git a/Demo/HCS12_CodeWarrior_banked/CODE/TickTimer.H b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/TickTimer.H
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/CODE/TickTimer.H
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/TickTimer.H
diff --git a/Demo/HCS12_CodeWarrior_banked/CODE/Vectors.c b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/Vectors.c
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/CODE/Vectors.c
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/Vectors.c
diff --git a/Demo/HCS12_CodeWarrior_banked/C_Layout.hwl b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/C_Layout.hwl
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/C_Layout.hwl
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/C_Layout.hwl
diff --git a/Demo/HCS12_CodeWarrior_banked/DOC/RTOSDemo.sig b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/DOC/RTOSDemo.sig
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/DOC/RTOSDemo.sig
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/DOC/RTOSDemo.sig
diff --git a/Demo/HCS12_CodeWarrior_banked/DOC/RTOSDemo.txt b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/DOC/RTOSDemo.txt
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/DOC/RTOSDemo.txt
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/DOC/RTOSDemo.txt
diff --git a/Demo/HCS12_CodeWarrior_banked/FreeRTOSConfig.h b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/FreeRTOSConfig.h
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/FreeRTOSConfig.h
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/FreeRTOSConfig.h
diff --git a/Demo/HCS12_CodeWarrior_banked/P&E_ICD.ini b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/P&E_ICD.ini
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/P&E_ICD.ini
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/P&E_ICD.ini
diff --git a/Demo/HCS12_CodeWarrior_banked/ParTest/ParTest.c b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/ParTest/ParTest.c
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/ParTest/ParTest.c
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/ParTest/ParTest.c
diff --git a/Demo/HCS12_CodeWarrior_banked/RTOSDemo.G_C b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/RTOSDemo.G_C
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/RTOSDemo.G_C
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/RTOSDemo.G_C
diff --git a/Demo/HCS12_CodeWarrior_banked/RTOSDemo.dsk b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/RTOSDemo.dsk
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/RTOSDemo.dsk
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/RTOSDemo.dsk
diff --git a/Demo/HCS12_CodeWarrior_banked/RTOSDemo.mcp b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/RTOSDemo.mcp
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/RTOSDemo.mcp
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/RTOSDemo.mcp
diff --git a/Demo/HCS12_CodeWarrior_banked/RTOSDemo.pe b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/RTOSDemo.pe
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/RTOSDemo.pe
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/RTOSDemo.pe
diff --git a/Demo/HCS12_CodeWarrior_banked/RTOSDemo_Data/CWSettingsWindows.stg b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/RTOSDemo_Data/CWSettingsWindows.stg
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/RTOSDemo_Data/CWSettingsWindows.stg
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/RTOSDemo_Data/CWSettingsWindows.stg
diff --git a/Demo/HCS12_CodeWarrior_banked/RTOSDemo_Data/P&E_ICD/TargetDataWindows.tdt b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/RTOSDemo_Data/P&E_ICD/TargetDataWindows.tdt
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/RTOSDemo_Data/P&E_ICD/TargetDataWindows.tdt
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/RTOSDemo_Data/P&E_ICD/TargetDataWindows.tdt
diff --git a/Demo/HCS12_CodeWarrior_banked/RTOSDemo_Data/Simulator/TargetDataWindows.tdt b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/RTOSDemo_Data/Simulator/TargetDataWindows.tdt
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/RTOSDemo_Data/Simulator/TargetDataWindows.tdt
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/RTOSDemo_Data/Simulator/TargetDataWindows.tdt
diff --git a/Demo/HCS12_CodeWarrior_banked/Simulator.ini b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/Simulator.ini
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/Simulator.ini
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/Simulator.ini
diff --git a/Demo/HCS12_CodeWarrior_banked/Sources/Start12.c b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/Sources/Start12.c
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/Sources/Start12.c
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/Sources/Start12.c
diff --git a/Demo/HCS12_CodeWarrior_banked/Sources/datapage.c b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/Sources/datapage.c
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/Sources/datapage.c
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/Sources/datapage.c
diff --git a/Demo/HCS12_CodeWarrior_banked/bin/P&E_ICD.map b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/bin/P&E_ICD.map
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/bin/P&E_ICD.map
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/bin/P&E_ICD.map
diff --git a/Demo/HCS12_CodeWarrior_banked/bin/Simulator.map b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/bin/Simulator.map
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/bin/Simulator.map
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/bin/Simulator.map
diff --git a/Demo/HCS12_CodeWarrior_banked/cmd/P&E_ICD_Erase_unsecure_hcs12.cmd b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/cmd/P&E_ICD_Erase_unsecure_hcs12.cmd
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/cmd/P&E_ICD_Erase_unsecure_hcs12.cmd
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/cmd/P&E_ICD_Erase_unsecure_hcs12.cmd
diff --git a/Demo/HCS12_CodeWarrior_banked/cmd/P&E_ICD_Postload.cmd b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/cmd/P&E_ICD_Postload.cmd
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/cmd/P&E_ICD_Postload.cmd
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/cmd/P&E_ICD_Postload.cmd
diff --git a/Demo/HCS12_CodeWarrior_banked/cmd/P&E_ICD_Preload.cmd b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/cmd/P&E_ICD_Preload.cmd
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/cmd/P&E_ICD_Preload.cmd
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/cmd/P&E_ICD_Preload.cmd
diff --git a/Demo/HCS12_CodeWarrior_banked/cmd/P&E_ICD_Reset.cmd b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/cmd/P&E_ICD_Reset.cmd
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/cmd/P&E_ICD_Reset.cmd
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/cmd/P&E_ICD_Reset.cmd
diff --git a/Demo/HCS12_CodeWarrior_banked/cmd/P&E_ICD_Startup.cmd b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/cmd/P&E_ICD_Startup.cmd
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/cmd/P&E_ICD_Startup.cmd
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/cmd/P&E_ICD_Startup.cmd
diff --git a/Demo/HCS12_CodeWarrior_banked/cmd/P&E_ICD_Vppoff.cmd b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/cmd/P&E_ICD_Vppoff.cmd
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/cmd/P&E_ICD_Vppoff.cmd
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/cmd/P&E_ICD_Vppoff.cmd
diff --git a/Demo/HCS12_CodeWarrior_banked/cmd/P&E_ICD_Vppon.cmd b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/cmd/P&E_ICD_Vppon.cmd
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/cmd/P&E_ICD_Vppon.cmd
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/cmd/P&E_ICD_Vppon.cmd
diff --git a/Demo/HCS12_CodeWarrior_banked/cmd/Simulator_Postload.cmd b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/cmd/Simulator_Postload.cmd
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/cmd/Simulator_Postload.cmd
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/cmd/Simulator_Postload.cmd
diff --git a/Demo/HCS12_CodeWarrior_banked/cmd/Simulator_Preload.cmd b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/cmd/Simulator_Preload.cmd
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/cmd/Simulator_Preload.cmd
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/cmd/Simulator_Preload.cmd
diff --git a/Demo/HCS12_CodeWarrior_banked/cmd/Simulator_Reset.cmd b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/cmd/Simulator_Reset.cmd
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/cmd/Simulator_Reset.cmd
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/cmd/Simulator_Reset.cmd
diff --git a/Demo/HCS12_CodeWarrior_banked/cmd/Simulator_SetCPU.cmd b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/cmd/Simulator_SetCPU.cmd
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/cmd/Simulator_SetCPU.cmd
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/cmd/Simulator_SetCPU.cmd
diff --git a/Demo/HCS12_CodeWarrior_banked/cmd/Simulator_Startup.cmd b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/cmd/Simulator_Startup.cmd
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/cmd/Simulator_Startup.cmd
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/cmd/Simulator_Startup.cmd
diff --git a/Demo/HCS12_CodeWarrior_banked/main.c b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/main.c
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/main.c
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/main.c
diff --git a/Demo/HCS12_CodeWarrior_banked/prm/burner.bbl b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/prm/burner.bbl
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/prm/burner.bbl
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/prm/burner.bbl
diff --git a/Demo/HCS12_CodeWarrior_banked/readme.txt b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/readme.txt
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/readme.txt
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/readme.txt
diff --git a/Demo/HCS12_CodeWarrior_banked/serial/serial.c b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/serial/serial.c
similarity index 100%
rename from Demo/HCS12_CodeWarrior_banked/serial/serial.c
rename to FreeRTOS/Demo/HCS12_CodeWarrior_banked/serial/serial.c
diff --git a/Demo/HCS12_CodeWarrior_small/CODE/ButtonInterrupt.C b/FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/ButtonInterrupt.C
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/CODE/ButtonInterrupt.C
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/ButtonInterrupt.C
diff --git a/Demo/HCS12_CodeWarrior_small/CODE/ButtonInterrupt.H b/FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/ButtonInterrupt.H
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/CODE/ButtonInterrupt.H
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/ButtonInterrupt.H
diff --git a/Demo/HCS12_CodeWarrior_small/CODE/Byte1.C b/FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/Byte1.C
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/CODE/Byte1.C
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/Byte1.C
diff --git a/Demo/HCS12_CodeWarrior_small/CODE/Byte1.H b/FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/Byte1.H
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/CODE/Byte1.H
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/Byte1.H
diff --git a/Demo/HCS12_CodeWarrior_small/CODE/Copy of Vectors.c b/FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/Copy of Vectors.c
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/CODE/Copy of Vectors.c
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/Copy of Vectors.c
diff --git a/Demo/HCS12_CodeWarrior_small/CODE/Cpu.C b/FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/Cpu.C
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/CODE/Cpu.C
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/Cpu.C
diff --git a/Demo/HCS12_CodeWarrior_small/CODE/Cpu.H b/FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/Cpu.H
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/CODE/Cpu.H
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/Cpu.H
diff --git a/Demo/HCS12_CodeWarrior_small/CODE/Events.C b/FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/Events.C
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/CODE/Events.C
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/Events.C
diff --git a/Demo/HCS12_CodeWarrior_small/CODE/Events.H b/FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/Events.H
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/CODE/Events.H
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/Events.H
diff --git a/Demo/HCS12_CodeWarrior_small/CODE/IO_Map.C b/FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/IO_Map.C
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/CODE/IO_Map.C
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/IO_Map.C
diff --git a/Demo/HCS12_CodeWarrior_small/CODE/IO_Map.H b/FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/IO_Map.H
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/CODE/IO_Map.H
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/IO_Map.H
diff --git a/Demo/HCS12_CodeWarrior_small/CODE/PESL.h b/FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/PESL.h
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/CODE/PESL.h
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/PESL.h
diff --git a/Demo/HCS12_CodeWarrior_small/CODE/PE_Const.H b/FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/PE_Const.H
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/CODE/PE_Const.H
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/PE_Const.H
diff --git a/Demo/HCS12_CodeWarrior_small/CODE/PE_Error.H b/FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/PE_Error.H
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/CODE/PE_Error.H
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/PE_Error.H
diff --git a/Demo/HCS12_CodeWarrior_small/CODE/PE_Timer.C b/FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/PE_Timer.C
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/CODE/PE_Timer.C
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/PE_Timer.C
diff --git a/Demo/HCS12_CodeWarrior_small/CODE/PE_Timer.H b/FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/PE_Timer.H
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/CODE/PE_Timer.H
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/PE_Timer.H
diff --git a/Demo/HCS12_CodeWarrior_small/CODE/PE_Types.H b/FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/PE_Types.H
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/CODE/PE_Types.H
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/PE_Types.H
diff --git a/Demo/HCS12_CodeWarrior_small/CODE/RTOSDemo.C b/FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/RTOSDemo.C
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/CODE/RTOSDemo.C
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/RTOSDemo.C
diff --git a/Demo/HCS12_CodeWarrior_small/CODE/RTOSDemo.PRM b/FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/RTOSDemo.PRM
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/CODE/RTOSDemo.PRM
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/RTOSDemo.PRM
diff --git a/Demo/HCS12_CodeWarrior_small/CODE/TickTimer.C b/FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/TickTimer.C
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/CODE/TickTimer.C
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/TickTimer.C
diff --git a/Demo/HCS12_CodeWarrior_small/CODE/TickTimer.H b/FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/TickTimer.H
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/CODE/TickTimer.H
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/TickTimer.H
diff --git a/Demo/HCS12_CodeWarrior_small/CODE/Vectors.c b/FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/Vectors.c
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/CODE/Vectors.c
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/CODE/Vectors.c
diff --git a/Demo/HCS12_CodeWarrior_small/C_Layout.hwl b/FreeRTOS/Demo/HCS12_CodeWarrior_small/C_Layout.hwl
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/C_Layout.hwl
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/C_Layout.hwl
diff --git a/Demo/HCS12_CodeWarrior_small/DOC/RTOSDemo.sig b/FreeRTOS/Demo/HCS12_CodeWarrior_small/DOC/RTOSDemo.sig
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/DOC/RTOSDemo.sig
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/DOC/RTOSDemo.sig
diff --git a/Demo/HCS12_CodeWarrior_small/DOC/RTOSDemo.txt b/FreeRTOS/Demo/HCS12_CodeWarrior_small/DOC/RTOSDemo.txt
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/DOC/RTOSDemo.txt
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/DOC/RTOSDemo.txt
diff --git a/Demo/HCS12_CodeWarrior_small/FreeRTOSConfig.h b/FreeRTOS/Demo/HCS12_CodeWarrior_small/FreeRTOSConfig.h
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/FreeRTOSConfig.h
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/FreeRTOSConfig.h
diff --git a/Demo/HCS12_CodeWarrior_small/ParTest/ParTest.c b/FreeRTOS/Demo/HCS12_CodeWarrior_small/ParTest/ParTest.c
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/ParTest/ParTest.c
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/ParTest/ParTest.c
diff --git a/Demo/HCS12_CodeWarrior_small/RTOSDemo.G_C b/FreeRTOS/Demo/HCS12_CodeWarrior_small/RTOSDemo.G_C
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/RTOSDemo.G_C
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/RTOSDemo.G_C
diff --git a/Demo/HCS12_CodeWarrior_small/RTOSDemo.dsk b/FreeRTOS/Demo/HCS12_CodeWarrior_small/RTOSDemo.dsk
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/RTOSDemo.dsk
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/RTOSDemo.dsk
diff --git a/Demo/HCS12_CodeWarrior_small/RTOSDemo.mcp b/FreeRTOS/Demo/HCS12_CodeWarrior_small/RTOSDemo.mcp
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/RTOSDemo.mcp
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/RTOSDemo.mcp
diff --git a/Demo/HCS12_CodeWarrior_small/RTOSDemo.pe b/FreeRTOS/Demo/HCS12_CodeWarrior_small/RTOSDemo.pe
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/RTOSDemo.pe
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/RTOSDemo.pe
diff --git a/Demo/HCS12_CodeWarrior_small/RTOSDemo_Data/CWSettingsWindows.stg b/FreeRTOS/Demo/HCS12_CodeWarrior_small/RTOSDemo_Data/CWSettingsWindows.stg
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/RTOSDemo_Data/CWSettingsWindows.stg
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/RTOSDemo_Data/CWSettingsWindows.stg
diff --git a/Demo/HCS12_CodeWarrior_small/RTOSDemo_Data/Simulator/TargetDataWindows.tdt b/FreeRTOS/Demo/HCS12_CodeWarrior_small/RTOSDemo_Data/Simulator/TargetDataWindows.tdt
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/RTOSDemo_Data/Simulator/TargetDataWindows.tdt
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/RTOSDemo_Data/Simulator/TargetDataWindows.tdt
diff --git a/Demo/HCS12_CodeWarrior_small/RTOSDemo_Data/SofTec/TargetDataWindows.tdt b/FreeRTOS/Demo/HCS12_CodeWarrior_small/RTOSDemo_Data/SofTec/TargetDataWindows.tdt
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/RTOSDemo_Data/SofTec/TargetDataWindows.tdt
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/RTOSDemo_Data/SofTec/TargetDataWindows.tdt
diff --git a/Demo/HCS12_CodeWarrior_small/Simulator.ini b/FreeRTOS/Demo/HCS12_CodeWarrior_small/Simulator.ini
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/Simulator.ini
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/Simulator.ini
diff --git a/Demo/HCS12_CodeWarrior_small/SofTec.ini b/FreeRTOS/Demo/HCS12_CodeWarrior_small/SofTec.ini
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/SofTec.ini
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/SofTec.ini
diff --git a/Demo/HCS12_CodeWarrior_small/Sources/Start12.c b/FreeRTOS/Demo/HCS12_CodeWarrior_small/Sources/Start12.c
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/Sources/Start12.c
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/Sources/Start12.c
diff --git a/Demo/HCS12_CodeWarrior_small/Sources/datapage.c b/FreeRTOS/Demo/HCS12_CodeWarrior_small/Sources/datapage.c
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/Sources/datapage.c
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/Sources/datapage.c
diff --git a/Demo/HCS12_CodeWarrior_small/bin/Simulator.map b/FreeRTOS/Demo/HCS12_CodeWarrior_small/bin/Simulator.map
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/bin/Simulator.map
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/bin/Simulator.map
diff --git a/Demo/HCS12_CodeWarrior_small/bin/SofTec.map b/FreeRTOS/Demo/HCS12_CodeWarrior_small/bin/SofTec.map
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/bin/SofTec.map
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/bin/SofTec.map
diff --git a/Demo/HCS12_CodeWarrior_small/cmd/Simulator_Postload.cmd b/FreeRTOS/Demo/HCS12_CodeWarrior_small/cmd/Simulator_Postload.cmd
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/cmd/Simulator_Postload.cmd
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/cmd/Simulator_Postload.cmd
diff --git a/Demo/HCS12_CodeWarrior_small/cmd/Simulator_Preload.cmd b/FreeRTOS/Demo/HCS12_CodeWarrior_small/cmd/Simulator_Preload.cmd
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/cmd/Simulator_Preload.cmd
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/cmd/Simulator_Preload.cmd
diff --git a/Demo/HCS12_CodeWarrior_small/cmd/Simulator_Reset.cmd b/FreeRTOS/Demo/HCS12_CodeWarrior_small/cmd/Simulator_Reset.cmd
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/cmd/Simulator_Reset.cmd
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/cmd/Simulator_Reset.cmd
diff --git a/Demo/HCS12_CodeWarrior_small/cmd/Simulator_SetCPU.cmd b/FreeRTOS/Demo/HCS12_CodeWarrior_small/cmd/Simulator_SetCPU.cmd
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/cmd/Simulator_SetCPU.cmd
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/cmd/Simulator_SetCPU.cmd
diff --git a/Demo/HCS12_CodeWarrior_small/cmd/Simulator_Startup.cmd b/FreeRTOS/Demo/HCS12_CodeWarrior_small/cmd/Simulator_Startup.cmd
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/cmd/Simulator_Startup.cmd
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/cmd/Simulator_Startup.cmd
diff --git a/Demo/HCS12_CodeWarrior_small/cmd/SofTec_Postload.cmd b/FreeRTOS/Demo/HCS12_CodeWarrior_small/cmd/SofTec_Postload.cmd
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/cmd/SofTec_Postload.cmd
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/cmd/SofTec_Postload.cmd
diff --git a/Demo/HCS12_CodeWarrior_small/cmd/SofTec_Preload.cmd b/FreeRTOS/Demo/HCS12_CodeWarrior_small/cmd/SofTec_Preload.cmd
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/cmd/SofTec_Preload.cmd
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/cmd/SofTec_Preload.cmd
diff --git a/Demo/HCS12_CodeWarrior_small/cmd/SofTec_Reset.cmd b/FreeRTOS/Demo/HCS12_CodeWarrior_small/cmd/SofTec_Reset.cmd
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/cmd/SofTec_Reset.cmd
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/cmd/SofTec_Reset.cmd
diff --git a/Demo/HCS12_CodeWarrior_small/cmd/SofTec_Startup.cmd b/FreeRTOS/Demo/HCS12_CodeWarrior_small/cmd/SofTec_Startup.cmd
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/cmd/SofTec_Startup.cmd
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/cmd/SofTec_Startup.cmd
diff --git a/Demo/HCS12_CodeWarrior_small/main.c b/FreeRTOS/Demo/HCS12_CodeWarrior_small/main.c
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/main.c
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/main.c
diff --git a/Demo/HCS12_CodeWarrior_small/prm/burner.bbl b/FreeRTOS/Demo/HCS12_CodeWarrior_small/prm/burner.bbl
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/prm/burner.bbl
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/prm/burner.bbl
diff --git a/Demo/HCS12_CodeWarrior_small/readme.txt b/FreeRTOS/Demo/HCS12_CodeWarrior_small/readme.txt
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/readme.txt
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/readme.txt
diff --git a/Demo/HCS12_CodeWarrior_small/serial/serial.c b/FreeRTOS/Demo/HCS12_CodeWarrior_small/serial/serial.c
similarity index 100%
rename from Demo/HCS12_CodeWarrior_small/serial/serial.c
rename to FreeRTOS/Demo/HCS12_CodeWarrior_small/serial/serial.c
diff --git a/Demo/HCS12_GCC_banked/FreeRTOSConfig.h b/FreeRTOS/Demo/HCS12_GCC_banked/FreeRTOSConfig.h
similarity index 100%
rename from Demo/HCS12_GCC_banked/FreeRTOSConfig.h
rename to FreeRTOS/Demo/HCS12_GCC_banked/FreeRTOSConfig.h
diff --git a/Demo/HCS12_GCC_banked/Makefile b/FreeRTOS/Demo/HCS12_GCC_banked/Makefile
similarity index 100%
rename from Demo/HCS12_GCC_banked/Makefile
rename to FreeRTOS/Demo/HCS12_GCC_banked/Makefile
diff --git a/Demo/HCS12_GCC_banked/PE_Error.h b/FreeRTOS/Demo/HCS12_GCC_banked/PE_Error.h
similarity index 100%
rename from Demo/HCS12_GCC_banked/PE_Error.h
rename to FreeRTOS/Demo/HCS12_GCC_banked/PE_Error.h
diff --git a/Demo/HCS12_GCC_banked/ParTest.c b/FreeRTOS/Demo/HCS12_GCC_banked/ParTest.c
similarity index 100%
rename from Demo/HCS12_GCC_banked/ParTest.c
rename to FreeRTOS/Demo/HCS12_GCC_banked/ParTest.c
diff --git a/Demo/HCS12_GCC_banked/README.txt b/FreeRTOS/Demo/HCS12_GCC_banked/README.txt
similarity index 100%
rename from Demo/HCS12_GCC_banked/README.txt
rename to FreeRTOS/Demo/HCS12_GCC_banked/README.txt
diff --git a/Demo/HCS12_GCC_banked/asm-m68hcs12/arch-dragon12/arch/exit.h b/FreeRTOS/Demo/HCS12_GCC_banked/asm-m68hcs12/arch-dragon12/arch/exit.h
similarity index 100%
rename from Demo/HCS12_GCC_banked/asm-m68hcs12/arch-dragon12/arch/exit.h
rename to FreeRTOS/Demo/HCS12_GCC_banked/asm-m68hcs12/arch-dragon12/arch/exit.h
diff --git a/Demo/HCS12_GCC_banked/asm-m68hcs12/arch-dragon12/arch/interrupts.h b/FreeRTOS/Demo/HCS12_GCC_banked/asm-m68hcs12/arch-dragon12/arch/interrupts.h
similarity index 100%
rename from Demo/HCS12_GCC_banked/asm-m68hcs12/arch-dragon12/arch/interrupts.h
rename to FreeRTOS/Demo/HCS12_GCC_banked/asm-m68hcs12/arch-dragon12/arch/interrupts.h
diff --git a/Demo/HCS12_GCC_banked/asm-m68hcs12/arch-dragon12/arch/param.h b/FreeRTOS/Demo/HCS12_GCC_banked/asm-m68hcs12/arch-dragon12/arch/param.h
similarity index 100%
rename from Demo/HCS12_GCC_banked/asm-m68hcs12/arch-dragon12/arch/param.h
rename to FreeRTOS/Demo/HCS12_GCC_banked/asm-m68hcs12/arch-dragon12/arch/param.h
diff --git a/Demo/HCS12_GCC_banked/asm-m68hcs12/interrupts-dp256.h b/FreeRTOS/Demo/HCS12_GCC_banked/asm-m68hcs12/interrupts-dp256.h
similarity index 100%
rename from Demo/HCS12_GCC_banked/asm-m68hcs12/interrupts-dp256.h
rename to FreeRTOS/Demo/HCS12_GCC_banked/asm-m68hcs12/interrupts-dp256.h
diff --git a/Demo/HCS12_GCC_banked/asm-m68hcs12/interrupts.h b/FreeRTOS/Demo/HCS12_GCC_banked/asm-m68hcs12/interrupts.h
similarity index 100%
rename from Demo/HCS12_GCC_banked/asm-m68hcs12/interrupts.h
rename to FreeRTOS/Demo/HCS12_GCC_banked/asm-m68hcs12/interrupts.h
diff --git a/Demo/HCS12_GCC_banked/asm-m68hcs12/param.h b/FreeRTOS/Demo/HCS12_GCC_banked/asm-m68hcs12/param.h
similarity index 100%
rename from Demo/HCS12_GCC_banked/asm-m68hcs12/param.h
rename to FreeRTOS/Demo/HCS12_GCC_banked/asm-m68hcs12/param.h
diff --git a/Demo/HCS12_GCC_banked/asm-m68hcs12/ports.h b/FreeRTOS/Demo/HCS12_GCC_banked/asm-m68hcs12/ports.h
similarity index 100%
rename from Demo/HCS12_GCC_banked/asm-m68hcs12/ports.h
rename to FreeRTOS/Demo/HCS12_GCC_banked/asm-m68hcs12/ports.h
diff --git a/Demo/HCS12_GCC_banked/asm-m68hcs12/ports_def.h b/FreeRTOS/Demo/HCS12_GCC_banked/asm-m68hcs12/ports_def.h
similarity index 100%
rename from Demo/HCS12_GCC_banked/asm-m68hcs12/ports_def.h
rename to FreeRTOS/Demo/HCS12_GCC_banked/asm-m68hcs12/ports_def.h
diff --git a/Demo/HCS12_GCC_banked/asm-m68hcs12/sio.h b/FreeRTOS/Demo/HCS12_GCC_banked/asm-m68hcs12/sio.h
similarity index 100%
rename from Demo/HCS12_GCC_banked/asm-m68hcs12/sio.h
rename to FreeRTOS/Demo/HCS12_GCC_banked/asm-m68hcs12/sio.h
diff --git a/Demo/HCS12_GCC_banked/cpu.h b/FreeRTOS/Demo/HCS12_GCC_banked/cpu.h
similarity index 100%
rename from Demo/HCS12_GCC_banked/cpu.h
rename to FreeRTOS/Demo/HCS12_GCC_banked/cpu.h
diff --git a/Demo/HCS12_GCC_banked/gelfunc.c b/FreeRTOS/Demo/HCS12_GCC_banked/gelfunc.c
similarity index 100%
rename from Demo/HCS12_GCC_banked/gelfunc.c
rename to FreeRTOS/Demo/HCS12_GCC_banked/gelfunc.c
diff --git a/Demo/HCS12_GCC_banked/ldscript-rtos.x b/FreeRTOS/Demo/HCS12_GCC_banked/ldscript-rtos.x
similarity index 100%
rename from Demo/HCS12_GCC_banked/ldscript-rtos.x
rename to FreeRTOS/Demo/HCS12_GCC_banked/ldscript-rtos.x
diff --git a/Demo/HCS12_GCC_banked/main.c b/FreeRTOS/Demo/HCS12_GCC_banked/main.c
similarity index 100%
rename from Demo/HCS12_GCC_banked/main.c
rename to FreeRTOS/Demo/HCS12_GCC_banked/main.c
diff --git a/Demo/HCS12_GCC_banked/memory.x b/FreeRTOS/Demo/HCS12_GCC_banked/memory.x
similarity index 100%
rename from Demo/HCS12_GCC_banked/memory.x
rename to FreeRTOS/Demo/HCS12_GCC_banked/memory.x
diff --git a/Demo/HCS12_GCC_banked/sci.c b/FreeRTOS/Demo/HCS12_GCC_banked/sci.c
similarity index 100%
rename from Demo/HCS12_GCC_banked/sci.c
rename to FreeRTOS/Demo/HCS12_GCC_banked/sci.c
diff --git a/Demo/HCS12_GCC_banked/sci.h b/FreeRTOS/Demo/HCS12_GCC_banked/sci.h
similarity index 100%
rename from Demo/HCS12_GCC_banked/sci.h
rename to FreeRTOS/Demo/HCS12_GCC_banked/sci.h
diff --git a/Demo/HCS12_GCC_banked/serial.c b/FreeRTOS/Demo/HCS12_GCC_banked/serial.c
similarity index 100%
rename from Demo/HCS12_GCC_banked/serial.c
rename to FreeRTOS/Demo/HCS12_GCC_banked/serial.c
diff --git a/Demo/HCS12_GCC_banked/startup.c b/FreeRTOS/Demo/HCS12_GCC_banked/startup.c
similarity index 100%
rename from Demo/HCS12_GCC_banked/startup.c
rename to FreeRTOS/Demo/HCS12_GCC_banked/startup.c
diff --git a/Demo/HCS12_GCC_banked/sys/interrupts.h b/FreeRTOS/Demo/HCS12_GCC_banked/sys/interrupts.h
similarity index 100%
rename from Demo/HCS12_GCC_banked/sys/interrupts.h
rename to FreeRTOS/Demo/HCS12_GCC_banked/sys/interrupts.h
diff --git a/Demo/HCS12_GCC_banked/sys/param.h b/FreeRTOS/Demo/HCS12_GCC_banked/sys/param.h
similarity index 100%
rename from Demo/HCS12_GCC_banked/sys/param.h
rename to FreeRTOS/Demo/HCS12_GCC_banked/sys/param.h
diff --git a/Demo/HCS12_GCC_banked/sys/ports.h b/FreeRTOS/Demo/HCS12_GCC_banked/sys/ports.h
similarity index 100%
rename from Demo/HCS12_GCC_banked/sys/ports.h
rename to FreeRTOS/Demo/HCS12_GCC_banked/sys/ports.h
diff --git a/Demo/HCS12_GCC_banked/sys/ports_def.h b/FreeRTOS/Demo/HCS12_GCC_banked/sys/ports_def.h
similarity index 100%
rename from Demo/HCS12_GCC_banked/sys/ports_def.h
rename to FreeRTOS/Demo/HCS12_GCC_banked/sys/ports_def.h
diff --git a/Demo/HCS12_GCC_banked/sys/sio.h b/FreeRTOS/Demo/HCS12_GCC_banked/sys/sio.h
similarity index 100%
rename from Demo/HCS12_GCC_banked/sys/sio.h
rename to FreeRTOS/Demo/HCS12_GCC_banked/sys/sio.h
diff --git a/Demo/HCS12_GCC_banked/vectors.c b/FreeRTOS/Demo/HCS12_GCC_banked/vectors.c
similarity index 100%
rename from Demo/HCS12_GCC_banked/vectors.c
rename to FreeRTOS/Demo/HCS12_GCC_banked/vectors.c
diff --git a/Demo/MB91460_Softune/91460_template_91467d.dat b/FreeRTOS/Demo/MB91460_Softune/91460_template_91467d.dat
similarity index 100%
rename from Demo/MB91460_Softune/91460_template_91467d.dat
rename to FreeRTOS/Demo/MB91460_Softune/91460_template_91467d.dat
diff --git a/Demo/MB91460_Softune/91467d_FreeRTOS.prj b/FreeRTOS/Demo/MB91460_Softune/91467d_FreeRTOS.prj
similarity index 100%
rename from Demo/MB91460_Softune/91467d_FreeRTOS.prj
rename to FreeRTOS/Demo/MB91460_Softune/91467d_FreeRTOS.prj
diff --git a/Demo/MB91460_Softune/91467d_FreeRTOS.wsp b/FreeRTOS/Demo/MB91460_Softune/91467d_FreeRTOS.wsp
similarity index 100%
rename from Demo/MB91460_Softune/91467d_FreeRTOS.wsp
rename to FreeRTOS/Demo/MB91460_Softune/91467d_FreeRTOS.wsp
diff --git a/Demo/MB91460_Softune/PRC/set_MONITOR.prc b/FreeRTOS/Demo/MB91460_Softune/PRC/set_MONITOR.prc
similarity index 100%
rename from Demo/MB91460_Softune/PRC/set_MONITOR.prc
rename to FreeRTOS/Demo/MB91460_Softune/PRC/set_MONITOR.prc
diff --git a/Demo/MB91460_Softune/PRC/set_MONITOR_INTERNAL.prc b/FreeRTOS/Demo/MB91460_Softune/PRC/set_MONITOR_INTERNAL.prc
similarity index 100%
rename from Demo/MB91460_Softune/PRC/set_MONITOR_INTERNAL.prc
rename to FreeRTOS/Demo/MB91460_Softune/PRC/set_MONITOR_INTERNAL.prc
diff --git a/Demo/MB91460_Softune/PRC/set_RESET.prc b/FreeRTOS/Demo/MB91460_Softune/PRC/set_RESET.prc
similarity index 100%
rename from Demo/MB91460_Softune/PRC/set_RESET.prc
rename to FreeRTOS/Demo/MB91460_Softune/PRC/set_RESET.prc
diff --git a/Demo/MB91460_Softune/PRC/set_ROMS.prc b/FreeRTOS/Demo/MB91460_Softune/PRC/set_ROMS.prc
similarity index 100%
rename from Demo/MB91460_Softune/PRC/set_ROMS.prc
rename to FreeRTOS/Demo/MB91460_Softune/PRC/set_ROMS.prc
diff --git a/Demo/MB91460_Softune/PRC/set_SIMULATE.prc b/FreeRTOS/Demo/MB91460_Softune/PRC/set_SIMULATE.prc
similarity index 100%
rename from Demo/MB91460_Softune/PRC/set_SIMULATE.prc
rename to FreeRTOS/Demo/MB91460_Softune/PRC/set_SIMULATE.prc
diff --git a/Demo/MB91460_Softune/SRC/FreeRTOSConfig.h b/FreeRTOS/Demo/MB91460_Softune/SRC/FreeRTOSConfig.h
similarity index 100%
rename from Demo/MB91460_Softune/SRC/FreeRTOSConfig.h
rename to FreeRTOS/Demo/MB91460_Softune/SRC/FreeRTOSConfig.h
diff --git a/Demo/MB91460_Softune/SRC/Start91460.asm b/FreeRTOS/Demo/MB91460_Softune/SRC/Start91460.asm
similarity index 100%
rename from Demo/MB91460_Softune/SRC/Start91460.asm
rename to FreeRTOS/Demo/MB91460_Softune/SRC/Start91460.asm
diff --git a/Demo/MB91460_Softune/SRC/crflash_modified.c b/FreeRTOS/Demo/MB91460_Softune/SRC/crflash_modified.c
similarity index 100%
rename from Demo/MB91460_Softune/SRC/crflash_modified.c
rename to FreeRTOS/Demo/MB91460_Softune/SRC/crflash_modified.c
diff --git a/Demo/MB91460_Softune/SRC/main.c b/FreeRTOS/Demo/MB91460_Softune/SRC/main.c
similarity index 100%
rename from Demo/MB91460_Softune/SRC/main.c
rename to FreeRTOS/Demo/MB91460_Softune/SRC/main.c
diff --git a/Demo/MB91460_Softune/SRC/mb91467d.asm b/FreeRTOS/Demo/MB91460_Softune/SRC/mb91467d.asm
similarity index 100%
rename from Demo/MB91460_Softune/SRC/mb91467d.asm
rename to FreeRTOS/Demo/MB91460_Softune/SRC/mb91467d.asm
diff --git a/Demo/MB91460_Softune/SRC/mb91467d.h b/FreeRTOS/Demo/MB91460_Softune/SRC/mb91467d.h
similarity index 100%
rename from Demo/MB91460_Softune/SRC/mb91467d.h
rename to FreeRTOS/Demo/MB91460_Softune/SRC/mb91467d.h
diff --git a/Demo/MB91460_Softune/SRC/partest/partest.c b/FreeRTOS/Demo/MB91460_Softune/SRC/partest/partest.c
similarity index 100%
rename from Demo/MB91460_Softune/SRC/partest/partest.c
rename to FreeRTOS/Demo/MB91460_Softune/SRC/partest/partest.c
diff --git a/Demo/MB91460_Softune/SRC/serial/serial.c b/FreeRTOS/Demo/MB91460_Softune/SRC/serial/serial.c
similarity index 100%
rename from Demo/MB91460_Softune/SRC/serial/serial.c
rename to FreeRTOS/Demo/MB91460_Softune/SRC/serial/serial.c
diff --git a/Demo/MB91460_Softune/SRC/utility/printf-stdarg.c b/FreeRTOS/Demo/MB91460_Softune/SRC/utility/printf-stdarg.c
similarity index 100%
rename from Demo/MB91460_Softune/SRC/utility/printf-stdarg.c
rename to FreeRTOS/Demo/MB91460_Softune/SRC/utility/printf-stdarg.c
diff --git a/Demo/MB91460_Softune/SRC/utility/taskutility.c b/FreeRTOS/Demo/MB91460_Softune/SRC/utility/taskutility.c
similarity index 100%
rename from Demo/MB91460_Softune/SRC/utility/taskutility.c
rename to FreeRTOS/Demo/MB91460_Softune/SRC/utility/taskutility.c
diff --git a/Demo/MB91460_Softune/SRC/utility/taskutility.h b/FreeRTOS/Demo/MB91460_Softune/SRC/utility/taskutility.h
similarity index 100%
rename from Demo/MB91460_Softune/SRC/utility/taskutility.h
rename to FreeRTOS/Demo/MB91460_Softune/SRC/utility/taskutility.h
diff --git a/Demo/MB91460_Softune/SRC/vectors.c b/FreeRTOS/Demo/MB91460_Softune/SRC/vectors.c
similarity index 100%
rename from Demo/MB91460_Softune/SRC/vectors.c
rename to FreeRTOS/Demo/MB91460_Softune/SRC/vectors.c
diff --git a/Demo/MB91460_Softune/SRC/vectors.h b/FreeRTOS/Demo/MB91460_Softune/SRC/vectors.h
similarity index 100%
rename from Demo/MB91460_Softune/SRC/vectors.h
rename to FreeRTOS/Demo/MB91460_Softune/SRC/vectors.h
diff --git a/Demo/MB91460_Softune/SRC/watchdog/watchdog.c b/FreeRTOS/Demo/MB91460_Softune/SRC/watchdog/watchdog.c
similarity index 100%
rename from Demo/MB91460_Softune/SRC/watchdog/watchdog.c
rename to FreeRTOS/Demo/MB91460_Softune/SRC/watchdog/watchdog.c
diff --git a/Demo/MB91460_Softune/SRC/watchdog/watchdog.h b/FreeRTOS/Demo/MB91460_Softune/SRC/watchdog/watchdog.h
similarity index 100%
rename from Demo/MB91460_Softune/SRC/watchdog/watchdog.h
rename to FreeRTOS/Demo/MB91460_Softune/SRC/watchdog/watchdog.h
diff --git a/Demo/MB91460_Softune/STANDALONE/MB2198-01-COM1.sup b/FreeRTOS/Demo/MB91460_Softune/STANDALONE/MB2198-01-COM1.sup
similarity index 100%
rename from Demo/MB91460_Softune/STANDALONE/MB2198-01-COM1.sup
rename to FreeRTOS/Demo/MB91460_Softune/STANDALONE/MB2198-01-COM1.sup
diff --git a/Demo/MB91460_Softune/STANDALONE/MB2198-01-LAN.sup b/FreeRTOS/Demo/MB91460_Softune/STANDALONE/MB2198-01-LAN.sup
similarity index 100%
rename from Demo/MB91460_Softune/STANDALONE/MB2198-01-LAN.sup
rename to FreeRTOS/Demo/MB91460_Softune/STANDALONE/MB2198-01-LAN.sup
diff --git a/Demo/MB91460_Softune/STANDALONE/MB2198-01-USB.sup b/FreeRTOS/Demo/MB91460_Softune/STANDALONE/MB2198-01-USB.sup
similarity index 100%
rename from Demo/MB91460_Softune/STANDALONE/MB2198-01-USB.sup
rename to FreeRTOS/Demo/MB91460_Softune/STANDALONE/MB2198-01-USB.sup
diff --git a/Demo/MB91460_Softune/STANDALONE/Mondeb_57K6_com1.sup b/FreeRTOS/Demo/MB91460_Softune/STANDALONE/Mondeb_57K6_com1.sup
similarity index 100%
rename from Demo/MB91460_Softune/STANDALONE/Mondeb_57K6_com1.sup
rename to FreeRTOS/Demo/MB91460_Softune/STANDALONE/Mondeb_57K6_com1.sup
diff --git a/Demo/MB91460_Softune/STANDALONE/Mondeb_57K6_com2.sup b/FreeRTOS/Demo/MB91460_Softune/STANDALONE/Mondeb_57K6_com2.sup
similarity index 100%
rename from Demo/MB91460_Softune/STANDALONE/Mondeb_57K6_com2.sup
rename to FreeRTOS/Demo/MB91460_Softune/STANDALONE/Mondeb_57K6_com2.sup
diff --git a/Demo/MB91460_Softune/STANDALONE/Simulator.sup b/FreeRTOS/Demo/MB91460_Softune/STANDALONE/Simulator.sup
similarity index 100%
rename from Demo/MB91460_Softune/STANDALONE/Simulator.sup
rename to FreeRTOS/Demo/MB91460_Softune/STANDALONE/Simulator.sup
diff --git a/Demo/MB91460_Softune/readme.txt b/FreeRTOS/Demo/MB91460_Softune/readme.txt
similarity index 100%
rename from Demo/MB91460_Softune/readme.txt
rename to FreeRTOS/Demo/MB91460_Softune/readme.txt
diff --git a/Demo/MB96340_Softune/96340_FreeRTOS_96348hs.wsp b/FreeRTOS/Demo/MB96340_Softune/96340_FreeRTOS_96348hs.wsp
similarity index 100%
rename from Demo/MB96340_Softune/96340_FreeRTOS_96348hs.wsp
rename to FreeRTOS/Demo/MB96340_Softune/96340_FreeRTOS_96348hs.wsp
diff --git a/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/FreeRTOS_96348hs_SK16FX100PMC.prj b/FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/FreeRTOS_96348hs_SK16FX100PMC.prj
similarity index 100%
rename from Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/FreeRTOS_96348hs_SK16FX100PMC.prj
rename to FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/FreeRTOS_96348hs_SK16FX100PMC.prj
diff --git a/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Prc/romconst.prc b/FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Prc/romconst.prc
similarity index 100%
rename from Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Prc/romconst.prc
rename to FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Prc/romconst.prc
diff --git a/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/STANDALONE/OPT/FreeRTOS_96348hs_SK16FX100PMC.opa b/FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/STANDALONE/OPT/FreeRTOS_96348hs_SK16FX100PMC.opa
similarity index 100%
rename from Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/STANDALONE/OPT/FreeRTOS_96348hs_SK16FX100PMC.opa
rename to FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/STANDALONE/OPT/FreeRTOS_96348hs_SK16FX100PMC.opa
diff --git a/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/STANDALONE/OPT/FreeRTOS_96348hs_SK16FX100PMC.opb b/FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/STANDALONE/OPT/FreeRTOS_96348hs_SK16FX100PMC.opb
similarity index 100%
rename from Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/STANDALONE/OPT/FreeRTOS_96348hs_SK16FX100PMC.opb
rename to FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/STANDALONE/OPT/FreeRTOS_96348hs_SK16FX100PMC.opb
diff --git a/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/STANDALONE/OPT/FreeRTOS_96348hs_SK16FX100PMC.opc b/FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/STANDALONE/OPT/FreeRTOS_96348hs_SK16FX100PMC.opc
similarity index 100%
rename from Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/STANDALONE/OPT/FreeRTOS_96348hs_SK16FX100PMC.opc
rename to FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/STANDALONE/OPT/FreeRTOS_96348hs_SK16FX100PMC.opc
diff --git a/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/STANDALONE/OPT/FreeRTOS_96348hs_SK16FX100PMC.opl b/FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/STANDALONE/OPT/FreeRTOS_96348hs_SK16FX100PMC.opl
similarity index 100%
rename from Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/STANDALONE/OPT/FreeRTOS_96348hs_SK16FX100PMC.opl
rename to FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/STANDALONE/OPT/FreeRTOS_96348hs_SK16FX100PMC.opl
diff --git a/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/STANDALONE/OPT/FreeRTOS_96348hs_SK16FX100PMC.opv b/FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/STANDALONE/OPT/FreeRTOS_96348hs_SK16FX100PMC.opv
similarity index 100%
rename from Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/STANDALONE/OPT/FreeRTOS_96348hs_SK16FX100PMC.opv
rename to FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/STANDALONE/OPT/FreeRTOS_96348hs_SK16FX100PMC.opv
diff --git a/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Simulator.sup b/FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Simulator.sup
similarity index 100%
rename from Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Simulator.sup
rename to FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Simulator.sup
diff --git a/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/FreeRTOSConfig.h b/FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/FreeRTOSConfig.h
similarity index 100%
rename from Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/FreeRTOSConfig.h
rename to FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/FreeRTOSConfig.h
diff --git a/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/START.ASM b/FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/START.ASM
similarity index 100%
rename from Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/START.ASM
rename to FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/START.ASM
diff --git a/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/crflash_sk16fx100mpc.c b/FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/crflash_sk16fx100mpc.c
similarity index 100%
rename from Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/crflash_sk16fx100mpc.c
rename to FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/crflash_sk16fx100mpc.c
diff --git a/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/main.c b/FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/main.c
similarity index 100%
rename from Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/main.c
rename to FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/main.c
diff --git a/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/mb96348hs.asm b/FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/mb96348hs.asm
similarity index 100%
rename from Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/mb96348hs.asm
rename to FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/mb96348hs.asm
diff --git a/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/mb96348hs.h b/FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/mb96348hs.h
similarity index 100%
rename from Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/mb96348hs.h
rename to FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/mb96348hs.h
diff --git a/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/partest/partest.c b/FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/partest/partest.c
similarity index 100%
rename from Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/partest/partest.c
rename to FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/partest/partest.c
diff --git a/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/serial/serial.c b/FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/serial/serial.c
similarity index 100%
rename from Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/serial/serial.c
rename to FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/serial/serial.c
diff --git a/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/utility/printf_stdarg.c b/FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/utility/printf_stdarg.c
similarity index 100%
rename from Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/utility/printf_stdarg.c
rename to FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/utility/printf_stdarg.c
diff --git a/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/utility/taskutility.c b/FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/utility/taskutility.c
similarity index 100%
rename from Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/utility/taskutility.c
rename to FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/utility/taskutility.c
diff --git a/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/utility/taskutility.h b/FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/utility/taskutility.h
similarity index 100%
rename from Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/utility/taskutility.h
rename to FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/utility/taskutility.h
diff --git a/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/vectors.c b/FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/vectors.c
similarity index 100%
rename from Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/vectors.c
rename to FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/vectors.c
diff --git a/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/watchdog/watchdog.c b/FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/watchdog/watchdog.c
similarity index 100%
rename from Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/watchdog/watchdog.c
rename to FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/watchdog/watchdog.c
diff --git a/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/watchdog/watchdog.h b/FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/watchdog/watchdog.h
similarity index 100%
rename from Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/watchdog/watchdog.h
rename to FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/watchdog/watchdog.h
diff --git a/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/options.dat b/FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/options.dat
similarity index 100%
rename from Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/options.dat
rename to FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/options.dat
diff --git a/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/readme.txt b/FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/readme.txt
similarity index 100%
rename from Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/readme.txt
rename to FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/readme.txt
diff --git a/Demo/MB96350_Softune_Dice_Kit/DebugConfigs/MB2198-01_COM1.sup b/FreeRTOS/Demo/MB96350_Softune_Dice_Kit/DebugConfigs/MB2198-01_COM1.sup
similarity index 100%
rename from Demo/MB96350_Softune_Dice_Kit/DebugConfigs/MB2198-01_COM1.sup
rename to FreeRTOS/Demo/MB96350_Softune_Dice_Kit/DebugConfigs/MB2198-01_COM1.sup
diff --git a/Demo/MB96350_Softune_Dice_Kit/DebugConfigs/MB2198-01_COM2.sup b/FreeRTOS/Demo/MB96350_Softune_Dice_Kit/DebugConfigs/MB2198-01_COM2.sup
similarity index 100%
rename from Demo/MB96350_Softune_Dice_Kit/DebugConfigs/MB2198-01_COM2.sup
rename to FreeRTOS/Demo/MB96350_Softune_Dice_Kit/DebugConfigs/MB2198-01_COM2.sup
diff --git a/Demo/MB96350_Softune_Dice_Kit/DebugConfigs/MB2198-01_LAN.sup b/FreeRTOS/Demo/MB96350_Softune_Dice_Kit/DebugConfigs/MB2198-01_LAN.sup
similarity index 100%
rename from Demo/MB96350_Softune_Dice_Kit/DebugConfigs/MB2198-01_LAN.sup
rename to FreeRTOS/Demo/MB96350_Softune_Dice_Kit/DebugConfigs/MB2198-01_LAN.sup
diff --git a/Demo/MB96350_Softune_Dice_Kit/DebugConfigs/MB2198-01_USB.sup b/FreeRTOS/Demo/MB96350_Softune_Dice_Kit/DebugConfigs/MB2198-01_USB.sup
similarity index 100%
rename from Demo/MB96350_Softune_Dice_Kit/DebugConfigs/MB2198-01_USB.sup
rename to FreeRTOS/Demo/MB96350_Softune_Dice_Kit/DebugConfigs/MB2198-01_USB.sup
diff --git a/Demo/MB96350_Softune_Dice_Kit/DiceTask.c b/FreeRTOS/Demo/MB96350_Softune_Dice_Kit/DiceTask.c
similarity index 100%
rename from Demo/MB96350_Softune_Dice_Kit/DiceTask.c
rename to FreeRTOS/Demo/MB96350_Softune_Dice_Kit/DiceTask.c
diff --git a/Demo/MB96350_Softune_Dice_Kit/DiceTask.h b/FreeRTOS/Demo/MB96350_Softune_Dice_Kit/DiceTask.h
similarity index 100%
rename from Demo/MB96350_Softune_Dice_Kit/DiceTask.h
rename to FreeRTOS/Demo/MB96350_Softune_Dice_Kit/DiceTask.h
diff --git a/Demo/MB96350_Softune_Dice_Kit/FreeRTOSConfig.h b/FreeRTOS/Demo/MB96350_Softune_Dice_Kit/FreeRTOSConfig.h
similarity index 100%
rename from Demo/MB96350_Softune_Dice_Kit/FreeRTOSConfig.h
rename to FreeRTOS/Demo/MB96350_Softune_Dice_Kit/FreeRTOSConfig.h
diff --git a/Demo/MB96350_Softune_Dice_Kit/OPT/dicekit16fx_dice2-v10.opa b/FreeRTOS/Demo/MB96350_Softune_Dice_Kit/OPT/dicekit16fx_dice2-v10.opa
similarity index 100%
rename from Demo/MB96350_Softune_Dice_Kit/OPT/dicekit16fx_dice2-v10.opa
rename to FreeRTOS/Demo/MB96350_Softune_Dice_Kit/OPT/dicekit16fx_dice2-v10.opa
diff --git a/Demo/MB96350_Softune_Dice_Kit/OPT/dicekit16fx_dice2-v10.opb b/FreeRTOS/Demo/MB96350_Softune_Dice_Kit/OPT/dicekit16fx_dice2-v10.opb
similarity index 100%
rename from Demo/MB96350_Softune_Dice_Kit/OPT/dicekit16fx_dice2-v10.opb
rename to FreeRTOS/Demo/MB96350_Softune_Dice_Kit/OPT/dicekit16fx_dice2-v10.opb
diff --git a/Demo/MB96350_Softune_Dice_Kit/OPT/dicekit16fx_dice2-v10.opc b/FreeRTOS/Demo/MB96350_Softune_Dice_Kit/OPT/dicekit16fx_dice2-v10.opc
similarity index 100%
rename from Demo/MB96350_Softune_Dice_Kit/OPT/dicekit16fx_dice2-v10.opc
rename to FreeRTOS/Demo/MB96350_Softune_Dice_Kit/OPT/dicekit16fx_dice2-v10.opc
diff --git a/Demo/MB96350_Softune_Dice_Kit/OPT/dicekit16fx_dice2-v10.opl b/FreeRTOS/Demo/MB96350_Softune_Dice_Kit/OPT/dicekit16fx_dice2-v10.opl
similarity index 100%
rename from Demo/MB96350_Softune_Dice_Kit/OPT/dicekit16fx_dice2-v10.opl
rename to FreeRTOS/Demo/MB96350_Softune_Dice_Kit/OPT/dicekit16fx_dice2-v10.opl
diff --git a/Demo/MB96350_Softune_Dice_Kit/OPT/dicekit16fx_dice2-v10.opv b/FreeRTOS/Demo/MB96350_Softune_Dice_Kit/OPT/dicekit16fx_dice2-v10.opv
similarity index 100%
rename from Demo/MB96350_Softune_Dice_Kit/OPT/dicekit16fx_dice2-v10.opv
rename to FreeRTOS/Demo/MB96350_Softune_Dice_Kit/OPT/dicekit16fx_dice2-v10.opv
diff --git a/Demo/MB96350_Softune_Dice_Kit/ParTest/ParTest.c b/FreeRTOS/Demo/MB96350_Softune_Dice_Kit/ParTest/ParTest.c
similarity index 100%
rename from Demo/MB96350_Softune_Dice_Kit/ParTest/ParTest.c
rename to FreeRTOS/Demo/MB96350_Softune_Dice_Kit/ParTest/ParTest.c
diff --git a/Demo/MB96350_Softune_Dice_Kit/Prc/romconst.prc b/FreeRTOS/Demo/MB96350_Softune_Dice_Kit/Prc/romconst.prc
similarity index 100%
rename from Demo/MB96350_Softune_Dice_Kit/Prc/romconst.prc
rename to FreeRTOS/Demo/MB96350_Softune_Dice_Kit/Prc/romconst.prc
diff --git a/Demo/MB96350_Softune_Dice_Kit/START.ASM b/FreeRTOS/Demo/MB96350_Softune_Dice_Kit/START.ASM
similarity index 100%
rename from Demo/MB96350_Softune_Dice_Kit/START.ASM
rename to FreeRTOS/Demo/MB96350_Softune_Dice_Kit/START.ASM
diff --git a/Demo/MB96350_Softune_Dice_Kit/SegmentToggleTasks.c b/FreeRTOS/Demo/MB96350_Softune_Dice_Kit/SegmentToggleTasks.c
similarity index 100%
rename from Demo/MB96350_Softune_Dice_Kit/SegmentToggleTasks.c
rename to FreeRTOS/Demo/MB96350_Softune_Dice_Kit/SegmentToggleTasks.c
diff --git a/Demo/MB96350_Softune_Dice_Kit/Simulator.sup b/FreeRTOS/Demo/MB96350_Softune_Dice_Kit/Simulator.sup
similarity index 100%
rename from Demo/MB96350_Softune_Dice_Kit/Simulator.sup
rename to FreeRTOS/Demo/MB96350_Softune_Dice_Kit/Simulator.sup
diff --git a/Demo/MB96350_Softune_Dice_Kit/debug.cfg b/FreeRTOS/Demo/MB96350_Softune_Dice_Kit/debug.cfg
similarity index 100%
rename from Demo/MB96350_Softune_Dice_Kit/debug.cfg
rename to FreeRTOS/Demo/MB96350_Softune_Dice_Kit/debug.cfg
diff --git a/Demo/MB96350_Softune_Dice_Kit/dicekit16fx_dice2-v10.prj b/FreeRTOS/Demo/MB96350_Softune_Dice_Kit/dicekit16fx_dice2-v10.prj
similarity index 100%
rename from Demo/MB96350_Softune_Dice_Kit/dicekit16fx_dice2-v10.prj
rename to FreeRTOS/Demo/MB96350_Softune_Dice_Kit/dicekit16fx_dice2-v10.prj
diff --git a/Demo/MB96350_Softune_Dice_Kit/dicekit16fx_dice2-v10.wsp b/FreeRTOS/Demo/MB96350_Softune_Dice_Kit/dicekit16fx_dice2-v10.wsp
similarity index 100%
rename from Demo/MB96350_Softune_Dice_Kit/dicekit16fx_dice2-v10.wsp
rename to FreeRTOS/Demo/MB96350_Softune_Dice_Kit/dicekit16fx_dice2-v10.wsp
diff --git a/Demo/MB96350_Softune_Dice_Kit/main.c b/FreeRTOS/Demo/MB96350_Softune_Dice_Kit/main.c
similarity index 100%
rename from Demo/MB96350_Softune_Dice_Kit/main.c
rename to FreeRTOS/Demo/MB96350_Softune_Dice_Kit/main.c
diff --git a/Demo/MB96350_Softune_Dice_Kit/mb96356rs.asm b/FreeRTOS/Demo/MB96350_Softune_Dice_Kit/mb96356rs.asm
similarity index 100%
rename from Demo/MB96350_Softune_Dice_Kit/mb96356rs.asm
rename to FreeRTOS/Demo/MB96350_Softune_Dice_Kit/mb96356rs.asm
diff --git a/Demo/MB96350_Softune_Dice_Kit/mb96356rs.h b/FreeRTOS/Demo/MB96350_Softune_Dice_Kit/mb96356rs.h
similarity index 100%
rename from Demo/MB96350_Softune_Dice_Kit/mb96356rs.h
rename to FreeRTOS/Demo/MB96350_Softune_Dice_Kit/mb96356rs.h
diff --git a/Demo/MB96350_Softune_Dice_Kit/options.dat b/FreeRTOS/Demo/MB96350_Softune_Dice_Kit/options.dat
similarity index 100%
rename from Demo/MB96350_Softune_Dice_Kit/options.dat
rename to FreeRTOS/Demo/MB96350_Softune_Dice_Kit/options.dat
diff --git a/Demo/MB96350_Softune_Dice_Kit/readme.txt b/FreeRTOS/Demo/MB96350_Softune_Dice_Kit/readme.txt
similarity index 100%
rename from Demo/MB96350_Softune_Dice_Kit/readme.txt
rename to FreeRTOS/Demo/MB96350_Softune_Dice_Kit/readme.txt
diff --git a/Demo/MB96350_Softune_Dice_Kit/vectors.c b/FreeRTOS/Demo/MB96350_Softune_Dice_Kit/vectors.c
similarity index 100%
rename from Demo/MB96350_Softune_Dice_Kit/vectors.c
rename to FreeRTOS/Demo/MB96350_Softune_Dice_Kit/vectors.c
diff --git a/Demo/MCF5235_GCC/Changelog.txt b/FreeRTOS/Demo/MCF5235_GCC/Changelog.txt
similarity index 100%
rename from Demo/MCF5235_GCC/Changelog.txt
rename to FreeRTOS/Demo/MCF5235_GCC/Changelog.txt
diff --git a/Demo/MCF5235_GCC/FreeRTOSConfig.h b/FreeRTOS/Demo/MCF5235_GCC/FreeRTOSConfig.h
similarity index 100%
rename from Demo/MCF5235_GCC/FreeRTOSConfig.h
rename to FreeRTOS/Demo/MCF5235_GCC/FreeRTOSConfig.h
diff --git a/Demo/MCF5235_GCC/LICENSE_FREESCALE.TXT b/FreeRTOS/Demo/MCF5235_GCC/LICENSE_FREESCALE.TXT
similarity index 100%
rename from Demo/MCF5235_GCC/LICENSE_FREESCALE.TXT
rename to FreeRTOS/Demo/MCF5235_GCC/LICENSE_FREESCALE.TXT
diff --git a/Demo/MCF5235_GCC/Makefile b/FreeRTOS/Demo/MCF5235_GCC/Makefile
similarity index 100%
rename from Demo/MCF5235_GCC/Makefile
rename to FreeRTOS/Demo/MCF5235_GCC/Makefile
diff --git a/Demo/MCF5235_GCC/demo.c b/FreeRTOS/Demo/MCF5235_GCC/demo.c
similarity index 100%
rename from Demo/MCF5235_GCC/demo.c
rename to FreeRTOS/Demo/MCF5235_GCC/demo.c
diff --git a/Demo/MCF5235_GCC/include/arch/mcf523x.h b/FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x.h
similarity index 100%
rename from Demo/MCF5235_GCC/include/arch/mcf523x.h
rename to FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x.h
diff --git a/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_can.h b/FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_can.h
similarity index 100%
rename from Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_can.h
rename to FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_can.h
diff --git a/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_ccm.h b/FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_ccm.h
similarity index 100%
rename from Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_ccm.h
rename to FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_ccm.h
diff --git a/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_cs.h b/FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_cs.h
similarity index 100%
rename from Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_cs.h
rename to FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_cs.h
diff --git a/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_eport.h b/FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_eport.h
similarity index 100%
rename from Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_eport.h
rename to FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_eport.h
diff --git a/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_etpu.h b/FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_etpu.h
similarity index 100%
rename from Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_etpu.h
rename to FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_etpu.h
diff --git a/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_fec.h b/FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_fec.h
similarity index 100%
rename from Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_fec.h
rename to FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_fec.h
diff --git a/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_fmpll.h b/FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_fmpll.h
similarity index 100%
rename from Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_fmpll.h
rename to FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_fmpll.h
diff --git a/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_gpio.h b/FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_gpio.h
similarity index 100%
rename from Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_gpio.h
rename to FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_gpio.h
diff --git a/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_i2c.h b/FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_i2c.h
similarity index 100%
rename from Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_i2c.h
rename to FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_i2c.h
diff --git a/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_intc0.h b/FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_intc0.h
similarity index 100%
rename from Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_intc0.h
rename to FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_intc0.h
diff --git a/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_intc1.h b/FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_intc1.h
similarity index 100%
rename from Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_intc1.h
rename to FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_intc1.h
diff --git a/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_mdha.h b/FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_mdha.h
similarity index 100%
rename from Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_mdha.h
rename to FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_mdha.h
diff --git a/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_pit.h b/FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_pit.h
similarity index 100%
rename from Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_pit.h
rename to FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_pit.h
diff --git a/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_qspi.h b/FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_qspi.h
similarity index 100%
rename from Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_qspi.h
rename to FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_qspi.h
diff --git a/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_rcm.h b/FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_rcm.h
similarity index 100%
rename from Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_rcm.h
rename to FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_rcm.h
diff --git a/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_rng.h b/FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_rng.h
similarity index 100%
rename from Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_rng.h
rename to FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_rng.h
diff --git a/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_scm.h b/FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_scm.h
similarity index 100%
rename from Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_scm.h
rename to FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_scm.h
diff --git a/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_sdramc.h b/FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_sdramc.h
similarity index 100%
rename from Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_sdramc.h
rename to FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_sdramc.h
diff --git a/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_skha.h b/FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_skha.h
similarity index 100%
rename from Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_skha.h
rename to FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_skha.h
diff --git a/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_sram.h b/FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_sram.h
similarity index 100%
rename from Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_sram.h
rename to FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_sram.h
diff --git a/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_timer.h b/FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_timer.h
similarity index 100%
rename from Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_timer.h
rename to FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_timer.h
diff --git a/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_uart.h b/FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_uart.h
similarity index 100%
rename from Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_uart.h
rename to FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_uart.h
diff --git a/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_wtm.h b/FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_wtm.h
similarity index 100%
rename from Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_wtm.h
rename to FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf523x/mcf523x_wtm.h
diff --git a/Demo/MCF5235_GCC/include/arch/mcf5xxx.h b/FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf5xxx.h
similarity index 100%
rename from Demo/MCF5235_GCC/include/arch/mcf5xxx.h
rename to FreeRTOS/Demo/MCF5235_GCC/include/arch/mcf5xxx.h
diff --git a/Demo/MCF5235_GCC/m5235-ram.ld b/FreeRTOS/Demo/MCF5235_GCC/m5235-ram.ld
similarity index 100%
rename from Demo/MCF5235_GCC/m5235-ram.ld
rename to FreeRTOS/Demo/MCF5235_GCC/m5235-ram.ld
diff --git a/Demo/MCF5235_GCC/m5235-rom.ld b/FreeRTOS/Demo/MCF5235_GCC/m5235-rom.ld
similarity index 100%
rename from Demo/MCF5235_GCC/m5235-rom.ld
rename to FreeRTOS/Demo/MCF5235_GCC/m5235-rom.ld
diff --git a/Demo/MCF5235_GCC/m5235.gdb b/FreeRTOS/Demo/MCF5235_GCC/m5235.gdb
similarity index 100%
rename from Demo/MCF5235_GCC/m5235.gdb
rename to FreeRTOS/Demo/MCF5235_GCC/m5235.gdb
diff --git a/Demo/MCF5235_GCC/system/crt0.S b/FreeRTOS/Demo/MCF5235_GCC/system/crt0.S
similarity index 100%
rename from Demo/MCF5235_GCC/system/crt0.S
rename to FreeRTOS/Demo/MCF5235_GCC/system/crt0.S
diff --git a/Demo/MCF5235_GCC/system/init.c b/FreeRTOS/Demo/MCF5235_GCC/system/init.c
similarity index 100%
rename from Demo/MCF5235_GCC/system/init.c
rename to FreeRTOS/Demo/MCF5235_GCC/system/init.c
diff --git a/Demo/MCF5235_GCC/system/mcf5xxx.S b/FreeRTOS/Demo/MCF5235_GCC/system/mcf5xxx.S
similarity index 100%
rename from Demo/MCF5235_GCC/system/mcf5xxx.S
rename to FreeRTOS/Demo/MCF5235_GCC/system/mcf5xxx.S
diff --git a/Demo/MCF5235_GCC/system/newlib.c b/FreeRTOS/Demo/MCF5235_GCC/system/newlib.c
similarity index 100%
rename from Demo/MCF5235_GCC/system/newlib.c
rename to FreeRTOS/Demo/MCF5235_GCC/system/newlib.c
diff --git a/Demo/MCF5235_GCC/system/serial.c b/FreeRTOS/Demo/MCF5235_GCC/system/serial.c
similarity index 100%
rename from Demo/MCF5235_GCC/system/serial.c
rename to FreeRTOS/Demo/MCF5235_GCC/system/serial.c
diff --git a/Demo/MCF5235_GCC/system/vector.S b/FreeRTOS/Demo/MCF5235_GCC/system/vector.S
similarity index 100%
rename from Demo/MCF5235_GCC/system/vector.S
rename to FreeRTOS/Demo/MCF5235_GCC/system/vector.S
diff --git a/Demo/MSP430X_MSP430F5438_CCS/.ccsproject b/FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/.ccsproject
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_CCS/.ccsproject
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/.ccsproject
diff --git a/Demo/MSP430X_MSP430F5438_CCS/.cdtbuild b/FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/.cdtbuild
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_CCS/.cdtbuild
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/.cdtbuild
diff --git a/Demo/MSP430X_MSP430F5438_CCS/.cdtproject b/FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/.cdtproject
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_CCS/.cdtproject
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/.cdtproject
diff --git a/Demo/MSP430X_MSP430F5438_CCS/.cproject b/FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/.cproject
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_CCS/.cproject
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/.cproject
diff --git a/Demo/MSP430X_MSP430F5438_CCS/.project b/FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/.project
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_CCS/.project
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/.project
diff --git a/Demo/MSP430X_MSP430F5438_CCS/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/.settings/org.eclipse.cdt.managedbuilder.core.prefs
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_CCS/.settings/org.eclipse.cdt.managedbuilder.core.prefs
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/.settings/org.eclipse.cdt.managedbuilder.core.prefs
diff --git a/Demo/MSP430X_MSP430F5438_CCS/.settings/org.eclipse.ltk.core.refactoring.prefs b/FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_CCS/.settings/org.eclipse.ltk.core.refactoring.prefs
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/Demo/MSP430X_MSP430F5438_CCS/CreateProjectDirectoryStructure.bat b/FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/CreateProjectDirectoryStructure.bat
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_CCS/CreateProjectDirectoryStructure.bat
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/CreateProjectDirectoryStructure.bat
diff --git a/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/F5XX_6XX_Core_Lib/HAL_PMM.c b/FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/F5XX_6XX_Core_Lib/HAL_PMM.c
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_CCS/Demo_Source/F5XX_6XX_Core_Lib/HAL_PMM.c
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/F5XX_6XX_Core_Lib/HAL_PMM.c
diff --git a/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/F5XX_6XX_Core_Lib/HAL_PMM.h b/FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/F5XX_6XX_Core_Lib/HAL_PMM.h
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_CCS/Demo_Source/F5XX_6XX_Core_Lib/HAL_PMM.h
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/F5XX_6XX_Core_Lib/HAL_PMM.h
diff --git a/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/F5XX_6XX_Core_Lib/hal_UCS.c b/FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/F5XX_6XX_Core_Lib/hal_UCS.c
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_CCS/Demo_Source/F5XX_6XX_Core_Lib/hal_UCS.c
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/F5XX_6XX_Core_Lib/hal_UCS.c
diff --git a/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/F5XX_6XX_Core_Lib/hal_UCS.h b/FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/F5XX_6XX_Core_Lib/hal_UCS.h
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_CCS/Demo_Source/F5XX_6XX_Core_Lib/hal_UCS.h
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/F5XX_6XX_Core_Lib/hal_UCS.h
diff --git a/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/F5XX_6XX_Core_Lib/hal_macros.h b/FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/F5XX_6XX_Core_Lib/hal_macros.h
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_CCS/Demo_Source/F5XX_6XX_Core_Lib/hal_macros.h
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/F5XX_6XX_Core_Lib/hal_macros.h
diff --git a/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/FreeRTOSConfig.h b/FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/FreeRTOSConfig.h
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_CCS/Demo_Source/FreeRTOSConfig.h
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/FreeRTOSConfig.h
diff --git a/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_MSP-EXP430F5438.h b/FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_MSP-EXP430F5438.h
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_MSP-EXP430F5438.h
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_MSP-EXP430F5438.h
diff --git a/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_board.c b/FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_board.c
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_board.c
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_board.c
diff --git a/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_board.h b/FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_board.h
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_board.h
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_board.h
diff --git a/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_buttons.c b/FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_buttons.c
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_buttons.c
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_buttons.c
diff --git a/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_buttons.h b/FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_buttons.h
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_buttons.h
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_buttons.h
diff --git a/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_lcd.c b/FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_lcd.c
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_lcd.c
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_lcd.c
diff --git a/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_lcd.h b/FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_lcd.h
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_lcd.h
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_lcd.h
diff --git a/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_lcd_fonts.c b/FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_lcd_fonts.c
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_lcd_fonts.c
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_lcd_fonts.c
diff --git a/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_lcd_fonts.h b/FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_lcd_fonts.h
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_lcd_fonts.h
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/MSP-EXP430F5438_HAL/hal_lcd_fonts.h
diff --git a/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/ParTest.c b/FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/ParTest.c
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_CCS/Demo_Source/ParTest.c
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/ParTest.c
diff --git a/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/RegTest.asm b/FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/RegTest.asm
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_CCS/Demo_Source/RegTest.asm
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/RegTest.asm
diff --git a/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/RunTimeStatsConfig.c b/FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/RunTimeStatsConfig.c
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_CCS/Demo_Source/RunTimeStatsConfig.c
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/RunTimeStatsConfig.c
diff --git a/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/main.c b/FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/main.c
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_CCS/Demo_Source/main.c
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/main.c
diff --git a/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/printf-stdarg.c b/FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/printf-stdarg.c
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_CCS/Demo_Source/printf-stdarg.c
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/printf-stdarg.c
diff --git a/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/serial.c b/FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/serial.c
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_CCS/Demo_Source/serial.c
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/serial.c
diff --git a/Demo/MSP430X_MSP430F5438_CCS/MSP430F5438A.ccxml b/FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/MSP430F5438A.ccxml
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_CCS/MSP430F5438A.ccxml
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/MSP430F5438A.ccxml
diff --git a/Demo/MSP430X_MSP430F5438_CCS/READ_ME_FIRST.txt b/FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/READ_ME_FIRST.txt
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_CCS/READ_ME_FIRST.txt
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/READ_ME_FIRST.txt
diff --git a/Demo/MSP430X_MSP430F5438_CCS/lnk_msp430f5438a.cmd b/FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/lnk_msp430f5438a.cmd
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_CCS/lnk_msp430f5438a.cmd
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/lnk_msp430f5438a.cmd
diff --git a/Demo/MSP430X_MSP430F5438_IAR/F5XX_6XX_Core_Lib/HAL_PMM.c b/FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/F5XX_6XX_Core_Lib/HAL_PMM.c
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_IAR/F5XX_6XX_Core_Lib/HAL_PMM.c
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/F5XX_6XX_Core_Lib/HAL_PMM.c
diff --git a/Demo/MSP430X_MSP430F5438_IAR/F5XX_6XX_Core_Lib/HAL_PMM.h b/FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/F5XX_6XX_Core_Lib/HAL_PMM.h
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_IAR/F5XX_6XX_Core_Lib/HAL_PMM.h
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/F5XX_6XX_Core_Lib/HAL_PMM.h
diff --git a/Demo/MSP430X_MSP430F5438_IAR/F5XX_6XX_Core_Lib/hal_UCS.c b/FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/F5XX_6XX_Core_Lib/hal_UCS.c
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_IAR/F5XX_6XX_Core_Lib/hal_UCS.c
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/F5XX_6XX_Core_Lib/hal_UCS.c
diff --git a/Demo/MSP430X_MSP430F5438_IAR/F5XX_6XX_Core_Lib/hal_UCS.h b/FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/F5XX_6XX_Core_Lib/hal_UCS.h
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_IAR/F5XX_6XX_Core_Lib/hal_UCS.h
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/F5XX_6XX_Core_Lib/hal_UCS.h
diff --git a/Demo/MSP430X_MSP430F5438_IAR/F5XX_6XX_Core_Lib/hal_macros.h b/FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/F5XX_6XX_Core_Lib/hal_macros.h
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_IAR/F5XX_6XX_Core_Lib/hal_macros.h
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/F5XX_6XX_Core_Lib/hal_macros.h
diff --git a/Demo/MSP430X_MSP430F5438_IAR/FreeRTOSConfig.h b/FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/FreeRTOSConfig.h
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_IAR/FreeRTOSConfig.h
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/FreeRTOSConfig.h
diff --git a/Demo/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_MSP-EXP430F5438.h b/FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_MSP-EXP430F5438.h
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_MSP-EXP430F5438.h
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_MSP-EXP430F5438.h
diff --git a/Demo/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_board.c b/FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_board.c
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_board.c
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_board.c
diff --git a/Demo/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_board.h b/FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_board.h
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_board.h
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_board.h
diff --git a/Demo/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_buttons.c b/FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_buttons.c
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_buttons.c
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_buttons.c
diff --git a/Demo/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_buttons.h b/FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_buttons.h
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_buttons.h
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_buttons.h
diff --git a/Demo/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_lcd.c b/FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_lcd.c
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_lcd.c
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_lcd.c
diff --git a/Demo/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_lcd.h b/FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_lcd.h
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_lcd.h
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_lcd.h
diff --git a/Demo/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_lcd_fonts.c b/FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_lcd_fonts.c
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_lcd_fonts.c
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_lcd_fonts.c
diff --git a/Demo/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_lcd_fonts.h b/FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_lcd_fonts.h
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_lcd_fonts.h
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_lcd_fonts.h
diff --git a/Demo/MSP430X_MSP430F5438_IAR/ParTest.c b/FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/ParTest.c
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_IAR/ParTest.c
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/ParTest.c
diff --git a/Demo/MSP430X_MSP430F5438_IAR/RTOSDemo.ewd b/FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/RTOSDemo.ewd
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_IAR/RTOSDemo.ewd
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/RTOSDemo.ewd
diff --git a/Demo/MSP430X_MSP430F5438_IAR/RTOSDemo.ewp b/FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/RTOSDemo.ewp
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_IAR/RTOSDemo.ewp
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/RTOSDemo.ewp
diff --git a/Demo/MSP430X_MSP430F5438_IAR/RTOSDemo.eww b/FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/RTOSDemo.eww
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_IAR/RTOSDemo.eww
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/RTOSDemo.eww
diff --git a/Demo/MSP430X_MSP430F5438_IAR/RegTest.s43 b/FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/RegTest.s43
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_IAR/RegTest.s43
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/RegTest.s43
diff --git a/Demo/MSP430X_MSP430F5438_IAR/RunTimeStatsConfig.c b/FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/RunTimeStatsConfig.c
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_IAR/RunTimeStatsConfig.c
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/RunTimeStatsConfig.c
diff --git a/Demo/MSP430X_MSP430F5438_IAR/lnk430F5438A_mod.xcl b/FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/lnk430F5438A_mod.xcl
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_IAR/lnk430F5438A_mod.xcl
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/lnk430F5438A_mod.xcl
diff --git a/Demo/MSP430X_MSP430F5438_IAR/low_level_init.c b/FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/low_level_init.c
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_IAR/low_level_init.c
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/low_level_init.c
diff --git a/Demo/MSP430X_MSP430F5438_IAR/main.c b/FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/main.c
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_IAR/main.c
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/main.c
diff --git a/Demo/MSP430X_MSP430F5438_IAR/serial.c b/FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/serial.c
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_IAR/serial.c
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/serial.c
diff --git a/Demo/MSP430X_MSP430F5438_IAR/settings/RTOSDemo.dbgdt b/FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/settings/RTOSDemo.dbgdt
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_IAR/settings/RTOSDemo.dbgdt
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/settings/RTOSDemo.dbgdt
diff --git a/Demo/MSP430X_MSP430F5438_IAR/settings/RTOSDemo.dni b/FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/settings/RTOSDemo.dni
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_IAR/settings/RTOSDemo.dni
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/settings/RTOSDemo.dni
diff --git a/Demo/MSP430X_MSP430F5438_IAR/settings/RTOSDemo.wsdt b/FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/settings/RTOSDemo.wsdt
similarity index 100%
rename from Demo/MSP430X_MSP430F5438_IAR/settings/RTOSDemo.wsdt
rename to FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/settings/RTOSDemo.wsdt
diff --git a/Demo/MicroBlaze/FreeRTOSConfig.h b/FreeRTOS/Demo/MicroBlaze/FreeRTOSConfig.h
similarity index 100%
rename from Demo/MicroBlaze/FreeRTOSConfig.h
rename to FreeRTOS/Demo/MicroBlaze/FreeRTOSConfig.h
diff --git a/Demo/MicroBlaze/ParTest/ParTest.c b/FreeRTOS/Demo/MicroBlaze/ParTest/ParTest.c
similarity index 100%
rename from Demo/MicroBlaze/ParTest/ParTest.c
rename to FreeRTOS/Demo/MicroBlaze/ParTest/ParTest.c
diff --git a/Demo/MicroBlaze/__xps/bitinit.opt b/FreeRTOS/Demo/MicroBlaze/__xps/bitinit.opt
similarity index 100%
rename from Demo/MicroBlaze/__xps/bitinit.opt
rename to FreeRTOS/Demo/MicroBlaze/__xps/bitinit.opt
diff --git a/Demo/MicroBlaze/__xps/libgen.opt b/FreeRTOS/Demo/MicroBlaze/__xps/libgen.opt
similarity index 100%
rename from Demo/MicroBlaze/__xps/libgen.opt
rename to FreeRTOS/Demo/MicroBlaze/__xps/libgen.opt
diff --git a/Demo/MicroBlaze/__xps/platgen.opt b/FreeRTOS/Demo/MicroBlaze/__xps/platgen.opt
similarity index 100%
rename from Demo/MicroBlaze/__xps/platgen.opt
rename to FreeRTOS/Demo/MicroBlaze/__xps/platgen.opt
diff --git a/Demo/MicroBlaze/__xps/rtosdemo_compiler.opt b/FreeRTOS/Demo/MicroBlaze/__xps/rtosdemo_compiler.opt
similarity index 100%
rename from Demo/MicroBlaze/__xps/rtosdemo_compiler.opt
rename to FreeRTOS/Demo/MicroBlaze/__xps/rtosdemo_compiler.opt
diff --git a/Demo/MicroBlaze/__xps/simgen.opt b/FreeRTOS/Demo/MicroBlaze/__xps/simgen.opt
similarity index 100%
rename from Demo/MicroBlaze/__xps/simgen.opt
rename to FreeRTOS/Demo/MicroBlaze/__xps/simgen.opt
diff --git a/Demo/MicroBlaze/__xps/testapp_peripheral_compiler.opt b/FreeRTOS/Demo/MicroBlaze/__xps/testapp_peripheral_compiler.opt
similarity index 100%
rename from Demo/MicroBlaze/__xps/testapp_peripheral_compiler.opt
rename to FreeRTOS/Demo/MicroBlaze/__xps/testapp_peripheral_compiler.opt
diff --git a/Demo/MicroBlaze/__xps/vpgen.opt b/FreeRTOS/Demo/MicroBlaze/__xps/vpgen.opt
similarity index 100%
rename from Demo/MicroBlaze/__xps/vpgen.opt
rename to FreeRTOS/Demo/MicroBlaze/__xps/vpgen.opt
diff --git a/Demo/MicroBlaze/__xps/xpsxflow.opt b/FreeRTOS/Demo/MicroBlaze/__xps/xpsxflow.opt
similarity index 100%
rename from Demo/MicroBlaze/__xps/xpsxflow.opt
rename to FreeRTOS/Demo/MicroBlaze/__xps/xpsxflow.opt
diff --git a/Demo/MicroBlaze/_impact.cmd b/FreeRTOS/Demo/MicroBlaze/_impact.cmd
similarity index 100%
rename from Demo/MicroBlaze/_impact.cmd
rename to FreeRTOS/Demo/MicroBlaze/_impact.cmd
diff --git a/Demo/MicroBlaze/crt0.s b/FreeRTOS/Demo/MicroBlaze/crt0.s
similarity index 100%
rename from Demo/MicroBlaze/crt0.s
rename to FreeRTOS/Demo/MicroBlaze/crt0.s
diff --git a/Demo/MicroBlaze/data/system.ucf b/FreeRTOS/Demo/MicroBlaze/data/system.ucf
similarity index 100%
rename from Demo/MicroBlaze/data/system.ucf
rename to FreeRTOS/Demo/MicroBlaze/data/system.ucf
diff --git a/Demo/MicroBlaze/etc/bitgen.ut b/FreeRTOS/Demo/MicroBlaze/etc/bitgen.ut
similarity index 100%
rename from Demo/MicroBlaze/etc/bitgen.ut
rename to FreeRTOS/Demo/MicroBlaze/etc/bitgen.ut
diff --git a/Demo/MicroBlaze/etc/bitgen_spartan3.ut b/FreeRTOS/Demo/MicroBlaze/etc/bitgen_spartan3.ut
similarity index 100%
rename from Demo/MicroBlaze/etc/bitgen_spartan3.ut
rename to FreeRTOS/Demo/MicroBlaze/etc/bitgen_spartan3.ut
diff --git a/Demo/MicroBlaze/etc/download.cmd b/FreeRTOS/Demo/MicroBlaze/etc/download.cmd
similarity index 100%
rename from Demo/MicroBlaze/etc/download.cmd
rename to FreeRTOS/Demo/MicroBlaze/etc/download.cmd
diff --git a/Demo/MicroBlaze/etc/fast_runtime.opt b/FreeRTOS/Demo/MicroBlaze/etc/fast_runtime.opt
similarity index 100%
rename from Demo/MicroBlaze/etc/fast_runtime.opt
rename to FreeRTOS/Demo/MicroBlaze/etc/fast_runtime.opt
diff --git a/Demo/MicroBlaze/etc/xmd_microblaze_0.opt b/FreeRTOS/Demo/MicroBlaze/etc/xmd_microblaze_0.opt
similarity index 100%
rename from Demo/MicroBlaze/etc/xmd_microblaze_0.opt
rename to FreeRTOS/Demo/MicroBlaze/etc/xmd_microblaze_0.opt
diff --git a/Demo/MicroBlaze/main.c b/FreeRTOS/Demo/MicroBlaze/main.c
similarity index 100%
rename from Demo/MicroBlaze/main.c
rename to FreeRTOS/Demo/MicroBlaze/main.c
diff --git a/Demo/MicroBlaze/platgen.opt b/FreeRTOS/Demo/MicroBlaze/platgen.opt
similarity index 100%
rename from Demo/MicroBlaze/platgen.opt
rename to FreeRTOS/Demo/MicroBlaze/platgen.opt
diff --git a/Demo/MicroBlaze/serial/serial.c b/FreeRTOS/Demo/MicroBlaze/serial/serial.c
similarity index 100%
rename from Demo/MicroBlaze/serial/serial.c
rename to FreeRTOS/Demo/MicroBlaze/serial/serial.c
diff --git a/Demo/MicroBlaze/system.bsb b/FreeRTOS/Demo/MicroBlaze/system.bsb
similarity index 100%
rename from Demo/MicroBlaze/system.bsb
rename to FreeRTOS/Demo/MicroBlaze/system.bsb
diff --git a/Demo/MicroBlaze/system.make b/FreeRTOS/Demo/MicroBlaze/system.make
similarity index 100%
rename from Demo/MicroBlaze/system.make
rename to FreeRTOS/Demo/MicroBlaze/system.make
diff --git a/Demo/MicroBlaze/system.mhs b/FreeRTOS/Demo/MicroBlaze/system.mhs
similarity index 100%
rename from Demo/MicroBlaze/system.mhs
rename to FreeRTOS/Demo/MicroBlaze/system.mhs
diff --git a/Demo/MicroBlaze/system.mss b/FreeRTOS/Demo/MicroBlaze/system.mss
similarity index 100%
rename from Demo/MicroBlaze/system.mss
rename to FreeRTOS/Demo/MicroBlaze/system.mss
diff --git a/Demo/MicroBlaze/system.xmp b/FreeRTOS/Demo/MicroBlaze/system.xmp
similarity index 100%
rename from Demo/MicroBlaze/system.xmp
rename to FreeRTOS/Demo/MicroBlaze/system.xmp
diff --git a/Demo/MicroBlaze/system_incl.make b/FreeRTOS/Demo/MicroBlaze/system_incl.make
similarity index 100%
rename from Demo/MicroBlaze/system_incl.make
rename to FreeRTOS/Demo/MicroBlaze/system_incl.make
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/data/freertos.mss b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/data/freertos.mss
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/data/freertos.mss
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/data/freertos.mss
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/data/freertos_v2_1_0.mld b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/data/freertos_v2_1_0.mld
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/data/freertos_v2_1_0.mld
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/data/freertos_v2_1_0.mld
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/data/freertos_v2_1_0.tcl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/data/freertos_v2_1_0.tcl
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/data/freertos_v2_1_0.tcl
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/data/freertos_v2_1_0.tcl
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/CreatingTheDirectoryStructure.txt b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/CreatingTheDirectoryStructure.txt
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/CreatingTheDirectoryStructure.txt
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/CreatingTheDirectoryStructure.txt
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/License/license.txt b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/License/license.txt
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/License/license.txt
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/License/license.txt
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/Makefile b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/Makefile
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/Makefile
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/Makefile
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/Source/portable/readme.txt b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/Source/portable/readme.txt
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/Source/portable/readme.txt
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/Source/portable/readme.txt
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/Source/readme.txt b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/Source/readme.txt
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/Source/readme.txt
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/Source/readme.txt
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/readme.txt b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/readme.txt
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/readme.txt
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/readme.txt
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/sw_apps/FreeRTOS_Hello_World/data/FreeRTOS_Hello_World.mss b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/sw_apps/FreeRTOS_Hello_World/data/FreeRTOS_Hello_World.mss
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/sw_apps/FreeRTOS_Hello_World/data/FreeRTOS_Hello_World.mss
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/sw_apps/FreeRTOS_Hello_World/data/FreeRTOS_Hello_World.mss
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/sw_apps/FreeRTOS_Hello_World/data/FreeRTOS_Hello_World.tcl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/sw_apps/FreeRTOS_Hello_World/data/FreeRTOS_Hello_World.tcl
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/sw_apps/FreeRTOS_Hello_World/data/FreeRTOS_Hello_World.tcl
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/sw_apps/FreeRTOS_Hello_World/data/FreeRTOS_Hello_World.tcl
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/sw_apps/FreeRTOS_Hello_World/src/FreeRTOS-main.c b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/sw_apps/FreeRTOS_Hello_World/src/FreeRTOS-main.c
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/sw_apps/FreeRTOS_Hello_World/src/FreeRTOS-main.c
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/sw_apps/FreeRTOS_Hello_World/src/FreeRTOS-main.c
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/SDK/SDK_Export/hw/system.bit b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/SDK/SDK_Export/hw/system.bit
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/SDK/SDK_Export/hw/system.bit
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/SDK/SDK_Export/hw/system.bit
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/SDK/SDK_Export/hw/system.xml b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/SDK/SDK_Export/hw/system.xml
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/SDK/SDK_Export/hw/system.xml
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/SDK/SDK_Export/hw/system.xml
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/SDK/SDK_Export/hw/system_bd.bmm b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/SDK/SDK_Export/hw/system_bd.bmm
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/SDK/SDK_Export/hw/system_bd.bmm
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/SDK/SDK_Export/hw/system_bd.bmm
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtSvgDiag_Colors.xsl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtSvgDiag_Colors.xsl
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtSvgDiag_Colors.xsl
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtSvgDiag_Colors.xsl
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtSvgDiag_Globals.xsl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtSvgDiag_Globals.xsl
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtSvgDiag_Globals.xsl
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtSvgDiag_Globals.xsl
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_BusLaneSpaces.xsl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_BusLaneSpaces.xsl
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_BusLaneSpaces.xsl
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_BusLaneSpaces.xsl
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Functions.xsl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Functions.xsl
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Functions.xsl
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Functions.xsl
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Globals.xsl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Globals.xsl
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Globals.xsl
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Globals.xsl
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_IOPorts.xsl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_IOPorts.xsl
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_IOPorts.xsl
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_IOPorts.xsl
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Peripherals.xsl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Peripherals.xsl
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Peripherals.xsl
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Peripherals.xsl
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Processors.xsl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Processors.xsl
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Processors.xsl
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Processors.xsl
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgDiag_BifShapes.xsl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgDiag_BifShapes.xsl
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgDiag_BifShapes.xsl
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgDiag_BifShapes.xsl
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/bitinit.opt b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/bitinit.opt
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/bitinit.opt
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/bitinit.opt
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_globals.xsl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_globals.xsl
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_globals.xsl
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_globals.xsl
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view.xsl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view.xsl
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view.xsl
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view.xsl
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view_addr.xsl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view_addr.xsl
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view_addr.xsl
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view_addr.xsl
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view_busif.xsl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view_busif.xsl
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view_busif.xsl
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view_busif.xsl
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view_groups.xsl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view_groups.xsl
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view_groups.xsl
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view_groups.xsl
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view_port.xsl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view_port.xsl
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view_port.xsl
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view_port.xsl
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/gensav_cmd.xml b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/gensav_cmd.xml
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/gensav_cmd.xml
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/gensav_cmd.xml
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/ise/_xmsgs/platgen.xmsgs b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/ise/_xmsgs/platgen.xmsgs
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/ise/_xmsgs/platgen.xmsgs
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/ise/_xmsgs/platgen.xmsgs
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/ise/system.xreport b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/ise/system.xreport
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/ise/system.xreport
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/ise/system.xreport
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/ise/xmsgprops.lst b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/ise/xmsgprops.lst
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/ise/xmsgprops.lst
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/ise/xmsgprops.lst
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/platgen.opt b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/platgen.opt
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/platgen.opt
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/platgen.opt
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/simgen.opt b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/simgen.opt
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/simgen.opt
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/simgen.opt
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/system.xml b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/system.xml
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/system.xml
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/system.xml
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/xplorer.opt b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/xplorer.opt
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/xplorer.opt
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/xplorer.opt
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/xpsxflow.opt b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/xpsxflow.opt
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/xpsxflow.opt
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/xpsxflow.opt
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/data/system.ucf b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/data/system.ucf
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/data/system.ucf
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/data/system.ucf
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/bitgen.ut b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/bitgen.ut
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/bitgen.ut
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/bitgen.ut
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/download.cmd b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/download.cmd
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/download.cmd
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/download.cmd
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/fast_runtime.opt b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/fast_runtime.opt
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/fast_runtime.opt
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/fast_runtime.opt
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/system.filters b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/system.filters
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/system.filters
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/system.filters
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/system.gui b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/system.gui
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/system.gui
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/system.gui
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system.bsb b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system.bsb
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system.bsb
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system.bsb
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system.make b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system.make
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system.make
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system.make
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system.mhs b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system.mhs
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system.mhs
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system.mhs
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system.xmp b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system.xmp
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system.xmp
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system.xmp
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system_incl.make b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system_incl.make
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system_incl.make
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system_incl.make
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/.project b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/.project
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/.project
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/.project
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/download.bit b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/download.bit
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/download.bit
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/download.bit
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/system.bit b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/system.bit
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/system.bit
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/system.bit
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/system.xml b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/system.xml
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/system.xml
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/system.xml
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/system_bd.bmm b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/system_bd.bmm
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/system_bd.bmm
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/system_bd.bmm
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/.cproject b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/.cproject
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/.cproject
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/.cproject
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/.project b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/.project
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/.project
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/.project
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/CreateProjectDirectoryStructure.bat b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/CreateProjectDirectoryStructure.bat
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/CreateProjectDirectoryStructure.bat
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/CreateProjectDirectoryStructure.bat
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/FreeRTOSConfig.h b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/FreeRTOSConfig.h
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/FreeRTOSConfig.h
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/FreeRTOSConfig.h
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/ParTest.c b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/ParTest.c
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/ParTest.c
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/ParTest.c
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/RegisterTests.c b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/RegisterTests.c
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/RegisterTests.c
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/RegisterTests.c
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/fs.c b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/fs.c
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/fs.c
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/fs.c
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/fs.h b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/fs.h
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/fs.h
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/fs.h
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/fsdata.c b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/fsdata.c
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/fsdata.c
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/fsdata.c
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/fsdata.h b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/fsdata.h
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/fsdata.h
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/fsdata.h
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/httpd.c b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/httpd.c
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/httpd.c
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/httpd.c
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/httpd.h b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/httpd.h
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/httpd.h
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/httpd.h
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/httpd_structs.h b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/httpd_structs.h
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/httpd_structs.h
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/httpd_structs.h
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/404.html b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/404.html
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/404.html
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/404.html
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/index.shtml b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/index.shtml
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/index.shtml
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/index.shtml
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/logo.jpg b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/logo.jpg
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/logo.jpg
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/logo.jpg
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/runtime.shtml b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/runtime.shtml
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/runtime.shtml
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/runtime.shtml
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/makefsdata.c-source-file b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/makefsdata.c-source-file
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/makefsdata.c-source-file
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/makefsdata.c-source-file
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/makefsdata.exe b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/makefsdata.exe
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/makefsdata.exe
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/makefsdata.exe
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/lwIP_Apps.c b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/lwIP_Apps.c
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/lwIP_Apps.c
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/lwIP_Apps.c
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/lwipcfg_MicroBlaze.h b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/lwipcfg_MicroBlaze.h
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/lwipcfg_MicroBlaze.h
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/lwipcfg_MicroBlaze.h
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/lwipopts.h b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/lwipopts.h
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/lwipopts.h
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/lwipopts.h
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/main-blinky.c b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/main-blinky.c
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/main-blinky.c
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/main-blinky.c
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/main-full.c b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/main-full.c
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/main-full.c
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/main-full.c
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/printf-stdarg.c b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/printf-stdarg.c
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/printf-stdarg.c
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/printf-stdarg.c
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/serial.c b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/serial.c
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/serial.c
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/serial.c
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/src/lscript.ld b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/src/lscript.ld
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/src/lscript.ld
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/src/lscript.ld
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/.cproject b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/.cproject
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/.cproject
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/.cproject
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/.project b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/.project
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/.project
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/.project
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/.sdkproject b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/.sdkproject
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/.sdkproject
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/.sdkproject
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/Makefile b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/Makefile
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/Makefile
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/Makefile
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/libgen.options b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/libgen.options
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/libgen.options
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/libgen.options
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/system.mss b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/system.mss
similarity index 100%
rename from Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/system.mss
rename to FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/system.mss
diff --git a/Demo/NEC_78K0R_IAR/ButtonISR.s26 b/FreeRTOS/Demo/NEC_78K0R_IAR/ButtonISR.s26
similarity index 100%
rename from Demo/NEC_78K0R_IAR/ButtonISR.s26
rename to FreeRTOS/Demo/NEC_78K0R_IAR/ButtonISR.s26
diff --git a/Demo/NEC_78K0R_IAR/ButtonTask.c b/FreeRTOS/Demo/NEC_78K0R_IAR/ButtonTask.c
similarity index 100%
rename from Demo/NEC_78K0R_IAR/ButtonTask.c
rename to FreeRTOS/Demo/NEC_78K0R_IAR/ButtonTask.c
diff --git a/Demo/NEC_78K0R_IAR/FreeRTOSConfig.h b/FreeRTOS/Demo/NEC_78K0R_IAR/FreeRTOSConfig.h
similarity index 100%
rename from Demo/NEC_78K0R_IAR/FreeRTOSConfig.h
rename to FreeRTOS/Demo/NEC_78K0R_IAR/FreeRTOSConfig.h
diff --git a/Demo/NEC_78K0R_IAR/RegTest.s26 b/FreeRTOS/Demo/NEC_78K0R_IAR/RegTest.s26
similarity index 100%
rename from Demo/NEC_78K0R_IAR/RegTest.s26
rename to FreeRTOS/Demo/NEC_78K0R_IAR/RegTest.s26
diff --git a/Demo/NEC_78K0R_IAR/cstartup.s26 b/FreeRTOS/Demo/NEC_78K0R_IAR/cstartup.s26
similarity index 100%
rename from Demo/NEC_78K0R_IAR/cstartup.s26
rename to FreeRTOS/Demo/NEC_78K0R_IAR/cstartup.s26
diff --git a/Demo/NEC_78K0R_IAR/main.c b/FreeRTOS/Demo/NEC_78K0R_IAR/main.c
similarity index 100%
rename from Demo/NEC_78K0R_IAR/main.c
rename to FreeRTOS/Demo/NEC_78K0R_IAR/main.c
diff --git a/Demo/NEC_78K0R_IAR/rtosdemo.ewd b/FreeRTOS/Demo/NEC_78K0R_IAR/rtosdemo.ewd
similarity index 100%
rename from Demo/NEC_78K0R_IAR/rtosdemo.ewd
rename to FreeRTOS/Demo/NEC_78K0R_IAR/rtosdemo.ewd
diff --git a/Demo/NEC_78K0R_IAR/rtosdemo.ewp b/FreeRTOS/Demo/NEC_78K0R_IAR/rtosdemo.ewp
similarity index 100%
rename from Demo/NEC_78K0R_IAR/rtosdemo.ewp
rename to FreeRTOS/Demo/NEC_78K0R_IAR/rtosdemo.ewp
diff --git a/Demo/NEC_78K0R_IAR/rtosdemo.eww b/FreeRTOS/Demo/NEC_78K0R_IAR/rtosdemo.eww
similarity index 100%
rename from Demo/NEC_78K0R_IAR/rtosdemo.eww
rename to FreeRTOS/Demo/NEC_78K0R_IAR/rtosdemo.eww
diff --git a/Demo/NEC_78K0R_IAR/settings/rtosdemo.cspy.bat b/FreeRTOS/Demo/NEC_78K0R_IAR/settings/rtosdemo.cspy.bat
similarity index 100%
rename from Demo/NEC_78K0R_IAR/settings/rtosdemo.cspy.bat
rename to FreeRTOS/Demo/NEC_78K0R_IAR/settings/rtosdemo.cspy.bat
diff --git a/Demo/NEC_78K0R_IAR/settings/rtosdemo.dbgdt b/FreeRTOS/Demo/NEC_78K0R_IAR/settings/rtosdemo.dbgdt
similarity index 100%
rename from Demo/NEC_78K0R_IAR/settings/rtosdemo.dbgdt
rename to FreeRTOS/Demo/NEC_78K0R_IAR/settings/rtosdemo.dbgdt
diff --git a/Demo/NEC_78K0R_IAR/settings/rtosdemo.dni b/FreeRTOS/Demo/NEC_78K0R_IAR/settings/rtosdemo.dni
similarity index 100%
rename from Demo/NEC_78K0R_IAR/settings/rtosdemo.dni
rename to FreeRTOS/Demo/NEC_78K0R_IAR/settings/rtosdemo.dni
diff --git a/Demo/NEC_78K0R_IAR/settings/rtosdemo.wsdt b/FreeRTOS/Demo/NEC_78K0R_IAR/settings/rtosdemo.wsdt
similarity index 100%
rename from Demo/NEC_78K0R_IAR/settings/rtosdemo.wsdt
rename to FreeRTOS/Demo/NEC_78K0R_IAR/settings/rtosdemo.wsdt
diff --git a/Demo/NEC_V850ES_IAR/FreeRTOSConfig.h b/FreeRTOS/Demo/NEC_V850ES_IAR/FreeRTOSConfig.h
similarity index 100%
rename from Demo/NEC_V850ES_IAR/FreeRTOSConfig.h
rename to FreeRTOS/Demo/NEC_V850ES_IAR/FreeRTOSConfig.h
diff --git a/Demo/NEC_V850ES_IAR/LowLevelInit/LowLevelInit.c b/FreeRTOS/Demo/NEC_V850ES_IAR/LowLevelInit/LowLevelInit.c
similarity index 100%
rename from Demo/NEC_V850ES_IAR/LowLevelInit/LowLevelInit.c
rename to FreeRTOS/Demo/NEC_V850ES_IAR/LowLevelInit/LowLevelInit.c
diff --git a/Demo/NEC_V850ES_IAR/LowLevelInit/LowLevelInit_Fx3.c b/FreeRTOS/Demo/NEC_V850ES_IAR/LowLevelInit/LowLevelInit_Fx3.c
similarity index 100%
rename from Demo/NEC_V850ES_IAR/LowLevelInit/LowLevelInit_Fx3.c
rename to FreeRTOS/Demo/NEC_V850ES_IAR/LowLevelInit/LowLevelInit_Fx3.c
diff --git a/Demo/NEC_V850ES_IAR/LowLevelInit/LowLevelInit_Hx2.c b/FreeRTOS/Demo/NEC_V850ES_IAR/LowLevelInit/LowLevelInit_Hx2.c
similarity index 100%
rename from Demo/NEC_V850ES_IAR/LowLevelInit/LowLevelInit_Hx2.c
rename to FreeRTOS/Demo/NEC_V850ES_IAR/LowLevelInit/LowLevelInit_Hx2.c
diff --git a/Demo/NEC_V850ES_IAR/ParTest/ParTest_Fx3_App_Board.c b/FreeRTOS/Demo/NEC_V850ES_IAR/ParTest/ParTest_Fx3_App_Board.c
similarity index 100%
rename from Demo/NEC_V850ES_IAR/ParTest/ParTest_Fx3_App_Board.c
rename to FreeRTOS/Demo/NEC_V850ES_IAR/ParTest/ParTest_Fx3_App_Board.c
diff --git a/Demo/NEC_V850ES_IAR/ParTest/ParTest_Generic_Target_Board.c b/FreeRTOS/Demo/NEC_V850ES_IAR/ParTest/ParTest_Generic_Target_Board.c
similarity index 100%
rename from Demo/NEC_V850ES_IAR/ParTest/ParTest_Generic_Target_Board.c
rename to FreeRTOS/Demo/NEC_V850ES_IAR/ParTest/ParTest_Generic_Target_Board.c
diff --git a/Demo/NEC_V850ES_IAR/RegTest.s85 b/FreeRTOS/Demo/NEC_V850ES_IAR/RegTest.s85
similarity index 100%
rename from Demo/NEC_V850ES_IAR/RegTest.s85
rename to FreeRTOS/Demo/NEC_V850ES_IAR/RegTest.s85
diff --git a/Demo/NEC_V850ES_IAR/main.c b/FreeRTOS/Demo/NEC_V850ES_IAR/main.c
similarity index 100%
rename from Demo/NEC_V850ES_IAR/main.c
rename to FreeRTOS/Demo/NEC_V850ES_IAR/main.c
diff --git a/Demo/NEC_V850ES_IAR/rtosdemo.ewd b/FreeRTOS/Demo/NEC_V850ES_IAR/rtosdemo.ewd
similarity index 100%
rename from Demo/NEC_V850ES_IAR/rtosdemo.ewd
rename to FreeRTOS/Demo/NEC_V850ES_IAR/rtosdemo.ewd
diff --git a/Demo/NEC_V850ES_IAR/rtosdemo.ewp b/FreeRTOS/Demo/NEC_V850ES_IAR/rtosdemo.ewp
similarity index 100%
rename from Demo/NEC_V850ES_IAR/rtosdemo.ewp
rename to FreeRTOS/Demo/NEC_V850ES_IAR/rtosdemo.ewp
diff --git a/Demo/NEC_V850ES_IAR/rtosdemo.eww b/FreeRTOS/Demo/NEC_V850ES_IAR/rtosdemo.eww
similarity index 100%
rename from Demo/NEC_V850ES_IAR/rtosdemo.eww
rename to FreeRTOS/Demo/NEC_V850ES_IAR/rtosdemo.eww
diff --git a/Demo/NEC_V850ES_IAR/serial/serial.c b/FreeRTOS/Demo/NEC_V850ES_IAR/serial/serial.c
similarity index 100%
rename from Demo/NEC_V850ES_IAR/serial/serial.c
rename to FreeRTOS/Demo/NEC_V850ES_IAR/serial/serial.c
diff --git a/Demo/NEC_V850ES_IAR/serial/serialISR.s85 b/FreeRTOS/Demo/NEC_V850ES_IAR/serial/serialISR.s85
similarity index 100%
rename from Demo/NEC_V850ES_IAR/serial/serialISR.s85
rename to FreeRTOS/Demo/NEC_V850ES_IAR/serial/serialISR.s85
diff --git a/Demo/NEC_V850ES_IAR/settings/rtosdemo.cspy.bat b/FreeRTOS/Demo/NEC_V850ES_IAR/settings/rtosdemo.cspy.bat
similarity index 100%
rename from Demo/NEC_V850ES_IAR/settings/rtosdemo.cspy.bat
rename to FreeRTOS/Demo/NEC_V850ES_IAR/settings/rtosdemo.cspy.bat
diff --git a/Demo/NEC_V850ES_IAR/settings/rtosdemo.dbgdt b/FreeRTOS/Demo/NEC_V850ES_IAR/settings/rtosdemo.dbgdt
similarity index 100%
rename from Demo/NEC_V850ES_IAR/settings/rtosdemo.dbgdt
rename to FreeRTOS/Demo/NEC_V850ES_IAR/settings/rtosdemo.dbgdt
diff --git a/Demo/NEC_V850ES_IAR/settings/rtosdemo.dni b/FreeRTOS/Demo/NEC_V850ES_IAR/settings/rtosdemo.dni
similarity index 100%
rename from Demo/NEC_V850ES_IAR/settings/rtosdemo.dni
rename to FreeRTOS/Demo/NEC_V850ES_IAR/settings/rtosdemo.dni
diff --git a/Demo/NEC_V850ES_IAR/settings/rtosdemo.wsdt b/FreeRTOS/Demo/NEC_V850ES_IAR/settings/rtosdemo.wsdt
similarity index 100%
rename from Demo/NEC_V850ES_IAR/settings/rtosdemo.wsdt
rename to FreeRTOS/Demo/NEC_V850ES_IAR/settings/rtosdemo.wsdt
diff --git a/Demo/NiosII_CycloneIII_DBC3C40_GCC/.sopc_builder/install.ptf b/FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/.sopc_builder/install.ptf
similarity index 100%
rename from Demo/NiosII_CycloneIII_DBC3C40_GCC/.sopc_builder/install.ptf
rename to FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/.sopc_builder/install.ptf
diff --git a/Demo/NiosII_CycloneIII_DBC3C40_GCC/.sopc_builder/install2.ptf b/FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/.sopc_builder/install2.ptf
similarity index 100%
rename from Demo/NiosII_CycloneIII_DBC3C40_GCC/.sopc_builder/install2.ptf
rename to FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/.sopc_builder/install2.ptf
diff --git a/Demo/NiosII_CycloneIII_DBC3C40_GCC/CreateProjectDirectoryStructure.bat b/FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/CreateProjectDirectoryStructure.bat
similarity index 100%
rename from Demo/NiosII_CycloneIII_DBC3C40_GCC/CreateProjectDirectoryStructure.bat
rename to FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/CreateProjectDirectoryStructure.bat
diff --git a/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/.cdtbuild b/FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/.cdtbuild
similarity index 100%
rename from Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/.cdtbuild
rename to FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/.cdtbuild
diff --git a/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/.cdtproject b/FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/.cdtproject
similarity index 100%
rename from Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/.cdtproject
rename to FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/.cdtproject
diff --git a/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/.project b/FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/.project
similarity index 100%
rename from Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/.project
rename to FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/.project
diff --git a/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/.settings/org.eclipse.cdt.core.prefs b/FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/.settings/org.eclipse.cdt.core.prefs
similarity index 100%
rename from Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/.settings/org.eclipse.cdt.core.prefs
rename to FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/.settings/org.eclipse.cdt.core.prefs
diff --git a/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/.settings/org.eclipse.cdt.managedbuilder.core.prefs
similarity index 100%
rename from Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/.settings/org.eclipse.cdt.managedbuilder.core.prefs
rename to FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/.settings/org.eclipse.cdt.managedbuilder.core.prefs
diff --git a/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/.settings/org.eclipse.ltk.core.refactoring.prefs b/FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/.settings/org.eclipse.ltk.core.refactoring.prefs
similarity index 100%
rename from Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/.settings/org.eclipse.ltk.core.refactoring.prefs
rename to FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/FreeRTOSConfig.h b/FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/FreeRTOSConfig.h
similarity index 100%
rename from Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/FreeRTOSConfig.h
rename to FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/FreeRTOSConfig.h
diff --git a/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/ParTest/ParTest.c b/FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/ParTest/ParTest.c
similarity index 100%
rename from Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/ParTest/ParTest.c
rename to FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/ParTest/ParTest.c
diff --git a/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/application.stf b/FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/application.stf
similarity index 100%
rename from Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/application.stf
rename to FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/application.stf
diff --git a/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/main.c b/FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/main.c
similarity index 100%
rename from Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/main.c
rename to FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/main.c
diff --git a/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/serial.c b/FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/serial.c
similarity index 100%
rename from Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/serial.c
rename to FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/serial.c
diff --git a/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo_syslib/.cdtbuild b/FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo_syslib/.cdtbuild
similarity index 100%
rename from Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo_syslib/.cdtbuild
rename to FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo_syslib/.cdtbuild
diff --git a/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo_syslib/.cdtproject b/FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo_syslib/.cdtproject
similarity index 100%
rename from Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo_syslib/.cdtproject
rename to FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo_syslib/.cdtproject
diff --git a/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo_syslib/.project b/FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo_syslib/.project
similarity index 100%
rename from Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo_syslib/.project
rename to FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo_syslib/.project
diff --git a/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo_syslib/.settings/org.eclipse.cdt.core.prefs b/FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo_syslib/.settings/org.eclipse.cdt.core.prefs
similarity index 100%
rename from Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo_syslib/.settings/org.eclipse.cdt.core.prefs
rename to FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo_syslib/.settings/org.eclipse.cdt.core.prefs
diff --git a/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo_syslib/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo_syslib/.settings/org.eclipse.cdt.managedbuilder.core.prefs
similarity index 100%
rename from Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo_syslib/.settings/org.eclipse.cdt.managedbuilder.core.prefs
rename to FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo_syslib/.settings/org.eclipse.cdt.managedbuilder.core.prefs
diff --git a/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo_syslib/readme.txt b/FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo_syslib/readme.txt
similarity index 100%
rename from Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo_syslib/readme.txt
rename to FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo_syslib/readme.txt
diff --git a/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo_syslib/system.stf b/FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo_syslib/system.stf
similarity index 100%
rename from Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo_syslib/system.stf
rename to FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo_syslib/system.stf
diff --git a/Demo/NiosII_CycloneIII_DBC3C40_GCC/cpu.ptf b/FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/cpu.ptf
similarity index 100%
rename from Demo/NiosII_CycloneIII_DBC3C40_GCC/cpu.ptf
rename to FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/cpu.ptf
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/system_routed b/FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/cpu_sim/dummy_file
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/__xps/system_routed
rename to FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/cpu_sim/dummy_file
diff --git a/Demo/NiosII_CycloneIII_DBC3C40_GCC/onchip_memory.hex b/FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/onchip_memory.hex
similarity index 100%
rename from Demo/NiosII_CycloneIII_DBC3C40_GCC/onchip_memory.hex
rename to FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/onchip_memory.hex
diff --git a/Demo/NiosII_CycloneIII_DBC3C40_GCC/sopc_builder_log.txt b/FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/sopc_builder_log.txt
similarity index 100%
rename from Demo/NiosII_CycloneIII_DBC3C40_GCC/sopc_builder_log.txt
rename to FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/sopc_builder_log.txt
diff --git a/Demo/PC/FRConfig.h b/FreeRTOS/Demo/PC/FRConfig.h
similarity index 100%
rename from Demo/PC/FRConfig.h
rename to FreeRTOS/Demo/PC/FRConfig.h
diff --git a/Demo/PC/FileIO/fileIO.c b/FreeRTOS/Demo/PC/FileIO/fileIO.c
similarity index 100%
rename from Demo/PC/FileIO/fileIO.c
rename to FreeRTOS/Demo/PC/FileIO/fileIO.c
diff --git a/Demo/PC/FreeRTOSConfig.h b/FreeRTOS/Demo/PC/FreeRTOSConfig.h
similarity index 100%
rename from Demo/PC/FreeRTOSConfig.h
rename to FreeRTOS/Demo/PC/FreeRTOSConfig.h
diff --git a/Demo/PC/ParTest/ParTest.c b/FreeRTOS/Demo/PC/ParTest/ParTest.c
similarity index 100%
rename from Demo/PC/ParTest/ParTest.c
rename to FreeRTOS/Demo/PC/ParTest/ParTest.c
diff --git a/Demo/PC/RTOSDEMO.IDE b/FreeRTOS/Demo/PC/RTOSDEMO.IDE
similarity index 100%
rename from Demo/PC/RTOSDEMO.IDE
rename to FreeRTOS/Demo/PC/RTOSDEMO.IDE
diff --git a/Demo/PC/main.c b/FreeRTOS/Demo/PC/main.c
similarity index 100%
rename from Demo/PC/main.c
rename to FreeRTOS/Demo/PC/main.c
diff --git a/Demo/PC/rtosdemo.DSW b/FreeRTOS/Demo/PC/rtosdemo.DSW
similarity index 100%
rename from Demo/PC/rtosdemo.DSW
rename to FreeRTOS/Demo/PC/rtosdemo.DSW
diff --git a/Demo/PC/rtosdemo.tgt b/FreeRTOS/Demo/PC/rtosdemo.tgt
similarity index 100%
rename from Demo/PC/rtosdemo.tgt
rename to FreeRTOS/Demo/PC/rtosdemo.tgt
diff --git a/Demo/PC/rtosdemo.wpj b/FreeRTOS/Demo/PC/rtosdemo.wpj
similarity index 100%
rename from Demo/PC/rtosdemo.wpj
rename to FreeRTOS/Demo/PC/rtosdemo.wpj
diff --git a/Demo/PC/serial/serial.c b/FreeRTOS/Demo/PC/serial/serial.c
similarity index 100%
rename from Demo/PC/serial/serial.c
rename to FreeRTOS/Demo/PC/serial/serial.c
diff --git a/Demo/PIC18_MPLAB/18f452.lkr b/FreeRTOS/Demo/PIC18_MPLAB/18f452.lkr
similarity index 100%
rename from Demo/PIC18_MPLAB/18f452.lkr
rename to FreeRTOS/Demo/PIC18_MPLAB/18f452.lkr
diff --git a/Demo/PIC18_MPLAB/FreeRTOSConfig.h b/FreeRTOS/Demo/PIC18_MPLAB/FreeRTOSConfig.h
similarity index 100%
rename from Demo/PIC18_MPLAB/FreeRTOSConfig.h
rename to FreeRTOS/Demo/PIC18_MPLAB/FreeRTOSConfig.h
diff --git a/Demo/PIC18_MPLAB/ParTest/ParTest.c b/FreeRTOS/Demo/PIC18_MPLAB/ParTest/ParTest.c
similarity index 100%
rename from Demo/PIC18_MPLAB/ParTest/ParTest.c
rename to FreeRTOS/Demo/PIC18_MPLAB/ParTest/ParTest.c
diff --git a/Demo/PIC18_MPLAB/main1.c b/FreeRTOS/Demo/PIC18_MPLAB/main1.c
similarity index 100%
rename from Demo/PIC18_MPLAB/main1.c
rename to FreeRTOS/Demo/PIC18_MPLAB/main1.c
diff --git a/Demo/PIC18_MPLAB/main2.c b/FreeRTOS/Demo/PIC18_MPLAB/main2.c
similarity index 100%
rename from Demo/PIC18_MPLAB/main2.c
rename to FreeRTOS/Demo/PIC18_MPLAB/main2.c
diff --git a/Demo/PIC18_MPLAB/main3.c b/FreeRTOS/Demo/PIC18_MPLAB/main3.c
similarity index 100%
rename from Demo/PIC18_MPLAB/main3.c
rename to FreeRTOS/Demo/PIC18_MPLAB/main3.c
diff --git a/Demo/PIC18_MPLAB/makebin1.bat b/FreeRTOS/Demo/PIC18_MPLAB/makebin1.bat
similarity index 100%
rename from Demo/PIC18_MPLAB/makebin1.bat
rename to FreeRTOS/Demo/PIC18_MPLAB/makebin1.bat
diff --git a/Demo/PIC18_MPLAB/makebin2.bat b/FreeRTOS/Demo/PIC18_MPLAB/makebin2.bat
similarity index 100%
rename from Demo/PIC18_MPLAB/makebin2.bat
rename to FreeRTOS/Demo/PIC18_MPLAB/makebin2.bat
diff --git a/Demo/PIC18_MPLAB/makebin3.bat b/FreeRTOS/Demo/PIC18_MPLAB/makebin3.bat
similarity index 100%
rename from Demo/PIC18_MPLAB/makebin3.bat
rename to FreeRTOS/Demo/PIC18_MPLAB/makebin3.bat
diff --git a/Demo/PIC18_MPLAB/readme.txt b/FreeRTOS/Demo/PIC18_MPLAB/readme.txt
similarity index 100%
rename from Demo/PIC18_MPLAB/readme.txt
rename to FreeRTOS/Demo/PIC18_MPLAB/readme.txt
diff --git a/Demo/PIC18_MPLAB/rtosdemo.mcw b/FreeRTOS/Demo/PIC18_MPLAB/rtosdemo.mcw
similarity index 100%
rename from Demo/PIC18_MPLAB/rtosdemo.mcw
rename to FreeRTOS/Demo/PIC18_MPLAB/rtosdemo.mcw
diff --git a/Demo/PIC18_MPLAB/rtosdemo1.mcp b/FreeRTOS/Demo/PIC18_MPLAB/rtosdemo1.mcp
similarity index 100%
rename from Demo/PIC18_MPLAB/rtosdemo1.mcp
rename to FreeRTOS/Demo/PIC18_MPLAB/rtosdemo1.mcp
diff --git a/Demo/PIC18_MPLAB/rtosdemo2.mcp b/FreeRTOS/Demo/PIC18_MPLAB/rtosdemo2.mcp
similarity index 100%
rename from Demo/PIC18_MPLAB/rtosdemo2.mcp
rename to FreeRTOS/Demo/PIC18_MPLAB/rtosdemo2.mcp
diff --git a/Demo/PIC18_MPLAB/rtosdemo3.mcp b/FreeRTOS/Demo/PIC18_MPLAB/rtosdemo3.mcp
similarity index 100%
rename from Demo/PIC18_MPLAB/rtosdemo3.mcp
rename to FreeRTOS/Demo/PIC18_MPLAB/rtosdemo3.mcp
diff --git a/Demo/PIC18_MPLAB/serial/serial.c b/FreeRTOS/Demo/PIC18_MPLAB/serial/serial.c
similarity index 100%
rename from Demo/PIC18_MPLAB/serial/serial.c
rename to FreeRTOS/Demo/PIC18_MPLAB/serial/serial.c
diff --git a/Demo/PIC18_WizC/Demo1/Demo1.PC b/FreeRTOS/Demo/PIC18_WizC/Demo1/Demo1.PC
similarity index 100%
rename from Demo/PIC18_WizC/Demo1/Demo1.PC
rename to FreeRTOS/Demo/PIC18_WizC/Demo1/Demo1.PC
diff --git a/Demo/PIC18_WizC/Demo1/FreeRTOSConfig.h b/FreeRTOS/Demo/PIC18_WizC/Demo1/FreeRTOSConfig.h
similarity index 100%
rename from Demo/PIC18_WizC/Demo1/FreeRTOSConfig.h
rename to FreeRTOS/Demo/PIC18_WizC/Demo1/FreeRTOSConfig.h
diff --git a/Demo/PIC18_WizC/Demo1/MallocConfig.h b/FreeRTOS/Demo/PIC18_WizC/Demo1/MallocConfig.h
similarity index 100%
rename from Demo/PIC18_WizC/Demo1/MallocConfig.h
rename to FreeRTOS/Demo/PIC18_WizC/Demo1/MallocConfig.h
diff --git a/Demo/PIC18_WizC/Demo1/WIZCmake.h b/FreeRTOS/Demo/PIC18_WizC/Demo1/WIZCmake.h
similarity index 100%
rename from Demo/PIC18_WizC/Demo1/WIZCmake.h
rename to FreeRTOS/Demo/PIC18_WizC/Demo1/WIZCmake.h
diff --git a/Demo/PIC18_WizC/Demo1/fuses.c b/FreeRTOS/Demo/PIC18_WizC/Demo1/fuses.c
similarity index 100%
rename from Demo/PIC18_WizC/Demo1/fuses.c
rename to FreeRTOS/Demo/PIC18_WizC/Demo1/fuses.c
diff --git a/Demo/PIC18_WizC/Demo1/interrupt.c b/FreeRTOS/Demo/PIC18_WizC/Demo1/interrupt.c
similarity index 100%
rename from Demo/PIC18_WizC/Demo1/interrupt.c
rename to FreeRTOS/Demo/PIC18_WizC/Demo1/interrupt.c
diff --git a/Demo/PIC18_WizC/Demo1/main.c b/FreeRTOS/Demo/PIC18_WizC/Demo1/main.c
similarity index 100%
rename from Demo/PIC18_WizC/Demo1/main.c
rename to FreeRTOS/Demo/PIC18_WizC/Demo1/main.c
diff --git a/Demo/PIC18_WizC/Demo2/Demo2.PC b/FreeRTOS/Demo/PIC18_WizC/Demo2/Demo2.PC
similarity index 100%
rename from Demo/PIC18_WizC/Demo2/Demo2.PC
rename to FreeRTOS/Demo/PIC18_WizC/Demo2/Demo2.PC
diff --git a/Demo/PIC18_WizC/Demo2/FreeRTOSConfig.h b/FreeRTOS/Demo/PIC18_WizC/Demo2/FreeRTOSConfig.h
similarity index 100%
rename from Demo/PIC18_WizC/Demo2/FreeRTOSConfig.h
rename to FreeRTOS/Demo/PIC18_WizC/Demo2/FreeRTOSConfig.h
diff --git a/Demo/PIC18_WizC/Demo2/MallocConfig.h b/FreeRTOS/Demo/PIC18_WizC/Demo2/MallocConfig.h
similarity index 100%
rename from Demo/PIC18_WizC/Demo2/MallocConfig.h
rename to FreeRTOS/Demo/PIC18_WizC/Demo2/MallocConfig.h
diff --git a/Demo/PIC18_WizC/Demo2/WIZCmake.h b/FreeRTOS/Demo/PIC18_WizC/Demo2/WIZCmake.h
similarity index 100%
rename from Demo/PIC18_WizC/Demo2/WIZCmake.h
rename to FreeRTOS/Demo/PIC18_WizC/Demo2/WIZCmake.h
diff --git a/Demo/PIC18_WizC/Demo2/fuses.c b/FreeRTOS/Demo/PIC18_WizC/Demo2/fuses.c
similarity index 100%
rename from Demo/PIC18_WizC/Demo2/fuses.c
rename to FreeRTOS/Demo/PIC18_WizC/Demo2/fuses.c
diff --git a/Demo/PIC18_WizC/Demo2/interrupt.c b/FreeRTOS/Demo/PIC18_WizC/Demo2/interrupt.c
similarity index 100%
rename from Demo/PIC18_WizC/Demo2/interrupt.c
rename to FreeRTOS/Demo/PIC18_WizC/Demo2/interrupt.c
diff --git a/Demo/PIC18_WizC/Demo2/main.c b/FreeRTOS/Demo/PIC18_WizC/Demo2/main.c
similarity index 100%
rename from Demo/PIC18_WizC/Demo2/main.c
rename to FreeRTOS/Demo/PIC18_WizC/Demo2/main.c
diff --git a/Demo/PIC18_WizC/Demo3/Demo3.PC b/FreeRTOS/Demo/PIC18_WizC/Demo3/Demo3.PC
similarity index 100%
rename from Demo/PIC18_WizC/Demo3/Demo3.PC
rename to FreeRTOS/Demo/PIC18_WizC/Demo3/Demo3.PC
diff --git a/Demo/PIC18_WizC/Demo3/FreeRTOSConfig.h b/FreeRTOS/Demo/PIC18_WizC/Demo3/FreeRTOSConfig.h
similarity index 100%
rename from Demo/PIC18_WizC/Demo3/FreeRTOSConfig.h
rename to FreeRTOS/Demo/PIC18_WizC/Demo3/FreeRTOSConfig.h
diff --git a/Demo/PIC18_WizC/Demo3/MallocConfig.h b/FreeRTOS/Demo/PIC18_WizC/Demo3/MallocConfig.h
similarity index 100%
rename from Demo/PIC18_WizC/Demo3/MallocConfig.h
rename to FreeRTOS/Demo/PIC18_WizC/Demo3/MallocConfig.h
diff --git a/Demo/PIC18_WizC/Demo3/WIZCmake.h b/FreeRTOS/Demo/PIC18_WizC/Demo3/WIZCmake.h
similarity index 100%
rename from Demo/PIC18_WizC/Demo3/WIZCmake.h
rename to FreeRTOS/Demo/PIC18_WizC/Demo3/WIZCmake.h
diff --git a/Demo/PIC18_WizC/Demo3/fuses.c b/FreeRTOS/Demo/PIC18_WizC/Demo3/fuses.c
similarity index 100%
rename from Demo/PIC18_WizC/Demo3/fuses.c
rename to FreeRTOS/Demo/PIC18_WizC/Demo3/fuses.c
diff --git a/Demo/PIC18_WizC/Demo3/interrupt.c b/FreeRTOS/Demo/PIC18_WizC/Demo3/interrupt.c
similarity index 100%
rename from Demo/PIC18_WizC/Demo3/interrupt.c
rename to FreeRTOS/Demo/PIC18_WizC/Demo3/interrupt.c
diff --git a/Demo/PIC18_WizC/Demo3/main.c b/FreeRTOS/Demo/PIC18_WizC/Demo3/main.c
similarity index 100%
rename from Demo/PIC18_WizC/Demo3/main.c
rename to FreeRTOS/Demo/PIC18_WizC/Demo3/main.c
diff --git a/Demo/PIC18_WizC/Demo4/Demo4.PC b/FreeRTOS/Demo/PIC18_WizC/Demo4/Demo4.PC
similarity index 100%
rename from Demo/PIC18_WizC/Demo4/Demo4.PC
rename to FreeRTOS/Demo/PIC18_WizC/Demo4/Demo4.PC
diff --git a/Demo/PIC18_WizC/Demo4/FreeRTOSConfig.h b/FreeRTOS/Demo/PIC18_WizC/Demo4/FreeRTOSConfig.h
similarity index 100%
rename from Demo/PIC18_WizC/Demo4/FreeRTOSConfig.h
rename to FreeRTOS/Demo/PIC18_WizC/Demo4/FreeRTOSConfig.h
diff --git a/Demo/PIC18_WizC/Demo4/MallocConfig.h b/FreeRTOS/Demo/PIC18_WizC/Demo4/MallocConfig.h
similarity index 100%
rename from Demo/PIC18_WizC/Demo4/MallocConfig.h
rename to FreeRTOS/Demo/PIC18_WizC/Demo4/MallocConfig.h
diff --git a/Demo/PIC18_WizC/Demo4/WIZCmake.h b/FreeRTOS/Demo/PIC18_WizC/Demo4/WIZCmake.h
similarity index 100%
rename from Demo/PIC18_WizC/Demo4/WIZCmake.h
rename to FreeRTOS/Demo/PIC18_WizC/Demo4/WIZCmake.h
diff --git a/Demo/PIC18_WizC/Demo4/fuses.c b/FreeRTOS/Demo/PIC18_WizC/Demo4/fuses.c
similarity index 100%
rename from Demo/PIC18_WizC/Demo4/fuses.c
rename to FreeRTOS/Demo/PIC18_WizC/Demo4/fuses.c
diff --git a/Demo/PIC18_WizC/Demo4/interrupt.c b/FreeRTOS/Demo/PIC18_WizC/Demo4/interrupt.c
similarity index 100%
rename from Demo/PIC18_WizC/Demo4/interrupt.c
rename to FreeRTOS/Demo/PIC18_WizC/Demo4/interrupt.c
diff --git a/Demo/PIC18_WizC/Demo4/main.c b/FreeRTOS/Demo/PIC18_WizC/Demo4/main.c
similarity index 100%
rename from Demo/PIC18_WizC/Demo4/main.c
rename to FreeRTOS/Demo/PIC18_WizC/Demo4/main.c
diff --git a/Demo/PIC18_WizC/Demo5/Demo5.PC b/FreeRTOS/Demo/PIC18_WizC/Demo5/Demo5.PC
similarity index 100%
rename from Demo/PIC18_WizC/Demo5/Demo5.PC
rename to FreeRTOS/Demo/PIC18_WizC/Demo5/Demo5.PC
diff --git a/Demo/PIC18_WizC/Demo5/FreeRTOSConfig.h b/FreeRTOS/Demo/PIC18_WizC/Demo5/FreeRTOSConfig.h
similarity index 100%
rename from Demo/PIC18_WizC/Demo5/FreeRTOSConfig.h
rename to FreeRTOS/Demo/PIC18_WizC/Demo5/FreeRTOSConfig.h
diff --git a/Demo/PIC18_WizC/Demo5/MallocConfig.h b/FreeRTOS/Demo/PIC18_WizC/Demo5/MallocConfig.h
similarity index 100%
rename from Demo/PIC18_WizC/Demo5/MallocConfig.h
rename to FreeRTOS/Demo/PIC18_WizC/Demo5/MallocConfig.h
diff --git a/Demo/PIC18_WizC/Demo5/WIZCmake.h b/FreeRTOS/Demo/PIC18_WizC/Demo5/WIZCmake.h
similarity index 100%
rename from Demo/PIC18_WizC/Demo5/WIZCmake.h
rename to FreeRTOS/Demo/PIC18_WizC/Demo5/WIZCmake.h
diff --git a/Demo/PIC18_WizC/Demo5/fuses.c b/FreeRTOS/Demo/PIC18_WizC/Demo5/fuses.c
similarity index 100%
rename from Demo/PIC18_WizC/Demo5/fuses.c
rename to FreeRTOS/Demo/PIC18_WizC/Demo5/fuses.c
diff --git a/Demo/PIC18_WizC/Demo5/interrupt.c b/FreeRTOS/Demo/PIC18_WizC/Demo5/interrupt.c
similarity index 100%
rename from Demo/PIC18_WizC/Demo5/interrupt.c
rename to FreeRTOS/Demo/PIC18_WizC/Demo5/interrupt.c
diff --git a/Demo/PIC18_WizC/Demo5/main.c b/FreeRTOS/Demo/PIC18_WizC/Demo5/main.c
similarity index 100%
rename from Demo/PIC18_WizC/Demo5/main.c
rename to FreeRTOS/Demo/PIC18_WizC/Demo5/main.c
diff --git a/Demo/PIC18_WizC/Demo6/Demo6.PC b/FreeRTOS/Demo/PIC18_WizC/Demo6/Demo6.PC
similarity index 100%
rename from Demo/PIC18_WizC/Demo6/Demo6.PC
rename to FreeRTOS/Demo/PIC18_WizC/Demo6/Demo6.PC
diff --git a/Demo/PIC18_WizC/Demo6/FreeRTOSConfig.h b/FreeRTOS/Demo/PIC18_WizC/Demo6/FreeRTOSConfig.h
similarity index 100%
rename from Demo/PIC18_WizC/Demo6/FreeRTOSConfig.h
rename to FreeRTOS/Demo/PIC18_WizC/Demo6/FreeRTOSConfig.h
diff --git a/Demo/PIC18_WizC/Demo6/MallocConfig.h b/FreeRTOS/Demo/PIC18_WizC/Demo6/MallocConfig.h
similarity index 100%
rename from Demo/PIC18_WizC/Demo6/MallocConfig.h
rename to FreeRTOS/Demo/PIC18_WizC/Demo6/MallocConfig.h
diff --git a/Demo/PIC18_WizC/Demo6/WIZCmake.h b/FreeRTOS/Demo/PIC18_WizC/Demo6/WIZCmake.h
similarity index 100%
rename from Demo/PIC18_WizC/Demo6/WIZCmake.h
rename to FreeRTOS/Demo/PIC18_WizC/Demo6/WIZCmake.h
diff --git a/Demo/PIC18_WizC/Demo6/fuses.c b/FreeRTOS/Demo/PIC18_WizC/Demo6/fuses.c
similarity index 100%
rename from Demo/PIC18_WizC/Demo6/fuses.c
rename to FreeRTOS/Demo/PIC18_WizC/Demo6/fuses.c
diff --git a/Demo/PIC18_WizC/Demo6/interrupt.c b/FreeRTOS/Demo/PIC18_WizC/Demo6/interrupt.c
similarity index 100%
rename from Demo/PIC18_WizC/Demo6/interrupt.c
rename to FreeRTOS/Demo/PIC18_WizC/Demo6/interrupt.c
diff --git a/Demo/PIC18_WizC/Demo6/main.c b/FreeRTOS/Demo/PIC18_WizC/Demo6/main.c
similarity index 100%
rename from Demo/PIC18_WizC/Demo6/main.c
rename to FreeRTOS/Demo/PIC18_WizC/Demo6/main.c
diff --git a/Demo/PIC18_WizC/Demo7/Demo7.PC b/FreeRTOS/Demo/PIC18_WizC/Demo7/Demo7.PC
similarity index 100%
rename from Demo/PIC18_WizC/Demo7/Demo7.PC
rename to FreeRTOS/Demo/PIC18_WizC/Demo7/Demo7.PC
diff --git a/Demo/PIC18_WizC/Demo7/FreeRTOSConfig.h b/FreeRTOS/Demo/PIC18_WizC/Demo7/FreeRTOSConfig.h
similarity index 100%
rename from Demo/PIC18_WizC/Demo7/FreeRTOSConfig.h
rename to FreeRTOS/Demo/PIC18_WizC/Demo7/FreeRTOSConfig.h
diff --git a/Demo/PIC18_WizC/Demo7/MallocConfig.h b/FreeRTOS/Demo/PIC18_WizC/Demo7/MallocConfig.h
similarity index 100%
rename from Demo/PIC18_WizC/Demo7/MallocConfig.h
rename to FreeRTOS/Demo/PIC18_WizC/Demo7/MallocConfig.h
diff --git a/Demo/PIC18_WizC/Demo7/WIZCmake.h b/FreeRTOS/Demo/PIC18_WizC/Demo7/WIZCmake.h
similarity index 100%
rename from Demo/PIC18_WizC/Demo7/WIZCmake.h
rename to FreeRTOS/Demo/PIC18_WizC/Demo7/WIZCmake.h
diff --git a/Demo/PIC18_WizC/Demo7/fuses.c b/FreeRTOS/Demo/PIC18_WizC/Demo7/fuses.c
similarity index 100%
rename from Demo/PIC18_WizC/Demo7/fuses.c
rename to FreeRTOS/Demo/PIC18_WizC/Demo7/fuses.c
diff --git a/Demo/PIC18_WizC/Demo7/interrupt.c b/FreeRTOS/Demo/PIC18_WizC/Demo7/interrupt.c
similarity index 100%
rename from Demo/PIC18_WizC/Demo7/interrupt.c
rename to FreeRTOS/Demo/PIC18_WizC/Demo7/interrupt.c
diff --git a/Demo/PIC18_WizC/Demo7/main.c b/FreeRTOS/Demo/PIC18_WizC/Demo7/main.c
similarity index 100%
rename from Demo/PIC18_WizC/Demo7/main.c
rename to FreeRTOS/Demo/PIC18_WizC/Demo7/main.c
diff --git a/Demo/PIC18_WizC/ParTest/ParTest.c b/FreeRTOS/Demo/PIC18_WizC/ParTest/ParTest.c
similarity index 100%
rename from Demo/PIC18_WizC/ParTest/ParTest.c
rename to FreeRTOS/Demo/PIC18_WizC/ParTest/ParTest.c
diff --git a/Demo/PIC18_WizC/serial/isrSerialRx.c b/FreeRTOS/Demo/PIC18_WizC/serial/isrSerialRx.c
similarity index 100%
rename from Demo/PIC18_WizC/serial/isrSerialRx.c
rename to FreeRTOS/Demo/PIC18_WizC/serial/isrSerialRx.c
diff --git a/Demo/PIC18_WizC/serial/isrSerialTx.c b/FreeRTOS/Demo/PIC18_WizC/serial/isrSerialTx.c
similarity index 100%
rename from Demo/PIC18_WizC/serial/isrSerialTx.c
rename to FreeRTOS/Demo/PIC18_WizC/serial/isrSerialTx.c
diff --git a/Demo/PIC18_WizC/serial/serial.c b/FreeRTOS/Demo/PIC18_WizC/serial/serial.c
similarity index 100%
rename from Demo/PIC18_WizC/serial/serial.c
rename to FreeRTOS/Demo/PIC18_WizC/serial/serial.c
diff --git a/Demo/PIC24_MPLAB/FreeRTOSConfig.h b/FreeRTOS/Demo/PIC24_MPLAB/FreeRTOSConfig.h
similarity index 100%
rename from Demo/PIC24_MPLAB/FreeRTOSConfig.h
rename to FreeRTOS/Demo/PIC24_MPLAB/FreeRTOSConfig.h
diff --git a/Demo/PIC24_MPLAB/ParTest/ParTest.c b/FreeRTOS/Demo/PIC24_MPLAB/ParTest/ParTest.c
similarity index 100%
rename from Demo/PIC24_MPLAB/ParTest/ParTest.c
rename to FreeRTOS/Demo/PIC24_MPLAB/ParTest/ParTest.c
diff --git a/Demo/PIC24_MPLAB/RTOSDemo.mcs b/FreeRTOS/Demo/PIC24_MPLAB/RTOSDemo.mcs
similarity index 100%
rename from Demo/PIC24_MPLAB/RTOSDemo.mcs
rename to FreeRTOS/Demo/PIC24_MPLAB/RTOSDemo.mcs
diff --git a/Demo/PIC24_MPLAB/RTOSDemo.mcw b/FreeRTOS/Demo/PIC24_MPLAB/RTOSDemo.mcw
similarity index 100%
rename from Demo/PIC24_MPLAB/RTOSDemo.mcw
rename to FreeRTOS/Demo/PIC24_MPLAB/RTOSDemo.mcw
diff --git a/Demo/PIC24_MPLAB/RTOSDemo_PIC24.mcp b/FreeRTOS/Demo/PIC24_MPLAB/RTOSDemo_PIC24.mcp
similarity index 100%
rename from Demo/PIC24_MPLAB/RTOSDemo_PIC24.mcp
rename to FreeRTOS/Demo/PIC24_MPLAB/RTOSDemo_PIC24.mcp
diff --git a/Demo/PIC24_MPLAB/RTOSDemo_PIC24.mcs b/FreeRTOS/Demo/PIC24_MPLAB/RTOSDemo_PIC24.mcs
similarity index 100%
rename from Demo/PIC24_MPLAB/RTOSDemo_PIC24.mcs
rename to FreeRTOS/Demo/PIC24_MPLAB/RTOSDemo_PIC24.mcs
diff --git a/Demo/PIC24_MPLAB/lcd.c b/FreeRTOS/Demo/PIC24_MPLAB/lcd.c
similarity index 100%
rename from Demo/PIC24_MPLAB/lcd.c
rename to FreeRTOS/Demo/PIC24_MPLAB/lcd.c
diff --git a/Demo/PIC24_MPLAB/lcd.h b/FreeRTOS/Demo/PIC24_MPLAB/lcd.h
similarity index 100%
rename from Demo/PIC24_MPLAB/lcd.h
rename to FreeRTOS/Demo/PIC24_MPLAB/lcd.h
diff --git a/Demo/PIC24_MPLAB/main.c b/FreeRTOS/Demo/PIC24_MPLAB/main.c
similarity index 100%
rename from Demo/PIC24_MPLAB/main.c
rename to FreeRTOS/Demo/PIC24_MPLAB/main.c
diff --git a/Demo/PIC24_MPLAB/p24FJ128GA010.gld b/FreeRTOS/Demo/PIC24_MPLAB/p24FJ128GA010.gld
similarity index 100%
rename from Demo/PIC24_MPLAB/p24FJ128GA010.gld
rename to FreeRTOS/Demo/PIC24_MPLAB/p24FJ128GA010.gld
diff --git a/Demo/PIC24_MPLAB/serial/serial.c b/FreeRTOS/Demo/PIC24_MPLAB/serial/serial.c
similarity index 100%
rename from Demo/PIC24_MPLAB/serial/serial.c
rename to FreeRTOS/Demo/PIC24_MPLAB/serial/serial.c
diff --git a/Demo/PIC24_MPLAB/timertest.c b/FreeRTOS/Demo/PIC24_MPLAB/timertest.c
similarity index 100%
rename from Demo/PIC24_MPLAB/timertest.c
rename to FreeRTOS/Demo/PIC24_MPLAB/timertest.c
diff --git a/Demo/PIC24_MPLAB/timertest.h b/FreeRTOS/Demo/PIC24_MPLAB/timertest.h
similarity index 100%
rename from Demo/PIC24_MPLAB/timertest.h
rename to FreeRTOS/Demo/PIC24_MPLAB/timertest.h
diff --git a/Demo/PIC32MX_MPLAB/FreeRTOSConfig.h b/FreeRTOS/Demo/PIC32MX_MPLAB/FreeRTOSConfig.h
similarity index 100%
rename from Demo/PIC32MX_MPLAB/FreeRTOSConfig.h
rename to FreeRTOS/Demo/PIC32MX_MPLAB/FreeRTOSConfig.h
diff --git a/Demo/PIC32MX_MPLAB/IntQueueTimer.c b/FreeRTOS/Demo/PIC32MX_MPLAB/IntQueueTimer.c
similarity index 100%
rename from Demo/PIC32MX_MPLAB/IntQueueTimer.c
rename to FreeRTOS/Demo/PIC32MX_MPLAB/IntQueueTimer.c
diff --git a/Demo/PIC32MX_MPLAB/IntQueueTimer.h b/FreeRTOS/Demo/PIC32MX_MPLAB/IntQueueTimer.h
similarity index 100%
rename from Demo/PIC32MX_MPLAB/IntQueueTimer.h
rename to FreeRTOS/Demo/PIC32MX_MPLAB/IntQueueTimer.h
diff --git a/Demo/PIC32MX_MPLAB/IntQueueTimer_isr.S b/FreeRTOS/Demo/PIC32MX_MPLAB/IntQueueTimer_isr.S
similarity index 100%
rename from Demo/PIC32MX_MPLAB/IntQueueTimer_isr.S
rename to FreeRTOS/Demo/PIC32MX_MPLAB/IntQueueTimer_isr.S
diff --git a/Demo/PIC32MX_MPLAB/ParTest/ParTest.c b/FreeRTOS/Demo/PIC32MX_MPLAB/ParTest/ParTest.c
similarity index 100%
rename from Demo/PIC32MX_MPLAB/ParTest/ParTest.c
rename to FreeRTOS/Demo/PIC32MX_MPLAB/ParTest/ParTest.c
diff --git a/Demo/PIC32MX_MPLAB/RTOSDemo.X/Makefile b/FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/Makefile
similarity index 100%
rename from Demo/PIC32MX_MPLAB/RTOSDemo.X/Makefile
rename to FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/Makefile
diff --git a/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-EXPLORER_16_PIC32MX360.mk b/FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-EXPLORER_16_PIC32MX360.mk
similarity index 100%
rename from Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-EXPLORER_16_PIC32MX360.mk
rename to FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-EXPLORER_16_PIC32MX360.mk
diff --git a/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-EXPLORER_16_PIC32MX460.mk b/FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-EXPLORER_16_PIC32MX460.mk
similarity index 100%
rename from Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-EXPLORER_16_PIC32MX460.mk
rename to FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-EXPLORER_16_PIC32MX460.mk
diff --git a/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-EXPLORER_16_PIC32MX795.mk b/FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-EXPLORER_16_PIC32MX795.mk
similarity index 100%
rename from Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-EXPLORER_16_PIC32MX795.mk
rename to FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-EXPLORER_16_PIC32MX795.mk
diff --git a/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-genesis.properties b/FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-genesis.properties
similarity index 100%
rename from Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-genesis.properties
rename to FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-genesis.properties
diff --git a/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-impl.mk b/FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-impl.mk
similarity index 100%
rename from Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-impl.mk
rename to FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-impl.mk
diff --git a/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-local-EXPLORER_16_PIC32MX360.mk b/FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-local-EXPLORER_16_PIC32MX360.mk
similarity index 100%
rename from Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-local-EXPLORER_16_PIC32MX360.mk
rename to FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-local-EXPLORER_16_PIC32MX360.mk
diff --git a/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-local-EXPLORER_16_PIC32MX460.mk b/FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-local-EXPLORER_16_PIC32MX460.mk
similarity index 100%
rename from Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-local-EXPLORER_16_PIC32MX460.mk
rename to FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-local-EXPLORER_16_PIC32MX460.mk
diff --git a/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-local-EXPLORER_16_PIC32MX795.mk b/FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-local-EXPLORER_16_PIC32MX795.mk
similarity index 100%
rename from Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-local-EXPLORER_16_PIC32MX795.mk
rename to FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-local-EXPLORER_16_PIC32MX795.mk
diff --git a/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-variables.mk b/FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-variables.mk
similarity index 100%
rename from Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-variables.mk
rename to FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Makefile-variables.mk
diff --git a/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Package-EXPLORER_16_PIC32MX360.bash b/FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Package-EXPLORER_16_PIC32MX360.bash
similarity index 100%
rename from Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Package-EXPLORER_16_PIC32MX360.bash
rename to FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Package-EXPLORER_16_PIC32MX360.bash
diff --git a/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Package-EXPLORER_16_PIC32MX460.bash b/FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Package-EXPLORER_16_PIC32MX460.bash
similarity index 100%
rename from Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Package-EXPLORER_16_PIC32MX460.bash
rename to FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Package-EXPLORER_16_PIC32MX460.bash
diff --git a/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Package-EXPLORER_16_PIC32MX795.bash b/FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Package-EXPLORER_16_PIC32MX795.bash
similarity index 100%
rename from Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Package-EXPLORER_16_PIC32MX795.bash
rename to FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/Package-EXPLORER_16_PIC32MX795.bash
diff --git a/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/configurations.xml b/FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/configurations.xml
similarity index 100%
rename from Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/configurations.xml
rename to FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/configurations.xml
diff --git a/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/private/configurations.xml b/FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/private/configurations.xml
similarity index 100%
rename from Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/private/configurations.xml
rename to FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/private/configurations.xml
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/Autonym/regkeys b/FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/private/private.properties
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/Autonym/regkeys
rename to FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/private/private.properties
diff --git a/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/private/private.xml b/FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/private/private.xml
similarity index 100%
rename from Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/private/private.xml
rename to FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/private/private.xml
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xreport/regkeys b/FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/project.properties
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xreport/regkeys
rename to FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/project.properties
diff --git a/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/project.xml b/FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/project.xml
similarity index 100%
rename from Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/project.xml
rename to FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.X/nbproject/project.xml
diff --git a/Demo/PIC32MX_MPLAB/RTOSDemo.mcp b/FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.mcp
similarity index 100%
rename from Demo/PIC32MX_MPLAB/RTOSDemo.mcp
rename to FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.mcp
diff --git a/Demo/PIC32MX_MPLAB/RTOSDemo.mcs b/FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.mcs
similarity index 100%
rename from Demo/PIC32MX_MPLAB/RTOSDemo.mcs
rename to FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.mcs
diff --git a/Demo/PIC32MX_MPLAB/RTOSDemo.mcw b/FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.mcw
similarity index 100%
rename from Demo/PIC32MX_MPLAB/RTOSDemo.mcw
rename to FreeRTOS/Demo/PIC32MX_MPLAB/RTOSDemo.mcw
diff --git a/Demo/PIC32MX_MPLAB/RegisterTestTasks.S b/FreeRTOS/Demo/PIC32MX_MPLAB/RegisterTestTasks.S
similarity index 100%
rename from Demo/PIC32MX_MPLAB/RegisterTestTasks.S
rename to FreeRTOS/Demo/PIC32MX_MPLAB/RegisterTestTasks.S
diff --git a/Demo/PIC32MX_MPLAB/lcd.c b/FreeRTOS/Demo/PIC32MX_MPLAB/lcd.c
similarity index 100%
rename from Demo/PIC32MX_MPLAB/lcd.c
rename to FreeRTOS/Demo/PIC32MX_MPLAB/lcd.c
diff --git a/Demo/PIC32MX_MPLAB/lcd.h b/FreeRTOS/Demo/PIC32MX_MPLAB/lcd.h
similarity index 100%
rename from Demo/PIC32MX_MPLAB/lcd.h
rename to FreeRTOS/Demo/PIC32MX_MPLAB/lcd.h
diff --git a/Demo/PIC32MX_MPLAB/main.c b/FreeRTOS/Demo/PIC32MX_MPLAB/main.c
similarity index 100%
rename from Demo/PIC32MX_MPLAB/main.c
rename to FreeRTOS/Demo/PIC32MX_MPLAB/main.c
diff --git a/Demo/PIC32MX_MPLAB/main_blinky.c b/FreeRTOS/Demo/PIC32MX_MPLAB/main_blinky.c
similarity index 100%
rename from Demo/PIC32MX_MPLAB/main_blinky.c
rename to FreeRTOS/Demo/PIC32MX_MPLAB/main_blinky.c
diff --git a/Demo/PIC32MX_MPLAB/main_full.c b/FreeRTOS/Demo/PIC32MX_MPLAB/main_full.c
similarity index 100%
rename from Demo/PIC32MX_MPLAB/main_full.c
rename to FreeRTOS/Demo/PIC32MX_MPLAB/main_full.c
diff --git a/Demo/PIC32MX_MPLAB/printf-stdarg.c b/FreeRTOS/Demo/PIC32MX_MPLAB/printf-stdarg.c
similarity index 100%
rename from Demo/PIC32MX_MPLAB/printf-stdarg.c
rename to FreeRTOS/Demo/PIC32MX_MPLAB/printf-stdarg.c
diff --git a/Demo/PIC32MX_MPLAB/serial/serial.c b/FreeRTOS/Demo/PIC32MX_MPLAB/serial/serial.c
similarity index 100%
rename from Demo/PIC32MX_MPLAB/serial/serial.c
rename to FreeRTOS/Demo/PIC32MX_MPLAB/serial/serial.c
diff --git a/Demo/PIC32MX_MPLAB/serial/serial_isr.S b/FreeRTOS/Demo/PIC32MX_MPLAB/serial/serial_isr.S
similarity index 100%
rename from Demo/PIC32MX_MPLAB/serial/serial_isr.S
rename to FreeRTOS/Demo/PIC32MX_MPLAB/serial/serial_isr.S
diff --git a/Demo/PIC32MX_MPLAB/timertest.c b/FreeRTOS/Demo/PIC32MX_MPLAB/timertest.c
similarity index 100%
rename from Demo/PIC32MX_MPLAB/timertest.c
rename to FreeRTOS/Demo/PIC32MX_MPLAB/timertest.c
diff --git a/Demo/PIC32MX_MPLAB/timertest.h b/FreeRTOS/Demo/PIC32MX_MPLAB/timertest.h
similarity index 100%
rename from Demo/PIC32MX_MPLAB/timertest.h
rename to FreeRTOS/Demo/PIC32MX_MPLAB/timertest.h
diff --git a/Demo/PIC32MX_MPLAB/timertest_isr.S b/FreeRTOS/Demo/PIC32MX_MPLAB/timertest_isr.S
similarity index 100%
rename from Demo/PIC32MX_MPLAB/timertest_isr.S
rename to FreeRTOS/Demo/PIC32MX_MPLAB/timertest_isr.S
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/FreeRTOSConfig.h b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/FreeRTOSConfig.h
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/FreeRTOSConfig.h
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/FreeRTOSConfig.h
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/RTOSDemo_linker_script.ld b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/RTOSDemo_linker_script.ld
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/RTOSDemo_linker_script.ld
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/RTOSDemo_linker_script.ld
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop-reg-test.c b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop-reg-test.c
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop-reg-test.c
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop-reg-test.c
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop-reg-test.h b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop-reg-test.h
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop-reg-test.h
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop-reg-test.h
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop.c b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop.c
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop.c
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop.c
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/main.c b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/main.c
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/main.c
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/main.c
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/partest/partest.c b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/partest/partest.c
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/partest/partest.c
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/partest/partest.c
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/serial/serial.c b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/serial/serial.c
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/serial/serial.c
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/serial/serial.c
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_BifShapes.xsl b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_BifShapes.xsl
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_BifShapes.xsl
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_BifShapes.xsl
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_Colors.xsl b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_Colors.xsl
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_Colors.xsl
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_Colors.xsl
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_Diagrams.css b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_Diagrams.css
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_Diagrams.css
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_Diagrams.css
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_BusLaneSpaces.xsl b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_BusLaneSpaces.xsl
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_BusLaneSpaces.xsl
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_BusLaneSpaces.xsl
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Busses.xsl b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Busses.xsl
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Busses.xsl
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Busses.xsl
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Calculations.xsl b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Calculations.xsl
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Calculations.xsl
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Calculations.xsl
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_IOPorts.xsl b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_IOPorts.xsl
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_IOPorts.xsl
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_IOPorts.xsl
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Main.xsl b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Main.xsl
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Main.xsl
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Main.xsl
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Peripherals.xsl b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Peripherals.xsl
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Peripherals.xsl
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Peripherals.xsl
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Processors.xsl b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Processors.xsl
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Processors.xsl
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Processors.xsl
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLDatasheet.css b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLDatasheet.css
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLDatasheet.css
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLDatasheet.css
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLDatasheet.xsl b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLDatasheet.xsl
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLDatasheet.xsl
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLDatasheet.xsl
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLIPSection.xsl b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLIPSection.xsl
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLIPSection.xsl
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLIPSection.xsl
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLMemoryMap.xsl b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLMemoryMap.xsl
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLMemoryMap.xsl
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLMemoryMap.xsl
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLTOCTree.xsl b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLTOCTree.xsl
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLTOCTree.xsl
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLTOCTree.xsl
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/svg10.dtd b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/svg10.dtd
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/svg10.dtd
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/svg10.dtd
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/system_shapes.xml b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/system_shapes.xml
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/system_shapes.xml
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/system_shapes.xml
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/bitinit.opt b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/bitinit.opt
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/bitinit.opt
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/bitinit.opt
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/libgen.opt b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/libgen.opt
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/libgen.opt
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/libgen.opt
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/platgen.opt b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/platgen.opt
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/platgen.opt
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/platgen.opt
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/rtosdemo_compiler.opt b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/rtosdemo_compiler.opt
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/rtosdemo_compiler.opt
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/rtosdemo_compiler.opt
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/simgen.opt b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/simgen.opt
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/simgen.opt
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/simgen.opt
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/system.gui b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/system.gui
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/system.gui
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/system.gui
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/xmsgprops.lst b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/system_routed
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/xmsgprops.lst
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/system_routed
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/testapp_peripheral_compiler.opt b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/testapp_peripheral_compiler.opt
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/testapp_peripheral_compiler.opt
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/testapp_peripheral_compiler.opt
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/vpgen.opt b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/vpgen.opt
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/vpgen.opt
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/vpgen.opt
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/xplorer.opt b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/xplorer.opt
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/xplorer.opt
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/xplorer.opt
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/xpsxflow.opt b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/xpsxflow.opt
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/xpsxflow.opt
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/xpsxflow.opt
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/blkdiagram/svg10.dtd b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/blkdiagram/svg10.dtd
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/blkdiagram/svg10.dtd
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/blkdiagram/svg10.dtd
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/blkdiagram/system.css b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/blkdiagram/system.css
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/blkdiagram/system.css
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/blkdiagram/system.css
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/blkdiagram/system.html b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/blkdiagram/system.html
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/blkdiagram/system.html
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/blkdiagram/system.html
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/blkdiagram/system.svg b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/blkdiagram/system.svg
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/blkdiagram/system.svg
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/blkdiagram/system.svg
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/data/system.ucf b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/data/system.ucf
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/data/system.ucf
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/data/system.ucf
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/etc/bitgen.ut b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/etc/bitgen.ut
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/etc/bitgen.ut
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/etc/bitgen.ut
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/etc/download.cmd b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/etc/download.cmd
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/etc/download.cmd
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/etc/download.cmd
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/etc/fast_runtime.opt b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/etc/fast_runtime.opt
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/etc/fast_runtime.opt
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/etc/fast_runtime.opt
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/etc/xmd_ppc405_0.opt b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/etc/xmd_ppc405_0.opt
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/etc/xmd_ppc405_0.opt
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/etc/xmd_ppc405_0.opt
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/platgen.opt b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/platgen.opt
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/platgen.opt
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/platgen.opt
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system.bsb b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system.bsb
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system.bsb
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system.bsb
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system.make b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system.make
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system.make
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system.make
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system.mhs b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system.mhs
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system.mhs
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system.mhs
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system.mss b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system.mss
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system.mss
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system.mss
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system.xmp b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system.xmp
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system.xmp
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system.xmp
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system_incl.make b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system_incl.make
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system_incl.make
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system_incl.make
diff --git a/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/wizlog b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/wizlog
similarity index 100%
rename from Demo/PPC405_FPU_Xilinx_Virtex4_GCC/wizlog
rename to FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/wizlog
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/FreeRTOSConfig.h b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/FreeRTOSConfig.h
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/FreeRTOSConfig.h
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/FreeRTOSConfig.h
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/RTOSDemo_linker_script.ld b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/RTOSDemo_linker_script.ld
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/RTOSDemo_linker_script.ld
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/RTOSDemo_linker_script.ld
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop-reg-test.c b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop-reg-test.c
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop-reg-test.c
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop-reg-test.c
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop-reg-test.h b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop-reg-test.h
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop-reg-test.h
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop-reg-test.h
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop.c b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop.c
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop.c
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop.c
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/main.c b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/main.c
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/main.c
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/main.c
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/partest/partest.c b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/partest/partest.c
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/partest/partest.c
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/partest/partest.c
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/serial/serial.c b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/serial/serial.c
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/serial/serial.c
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/serial/serial.c
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_BifShapes.xsl b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_BifShapes.xsl
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_BifShapes.xsl
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_BifShapes.xsl
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_Colors.xsl b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_Colors.xsl
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_Colors.xsl
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_Colors.xsl
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_Diagrams.css b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_Diagrams.css
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_Diagrams.css
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_Diagrams.css
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_BusLaneSpaces.xsl b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_BusLaneSpaces.xsl
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_BusLaneSpaces.xsl
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_BusLaneSpaces.xsl
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Busses.xsl b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Busses.xsl
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Busses.xsl
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Busses.xsl
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Calculations.xsl b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Calculations.xsl
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Calculations.xsl
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Calculations.xsl
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_IOPorts.xsl b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_IOPorts.xsl
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_IOPorts.xsl
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_IOPorts.xsl
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Main.xsl b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Main.xsl
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Main.xsl
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Main.xsl
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Peripherals.xsl b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Peripherals.xsl
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Peripherals.xsl
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Peripherals.xsl
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Processors.xsl b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Processors.xsl
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Processors.xsl
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Processors.xsl
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLDatasheet.css b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLDatasheet.css
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLDatasheet.css
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLDatasheet.css
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLDatasheet.xsl b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLDatasheet.xsl
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLDatasheet.xsl
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLDatasheet.xsl
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLIPSection.xsl b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLIPSection.xsl
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLIPSection.xsl
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLIPSection.xsl
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLMemoryMap.xsl b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLMemoryMap.xsl
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLMemoryMap.xsl
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLMemoryMap.xsl
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLTOCTree.xsl b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLTOCTree.xsl
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLTOCTree.xsl
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLTOCTree.xsl
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/svg10.dtd b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/svg10.dtd
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/svg10.dtd
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/svg10.dtd
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/system_shapes.xml b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/system_shapes.xml
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/system_shapes.xml
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/system_shapes.xml
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/bitinit.opt b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/bitinit.opt
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/__xps/bitinit.opt
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/bitinit.opt
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/libgen.opt b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/libgen.opt
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/__xps/libgen.opt
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/libgen.opt
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/platgen.opt b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/platgen.opt
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/__xps/platgen.opt
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/platgen.opt
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/rtosdemo_compiler.opt b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/rtosdemo_compiler.opt
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/__xps/rtosdemo_compiler.opt
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/rtosdemo_compiler.opt
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/simgen.opt b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/simgen.opt
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/__xps/simgen.opt
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/simgen.opt
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/system.gui b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/system.gui
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/__xps/system.gui
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/system.gui
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/Autonym/regkeys b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/system_routed
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/Autonym/regkeys
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/system_routed
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/testapp_peripheral_compiler.opt b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/testapp_peripheral_compiler.opt
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/__xps/testapp_peripheral_compiler.opt
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/testapp_peripheral_compiler.opt
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/vpgen.opt b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/vpgen.opt
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/__xps/vpgen.opt
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/vpgen.opt
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/xplorer.opt b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/xplorer.opt
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/__xps/xplorer.opt
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/xplorer.opt
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/xpsxflow.opt b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/xpsxflow.opt
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/__xps/xpsxflow.opt
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/xpsxflow.opt
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/blkdiagram/svg10.dtd b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/blkdiagram/svg10.dtd
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/blkdiagram/svg10.dtd
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/blkdiagram/svg10.dtd
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/blkdiagram/system.css b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/blkdiagram/system.css
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/blkdiagram/system.css
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/blkdiagram/system.css
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/blkdiagram/system.html b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/blkdiagram/system.html
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/blkdiagram/system.html
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/blkdiagram/system.html
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/blkdiagram/system.svg b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/blkdiagram/system.svg
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/blkdiagram/system.svg
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/blkdiagram/system.svg
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/data/system.ucf b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/data/system.ucf
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/data/system.ucf
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/data/system.ucf
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/etc/bitgen.ut b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/etc/bitgen.ut
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/etc/bitgen.ut
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/etc/bitgen.ut
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/etc/download.cmd b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/etc/download.cmd
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/etc/download.cmd
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/etc/download.cmd
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/etc/fast_runtime.opt b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/etc/fast_runtime.opt
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/etc/fast_runtime.opt
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/etc/fast_runtime.opt
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/etc/xmd_ppc405_0.opt b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/etc/xmd_ppc405_0.opt
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/etc/xmd_ppc405_0.opt
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/etc/xmd_ppc405_0.opt
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/platgen.opt b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/platgen.opt
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/platgen.opt
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/platgen.opt
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/system.bsb b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/system.bsb
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/system.bsb
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/system.bsb
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/system.make b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/system.make
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/system.make
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/system.make
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/system.mhs b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/system.mhs
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/system.mhs
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/system.mhs
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/system.mss b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/system.mss
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/system.mss
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/system.mss
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/system.xmp b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/system.xmp
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/system.xmp
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/system.xmp
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/system_incl.make b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/system_incl.make
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/system_incl.make
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/system_incl.make
diff --git a/Demo/PPC405_Xilinx_Virtex4_GCC/wizlog b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/wizlog
similarity index 100%
rename from Demo/PPC405_Xilinx_Virtex4_GCC/wizlog
rename to FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/wizlog
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/FreeRTOSConfig.h b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/FreeRTOSConfig.h
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/FreeRTOSConfig.h
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/FreeRTOSConfig.h
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.h b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.h
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.h
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.h
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/Version_Changes.log b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/Version_Changes.log
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/Version_Changes.log
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/Version_Changes.log
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Colors.xsl b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Colors.xsl
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Colors.xsl
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Colors.xsl
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Globals.xsl b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Globals.xsl
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Globals.xsl
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Globals.xsl
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_BusLaneSpaces.xsl b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_BusLaneSpaces.xsl
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_BusLaneSpaces.xsl
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_BusLaneSpaces.xsl
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Functions.xsl b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Functions.xsl
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Functions.xsl
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Functions.xsl
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Globals.xsl b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Globals.xsl
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Globals.xsl
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Globals.xsl
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_IOPorts.xsl b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_IOPorts.xsl
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_IOPorts.xsl
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_IOPorts.xsl
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Peripherals.xsl b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Peripherals.xsl
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Peripherals.xsl
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Peripherals.xsl
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Processors.xsl b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Processors.xsl
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Processors.xsl
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Processors.xsl
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgDiag_BifShapes.xsl b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgDiag_BifShapes.xsl
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgDiag_BifShapes.xsl
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgDiag_BifShapes.xsl
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/svg10.dtd b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/svg10.dtd
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/svg10.dtd
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/svg10.dtd
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/bitinit.opt b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/bitinit.opt
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/bitinit.opt
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/bitinit.opt
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.gise b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.gise
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.gise
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.gise
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.ise b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.ise
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.ise
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.ise
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.xise b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.xise
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.xise
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.xise
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise.lock b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise.lock
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise.lock
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise.lock
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject_StrTbl b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject_StrTbl
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject_StrTbl
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject_StrTbl
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/__stored_object_table__ b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/__stored_object_table__
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/__stored_object_table__
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/__stored_object_table__
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl_StrTbl b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl_StrTbl
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl_StrTbl
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl_StrTbl
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main_StrTbl b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main_StrTbl
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main_StrTbl
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main_StrTbl
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module_StrTbl b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module_StrTbl
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module_StrTbl
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module_StrTbl
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system_StrTbl b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system_StrTbl
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system_StrTbl
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system_StrTbl
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default_StrTbl b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default_StrTbl
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default_StrTbl
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default_StrTbl
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xreport/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/Autonym/regkeys
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xreport/regkeys
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/Autonym/regkeys
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/HDProject/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/HDProject/regkeys
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/HDProject/regkeys
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/HDProject/regkeys
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator/regkeys
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator/regkeys
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator/regkeys
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator11/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator11/regkeys
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator11/regkeys
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator11/regkeys
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/XSLTProcess/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/XSLTProcess/regkeys
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/XSLTProcess/regkeys
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/XSLTProcess/regkeys
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/_ProjRepoInternal_/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/_ProjRepoInternal_/regkeys
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/_ProjRepoInternal_/regkeys
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/_ProjRepoInternal_/regkeys
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitgen/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitgen/regkeys
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitgen/regkeys
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitgen/regkeys
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitinit/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitinit/regkeys
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitinit/regkeys
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitinit/regkeys
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/common/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/common/regkeys
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/common/regkeys
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/common/regkeys
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/cpldfit/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/cpldfit/regkeys
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/cpldfit/regkeys
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/cpldfit/regkeys
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/dumpngdio/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/dumpngdio/regkeys
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/dumpngdio/regkeys
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/dumpngdio/regkeys
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/fuse/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/fuse/regkeys
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/fuse/regkeys
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/fuse/regkeys
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/hprep6/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/hprep6/regkeys
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/hprep6/regkeys
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/hprep6/regkeys
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/idem/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/idem/regkeys
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/idem/regkeys
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/idem/regkeys
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/libgen/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/libgen/regkeys
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/libgen/regkeys
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/libgen/regkeys
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/map/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/map/regkeys
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/map/regkeys
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/map/regkeys
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/netgen/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/netgen/regkeys
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/netgen/regkeys
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/netgen/regkeys
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngc2edif/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngc2edif/regkeys
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngc2edif/regkeys
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngc2edif/regkeys
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngcbuild/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngcbuild/regkeys
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngcbuild/regkeys
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngcbuild/regkeys
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngdbuild/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngdbuild/regkeys
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngdbuild/regkeys
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngdbuild/regkeys
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/par/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/par/regkeys
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/par/regkeys
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/par/regkeys
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/platgen/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/platgen/regkeys
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/platgen/regkeys
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/platgen/regkeys
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/runner/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/runner/regkeys
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/runner/regkeys
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/runner/regkeys
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/simgen/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/simgen/regkeys
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/simgen/regkeys
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/simgen/regkeys
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/taengine/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/taengine/regkeys
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/taengine/regkeys
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/taengine/regkeys
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/trce/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/trce/regkeys
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/trce/regkeys
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/trce/regkeys
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/tsim/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/tsim/regkeys
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/tsim/regkeys
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/tsim/regkeys
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vhpcomp/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vhpcomp/regkeys
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vhpcomp/regkeys
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vhpcomp/regkeys
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vlogcomp/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vlogcomp/regkeys
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vlogcomp/regkeys
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vlogcomp/regkeys
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xpwr/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xpwr/regkeys
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xpwr/regkeys
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xpwr/regkeys
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/Autonym/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xreport/regkeys
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/Autonym/regkeys
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xreport/regkeys
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xst/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xst/regkeys
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xst/regkeys
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xst/regkeys
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/version b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/version
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/version
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/version
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/xmsgprops.lst b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/xmsgprops.lst
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/xmsgprops.lst
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/xmsgprops.lst
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/libgen.opt b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/libgen.opt
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/libgen.opt
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/libgen.opt
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/platgen.opt b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/platgen.opt
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/platgen.opt
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/platgen.opt
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/rtosdemo_compiler.opt b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/rtosdemo_compiler.opt
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/rtosdemo_compiler.opt
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/rtosdemo_compiler.opt
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/simgen.opt b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/simgen.opt
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/simgen.opt
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/simgen.opt
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/system.filters b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/system.filters
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/system.filters
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/system.filters
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/system.gui b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/system.gui
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/system.gui
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/system.gui
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/xplorer.opt b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/xplorer.opt
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/xplorer.opt
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/xplorer.opt
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/xpsxflow.opt b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/xpsxflow.opt
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/xpsxflow.opt
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/xpsxflow.opt
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/blockdiagram/svg10.dtd b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/blockdiagram/svg10.dtd
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/blockdiagram/svg10.dtd
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/blockdiagram/svg10.dtd
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.css b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.css
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.css
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.css
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.svg b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.svg
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.svg
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.svg
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/data/system.ucf b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/data/system.ucf
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/data/system.ucf
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/data/system.ucf
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/etc/bitgen.ut b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/etc/bitgen.ut
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/etc/bitgen.ut
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/etc/bitgen.ut
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/etc/download.cmd b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/etc/download.cmd
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/etc/download.cmd
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/etc/download.cmd
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/etc/fast_runtime.opt b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/etc/fast_runtime.opt
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/etc/fast_runtime.opt
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/etc/fast_runtime.opt
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/revup/system_mhs.11.1 b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/revup/system_mhs.11.1
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/revup/system_mhs.11.1
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/revup/system_mhs.11.1
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/revup/system_mss.11.1 b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/revup/system_mss.11.1
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/revup/system_mss.11.1
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/revup/system_mss.11.1
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/revup/system_xmp.11.1 b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/revup/system_xmp.11.1
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/revup/system_xmp.11.1
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/revup/system_xmp.11.1
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.bsb b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.bsb
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.bsb
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.bsb
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.log b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.log
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.log
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.log
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.make b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.make
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.make
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.make
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.mhs b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.mhs
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.mhs
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.mhs
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.mss b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.mss
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.mss
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.mss
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.xmp b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.xmp
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.xmp
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.xmp
diff --git a/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system_incl.make b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system_incl.make
similarity index 100%
rename from Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system_incl.make
rename to FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system_incl.make
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/FreeRTOSConfig.h b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/FreeRTOSConfig.h
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/FreeRTOSConfig.h
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/FreeRTOSConfig.h
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.h b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.h
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.h
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.h
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/Version_Changes.log b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/Version_Changes.log
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/Version_Changes.log
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/Version_Changes.log
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Colors.xsl b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Colors.xsl
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Colors.xsl
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Colors.xsl
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Globals.xsl b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Globals.xsl
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Globals.xsl
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Globals.xsl
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_BusLaneSpaces.xsl b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_BusLaneSpaces.xsl
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_BusLaneSpaces.xsl
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_BusLaneSpaces.xsl
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Functions.xsl b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Functions.xsl
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Functions.xsl
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Functions.xsl
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Globals.xsl b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Globals.xsl
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Globals.xsl
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Globals.xsl
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_IOPorts.xsl b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_IOPorts.xsl
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_IOPorts.xsl
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_IOPorts.xsl
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Peripherals.xsl b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Peripherals.xsl
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Peripherals.xsl
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Peripherals.xsl
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Processors.xsl b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Processors.xsl
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Processors.xsl
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Processors.xsl
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgDiag_BifShapes.xsl b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgDiag_BifShapes.xsl
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgDiag_BifShapes.xsl
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgDiag_BifShapes.xsl
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/svg10.dtd b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/svg10.dtd
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/svg10.dtd
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/svg10.dtd
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/bitinit.opt b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/bitinit.opt
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/bitinit.opt
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/bitinit.opt
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.gise b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.gise
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.gise
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.gise
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.ise b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.ise
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.ise
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.ise
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.xise b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.xise
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.xise
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.xise
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise.lock b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise.lock
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise.lock
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise.lock
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject_StrTbl b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject_StrTbl
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject_StrTbl
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject_StrTbl
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/__stored_object_table__ b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/__stored_object_table__
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/__stored_object_table__
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/__stored_object_table__
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl_StrTbl b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl_StrTbl
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl_StrTbl
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl_StrTbl
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main_StrTbl b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main_StrTbl
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main_StrTbl
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main_StrTbl
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module_StrTbl b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module_StrTbl
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module_StrTbl
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module_StrTbl
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system_StrTbl b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system_StrTbl
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system_StrTbl
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system_StrTbl
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default_StrTbl b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default_StrTbl
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default_StrTbl
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default_StrTbl
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/Autonym/regkeys
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/regkeys
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/Autonym/regkeys
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/HDProject/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/HDProject/regkeys
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/HDProject/regkeys
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/HDProject/regkeys
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator/regkeys
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator/regkeys
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator/regkeys
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator11/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator11/regkeys
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator11/regkeys
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator11/regkeys
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/XSLTProcess/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/XSLTProcess/regkeys
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/XSLTProcess/regkeys
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/XSLTProcess/regkeys
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/_ProjRepoInternal_/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/_ProjRepoInternal_/regkeys
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/_ProjRepoInternal_/regkeys
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/_ProjRepoInternal_/regkeys
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitgen/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitgen/regkeys
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitgen/regkeys
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitgen/regkeys
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitinit/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitinit/regkeys
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitinit/regkeys
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitinit/regkeys
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/common/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/common/regkeys
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/common/regkeys
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/common/regkeys
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/cpldfit/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/cpldfit/regkeys
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/cpldfit/regkeys
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/cpldfit/regkeys
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/dumpngdio/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/dumpngdio/regkeys
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/dumpngdio/regkeys
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/dumpngdio/regkeys
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/fuse/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/fuse/regkeys
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/fuse/regkeys
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/fuse/regkeys
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/hprep6/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/hprep6/regkeys
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/hprep6/regkeys
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/hprep6/regkeys
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/idem/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/idem/regkeys
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/idem/regkeys
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/idem/regkeys
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/libgen/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/libgen/regkeys
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/libgen/regkeys
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/libgen/regkeys
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/map/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/map/regkeys
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/map/regkeys
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/map/regkeys
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/netgen/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/netgen/regkeys
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/netgen/regkeys
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/netgen/regkeys
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngc2edif/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngc2edif/regkeys
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngc2edif/regkeys
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngc2edif/regkeys
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngcbuild/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngcbuild/regkeys
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngcbuild/regkeys
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngcbuild/regkeys
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngdbuild/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngdbuild/regkeys
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngdbuild/regkeys
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngdbuild/regkeys
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/par/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/par/regkeys
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/par/regkeys
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/par/regkeys
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/platgen/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/platgen/regkeys
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/platgen/regkeys
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/platgen/regkeys
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/runner/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/runner/regkeys
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/runner/regkeys
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/runner/regkeys
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/simgen/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/simgen/regkeys
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/simgen/regkeys
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/simgen/regkeys
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/taengine/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/taengine/regkeys
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/taengine/regkeys
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/taengine/regkeys
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/trce/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/trce/regkeys
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/trce/regkeys
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/trce/regkeys
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/tsim/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/tsim/regkeys
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/tsim/regkeys
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/tsim/regkeys
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vhpcomp/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vhpcomp/regkeys
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vhpcomp/regkeys
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vhpcomp/regkeys
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vlogcomp/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vlogcomp/regkeys
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vlogcomp/regkeys
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vlogcomp/regkeys
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xpwr/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xpwr/regkeys
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xpwr/regkeys
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xpwr/regkeys
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xreport/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xreport/regkeys
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xreport/regkeys
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xreport/regkeys
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xst/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xst/regkeys
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xst/regkeys
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xst/regkeys
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/version b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/version
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/version
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/version
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/xmsgprops.lst b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/xmsgprops.lst
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/xmsgprops.lst
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/xmsgprops.lst
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/libgen.opt b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/libgen.opt
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/libgen.opt
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/libgen.opt
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/platgen.opt b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/platgen.opt
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/platgen.opt
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/platgen.opt
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/rtosdemo_compiler.opt b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/rtosdemo_compiler.opt
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/rtosdemo_compiler.opt
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/rtosdemo_compiler.opt
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/simgen.opt b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/simgen.opt
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/simgen.opt
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/simgen.opt
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/system.filters b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/system.filters
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/system.filters
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/system.filters
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/system.gui b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/system.gui
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/system.gui
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/system.gui
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/xplorer.opt b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/xplorer.opt
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/xplorer.opt
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/xplorer.opt
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/xpsxflow.opt b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/xpsxflow.opt
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/xpsxflow.opt
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/xpsxflow.opt
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/blockdiagram/svg10.dtd b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/blockdiagram/svg10.dtd
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/blockdiagram/svg10.dtd
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/blockdiagram/svg10.dtd
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.css b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.css
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.css
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.css
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.svg b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.svg
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.svg
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.svg
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/data/system.ucf b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/data/system.ucf
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/data/system.ucf
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/data/system.ucf
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/etc/bitgen.ut b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/etc/bitgen.ut
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/etc/bitgen.ut
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/etc/bitgen.ut
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/etc/download.cmd b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/etc/download.cmd
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/etc/download.cmd
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/etc/download.cmd
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/etc/fast_runtime.opt b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/etc/fast_runtime.opt
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/etc/fast_runtime.opt
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/etc/fast_runtime.opt
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/revup/system_mhs.11.1 b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/revup/system_mhs.11.1
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/revup/system_mhs.11.1
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/revup/system_mhs.11.1
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/revup/system_mss.11.1 b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/revup/system_mss.11.1
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/revup/system_mss.11.1
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/revup/system_mss.11.1
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/revup/system_xmp.11.1 b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/revup/system_xmp.11.1
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/revup/system_xmp.11.1
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/revup/system_xmp.11.1
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.bsb b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.bsb
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.bsb
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.bsb
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.log b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.log
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.log
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.log
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.make b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.make
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.make
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.make
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.mhs b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.mhs
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.mhs
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.mhs
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.mss b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.mss
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.mss
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.mss
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.xmp b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.xmp
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.xmp
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.xmp
diff --git a/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system_incl.make b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system_incl.make
similarity index 100%
rename from Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system_incl.make
rename to FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system_incl.make
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/FreeRTOSConfig.h b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/FreeRTOSConfig.h
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/FreeRTOSConfig.h
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/FreeRTOSConfig.h
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.h b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.h
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.h
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.h
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/main.c b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/main.c
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/main.c
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/main.c
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/Version_Changes.log b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/Version_Changes.log
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/Version_Changes.log
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/Version_Changes.log
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Colors.xsl b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Colors.xsl
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Colors.xsl
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Colors.xsl
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Globals.xsl b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Globals.xsl
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Globals.xsl
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Globals.xsl
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_BusLaneSpaces.xsl b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_BusLaneSpaces.xsl
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_BusLaneSpaces.xsl
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_BusLaneSpaces.xsl
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Functions.xsl b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Functions.xsl
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Functions.xsl
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Functions.xsl
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Globals.xsl b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Globals.xsl
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Globals.xsl
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Globals.xsl
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_IOPorts.xsl b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_IOPorts.xsl
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_IOPorts.xsl
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_IOPorts.xsl
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Peripherals.xsl b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Peripherals.xsl
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Peripherals.xsl
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Peripherals.xsl
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Processors.xsl b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Processors.xsl
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Processors.xsl
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Processors.xsl
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgDiag_BifShapes.xsl b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgDiag_BifShapes.xsl
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgDiag_BifShapes.xsl
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgDiag_BifShapes.xsl
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/svg10.dtd b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/svg10.dtd
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/svg10.dtd
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/svg10.dtd
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/bitinit.opt b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/bitinit.opt
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/bitinit.opt
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/bitinit.opt
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/map.xmsgs b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/map.xmsgs
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/map.xmsgs
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/map.xmsgs
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/ngcbuild.xmsgs b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/ngcbuild.xmsgs
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/ngcbuild.xmsgs
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/ngcbuild.xmsgs
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/ngdbuild.xmsgs b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/ngdbuild.xmsgs
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/ngdbuild.xmsgs
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/ngdbuild.xmsgs
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/par.xmsgs b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/par.xmsgs
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/par.xmsgs
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/par.xmsgs
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/trce.xmsgs b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/trce.xmsgs
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/trce.xmsgs
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/trce.xmsgs
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/xst.xmsgs b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/xst.xmsgs
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/xst.xmsgs
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/xst.xmsgs
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system.gise b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system.gise
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system.gise
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system.gise
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system.ise b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system.ise
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system.ise
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system.ise
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system.ntrc_log b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system.ntrc_log
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system.ntrc_log
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system.ntrc_log
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system.xise b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system.xise
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system.xise
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system.xise
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/cst.xbcd b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/cst.xbcd
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/cst.xbcd
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/cst.xbcd
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise.lock b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise.lock
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise.lock
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise.lock
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject_StrTbl b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject_StrTbl
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject_StrTbl
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject_StrTbl
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/__stored_object_table__ b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/__stored_object_table__
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/__stored_object_table__
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/__stored_object_table__
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl_StrTbl b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl_StrTbl
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl_StrTbl
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl_StrTbl
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main_StrTbl b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main_StrTbl
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main_StrTbl
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main_StrTbl
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module_StrTbl b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module_StrTbl
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module_StrTbl
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module_StrTbl
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system_StrTbl b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system_StrTbl
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system_StrTbl
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system_StrTbl
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default_StrTbl b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default_StrTbl
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default_StrTbl
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default_StrTbl
diff --git a/Source/portable/MPLAB/PIC18F/stdio.h b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/Autonym/regkeys
similarity index 100%
rename from Source/portable/MPLAB/PIC18F/stdio.h
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/Autonym/regkeys
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/HDProject/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/HDProject/regkeys
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/HDProject/regkeys
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/HDProject/regkeys
diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/regkeys
new file mode 100644
index 000000000..e69de29bb
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator/regkeys
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator/regkeys
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator/regkeys
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator11/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator11/regkeys
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator11/regkeys
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator11/regkeys
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/XSLTProcess/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/XSLTProcess/regkeys
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/XSLTProcess/regkeys
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/XSLTProcess/regkeys
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/_ProjRepoInternal_/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/_ProjRepoInternal_/regkeys
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/_ProjRepoInternal_/regkeys
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/_ProjRepoInternal_/regkeys
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitgen/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitgen/regkeys
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitgen/regkeys
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitgen/regkeys
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitinit/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitinit/regkeys
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitinit/regkeys
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitinit/regkeys
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/common/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/common/regkeys
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/common/regkeys
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/common/regkeys
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/cpldfit/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/cpldfit/regkeys
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/cpldfit/regkeys
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/cpldfit/regkeys
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/dumpngdio/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/dumpngdio/regkeys
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/dumpngdio/regkeys
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/dumpngdio/regkeys
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/fuse/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/fuse/regkeys
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/fuse/regkeys
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/fuse/regkeys
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/hprep6/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/hprep6/regkeys
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/hprep6/regkeys
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/hprep6/regkeys
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/idem/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/idem/regkeys
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/idem/regkeys
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/idem/regkeys
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/libgen/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/libgen/regkeys
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/libgen/regkeys
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/libgen/regkeys
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/map/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/map/regkeys
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/map/regkeys
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/map/regkeys
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/netgen/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/netgen/regkeys
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/netgen/regkeys
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/netgen/regkeys
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngc2edif/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngc2edif/regkeys
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngc2edif/regkeys
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngc2edif/regkeys
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngcbuild/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngcbuild/regkeys
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngcbuild/regkeys
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngcbuild/regkeys
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngdbuild/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngdbuild/regkeys
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngdbuild/regkeys
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngdbuild/regkeys
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/par/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/par/regkeys
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/par/regkeys
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/par/regkeys
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/platgen/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/platgen/regkeys
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/platgen/regkeys
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/platgen/regkeys
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/runner/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/runner/regkeys
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/runner/regkeys
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/runner/regkeys
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/simgen/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/simgen/regkeys
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/simgen/regkeys
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/simgen/regkeys
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/taengine/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/taengine/regkeys
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/taengine/regkeys
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/taengine/regkeys
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/trce/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/trce/regkeys
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/trce/regkeys
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/trce/regkeys
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/tsim/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/tsim/regkeys
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/tsim/regkeys
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/tsim/regkeys
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vhpcomp/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vhpcomp/regkeys
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vhpcomp/regkeys
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vhpcomp/regkeys
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vlogcomp/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vlogcomp/regkeys
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vlogcomp/regkeys
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vlogcomp/regkeys
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xpwr/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xpwr/regkeys
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xpwr/regkeys
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xpwr/regkeys
diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xreport/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xreport/regkeys
new file mode 100644
index 000000000..e69de29bb
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xst/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xst/regkeys
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xst/regkeys
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xst/regkeys
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/version b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/version
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/version
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/version
diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/xmsgprops.lst b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/xmsgprops.lst
new file mode 100644
index 000000000..e69de29bb
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/libgen.opt b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/libgen.opt
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/libgen.opt
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/libgen.opt
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/platgen.opt b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/platgen.opt
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/platgen.opt
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/platgen.opt
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/rtosdemo_compiler.opt b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/rtosdemo_compiler.opt
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/rtosdemo_compiler.opt
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/rtosdemo_compiler.opt
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/simgen.opt b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/simgen.opt
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/simgen.opt
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/simgen.opt
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/system.filters b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/system.filters
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/system.filters
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/system.filters
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/system.gui b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/system.gui
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/system.gui
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/system.gui
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/system.xml b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/system.xml
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/system.xml
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/system.xml
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/xplorer.opt b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/xplorer.opt
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/xplorer.opt
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/xplorer.opt
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/xpsxflow.opt b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/xpsxflow.opt
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/__xps/xpsxflow.opt
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/xpsxflow.opt
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/blockdiagram/svg10.dtd b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/blockdiagram/svg10.dtd
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/blockdiagram/svg10.dtd
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/blockdiagram/svg10.dtd
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/blockdiagram/system.css b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/blockdiagram/system.css
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/blockdiagram/system.css
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/blockdiagram/system.css
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/blockdiagram/system.svg b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/blockdiagram/system.svg
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/blockdiagram/system.svg
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/blockdiagram/system.svg
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/data/system.ucf b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/data/system.ucf
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/data/system.ucf
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/data/system.ucf
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/etc/bitgen.ut b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/etc/bitgen.ut
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/etc/bitgen.ut
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/etc/bitgen.ut
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/etc/download.cmd b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/etc/download.cmd
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/etc/download.cmd
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/etc/download.cmd
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/etc/fast_runtime.opt b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/etc/fast_runtime.opt
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/etc/fast_runtime.opt
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/etc/fast_runtime.opt
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/etc/xmd_ppc440_0.opt b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/etc/xmd_ppc440_0.opt
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/etc/xmd_ppc440_0.opt
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/etc/xmd_ppc440_0.opt
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/platgen.opt b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/platgen.opt
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/platgen.opt
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/platgen.opt
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/psf2Edward.log b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/psf2Edward.log
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/psf2Edward.log
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/psf2Edward.log
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/revup/system_mhs.11.1 b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/revup/system_mhs.11.1
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/revup/system_mhs.11.1
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/revup/system_mhs.11.1
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/revup/system_mss.11.1 b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/revup/system_mss.11.1
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/revup/system_mss.11.1
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/revup/system_mss.11.1
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/revup/system_xmp.11.1 b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/revup/system_xmp.11.1
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/revup/system_xmp.11.1
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/revup/system_xmp.11.1
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/system.bsb b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/system.bsb
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/system.bsb
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/system.bsb
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/system.log b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/system.log
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/system.log
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/system.log
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/system.make b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/system.make
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/system.make
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/system.make
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/system.mhs b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/system.mhs
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/system.mhs
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/system.mhs
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/system.mss b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/system.mss
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/system.mss
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/system.mss
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/system.xmp b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/system.xmp
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/system.xmp
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/system.xmp
diff --git a/Demo/PPC440_Xilinx_Virtex5_GCC/system_incl.make b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/system_incl.make
similarity index 100%
rename from Demo/PPC440_Xilinx_Virtex5_GCC/system_incl.make
rename to FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/system_incl.make
diff --git a/Demo/RL78_RL78G13_Promo_Board_IAR/FreeRTOSConfig.h b/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/FreeRTOSConfig.h
similarity index 100%
rename from Demo/RL78_RL78G13_Promo_Board_IAR/FreeRTOSConfig.h
rename to FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/FreeRTOSConfig.h
diff --git a/Demo/RL78_RL78G13_Promo_Board_IAR/RTOSDemo.ewd b/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/RTOSDemo.ewd
similarity index 100%
rename from Demo/RL78_RL78G13_Promo_Board_IAR/RTOSDemo.ewd
rename to FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/RTOSDemo.ewd
diff --git a/Demo/RL78_RL78G13_Promo_Board_IAR/RTOSDemo.ewp b/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/RTOSDemo.ewp
similarity index 100%
rename from Demo/RL78_RL78G13_Promo_Board_IAR/RTOSDemo.ewp
rename to FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/RTOSDemo.ewp
diff --git a/Demo/RL78_RL78G13_Promo_Board_IAR/RTOSDemo.eww b/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/RTOSDemo.eww
similarity index 100%
rename from Demo/RL78_RL78G13_Promo_Board_IAR/RTOSDemo.eww
rename to FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/RTOSDemo.eww
diff --git a/Demo/RL78_RL78G13_Promo_Board_IAR/RegTest.s87 b/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/RegTest.s87
similarity index 100%
rename from Demo/RL78_RL78G13_Promo_Board_IAR/RegTest.s87
rename to FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/RegTest.s87
diff --git a/Demo/RL78_RL78G13_Promo_Board_IAR/main.c b/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/main.c
similarity index 100%
rename from Demo/RL78_RL78G13_Promo_Board_IAR/main.c
rename to FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/main.c
diff --git a/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.cspy.bat b/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.cspy.bat
similarity index 100%
rename from Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.cspy.bat
rename to FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.cspy.bat
diff --git a/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.dbgdt b/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.dbgdt
similarity index 100%
rename from Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.dbgdt
rename to FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.dbgdt
diff --git a/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.dni b/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.dni
similarity index 100%
rename from Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.dni
rename to FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.dni
diff --git a/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.wsdt b/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.wsdt
similarity index 100%
rename from Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.wsdt
rename to FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.wsdt
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo.Hbp b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo.Hbp
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo.Hbp
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo.Hbp
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo.hws b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo.hws
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo.hws
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo.hws
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo.tws b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo.tws
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo.tws
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo.tws
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Blinky/Blinky.hdp b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Blinky/Blinky.hdp
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Blinky/Blinky.hdp
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Blinky/Blinky.hdp
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/ButtonAndLCD.c b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/ButtonAndLCD.c
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo/ButtonAndLCD.c
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/ButtonAndLCD.c
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/DefaultSession.hsf b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/DefaultSession.hsf
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo/DefaultSession.hsf
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/DefaultSession.hsf
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/FreeRTOSConfig.h b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/FreeRTOSConfig.h
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo/FreeRTOSConfig.h
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/FreeRTOSConfig.h
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/HighFrequencyTimerTest.c b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/HighFrequencyTimerTest.c
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo/HighFrequencyTimerTest.c
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/HighFrequencyTimerTest.c
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/IntQueueTimer.c b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/IntQueueTimer.c
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo/IntQueueTimer.c
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/IntQueueTimer.c
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/ParTest.c b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/ParTest.c
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo/ParTest.c
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/ParTest.c
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/RTOSDemo.hwp b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/RTOSDemo.hwp
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo/RTOSDemo.hwp
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/RTOSDemo.hwp
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/RTOSDemo.nav b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/RTOSDemo.nav
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo/RTOSDemo.nav
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/RTOSDemo.nav
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/RTOSDemo.tps b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/RTOSDemo.tps
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo/RTOSDemo.tps
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/RTOSDemo.tps
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/dbsct.c b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/dbsct.c
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/dbsct.c
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/dbsct.c
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/hd44780.c b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/hd44780.c
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/hd44780.c
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/hd44780.c
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/hwsetup.c b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/hwsetup.c
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/hwsetup.c
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/hwsetup.c
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/intprg.c b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/intprg.c
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/intprg.c
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/intprg.c
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/lcd.c b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/lcd.c
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/lcd.c
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/lcd.c
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/lowlvl.src b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/lowlvl.src
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/lowlvl.src
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/lowlvl.src
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/lowsrc.c b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/lowsrc.c
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/lowsrc.c
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/lowsrc.c
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/resetprg.c b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/resetprg.c
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/resetprg.c
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/resetprg.c
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/sbrk.c b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/sbrk.c
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/sbrk.c
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/sbrk.c
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/vecttbl.c b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/vecttbl.c
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/vecttbl.c
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/vecttbl.c
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/SessionRX200_E1_E20_SYSTEM.hsf b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/SessionRX200_E1_E20_SYSTEM.hsf
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo/SessionRX200_E1_E20_SYSTEM.hsf
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/SessionRX200_E1_E20_SYSTEM.hsf
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/SessionRX200_E1_E20_SYSTEM.ini b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/SessionRX200_E1_E20_SYSTEM.ini
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo/SessionRX200_E1_E20_SYSTEM.ini
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/SessionRX200_E1_E20_SYSTEM.ini
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/ButtonAndLCD.h b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/ButtonAndLCD.h
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/ButtonAndLCD.h
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/ButtonAndLCD.h
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/IntQueueTimer.h b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/IntQueueTimer.h
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/IntQueueTimer.h
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/IntQueueTimer.h
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/OLDiodefine.h b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/OLDiodefine.h
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/OLDiodefine.h
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/OLDiodefine.h
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/RX62Niodefine.h b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/RX62Niodefine.h
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/RX62Niodefine.h
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/RX62Niodefine.h
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/hd44780.h b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/hd44780.h
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/hd44780.h
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/hd44780.h
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/iodefine.h b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/iodefine.h
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/iodefine.h
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/iodefine.h
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/lcd.h b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/lcd.h
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/lcd.h
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/lcd.h
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/lowsrc.h b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/lowsrc.h
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/lowsrc.h
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/lowsrc.h
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/rskrx210def.h b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/rskrx210def.h
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/rskrx210def.h
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/rskrx210def.h
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/stacksct.h b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/stacksct.h
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/stacksct.h
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/stacksct.h
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/typedefine.h b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/typedefine.h
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/typedefine.h
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/typedefine.h
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/vect.h b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/vect.h
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/vect.h
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/vect.h
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/main-blinky.c b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/main-blinky.c
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo/main-blinky.c
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/main-blinky.c
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/main-full.c b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/main-full.c
similarity index 100%
rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo/main-full.c
rename to FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/main-full.c
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/DefaultSession.hsf b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/DefaultSession.hsf
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/DefaultSession.hsf
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/DefaultSession.hsf
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/DefaultSession.ini b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/DefaultSession.ini
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/DefaultSession.ini
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/DefaultSession.ini
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/FreeRTOSConfig.h b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/FreeRTOSConfig.h
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/FreeRTOSConfig.h
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/FreeRTOSConfig.h
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/GNU-Files/hwinit.c b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/GNU-Files/hwinit.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/GNU-Files/hwinit.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/GNU-Files/hwinit.c
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/GNU-Files/inthandler.c b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/GNU-Files/inthandler.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/GNU-Files/inthandler.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/GNU-Files/inthandler.c
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/GNU-Files/start.asm b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/GNU-Files/start.asm
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/GNU-Files/start.asm
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/GNU-Files/start.asm
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/HighFrequencyTimerTest.c b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/HighFrequencyTimerTest.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/HighFrequencyTimerTest.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/HighFrequencyTimerTest.c
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/IntQueueTimer.c b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/IntQueueTimer.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/IntQueueTimer.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/IntQueueTimer.c
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/ParTest.c b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/ParTest.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/ParTest.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/ParTest.c
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/RTOSDemo.hwp b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/RTOSDemo.hwp
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/RTOSDemo.hwp
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/RTOSDemo.hwp
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/RTOSDemo.nav b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/RTOSDemo.nav
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/RTOSDemo.nav
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/RTOSDemo.nav
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/RTOSDemo.tps b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/RTOSDemo.tps
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/RTOSDemo.tps
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/RTOSDemo.tps
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/Renesas-Files/hwsetup.c b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/Renesas-Files/hwsetup.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/Renesas-Files/hwsetup.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/Renesas-Files/hwsetup.c
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/SessionRX600_E1_E20_SYSTEM.ini b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/SessionRX600_E1_E20_SYSTEM.ini
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/SessionRX600_E1_E20_SYSTEM.ini
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/SessionRX600_E1_E20_SYSTEM.ini
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/include/IntQueueTimer.h b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/include/IntQueueTimer.h
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/include/IntQueueTimer.h
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/include/IntQueueTimer.h
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/include/inthandler.h b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/include/inthandler.h
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/include/inthandler.h
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/include/inthandler.h
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/include/iodefine.h b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/include/iodefine.h
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/include/iodefine.h
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/include/iodefine.h
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/include/typedefine.h b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/include/typedefine.h
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/include/typedefine.h
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/include/typedefine.h
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/include/yrdkrx62ndef.h b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/include/yrdkrx62ndef.h
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/include/yrdkrx62ndef.h
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/include/yrdkrx62ndef.h
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/main-blinky.c b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/main-blinky.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/main-blinky.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/main-blinky.c
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/main-full.c b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/main-full.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/main-full.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/main-full.c
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/uIP_Task.c b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/uIP_Task.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/uIP_Task.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/uIP_Task.c
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/vects.c b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/vects.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/vects.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/vects.c
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/EMAC.c b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/EMAC.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/EMAC.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/EMAC.c
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-cgi.c b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-cgi.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-cgi.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-cgi.c
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/404.html b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/404.html
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/404.html
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/404.html
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/index.html b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/index.html
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/index.html
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/index.html
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/index.shtml b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/index.shtml
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/index.shtml
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/index.shtml
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/io.shtml b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/io.shtml
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/io.shtml
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/io.shtml
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/logo.jpg b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/logo.jpg
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/logo.jpg
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/logo.jpg
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/runtime.shtml b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/runtime.shtml
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/runtime.shtml
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/runtime.shtml
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/stats.shtml b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/stats.shtml
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/stats.shtml
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/stats.shtml
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/tcp.shtml b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/tcp.shtml
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/tcp.shtml
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/tcp.shtml
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fsdata.c b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fsdata.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fsdata.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fsdata.c
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/makefsdata b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/makefsdata
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/makefsdata
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/makefsdata
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/phy.c b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/phy.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/phy.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/phy.c
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/phy.h b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/phy.h
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/phy.h
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/phy.h
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/r_ether.h b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/r_ether.h
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/r_ether.h
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/r_ether.h
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/uip-conf.h b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/uip-conf.h
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/uip-conf.h
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/uip-conf.h
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/webserver.h b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/webserver.h
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/webserver.h
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/webserver.h
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RX600_RX62N_RDK_GNURX.Hbp b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RX600_RX62N_RDK_GNURX.Hbp
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RX600_RX62N_RDK_GNURX.Hbp
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RX600_RX62N_RDK_GNURX.Hbp
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RX600_RX62N_RDK_GNURX.hws b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RX600_RX62N_RDK_GNURX.hws
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RX600_RX62N_RDK_GNURX.hws
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RX600_RX62N_RDK_GNURX.hws
diff --git a/Demo/RX600_RX62N-RDK_GNURX/RX600_RX62N_RDK_GNURX.tws b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RX600_RX62N_RDK_GNURX.tws
similarity index 100%
rename from Demo/RX600_RX62N-RDK_GNURX/RX600_RX62N_RDK_GNURX.tws
rename to FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RX600_RX62N_RDK_GNURX.tws
diff --git a/Demo/RX600_RX62N-RDK_IAR/FreeRTOSConfig.h b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/FreeRTOSConfig.h
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/FreeRTOSConfig.h
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/FreeRTOSConfig.h
diff --git a/Demo/RX600_RX62N-RDK_IAR/HighFrequencyTimerTest.c b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/HighFrequencyTimerTest.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/HighFrequencyTimerTest.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/HighFrequencyTimerTest.c
diff --git a/Demo/RX600_RX62N-RDK_IAR/IntQueueTimer.c b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/IntQueueTimer.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/IntQueueTimer.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/IntQueueTimer.c
diff --git a/Demo/RX600_RX62N-RDK_IAR/ParTest.c b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/ParTest.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/ParTest.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/ParTest.c
diff --git a/Demo/RX600_RX62N-RDK_IAR/PriorityDefinitions.h b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/PriorityDefinitions.h
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/PriorityDefinitions.h
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/PriorityDefinitions.h
diff --git a/Demo/RX600_RX62N-RDK_IAR/RSKRX62N_Demo.c b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/RSKRX62N_Demo.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/RSKRX62N_Demo.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/RSKRX62N_Demo.c
diff --git a/Demo/RX600_RX62N-RDK_IAR/RTOSDemo.ewd b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/RTOSDemo.ewd
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/RTOSDemo.ewd
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/RTOSDemo.ewd
diff --git a/Demo/RX600_RX62N-RDK_IAR/RTOSDemo.ewp b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/RTOSDemo.ewp
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/RTOSDemo.ewp
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/RTOSDemo.ewp
diff --git a/Demo/RX600_RX62N-RDK_IAR/RTOSDemo.eww b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/RTOSDemo.eww
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/RTOSDemo.eww
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/RTOSDemo.eww
diff --git a/Demo/RX600_RX62N-RDK_IAR/RegTest.s b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/RegTest.s
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/RegTest.s
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/RegTest.s
diff --git a/Demo/RX600_RX62N-RDK_IAR/Renesas-Files/hwsetup.c b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/Renesas-Files/hwsetup.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/Renesas-Files/hwsetup.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/Renesas-Files/hwsetup.c
diff --git a/Demo/RX600_RX62N-RDK_IAR/include/IntQueueTimer.h b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/include/IntQueueTimer.h
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/include/IntQueueTimer.h
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/include/IntQueueTimer.h
diff --git a/Demo/RX600_RX62N-RDK_IAR/include/inthandler.h b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/include/inthandler.h
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/include/inthandler.h
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/include/inthandler.h
diff --git a/Demo/RX600_RX62N-RDK_IAR/include/typedefine.h b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/include/typedefine.h
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/include/typedefine.h
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/include/typedefine.h
diff --git a/Demo/RX600_RX62N-RDK_IAR/include/yrdkrx62ndef.h b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/include/yrdkrx62ndef.h
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/include/yrdkrx62ndef.h
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/include/yrdkrx62ndef.h
diff --git a/Demo/RX600_RX62N-RDK_IAR/main-blinky.c b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/main-blinky.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/main-blinky.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/main-blinky.c
diff --git a/Demo/RX600_RX62N-RDK_IAR/main-full.c b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/main-full.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/main-full.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/main-full.c
diff --git a/Demo/RX600_RX62N-RDK_IAR/settings/RTOSDemo.cspy.bat b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/settings/RTOSDemo.cspy.bat
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/settings/RTOSDemo.cspy.bat
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/settings/RTOSDemo.cspy.bat
diff --git a/Demo/RX600_RX62N-RDK_IAR/settings/RTOSDemo.dbgdt b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/settings/RTOSDemo.dbgdt
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/settings/RTOSDemo.dbgdt
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/settings/RTOSDemo.dbgdt
diff --git a/Demo/RX600_RX62N-RDK_IAR/settings/RTOSDemo.dni b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/settings/RTOSDemo.dni
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/settings/RTOSDemo.dni
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/settings/RTOSDemo.dni
diff --git a/Demo/RX600_RX62N-RDK_IAR/settings/RTOSDemo.wsdt b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/settings/RTOSDemo.wsdt
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/settings/RTOSDemo.wsdt
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/settings/RTOSDemo.wsdt
diff --git a/Demo/RX600_RX62N-RDK_IAR/uIP_Task.c b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/uIP_Task.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/uIP_Task.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/uIP_Task.c
diff --git a/Demo/RX600_RX62N-RDK_IAR/webserver/EMAC.c b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/webserver/EMAC.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/webserver/EMAC.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/webserver/EMAC.c
diff --git a/Demo/RX600_RX62N-RDK_IAR/webserver/httpd-cgi.c b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/webserver/httpd-cgi.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/webserver/httpd-cgi.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/webserver/httpd-cgi.c
diff --git a/Demo/RX600_RX62N-RDK_IAR/webserver/httpd-fs/404.html b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/webserver/httpd-fs/404.html
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/webserver/httpd-fs/404.html
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/webserver/httpd-fs/404.html
diff --git a/Demo/RX600_RX62N-RDK_IAR/webserver/httpd-fs/index.html b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/webserver/httpd-fs/index.html
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/webserver/httpd-fs/index.html
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/webserver/httpd-fs/index.html
diff --git a/Demo/RX600_RX62N-RDK_IAR/webserver/httpd-fs/index.shtml b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/webserver/httpd-fs/index.shtml
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/webserver/httpd-fs/index.shtml
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/webserver/httpd-fs/index.shtml
diff --git a/Demo/RX600_RX62N-RDK_IAR/webserver/httpd-fs/io.shtml b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/webserver/httpd-fs/io.shtml
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/webserver/httpd-fs/io.shtml
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/webserver/httpd-fs/io.shtml
diff --git a/Demo/RX600_RX62N-RDK_IAR/webserver/httpd-fs/logo.jpg b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/webserver/httpd-fs/logo.jpg
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/webserver/httpd-fs/logo.jpg
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/webserver/httpd-fs/logo.jpg
diff --git a/Demo/RX600_RX62N-RDK_IAR/webserver/httpd-fs/runtime.shtml b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/webserver/httpd-fs/runtime.shtml
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/webserver/httpd-fs/runtime.shtml
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/webserver/httpd-fs/runtime.shtml
diff --git a/Demo/RX600_RX62N-RDK_IAR/webserver/httpd-fs/stats.shtml b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/webserver/httpd-fs/stats.shtml
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/webserver/httpd-fs/stats.shtml
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/webserver/httpd-fs/stats.shtml
diff --git a/Demo/RX600_RX62N-RDK_IAR/webserver/httpd-fs/tcp.shtml b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/webserver/httpd-fs/tcp.shtml
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/webserver/httpd-fs/tcp.shtml
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/webserver/httpd-fs/tcp.shtml
diff --git a/Demo/RX600_RX62N-RDK_IAR/webserver/httpd-fsdata.c b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/webserver/httpd-fsdata.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/webserver/httpd-fsdata.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/webserver/httpd-fsdata.c
diff --git a/Demo/RX600_RX62N-RDK_IAR/webserver/makefsdata b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/webserver/makefsdata
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/webserver/makefsdata
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/webserver/makefsdata
diff --git a/Demo/RX600_RX62N-RDK_IAR/webserver/phy.c b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/webserver/phy.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/webserver/phy.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/webserver/phy.c
diff --git a/Demo/RX600_RX62N-RDK_IAR/webserver/phy.h b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/webserver/phy.h
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/webserver/phy.h
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/webserver/phy.h
diff --git a/Demo/RX600_RX62N-RDK_IAR/webserver/r_ether.h b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/webserver/r_ether.h
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/webserver/r_ether.h
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/webserver/r_ether.h
diff --git a/Demo/RX600_RX62N-RDK_IAR/webserver/uip-conf.h b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/webserver/uip-conf.h
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/webserver/uip-conf.h
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/webserver/uip-conf.h
diff --git a/Demo/RX600_RX62N-RDK_IAR/webserver/webserver.h b/FreeRTOS/Demo/RX600_RX62N-RDK_IAR/webserver/webserver.h
similarity index 100%
rename from Demo/RX600_RX62N-RDK_IAR/webserver/webserver.h
rename to FreeRTOS/Demo/RX600_RX62N-RDK_IAR/webserver/webserver.h
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo.Hbp b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo.Hbp
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo.Hbp
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo.Hbp
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo.hws b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo.hws
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo.hws
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo.hws
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo.tws b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo.tws
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo.tws
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo.tws
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/DefaultSession.hsf b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/DefaultSession.hsf
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/DefaultSession.hsf
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/DefaultSession.hsf
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/FreeRTOSConfig.h b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/FreeRTOSConfig.h
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/FreeRTOSConfig.h
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/FreeRTOSConfig.h
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/HighFrequencyTimerTest.c b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/HighFrequencyTimerTest.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/HighFrequencyTimerTest.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/HighFrequencyTimerTest.c
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/IntQueueTimer.c b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/IntQueueTimer.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/IntQueueTimer.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/IntQueueTimer.c
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/ParTest.c b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/ParTest.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/ParTest.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/ParTest.c
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/RTOSDemo.hwp b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/RTOSDemo.hwp
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/RTOSDemo.hwp
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/RTOSDemo.hwp
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/RTOSDemo.nav b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/RTOSDemo.nav
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/RTOSDemo.nav
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/RTOSDemo.nav
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/RTOSDemo.tps b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/RTOSDemo.tps
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/RTOSDemo.tps
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/RTOSDemo.tps
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/dbsct.c b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/dbsct.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/dbsct.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/dbsct.c
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/hwsetup.c b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/hwsetup.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/hwsetup.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/hwsetup.c
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/intprg.c b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/intprg.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/intprg.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/intprg.c
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/lowlvl.src b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/lowlvl.src
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/lowlvl.src
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/lowlvl.src
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/lowsrc.c b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/lowsrc.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/lowsrc.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/lowsrc.c
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/resetprg.c b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/resetprg.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/resetprg.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/resetprg.c
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/sbrk.c b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/sbrk.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/sbrk.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/sbrk.c
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/vecttbl.c b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/vecttbl.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/vecttbl.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/Renesas-Files/vecttbl.c
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.ini b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.ini
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.ini
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.ini
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/SimSessionRX600.hsf b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/SimSessionRX600.hsf
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/SimSessionRX600.hsf
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/SimSessionRX600.hsf
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/include/IntQueueTimer.h b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/include/IntQueueTimer.h
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/include/IntQueueTimer.h
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/include/IntQueueTimer.h
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/include/iodefine.h b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/include/iodefine.h
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/include/iodefine.h
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/include/iodefine.h
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/include/lowsrc.h b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/include/lowsrc.h
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/include/lowsrc.h
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/include/lowsrc.h
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/include/stacksct.h b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/include/stacksct.h
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/include/stacksct.h
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/include/stacksct.h
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/include/typedefine.h b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/include/typedefine.h
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/include/typedefine.h
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/include/typedefine.h
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/include/vect.h b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/include/vect.h
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/include/vect.h
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/include/vect.h
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/include/yrdkrx62ndef.h b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/include/yrdkrx62ndef.h
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/include/yrdkrx62ndef.h
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/include/yrdkrx62ndef.h
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/main-blinky.c b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/main-blinky.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/main-blinky.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/main-blinky.c
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/main-full.c b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/main-full.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/main-full.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/main-full.c
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/uIP_Task.c b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/uIP_Task.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/uIP_Task.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/uIP_Task.c
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/EMAC.c b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/EMAC.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/EMAC.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/EMAC.c
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-cgi.c b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-cgi.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-cgi.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-cgi.c
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/404.html b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/404.html
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/404.html
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/404.html
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/index.html b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/index.html
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/index.html
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/index.html
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/index.shtml b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/index.shtml
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/index.shtml
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/index.shtml
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/io.shtml b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/io.shtml
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/io.shtml
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/io.shtml
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/logo.jpg b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/logo.jpg
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/logo.jpg
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/logo.jpg
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/runtime.shtml b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/runtime.shtml
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/runtime.shtml
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/runtime.shtml
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/stats.shtml b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/stats.shtml
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/stats.shtml
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/stats.shtml
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/tcp.shtml b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/tcp.shtml
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/tcp.shtml
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/tcp.shtml
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fsdata.c b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fsdata.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fsdata.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fsdata.c
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/makefsdata b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/makefsdata
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/makefsdata
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/makefsdata
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/phy.c b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/phy.c
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/phy.c
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/phy.c
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/phy.h b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/phy.h
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/phy.h
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/phy.h
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/r_ether.h b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/r_ether.h
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/r_ether.h
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/r_ether.h
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/uip-conf.h b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/uip-conf.h
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/uip-conf.h
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/uip-conf.h
diff --git a/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/webserver.h b/FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/webserver.h
similarity index 100%
rename from Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/webserver.h
rename to FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/webserver.h
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/DefaultSession.hsf b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/DefaultSession.hsf
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/DefaultSession.hsf
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/DefaultSession.hsf
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/DefaultSession.ini b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/DefaultSession.ini
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/DefaultSession.ini
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/DefaultSession.ini
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/FreeRTOSConfig.h b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/FreeRTOSConfig.h
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/FreeRTOSConfig.h
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/FreeRTOSConfig.h
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/GNU-Files/hwinit.c b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/GNU-Files/hwinit.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/GNU-Files/hwinit.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/GNU-Files/hwinit.c
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/GNU-Files/inthandler.c b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/GNU-Files/inthandler.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/GNU-Files/inthandler.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/GNU-Files/inthandler.c
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/GNU-Files/start.asm b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/GNU-Files/start.asm
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/GNU-Files/start.asm
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/GNU-Files/start.asm
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/HighFrequencyTimerTest.c b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/HighFrequencyTimerTest.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/HighFrequencyTimerTest.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/HighFrequencyTimerTest.c
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/IntQueueTimer.c b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/IntQueueTimer.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/IntQueueTimer.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/IntQueueTimer.c
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/ParTest.c b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/ParTest.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/ParTest.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/ParTest.c
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/RTOSDemo.hwp b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/RTOSDemo.hwp
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/RTOSDemo.hwp
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/RTOSDemo.hwp
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/RTOSDemo.nav b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/RTOSDemo.nav
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/RTOSDemo.nav
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/RTOSDemo.nav
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/RTOSDemo.tps b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/RTOSDemo.tps
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/RTOSDemo.tps
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/RTOSDemo.tps
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/Renesas-Files/hwsetup.c b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/Renesas-Files/hwsetup.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/Renesas-Files/hwsetup.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/Renesas-Files/hwsetup.c
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/SessionRX600_E1_E20_SYSTEM.ini b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/SessionRX600_E1_E20_SYSTEM.ini
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/SessionRX600_E1_E20_SYSTEM.ini
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/SessionRX600_E1_E20_SYSTEM.ini
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/include/IntQueueTimer.h b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/include/IntQueueTimer.h
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/include/IntQueueTimer.h
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/include/IntQueueTimer.h
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/include/inthandler.h b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/include/inthandler.h
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/include/inthandler.h
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/include/inthandler.h
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/include/iodefine.h b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/include/iodefine.h
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/include/iodefine.h
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/include/iodefine.h
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/include/rskrx62ndef.h b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/include/rskrx62ndef.h
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/include/rskrx62ndef.h
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/include/rskrx62ndef.h
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/include/typedefine.h b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/include/typedefine.h
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/include/typedefine.h
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/include/typedefine.h
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/main-blinky.c b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/main-blinky.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/main-blinky.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/main-blinky.c
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/main-full.c b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/main-full.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/main-full.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/main-full.c
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/uIP_Task.c b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/uIP_Task.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/uIP_Task.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/uIP_Task.c
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/vects.c b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/vects.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/vects.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/vects.c
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/EMAC.c b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/EMAC.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/EMAC.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/EMAC.c
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-cgi.c b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-cgi.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-cgi.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-cgi.c
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/404.html b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/404.html
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/404.html
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/404.html
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/index.html b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/index.html
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/index.html
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/index.html
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/index.shtml b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/index.shtml
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/index.shtml
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/index.shtml
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/io.shtml b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/io.shtml
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/io.shtml
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/io.shtml
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/logo.jpg b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/logo.jpg
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/logo.jpg
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/logo.jpg
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/runtime.shtml b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/runtime.shtml
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/runtime.shtml
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/runtime.shtml
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/stats.shtml b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/stats.shtml
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/stats.shtml
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/stats.shtml
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/tcp.shtml b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/tcp.shtml
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/tcp.shtml
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/tcp.shtml
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fsdata.c b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fsdata.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fsdata.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fsdata.c
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/makefsdata b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/makefsdata
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/makefsdata
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/makefsdata
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/phy.c b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/phy.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/phy.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/phy.c
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/phy.h b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/phy.h
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/phy.h
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/phy.h
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/r_ether.h b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/r_ether.h
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/r_ether.h
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/r_ether.h
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/uip-conf.h b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/uip-conf.h
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/uip-conf.h
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/uip-conf.h
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/webserver.h b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/webserver.h
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/webserver.h
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/webserver.h
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RX600_RX62N_RSK_GNURX.Hbp b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RX600_RX62N_RSK_GNURX.Hbp
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RX600_RX62N_RSK_GNURX.Hbp
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RX600_RX62N_RSK_GNURX.Hbp
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RX600_RX62N_RSK_GNURX.hws b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RX600_RX62N_RSK_GNURX.hws
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RX600_RX62N_RSK_GNURX.hws
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RX600_RX62N_RSK_GNURX.hws
diff --git a/Demo/RX600_RX62N-RSK_GNURX/RX600_RX62N_RSK_GNURX.tws b/FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RX600_RX62N_RSK_GNURX.tws
similarity index 100%
rename from Demo/RX600_RX62N-RSK_GNURX/RX600_RX62N_RSK_GNURX.tws
rename to FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RX600_RX62N_RSK_GNURX.tws
diff --git a/Demo/RX600_RX62N-RSK_IAR/FreeRTOSConfig.h b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/FreeRTOSConfig.h
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/FreeRTOSConfig.h
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/FreeRTOSConfig.h
diff --git a/Demo/RX600_RX62N-RSK_IAR/HighFrequencyTimerTest.c b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/HighFrequencyTimerTest.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/HighFrequencyTimerTest.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/HighFrequencyTimerTest.c
diff --git a/Demo/RX600_RX62N-RSK_IAR/IntQueueTimer.c b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/IntQueueTimer.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/IntQueueTimer.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/IntQueueTimer.c
diff --git a/Demo/RX600_RX62N-RSK_IAR/ParTest.c b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/ParTest.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/ParTest.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/ParTest.c
diff --git a/Demo/RX600_RX62N-RSK_IAR/PriorityDefinitions.h b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/PriorityDefinitions.h
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/PriorityDefinitions.h
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/PriorityDefinitions.h
diff --git a/Demo/RX600_RX62N-RSK_IAR/RSKRX62N_Demo.c b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/RSKRX62N_Demo.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/RSKRX62N_Demo.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/RSKRX62N_Demo.c
diff --git a/Demo/RX600_RX62N-RSK_IAR/RTOSDemo.ewd b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/RTOSDemo.ewd
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/RTOSDemo.ewd
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/RTOSDemo.ewd
diff --git a/Demo/RX600_RX62N-RSK_IAR/RTOSDemo.ewp b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/RTOSDemo.ewp
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/RTOSDemo.ewp
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/RTOSDemo.ewp
diff --git a/Demo/RX600_RX62N-RSK_IAR/RTOSDemo.eww b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/RTOSDemo.eww
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/RTOSDemo.eww
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/RTOSDemo.eww
diff --git a/Demo/RX600_RX62N-RSK_IAR/RegTest.s b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/RegTest.s
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/RegTest.s
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/RegTest.s
diff --git a/Demo/RX600_RX62N-RSK_IAR/Renesas-Files/hwsetup.c b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/Renesas-Files/hwsetup.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/Renesas-Files/hwsetup.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/Renesas-Files/hwsetup.c
diff --git a/Demo/RX600_RX62N-RSK_IAR/include/IntQueueTimer.h b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/include/IntQueueTimer.h
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/include/IntQueueTimer.h
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/include/IntQueueTimer.h
diff --git a/Demo/RX600_RX62N-RSK_IAR/include/inthandler.h b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/include/inthandler.h
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/include/inthandler.h
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/include/inthandler.h
diff --git a/Demo/RX600_RX62N-RSK_IAR/include/rskrx62ndef.h b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/include/rskrx62ndef.h
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/include/rskrx62ndef.h
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/include/rskrx62ndef.h
diff --git a/Demo/RX600_RX62N-RSK_IAR/include/typedefine.h b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/include/typedefine.h
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/include/typedefine.h
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/include/typedefine.h
diff --git a/Demo/RX600_RX62N-RSK_IAR/main-blinky.c b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/main-blinky.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/main-blinky.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/main-blinky.c
diff --git a/Demo/RX600_RX62N-RSK_IAR/main-full.c b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/main-full.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/main-full.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/main-full.c
diff --git a/Demo/RX600_RX62N-RSK_IAR/settings/RTOSDemo.cspy.bat b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/settings/RTOSDemo.cspy.bat
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/settings/RTOSDemo.cspy.bat
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/settings/RTOSDemo.cspy.bat
diff --git a/Demo/RX600_RX62N-RSK_IAR/settings/RTOSDemo.dbgdt b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/settings/RTOSDemo.dbgdt
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/settings/RTOSDemo.dbgdt
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/settings/RTOSDemo.dbgdt
diff --git a/Demo/RX600_RX62N-RSK_IAR/settings/RTOSDemo.dni b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/settings/RTOSDemo.dni
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/settings/RTOSDemo.dni
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/settings/RTOSDemo.dni
diff --git a/Demo/RX600_RX62N-RSK_IAR/settings/RTOSDemo.wsdt b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/settings/RTOSDemo.wsdt
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/settings/RTOSDemo.wsdt
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/settings/RTOSDemo.wsdt
diff --git a/Demo/RX600_RX62N-RSK_IAR/uIP_Task.c b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/uIP_Task.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/uIP_Task.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/uIP_Task.c
diff --git a/Demo/RX600_RX62N-RSK_IAR/webserver/EMAC.c b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/webserver/EMAC.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/webserver/EMAC.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/webserver/EMAC.c
diff --git a/Demo/RX600_RX62N-RSK_IAR/webserver/httpd-cgi.c b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/webserver/httpd-cgi.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/webserver/httpd-cgi.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/webserver/httpd-cgi.c
diff --git a/Demo/RX600_RX62N-RSK_IAR/webserver/httpd-fs/404.html b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/webserver/httpd-fs/404.html
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/webserver/httpd-fs/404.html
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/webserver/httpd-fs/404.html
diff --git a/Demo/RX600_RX62N-RSK_IAR/webserver/httpd-fs/index.html b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/webserver/httpd-fs/index.html
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/webserver/httpd-fs/index.html
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/webserver/httpd-fs/index.html
diff --git a/Demo/RX600_RX62N-RSK_IAR/webserver/httpd-fs/index.shtml b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/webserver/httpd-fs/index.shtml
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/webserver/httpd-fs/index.shtml
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/webserver/httpd-fs/index.shtml
diff --git a/Demo/RX600_RX62N-RSK_IAR/webserver/httpd-fs/io.shtml b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/webserver/httpd-fs/io.shtml
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/webserver/httpd-fs/io.shtml
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/webserver/httpd-fs/io.shtml
diff --git a/Demo/RX600_RX62N-RSK_IAR/webserver/httpd-fs/logo.jpg b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/webserver/httpd-fs/logo.jpg
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/webserver/httpd-fs/logo.jpg
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/webserver/httpd-fs/logo.jpg
diff --git a/Demo/RX600_RX62N-RSK_IAR/webserver/httpd-fs/runtime.shtml b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/webserver/httpd-fs/runtime.shtml
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/webserver/httpd-fs/runtime.shtml
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/webserver/httpd-fs/runtime.shtml
diff --git a/Demo/RX600_RX62N-RSK_IAR/webserver/httpd-fs/stats.shtml b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/webserver/httpd-fs/stats.shtml
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/webserver/httpd-fs/stats.shtml
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/webserver/httpd-fs/stats.shtml
diff --git a/Demo/RX600_RX62N-RSK_IAR/webserver/httpd-fs/tcp.shtml b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/webserver/httpd-fs/tcp.shtml
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/webserver/httpd-fs/tcp.shtml
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/webserver/httpd-fs/tcp.shtml
diff --git a/Demo/RX600_RX62N-RSK_IAR/webserver/httpd-fsdata.c b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/webserver/httpd-fsdata.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/webserver/httpd-fsdata.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/webserver/httpd-fsdata.c
diff --git a/Demo/RX600_RX62N-RSK_IAR/webserver/makefsdata b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/webserver/makefsdata
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/webserver/makefsdata
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/webserver/makefsdata
diff --git a/Demo/RX600_RX62N-RSK_IAR/webserver/phy.c b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/webserver/phy.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/webserver/phy.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/webserver/phy.c
diff --git a/Demo/RX600_RX62N-RSK_IAR/webserver/phy.h b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/webserver/phy.h
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/webserver/phy.h
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/webserver/phy.h
diff --git a/Demo/RX600_RX62N-RSK_IAR/webserver/r_ether.h b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/webserver/r_ether.h
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/webserver/r_ether.h
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/webserver/r_ether.h
diff --git a/Demo/RX600_RX62N-RSK_IAR/webserver/uip-conf.h b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/webserver/uip-conf.h
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/webserver/uip-conf.h
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/webserver/uip-conf.h
diff --git a/Demo/RX600_RX62N-RSK_IAR/webserver/webserver.h b/FreeRTOS/Demo/RX600_RX62N-RSK_IAR/webserver/webserver.h
similarity index 100%
rename from Demo/RX600_RX62N-RSK_IAR/webserver/webserver.h
rename to FreeRTOS/Demo/RX600_RX62N-RSK_IAR/webserver/webserver.h
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo.Hbp b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo.Hbp
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo.Hbp
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo.Hbp
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo.hws b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo.hws
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo.hws
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo.hws
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo.tws b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo.tws
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo.tws
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo.tws
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Debug/Debug.hdp b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Debug/Debug.hdp
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Debug/Debug.hdp
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Debug/Debug.hdp
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Debug_RX600_E1_E20_SYSTEM/Debug_RX600_E1_E20_SYSTEM.hdp b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Debug_RX600_E1_E20_SYSTEM/Debug_RX600_E1_E20_SYSTEM.hdp
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Debug_RX600_E1_E20_SYSTEM/Debug_RX600_E1_E20_SYSTEM.hdp
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Debug_RX600_E1_E20_SYSTEM/Debug_RX600_E1_E20_SYSTEM.hdp
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/DefaultSession.hsf b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/DefaultSession.hsf
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/DefaultSession.hsf
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/DefaultSession.hsf
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/FreeRTOSConfig.h b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/FreeRTOSConfig.h
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/FreeRTOSConfig.h
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/FreeRTOSConfig.h
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/HighFrequencyTimerTest.c b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/HighFrequencyTimerTest.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/HighFrequencyTimerTest.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/HighFrequencyTimerTest.c
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/IntQueueTimer.c b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/IntQueueTimer.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/IntQueueTimer.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/IntQueueTimer.c
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/ParTest.c b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/ParTest.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/ParTest.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/ParTest.c
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/RTOSDemo.hwp b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/RTOSDemo.hwp
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/RTOSDemo.hwp
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/RTOSDemo.hwp
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/RTOSDemo.nav b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/RTOSDemo.nav
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/RTOSDemo.nav
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/RTOSDemo.nav
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/RTOSDemo.tps b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/RTOSDemo.tps
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/RTOSDemo.tps
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/RTOSDemo.tps
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/dbsct.c b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/dbsct.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/dbsct.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/dbsct.c
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/hwsetup.c b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/hwsetup.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/hwsetup.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/hwsetup.c
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/intprg.c b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/intprg.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/intprg.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/intprg.c
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/lowlvl.src b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/lowlvl.src
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/lowlvl.src
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/lowlvl.src
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/lowsrc.c b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/lowsrc.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/lowsrc.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/lowsrc.c
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/resetprg.c b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/resetprg.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/resetprg.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/resetprg.c
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/sbrk.c b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/sbrk.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/sbrk.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/sbrk.c
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/vecttbl.c b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/vecttbl.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/vecttbl.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/Renesas-Files/vecttbl.c
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.ini b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.ini
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.ini
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.ini
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/SimDebug_RX600/SimDebug_RX600.hdp b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/SimDebug_RX600/SimDebug_RX600.hdp
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/SimDebug_RX600/SimDebug_RX600.hdp
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/SimDebug_RX600/SimDebug_RX600.hdp
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/SimSessionRX600.hsf b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/SimSessionRX600.hsf
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/SimSessionRX600.hsf
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/SimSessionRX600.hsf
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/include/IntQueueTimer.h b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/include/IntQueueTimer.h
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/include/IntQueueTimer.h
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/include/IntQueueTimer.h
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/include/iodefine.h b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/include/iodefine.h
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/include/iodefine.h
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/include/iodefine.h
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/include/lowsrc.h b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/include/lowsrc.h
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/include/lowsrc.h
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/include/lowsrc.h
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/include/rskrx62ndef.h b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/include/rskrx62ndef.h
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/include/rskrx62ndef.h
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/include/rskrx62ndef.h
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/include/stacksct.h b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/include/stacksct.h
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/include/stacksct.h
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/include/stacksct.h
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/include/typedefine.h b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/include/typedefine.h
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/include/typedefine.h
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/include/typedefine.h
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/include/vect.h b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/include/vect.h
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/include/vect.h
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/include/vect.h
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/main-blinky.c b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/main-blinky.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/main-blinky.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/main-blinky.c
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/main-full.c b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/main-full.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/main-full.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/main-full.c
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/uIP_Task.c b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/uIP_Task.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/uIP_Task.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/uIP_Task.c
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/EMAC.c b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/EMAC.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/EMAC.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/EMAC.c
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-cgi.c b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-cgi.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-cgi.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-cgi.c
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/404.html b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/404.html
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/404.html
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/404.html
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/index.html b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/index.html
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/index.html
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/index.html
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/index.shtml b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/index.shtml
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/index.shtml
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/index.shtml
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/io.shtml b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/io.shtml
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/io.shtml
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/io.shtml
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/logo.jpg b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/logo.jpg
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/logo.jpg
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/logo.jpg
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/runtime.shtml b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/runtime.shtml
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/runtime.shtml
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/runtime.shtml
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/stats.shtml b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/stats.shtml
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/stats.shtml
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/stats.shtml
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/tcp.shtml b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/tcp.shtml
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/tcp.shtml
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/tcp.shtml
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fsdata.c b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fsdata.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fsdata.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fsdata.c
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/makefsdata b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/makefsdata
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/makefsdata
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/makefsdata
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/phy.c b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/phy.c
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/phy.c
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/phy.c
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/phy.h b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/phy.h
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/phy.h
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/phy.h
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/r_ether.h b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/r_ether.h
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/r_ether.h
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/r_ether.h
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/uip-conf.h b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/uip-conf.h
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/uip-conf.h
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/uip-conf.h
diff --git a/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/webserver.h b/FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/webserver.h
similarity index 100%
rename from Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/webserver.h
rename to FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/webserver.h
diff --git a/Demo/RX600_RX630-RSK_Renesas/RTOSDemo.Hbp b/FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo.Hbp
similarity index 100%
rename from Demo/RX600_RX630-RSK_Renesas/RTOSDemo.Hbp
rename to FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo.Hbp
diff --git a/Demo/RX600_RX630-RSK_Renesas/RTOSDemo.hws b/FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo.hws
similarity index 100%
rename from Demo/RX600_RX630-RSK_Renesas/RTOSDemo.hws
rename to FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo.hws
diff --git a/Demo/RX600_RX630-RSK_Renesas/RTOSDemo.tws b/FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo.tws
similarity index 100%
rename from Demo/RX600_RX630-RSK_Renesas/RTOSDemo.tws
rename to FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo.tws
diff --git a/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/DefaultSession.hsf b/FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/DefaultSession.hsf
similarity index 100%
rename from Demo/RX600_RX630-RSK_Renesas/RTOSDemo/DefaultSession.hsf
rename to FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/DefaultSession.hsf
diff --git a/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/FreeRTOSConfig.h b/FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/FreeRTOSConfig.h
similarity index 100%
rename from Demo/RX600_RX630-RSK_Renesas/RTOSDemo/FreeRTOSConfig.h
rename to FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/FreeRTOSConfig.h
diff --git a/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/HighFrequencyTimerTest.c b/FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/HighFrequencyTimerTest.c
similarity index 100%
rename from Demo/RX600_RX630-RSK_Renesas/RTOSDemo/HighFrequencyTimerTest.c
rename to FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/HighFrequencyTimerTest.c
diff --git a/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/IntQueueTimer.c b/FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/IntQueueTimer.c
similarity index 100%
rename from Demo/RX600_RX630-RSK_Renesas/RTOSDemo/IntQueueTimer.c
rename to FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/IntQueueTimer.c
diff --git a/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/ParTest.c b/FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/ParTest.c
similarity index 100%
rename from Demo/RX600_RX630-RSK_Renesas/RTOSDemo/ParTest.c
rename to FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/ParTest.c
diff --git a/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/RTOSDemo.hwp b/FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/RTOSDemo.hwp
similarity index 100%
rename from Demo/RX600_RX630-RSK_Renesas/RTOSDemo/RTOSDemo.hwp
rename to FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/RTOSDemo.hwp
diff --git a/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/RTOSDemo.nav b/FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/RTOSDemo.nav
similarity index 100%
rename from Demo/RX600_RX630-RSK_Renesas/RTOSDemo/RTOSDemo.nav
rename to FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/RTOSDemo.nav
diff --git a/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/RTOSDemo.tps b/FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/RTOSDemo.tps
similarity index 100%
rename from Demo/RX600_RX630-RSK_Renesas/RTOSDemo/RTOSDemo.tps
rename to FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/RTOSDemo.tps
diff --git a/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/cgc.c b/FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/cgc.c
similarity index 100%
rename from Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/cgc.c
rename to FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/cgc.c
diff --git a/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/cgc.h b/FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/cgc.h
similarity index 100%
rename from Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/cgc.h
rename to FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/cgc.h
diff --git a/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/cgc_error.h b/FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/cgc_error.h
similarity index 100%
rename from Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/cgc_error.h
rename to FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/cgc_error.h
diff --git a/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/cgc_set.h b/FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/cgc_set.h
similarity index 100%
rename from Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/cgc_set.h
rename to FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/cgc_set.h
diff --git a/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/dbsct.c b/FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/dbsct.c
similarity index 100%
rename from Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/dbsct.c
rename to FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/dbsct.c
diff --git a/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/hwsetup.c b/FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/hwsetup.c
similarity index 100%
rename from Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/hwsetup.c
rename to FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/hwsetup.c
diff --git a/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/intprg.c b/FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/intprg.c
similarity index 100%
rename from Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/intprg.c
rename to FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/intprg.c
diff --git a/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/lowlvl.src b/FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/lowlvl.src
similarity index 100%
rename from Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/lowlvl.src
rename to FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/lowlvl.src
diff --git a/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/lowsrc.c b/FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/lowsrc.c
similarity index 100%
rename from Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/lowsrc.c
rename to FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/lowsrc.c
diff --git a/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/resetprg.c b/FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/resetprg.c
similarity index 100%
rename from Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/resetprg.c
rename to FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/resetprg.c
diff --git a/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/sbrk.c b/FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/sbrk.c
similarity index 100%
rename from Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/sbrk.c
rename to FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/sbrk.c
diff --git a/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/vecttbl.c b/FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/vecttbl.c
similarity index 100%
rename from Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/vecttbl.c
rename to FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Renesas-Files/vecttbl.c
diff --git a/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf b/FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf
similarity index 100%
rename from Demo/RX600_RX630-RSK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf
rename to FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf
diff --git a/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.ini b/FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.ini
similarity index 100%
rename from Demo/RX600_RX630-RSK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.ini
rename to FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.ini
diff --git a/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/SimSessionRX600.hsf b/FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/SimSessionRX600.hsf
similarity index 100%
rename from Demo/RX600_RX630-RSK_Renesas/RTOSDemo/SimSessionRX600.hsf
rename to FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/SimSessionRX600.hsf
diff --git a/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Upgrade.txt b/FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Upgrade.txt
similarity index 100%
rename from Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Upgrade.txt
rename to FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/Upgrade.txt
diff --git a/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/include/IntQueueTimer.h b/FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/include/IntQueueTimer.h
similarity index 100%
rename from Demo/RX600_RX630-RSK_Renesas/RTOSDemo/include/IntQueueTimer.h
rename to FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/include/IntQueueTimer.h
diff --git a/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/include/iodefine.h b/FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/include/iodefine.h
similarity index 100%
rename from Demo/RX600_RX630-RSK_Renesas/RTOSDemo/include/iodefine.h
rename to FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/include/iodefine.h
diff --git a/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/include/lowsrc.h b/FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/include/lowsrc.h
similarity index 100%
rename from Demo/RX600_RX630-RSK_Renesas/RTOSDemo/include/lowsrc.h
rename to FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/include/lowsrc.h
diff --git a/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/include/rskrx630def.h b/FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/include/rskrx630def.h
similarity index 100%
rename from Demo/RX600_RX630-RSK_Renesas/RTOSDemo/include/rskrx630def.h
rename to FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/include/rskrx630def.h
diff --git a/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/include/stacksct.h b/FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/include/stacksct.h
similarity index 100%
rename from Demo/RX600_RX630-RSK_Renesas/RTOSDemo/include/stacksct.h
rename to FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/include/stacksct.h
diff --git a/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/include/typedefine.h b/FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/include/typedefine.h
similarity index 100%
rename from Demo/RX600_RX630-RSK_Renesas/RTOSDemo/include/typedefine.h
rename to FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/include/typedefine.h
diff --git a/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/include/vect.h b/FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/include/vect.h
similarity index 100%
rename from Demo/RX600_RX630-RSK_Renesas/RTOSDemo/include/vect.h
rename to FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/include/vect.h
diff --git a/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/main-blinky.c b/FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/main-blinky.c
similarity index 100%
rename from Demo/RX600_RX630-RSK_Renesas/RTOSDemo/main-blinky.c
rename to FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/main-blinky.c
diff --git a/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/main-full.c b/FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/main-full.c
similarity index 100%
rename from Demo/RX600_RX630-RSK_Renesas/RTOSDemo/main-full.c
rename to FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/main-full.c
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo.Hbp b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo.Hbp
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo.Hbp
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo.Hbp
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo.hws b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo.hws
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo.hws
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo.hws
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo.tws b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo.tws
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo.tws
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo.tws
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/DefaultSession.hsf b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/DefaultSession.hsf
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/DefaultSession.hsf
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/DefaultSession.hsf
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/FreeRTOSConfig.h b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/FreeRTOSConfig.h
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/FreeRTOSConfig.h
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/FreeRTOSConfig.h
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/HighFrequencyTimerTest.c b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/HighFrequencyTimerTest.c
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/HighFrequencyTimerTest.c
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/HighFrequencyTimerTest.c
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/IntQueueTimer.c b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/IntQueueTimer.c
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/IntQueueTimer.c
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/IntQueueTimer.c
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/IntQueueTimer.h b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/IntQueueTimer.h
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/IntQueueTimer.h
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/IntQueueTimer.h
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/ParTest.c b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/ParTest.c
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/ParTest.c
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/ParTest.c
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RDK_Jlink.hsf b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RDK_Jlink.hsf
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RDK_Jlink.hsf
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RDK_Jlink.hsf
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RDK_Jlink.ini b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RDK_Jlink.ini
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RDK_Jlink.ini
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RDK_Jlink.ini
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RTOSDemo.hwp b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RTOSDemo.hwp
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RTOSDemo.hwp
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RTOSDemo.hwp
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RTOSDemo.nav b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RTOSDemo.nav
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RTOSDemo.nav
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RTOSDemo.nav
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RTOSDemo.tps b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RTOSDemo.tps
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RTOSDemo.tps
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/RTOSDemo.tps
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/dbsct.c b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/dbsct.c
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/dbsct.c
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/dbsct.c
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/flash_options.c b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/flash_options.c
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/flash_options.c
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/flash_options.c
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/hwsetup.c b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/hwsetup.c
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/hwsetup.c
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/hwsetup.c
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/hwsetup.h b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/hwsetup.h
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/hwsetup.h
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/hwsetup.h
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/lowlvl.src b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/lowlvl.src
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/lowlvl.src
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/lowlvl.src
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/lowsrc.c b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/lowsrc.c
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/lowsrc.c
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/lowsrc.c
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/mcu_info.h b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/mcu_info.h
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/mcu_info.h
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/mcu_info.h
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/r_bsp.h b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/r_bsp.h
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/r_bsp.h
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/r_bsp.h
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/r_bsp_config_reference.h b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/r_bsp_config_reference.h
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/r_bsp_config_reference.h
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/r_bsp_config_reference.h
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/resetprg.c b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/resetprg.c
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/resetprg.c
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/resetprg.c
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/sbrk.c b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/sbrk.c
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/sbrk.c
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/sbrk.c
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/vecttbl.c b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/vecttbl.c
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/vecttbl.c
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/vecttbl.c
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/yrdkrx63n.h b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/yrdkrx63n.h
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/yrdkrx63n.h
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/board/rdkrx63n/yrdkrx63n.h
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/mcu/rx63n/iodefine.h b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/mcu/rx63n/iodefine.h
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/mcu/rx63n/iodefine.h
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/mcu/rx63n/iodefine.h
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/mcu/rx63n/iodefine.h_from_toolchain b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/mcu/rx63n/iodefine.h_from_toolchain
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/mcu/rx63n/iodefine.h_from_toolchain
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/mcu/rx63n/iodefine.h_from_toolchain
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/platform.h b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/platform.h
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/platform.h
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/Renesas-Files/platform.h
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/SimSessionRX600.hsf b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/SimSessionRX600.hsf
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/SimSessionRX600.hsf
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/SimSessionRX600.hsf
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/main-blinky.c b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/main-blinky.c
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/main-blinky.c
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/main-blinky.c
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/main-full.c b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/main-full.c
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/main-full.c
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/main-full.c
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/r_bsp_config.h b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/r_bsp_config.h
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/r_bsp_config.h
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/r_bsp_config.h
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/uIP_Task.c b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/uIP_Task.c
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/uIP_Task.c
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/uIP_Task.c
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/EMAC.c b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/EMAC.c
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/EMAC.c
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/EMAC.c
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-cgi.c b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-cgi.c
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-cgi.c
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-cgi.c
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/404.html b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/404.html
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/404.html
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/404.html
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/index.html b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/index.html
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/index.html
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/index.html
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/index.shtml b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/index.shtml
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/index.shtml
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/index.shtml
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/io.shtml b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/io.shtml
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/io.shtml
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/io.shtml
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/logo.jpg b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/logo.jpg
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/logo.jpg
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/logo.jpg
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/runtime.shtml b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/runtime.shtml
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/runtime.shtml
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/runtime.shtml
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/stats.shtml b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/stats.shtml
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/stats.shtml
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/stats.shtml
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/tcp.shtml b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/tcp.shtml
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/tcp.shtml
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/tcp.shtml
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fsdata.c b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fsdata.c
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fsdata.c
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fsdata.c
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/makefsdata b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/makefsdata
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/makefsdata
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/makefsdata
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/phy.c b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/phy.c
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/phy.c
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/phy.c
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/phy.h b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/phy.h
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/phy.h
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/phy.h
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/r_ether.h b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/r_ether.h
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/r_ether.h
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/r_ether.h
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/uip-conf.h b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/uip-conf.h
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/uip-conf.h
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/uip-conf.h
diff --git a/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/webserver.h b/FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/webserver.h
similarity index 100%
rename from Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/webserver.h
rename to FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/webserver.h
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo.Hbp b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo.Hbp
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo.Hbp
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo.Hbp
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo.hws b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo.hws
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo.hws
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo.hws
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo.tws b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo.tws
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo.tws
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo.tws
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/DefaultSession.hsf b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/DefaultSession.hsf
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/DefaultSession.hsf
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/DefaultSession.hsf
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/FreeRTOSConfig.h b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/FreeRTOSConfig.h
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/FreeRTOSConfig.h
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/FreeRTOSConfig.h
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/HighFrequencyTimerTest.c b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/HighFrequencyTimerTest.c
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/HighFrequencyTimerTest.c
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/HighFrequencyTimerTest.c
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/IntQueueTimer.c b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/IntQueueTimer.c
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/IntQueueTimer.c
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/IntQueueTimer.c
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/IntQueueTimer.h b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/IntQueueTimer.h
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/IntQueueTimer.h
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/IntQueueTimer.h
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/ParTest.c b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/ParTest.c
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/ParTest.c
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/ParTest.c
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/RTOSDemo.hwp b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/RTOSDemo.hwp
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/RTOSDemo.hwp
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/RTOSDemo.hwp
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/RTOSDemo.nav b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/RTOSDemo.nav
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/RTOSDemo.nav
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/RTOSDemo.nav
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/RTOSDemo.tps b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/RTOSDemo.tps
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/RTOSDemo.tps
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/RTOSDemo.tps
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/dbsct.c b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/dbsct.c
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/dbsct.c
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/dbsct.c
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/flash_options.c b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/flash_options.c
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/flash_options.c
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/flash_options.c
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/hwsetup.c b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/hwsetup.c
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/hwsetup.c
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/hwsetup.c
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/hwsetup.h b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/hwsetup.h
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/hwsetup.h
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/hwsetup.h
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/lowlvl.src b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/lowlvl.src
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/lowlvl.src
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/lowlvl.src
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/lowsrc.c b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/lowsrc.c
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/lowsrc.c
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/lowsrc.c
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/mcu_info.h b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/mcu_info.h
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/mcu_info.h
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/mcu_info.h
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/r_bsp.h b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/r_bsp.h
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/r_bsp.h
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/r_bsp.h
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/r_bsp_config_reference.h b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/r_bsp_config_reference.h
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/r_bsp_config_reference.h
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/r_bsp_config_reference.h
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/resetprg.c b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/resetprg.c
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/resetprg.c
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/resetprg.c
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/rskrx63n.h b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/rskrx63n.h
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/rskrx63n.h
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/rskrx63n.h
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/sbrk.c b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/sbrk.c
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/sbrk.c
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/sbrk.c
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/vecttbl.c b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/vecttbl.c
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/vecttbl.c
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/board/rskrx63n/vecttbl.c
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/mcu/rx63n/iodefine.h b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/mcu/rx63n/iodefine.h
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/mcu/rx63n/iodefine.h
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/mcu/rx63n/iodefine.h
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/mcu/rx63n/iodefine.h_from_toolchain b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/mcu/rx63n/iodefine.h_from_toolchain
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/mcu/rx63n/iodefine.h_from_toolchain
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/mcu/rx63n/iodefine.h_from_toolchain
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/platform.h b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/platform.h
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/platform.h
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/Renesas-Files/platform.h
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.ini b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.ini
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.ini
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.ini
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/SimSessionRX600.hsf b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/SimSessionRX600.hsf
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/SimSessionRX600.hsf
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/SimSessionRX600.hsf
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/main-blinky.c b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/main-blinky.c
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/main-blinky.c
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/main-blinky.c
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/main-full.c b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/main-full.c
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/main-full.c
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/main-full.c
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/r_bsp_config.h b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/r_bsp_config.h
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/r_bsp_config.h
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/r_bsp_config.h
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/uIP_Task.c b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/uIP_Task.c
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/uIP_Task.c
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/uIP_Task.c
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/EMAC.c b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/EMAC.c
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/EMAC.c
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/EMAC.c
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-cgi.c b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-cgi.c
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-cgi.c
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-cgi.c
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/404.html b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/404.html
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/404.html
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/404.html
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/index.html b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/index.html
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/index.html
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/index.html
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/index.shtml b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/index.shtml
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/index.shtml
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/index.shtml
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/io.shtml b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/io.shtml
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/io.shtml
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/io.shtml
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/logo.jpg b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/logo.jpg
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/logo.jpg
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/logo.jpg
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/runtime.shtml b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/runtime.shtml
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/runtime.shtml
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/runtime.shtml
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/stats.shtml b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/stats.shtml
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/stats.shtml
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/stats.shtml
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/tcp.shtml b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/tcp.shtml
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/tcp.shtml
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/tcp.shtml
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fsdata.c b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fsdata.c
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fsdata.c
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fsdata.c
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/makefsdata b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/makefsdata
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/makefsdata
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/makefsdata
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/phy.c b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/phy.c
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/phy.c
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/phy.c
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/phy.h b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/phy.h
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/phy.h
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/phy.h
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/r_ether.h b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/r_ether.h
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/r_ether.h
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/r_ether.h
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/uip-conf.h b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/uip-conf.h
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/uip-conf.h
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/uip-conf.h
diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/webserver.h b/FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/webserver.h
similarity index 100%
rename from Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/webserver.h
rename to FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/webserver.h
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo.hws b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo.hws
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo.hws
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo.hws
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo.tws b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo.tws
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo.tws
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo.tws
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/FreeRTOSConfig.h b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/FreeRTOSConfig.h
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/FreeRTOSConfig.h
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/FreeRTOSConfig.h
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/ParTest/ParTest.c b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/ParTest/ParTest.c
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/ParTest/ParTest.c
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/ParTest/ParTest.c
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.c b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.c
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.c
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.c
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.hwp b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.hwp
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.hwp
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.hwp
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.nav b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.nav
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.nav
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.nav
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.pgs b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.pgs
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.pgs
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.pgs
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.tps b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.tps
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.tps
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.tps
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/compiler.h b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/compiler.h
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/compiler.h
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/compiler.h
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/hwEthernet.h b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/hwEthernet.h
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/hwEthernet.h
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/hwEthernet.h
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/hwEthernetPhy.h b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/hwEthernetPhy.h
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/hwEthernetPhy.h
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/hwEthernetPhy.h
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/hwEthernetPhyRTL8201.c b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/hwEthernetPhyRTL8201.c
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/hwEthernetPhyRTL8201.c
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/hwEthernetPhyRTL8201.c
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/rsk7216def.h b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/rsk7216def.h
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/rsk7216def.h
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/rsk7216def.h
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/trace.h b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/trace.h
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/trace.h
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/trace.h
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/typedefine.h b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/typedefine.h
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/typedefine.h
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/typedefine.h
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/types.h b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/types.h
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/types.h
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/types.h
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/SessionSH7216_E10A-USB_SYSTEM__SH.hsf b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/SessionSH7216_E10A-USB_SYSTEM__SH.hsf
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/SessionSH7216_E10A-USB_SYSTEM__SH.hsf
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/SessionSH7216_E10A-USB_SYSTEM__SH.hsf
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/SessionSH7216_E10A-USB_SYSTEM__SH.ini b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/SessionSH7216_E10A-USB_SYSTEM__SH.ini
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/SessionSH7216_E10A-USB_SYSTEM__SH.ini
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/SessionSH7216_E10A-USB_SYSTEM__SH.ini
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/SessionSH7216_E10A-USB_SYSTEM__SH_Heush2acustom1.ini b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/SessionSH7216_E10A-USB_SYSTEM__SH_Heush2acustom1.ini
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/SessionSH7216_E10A-USB_SYSTEM__SH_Heush2acustom1.ini
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/SessionSH7216_E10A-USB_SYSTEM__SH_Heush2acustom1.ini
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/dbsct.c b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/dbsct.c
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/dbsct.c
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/dbsct.c
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/flop.c b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/flop.c
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/flop.c
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/flop.c
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/intprg.c b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/intprg.c
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/intprg.c
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/intprg.c
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/iodefine.h b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/iodefine.h
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/iodefine.h
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/iodefine.h
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/main.c b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/main.c
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/main.c
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/main.c
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/printf-stdarg.c b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/printf-stdarg.c
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/printf-stdarg.c
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/printf-stdarg.c
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/regtest.src b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/regtest.src
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/regtest.src
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/regtest.src
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/resetprg.c b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/resetprg.c
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/resetprg.c
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/resetprg.c
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/stacksct.h b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/stacksct.h
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/stacksct.h
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/stacksct.h
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/typedefine.h b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/typedefine.h
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/typedefine.h
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/typedefine.h
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/uIP_Task.c b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/uIP_Task.c
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/uIP_Task.c
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/uIP_Task.c
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/vect.h b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/vect.h
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/vect.h
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/vect.h
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/vecttbl.c b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/vecttbl.c
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/vecttbl.c
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/vecttbl.c
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/EMAC.c b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/EMAC.c
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/EMAC.c
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/EMAC.c
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/EMAC_ISR.src b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/EMAC_ISR.src
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/EMAC_ISR.src
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/EMAC_ISR.src
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-cgi.c b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-cgi.c
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-cgi.c
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-cgi.c
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/404.html b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/404.html
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/404.html
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/404.html
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/index.html b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/index.html
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/index.html
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/index.html
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/index.shtml b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/index.shtml
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/index.shtml
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/index.shtml
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/io.shtml b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/io.shtml
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/io.shtml
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/io.shtml
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/logo.jpg b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/logo.jpg
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/logo.jpg
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/logo.jpg
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/runtime.shtml b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/runtime.shtml
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/runtime.shtml
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/runtime.shtml
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/stats.shtml b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/stats.shtml
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/stats.shtml
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/stats.shtml
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/tcp.shtml b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/tcp.shtml
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/tcp.shtml
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/tcp.shtml
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fsdata.c b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fsdata.c
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fsdata.c
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fsdata.c
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/makefsdata b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/makefsdata
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/makefsdata
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/makefsdata
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/uip-conf.h b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/uip-conf.h
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/uip-conf.h
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/uip-conf.h
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/webserver.h b/FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/webserver.h
similarity index 100%
rename from Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/webserver.h
rename to FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/webserver.h
diff --git a/Demo/TriCore_TC1782_TriBoard_GCC/.cproject b/FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/.cproject
similarity index 100%
rename from Demo/TriCore_TC1782_TriBoard_GCC/.cproject
rename to FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/.cproject
diff --git a/Demo/TriCore_TC1782_TriBoard_GCC/.project b/FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/.project
similarity index 100%
rename from Demo/TriCore_TC1782_TriBoard_GCC/.project
rename to FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/.project
diff --git a/Demo/TriCore_TC1782_TriBoard_GCC/.ude/.target/TriBoard_TC1782.cfg b/FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/.ude/.target/TriBoard_TC1782.cfg
similarity index 100%
rename from Demo/TriCore_TC1782_TriBoard_GCC/.ude/.target/TriBoard_TC1782.cfg
rename to FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/.ude/.target/TriBoard_TC1782.cfg
diff --git a/Demo/TriCore_TC1782_TriBoard_GCC/.ude/UDEDefEclipseWorkspace.wsx b/FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/.ude/UDEDefEclipseWorkspace.wsx
similarity index 100%
rename from Demo/TriCore_TC1782_TriBoard_GCC/.ude/UDEDefEclipseWorkspace.wsx
rename to FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/.ude/UDEDefEclipseWorkspace.wsx
diff --git a/Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/CreateProjectDirectoryStructure.bat b/FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/CreateProjectDirectoryStructure.bat
similarity index 100%
rename from Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/CreateProjectDirectoryStructure.bat
rename to FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/CreateProjectDirectoryStructure.bat
diff --git a/Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/FreeRTOSConfig.h b/FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/FreeRTOSConfig.h
similarity index 100%
rename from Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/FreeRTOSConfig.h
rename to FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/FreeRTOSConfig.h
diff --git a/Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/InterruptNestTest.c b/FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/InterruptNestTest.c
similarity index 100%
rename from Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/InterruptNestTest.c
rename to FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/InterruptNestTest.c
diff --git a/Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/InterruptNestTest.h b/FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/InterruptNestTest.h
similarity index 100%
rename from Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/InterruptNestTest.h
rename to FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/InterruptNestTest.h
diff --git a/Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/ParTest.c b/FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/ParTest.c
similarity index 100%
rename from Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/ParTest.c
rename to FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/ParTest.c
diff --git a/Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/ThirdPartyCode/cpufreq.c b/FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/ThirdPartyCode/cpufreq.c
similarity index 100%
rename from Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/ThirdPartyCode/cpufreq.c
rename to FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/ThirdPartyCode/cpufreq.c
diff --git a/Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/main.c b/FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/main.c
similarity index 100%
rename from Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/main.c
rename to FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/main.c
diff --git a/Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/serial.c b/FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/serial.c
similarity index 100%
rename from Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/serial.c
rename to FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/serial.c
diff --git a/Demo/TriCore_TC1782_TriBoard_GCC/ld/iRAM.ld b/FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/ld/iRAM.ld
similarity index 100%
rename from Demo/TriCore_TC1782_TriBoard_GCC/ld/iRAM.ld
rename to FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/ld/iRAM.ld
diff --git a/Demo/TriCore_TC1782_TriBoard_GCC/ld/iROM.ld b/FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/ld/iROM.ld
similarity index 100%
rename from Demo/TriCore_TC1782_TriBoard_GCC/ld/iROM.ld
rename to FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/ld/iROM.ld
diff --git a/Demo/TriCore_TC1782_TriBoard_GCC/models/.parts/ldf_configuration.lm b/FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/models/.parts/ldf_configuration.lm
similarity index 100%
rename from Demo/TriCore_TC1782_TriBoard_GCC/models/.parts/ldf_configuration.lm
rename to FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/models/.parts/ldf_configuration.lm
diff --git a/Demo/TriCore_TC1782_TriBoard_GCC/models/TriBoard-TC1782.mdm b/FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/models/TriBoard-TC1782.mdm
similarity index 100%
rename from Demo/TriCore_TC1782_TriBoard_GCC/models/TriBoard-TC1782.mdm
rename to FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/models/TriBoard-TC1782.mdm
diff --git a/Demo/TriCore_TC1782_TriBoard_GCC/models/iRAM.lm b/FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/models/iRAM.lm
similarity index 100%
rename from Demo/TriCore_TC1782_TriBoard_GCC/models/iRAM.lm
rename to FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/models/iRAM.lm
diff --git a/Demo/TriCore_TC1782_TriBoard_GCC/models/iROM.lm b/FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/models/iROM.lm
similarity index 100%
rename from Demo/TriCore_TC1782_TriBoard_GCC/models/iROM.lm
rename to FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/models/iROM.lm
diff --git a/Demo/Unsupported_Demos/ReadMe.txt b/FreeRTOS/Demo/Unsupported_Demos/ReadMe.txt
similarity index 100%
rename from Demo/Unsupported_Demos/ReadMe.txt
rename to FreeRTOS/Demo/Unsupported_Demos/ReadMe.txt
diff --git a/Demo/WIN32-MSVC-lwIP/FreeRTOSConfig.h b/FreeRTOS/Demo/WIN32-MSVC-lwIP/FreeRTOSConfig.h
similarity index 100%
rename from Demo/WIN32-MSVC-lwIP/FreeRTOSConfig.h
rename to FreeRTOS/Demo/WIN32-MSVC-lwIP/FreeRTOSConfig.h
diff --git a/FreeRTOS/Demo/WIN32-MSVC-lwIP/WIN32.sln b/FreeRTOS/Demo/WIN32-MSVC-lwIP/WIN32.sln
new file mode 100644
index 000000000..3f819af17
--- /dev/null
+++ b/FreeRTOS/Demo/WIN32-MSVC-lwIP/WIN32.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual C++ Express 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WIN32", "WIN32.vcxproj", "{C686325E-3261-42F7-AEB1-DDE5280E1CEB}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.ActiveCfg = Debug|Win32
+		{C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.Build.0 = Debug|Win32
+		{C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Release|Win32.ActiveCfg = Release|Win32
+		{C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/Demo/WIN32-MSVC-lwIP/WIN32.suo b/FreeRTOS/Demo/WIN32-MSVC-lwIP/WIN32.suo
similarity index 100%
rename from Demo/WIN32-MSVC-lwIP/WIN32.suo
rename to FreeRTOS/Demo/WIN32-MSVC-lwIP/WIN32.suo
diff --git a/Demo/WIN32-MSVC-lwIP/WIN32.vcxproj b/FreeRTOS/Demo/WIN32-MSVC-lwIP/WIN32.vcxproj
similarity index 100%
rename from Demo/WIN32-MSVC-lwIP/WIN32.vcxproj
rename to FreeRTOS/Demo/WIN32-MSVC-lwIP/WIN32.vcxproj
diff --git a/Demo/WIN32-MSVC-lwIP/WIN32.vcxproj.filters b/FreeRTOS/Demo/WIN32-MSVC-lwIP/WIN32.vcxproj.filters
similarity index 100%
rename from Demo/WIN32-MSVC-lwIP/WIN32.vcxproj.filters
rename to FreeRTOS/Demo/WIN32-MSVC-lwIP/WIN32.vcxproj.filters
diff --git a/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/BasicSocketCommandServer/BasicSocketCommandServer.c b/FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/BasicSocketCommandServer/BasicSocketCommandServer.c
similarity index 100%
rename from Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/BasicSocketCommandServer/BasicSocketCommandServer.c
rename to FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/BasicSocketCommandServer/BasicSocketCommandServer.c
diff --git a/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/fs.c b/FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/fs.c
similarity index 100%
rename from Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/fs.c
rename to FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/fs.c
diff --git a/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/fs.h b/FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/fs.h
similarity index 100%
rename from Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/fs.h
rename to FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/fs.h
diff --git a/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/fsdata.c b/FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/fsdata.c
similarity index 100%
rename from Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/fsdata.c
rename to FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/fsdata.c
diff --git a/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/fsdata.h b/FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/fsdata.h
similarity index 100%
rename from Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/fsdata.h
rename to FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/fsdata.h
diff --git a/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/httpd.c b/FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/httpd.c
similarity index 100%
rename from Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/httpd.c
rename to FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/httpd.c
diff --git a/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/httpd.h b/FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/httpd.h
similarity index 100%
rename from Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/httpd.h
rename to FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/httpd.h
diff --git a/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/httpd_structs.h b/FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/httpd_structs.h
similarity index 100%
rename from Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/httpd_structs.h
rename to FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/httpd_structs.h
diff --git a/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.sln b/FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.sln
similarity index 100%
rename from Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.sln
rename to FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.sln
diff --git a/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.suo b/FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.suo
similarity index 100%
rename from Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.suo
rename to FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.suo
diff --git a/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.vcxproj b/FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.vcxproj
similarity index 100%
rename from Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.vcxproj
rename to FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.vcxproj
diff --git a/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.vcxproj.filters b/FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.vcxproj.filters
similarity index 100%
rename from Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.vcxproj.filters
rename to FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.vcxproj.filters
diff --git a/FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.vcxproj.user b/FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.vcxproj.user
new file mode 100644
index 000000000..695b5c78b
--- /dev/null
+++ b/FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.vcxproj.user
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/404.html b/FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/404.html
similarity index 100%
rename from Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/404.html
rename to FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/404.html
diff --git a/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/index.shtml b/FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/index.shtml
similarity index 100%
rename from Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/index.shtml
rename to FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/index.shtml
diff --git a/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/logo.jpg b/FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/logo.jpg
similarity index 100%
rename from Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/logo.jpg
rename to FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/logo.jpg
diff --git a/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/runtime.shtml b/FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/runtime.shtml
similarity index 100%
rename from Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/runtime.shtml
rename to FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/runtime.shtml
diff --git a/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fsdata.c b/FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fsdata.c
similarity index 100%
rename from Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fsdata.c
rename to FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fsdata.c
diff --git a/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/makefsdata b/FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/makefsdata
similarity index 100%
rename from Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/makefsdata
rename to FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/makefsdata
diff --git a/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/makefsdata.c b/FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/makefsdata.c
similarity index 100%
rename from Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/makefsdata.c
rename to FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/makefsdata.c
diff --git a/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/makefsdata.exe b/FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/makefsdata.exe
similarity index 100%
rename from Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/makefsdata.exe
rename to FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/makefsdata.exe
diff --git a/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/stdafx.cpp b/FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/stdafx.cpp
similarity index 100%
rename from Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/stdafx.cpp
rename to FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/stdafx.cpp
diff --git a/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/stdafx.h b/FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/stdafx.h
similarity index 100%
rename from Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/stdafx.h
rename to FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/stdafx.h
diff --git a/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/targetver.h b/FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/targetver.h
similarity index 100%
rename from Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/targetver.h
rename to FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/targetver.h
diff --git a/Demo/WIN32-MSVC-lwIP/lwIP_Apps/lwIP_Apps.c b/FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/lwIP_Apps.c
similarity index 100%
rename from Demo/WIN32-MSVC-lwIP/lwIP_Apps/lwIP_Apps.c
rename to FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/lwIP_Apps.c
diff --git a/Demo/WIN32-MSVC-lwIP/lwIP_Apps/lwIP_Apps.h b/FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/lwIP_Apps.h
similarity index 100%
rename from Demo/WIN32-MSVC-lwIP/lwIP_Apps/lwIP_Apps.h
rename to FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/lwIP_Apps.h
diff --git a/Demo/WIN32-MSVC-lwIP/lwIP_Apps/lwipcfg_msvc.h b/FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/lwipcfg_msvc.h
similarity index 100%
rename from Demo/WIN32-MSVC-lwIP/lwIP_Apps/lwipcfg_msvc.h
rename to FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/lwipcfg_msvc.h
diff --git a/Demo/WIN32-MSVC-lwIP/lwIP_Apps/lwipopts.h b/FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/lwipopts.h
similarity index 100%
rename from Demo/WIN32-MSVC-lwIP/lwIP_Apps/lwipopts.h
rename to FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/lwipopts.h
diff --git a/Demo/WIN32-MSVC-lwIP/main.c b/FreeRTOS/Demo/WIN32-MSVC-lwIP/main.c
similarity index 100%
rename from Demo/WIN32-MSVC-lwIP/main.c
rename to FreeRTOS/Demo/WIN32-MSVC-lwIP/main.c
diff --git a/Demo/WIN32-MSVC/DemosModifiedForLowTickRate/recmutex.c b/FreeRTOS/Demo/WIN32-MSVC/DemosModifiedForLowTickRate/recmutex.c
similarity index 100%
rename from Demo/WIN32-MSVC/DemosModifiedForLowTickRate/recmutex.c
rename to FreeRTOS/Demo/WIN32-MSVC/DemosModifiedForLowTickRate/recmutex.c
diff --git a/Demo/WIN32-MSVC/FreeRTOSConfig.h b/FreeRTOS/Demo/WIN32-MSVC/FreeRTOSConfig.h
similarity index 100%
rename from Demo/WIN32-MSVC/FreeRTOSConfig.h
rename to FreeRTOS/Demo/WIN32-MSVC/FreeRTOSConfig.h
diff --git a/FreeRTOS/Demo/WIN32-MSVC/WIN32.sln b/FreeRTOS/Demo/WIN32-MSVC/WIN32.sln
new file mode 100644
index 000000000..3f819af17
--- /dev/null
+++ b/FreeRTOS/Demo/WIN32-MSVC/WIN32.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual C++ Express 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WIN32", "WIN32.vcxproj", "{C686325E-3261-42F7-AEB1-DDE5280E1CEB}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.ActiveCfg = Debug|Win32
+		{C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.Build.0 = Debug|Win32
+		{C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Release|Win32.ActiveCfg = Release|Win32
+		{C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/Demo/WIN32-MSVC/WIN32.suo b/FreeRTOS/Demo/WIN32-MSVC/WIN32.suo
similarity index 100%
rename from Demo/WIN32-MSVC/WIN32.suo
rename to FreeRTOS/Demo/WIN32-MSVC/WIN32.suo
diff --git a/Demo/WIN32-MSVC/WIN32.vcxproj b/FreeRTOS/Demo/WIN32-MSVC/WIN32.vcxproj
similarity index 100%
rename from Demo/WIN32-MSVC/WIN32.vcxproj
rename to FreeRTOS/Demo/WIN32-MSVC/WIN32.vcxproj
diff --git a/Demo/WIN32-MSVC/WIN32.vcxproj.filters b/FreeRTOS/Demo/WIN32-MSVC/WIN32.vcxproj.filters
similarity index 100%
rename from Demo/WIN32-MSVC/WIN32.vcxproj.filters
rename to FreeRTOS/Demo/WIN32-MSVC/WIN32.vcxproj.filters
diff --git a/Demo/WIN32-MSVC/main.c b/FreeRTOS/Demo/WIN32-MSVC/main.c
similarity index 100%
rename from Demo/WIN32-MSVC/main.c
rename to FreeRTOS/Demo/WIN32-MSVC/main.c
diff --git a/Demo/WIN32-MingW/.cproject b/FreeRTOS/Demo/WIN32-MingW/.cproject
similarity index 100%
rename from Demo/WIN32-MingW/.cproject
rename to FreeRTOS/Demo/WIN32-MingW/.cproject
diff --git a/Demo/WIN32-MingW/.project b/FreeRTOS/Demo/WIN32-MingW/.project
similarity index 100%
rename from Demo/WIN32-MingW/.project
rename to FreeRTOS/Demo/WIN32-MingW/.project
diff --git a/Demo/WIN32-MingW/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/FreeRTOS/Demo/WIN32-MingW/.settings/org.eclipse.cdt.managedbuilder.core.prefs
similarity index 100%
rename from Demo/WIN32-MingW/.settings/org.eclipse.cdt.managedbuilder.core.prefs
rename to FreeRTOS/Demo/WIN32-MingW/.settings/org.eclipse.cdt.managedbuilder.core.prefs
diff --git a/Demo/WIN32-MingW/CreateProjectDirectoryStructure.bat b/FreeRTOS/Demo/WIN32-MingW/CreateProjectDirectoryStructure.bat
similarity index 100%
rename from Demo/WIN32-MingW/CreateProjectDirectoryStructure.bat
rename to FreeRTOS/Demo/WIN32-MingW/CreateProjectDirectoryStructure.bat
diff --git a/Demo/WIN32-MingW/DemosModifiedForLowTickRate/recmutex.c b/FreeRTOS/Demo/WIN32-MingW/DemosModifiedForLowTickRate/recmutex.c
similarity index 100%
rename from Demo/WIN32-MingW/DemosModifiedForLowTickRate/recmutex.c
rename to FreeRTOS/Demo/WIN32-MingW/DemosModifiedForLowTickRate/recmutex.c
diff --git a/Demo/WIN32-MingW/FreeRTOSConfig.h b/FreeRTOS/Demo/WIN32-MingW/FreeRTOSConfig.h
similarity index 100%
rename from Demo/WIN32-MingW/FreeRTOSConfig.h
rename to FreeRTOS/Demo/WIN32-MingW/FreeRTOSConfig.h
diff --git a/Demo/WIN32-MingW/main.c b/FreeRTOS/Demo/WIN32-MingW/main.c
similarity index 100%
rename from Demo/WIN32-MingW/main.c
rename to FreeRTOS/Demo/WIN32-MingW/main.c
diff --git a/Demo/WizNET_DEMO_GCC_ARM7/FreeRTOSConfig.h b/FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/FreeRTOSConfig.h
similarity index 100%
rename from Demo/WizNET_DEMO_GCC_ARM7/FreeRTOSConfig.h
rename to FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/FreeRTOSConfig.h
diff --git a/Demo/WizNET_DEMO_GCC_ARM7/HTTP_Serv.c b/FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/HTTP_Serv.c
similarity index 100%
rename from Demo/WizNET_DEMO_GCC_ARM7/HTTP_Serv.c
rename to FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/HTTP_Serv.c
diff --git a/Demo/WizNET_DEMO_GCC_ARM7/HTTP_Serv.h b/FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/HTTP_Serv.h
similarity index 100%
rename from Demo/WizNET_DEMO_GCC_ARM7/HTTP_Serv.h
rename to FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/HTTP_Serv.h
diff --git a/Demo/WizNET_DEMO_GCC_ARM7/Makefile b/FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/Makefile
similarity index 100%
rename from Demo/WizNET_DEMO_GCC_ARM7/Makefile
rename to FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/Makefile
diff --git a/Demo/WizNET_DEMO_GCC_ARM7/TCP.c b/FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/TCP.c
similarity index 100%
rename from Demo/WizNET_DEMO_GCC_ARM7/TCP.c
rename to FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/TCP.c
diff --git a/Demo/WizNET_DEMO_GCC_ARM7/TCP.h b/FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/TCP.h
similarity index 100%
rename from Demo/WizNET_DEMO_GCC_ARM7/TCP.h
rename to FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/TCP.h
diff --git a/Demo/WizNET_DEMO_GCC_ARM7/TCPISR.c b/FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/TCPISR.c
similarity index 100%
rename from Demo/WizNET_DEMO_GCC_ARM7/TCPISR.c
rename to FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/TCPISR.c
diff --git a/Demo/WizNET_DEMO_GCC_ARM7/boot.s b/FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/boot.s
similarity index 100%
rename from Demo/WizNET_DEMO_GCC_ARM7/boot.s
rename to FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/boot.s
diff --git a/Demo/WizNET_DEMO_GCC_ARM7/html_pages.h b/FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/html_pages.h
similarity index 100%
rename from Demo/WizNET_DEMO_GCC_ARM7/html_pages.h
rename to FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/html_pages.h
diff --git a/Demo/WizNET_DEMO_GCC_ARM7/i2c.c b/FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/i2c.c
similarity index 100%
rename from Demo/WizNET_DEMO_GCC_ARM7/i2c.c
rename to FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/i2c.c
diff --git a/Demo/WizNET_DEMO_GCC_ARM7/i2c.h b/FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/i2c.h
similarity index 100%
rename from Demo/WizNET_DEMO_GCC_ARM7/i2c.h
rename to FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/i2c.h
diff --git a/Demo/WizNET_DEMO_GCC_ARM7/i2cISR.c b/FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/i2cISR.c
similarity index 100%
rename from Demo/WizNET_DEMO_GCC_ARM7/i2cISR.c
rename to FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/i2cISR.c
diff --git a/Demo/WizNET_DEMO_GCC_ARM7/lpc2106-rom.ld b/FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/lpc2106-rom.ld
similarity index 100%
rename from Demo/WizNET_DEMO_GCC_ARM7/lpc2106-rom.ld
rename to FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/lpc2106-rom.ld
diff --git a/Demo/WizNET_DEMO_GCC_ARM7/lpc210x.h b/FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/lpc210x.h
similarity index 100%
rename from Demo/WizNET_DEMO_GCC_ARM7/lpc210x.h
rename to FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/lpc210x.h
diff --git a/Demo/WizNET_DEMO_GCC_ARM7/main.c b/FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/main.c
similarity index 100%
rename from Demo/WizNET_DEMO_GCC_ARM7/main.c
rename to FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/main.c
diff --git a/Demo/WizNET_DEMO_TERN_186/186.cfg b/FreeRTOS/Demo/WizNET_DEMO_TERN_186/186.cfg
similarity index 100%
rename from Demo/WizNET_DEMO_TERN_186/186.cfg
rename to FreeRTOS/Demo/WizNET_DEMO_TERN_186/186.cfg
diff --git a/Demo/WizNET_DEMO_TERN_186/AE.LIB b/FreeRTOS/Demo/WizNET_DEMO_TERN_186/AE.LIB
similarity index 100%
rename from Demo/WizNET_DEMO_TERN_186/AE.LIB
rename to FreeRTOS/Demo/WizNET_DEMO_TERN_186/AE.LIB
diff --git a/Demo/WizNET_DEMO_TERN_186/FreeRTOSConfig.h b/FreeRTOS/Demo/WizNET_DEMO_TERN_186/FreeRTOSConfig.h
similarity index 100%
rename from Demo/WizNET_DEMO_TERN_186/FreeRTOSConfig.h
rename to FreeRTOS/Demo/WizNET_DEMO_TERN_186/FreeRTOSConfig.h
diff --git a/Demo/WizNET_DEMO_TERN_186/HTTPTask.c b/FreeRTOS/Demo/WizNET_DEMO_TERN_186/HTTPTask.c
similarity index 100%
rename from Demo/WizNET_DEMO_TERN_186/HTTPTask.c
rename to FreeRTOS/Demo/WizNET_DEMO_TERN_186/HTTPTask.c
diff --git a/Demo/WizNET_DEMO_TERN_186/HTTPTask.h b/FreeRTOS/Demo/WizNET_DEMO_TERN_186/HTTPTask.h
similarity index 100%
rename from Demo/WizNET_DEMO_TERN_186/HTTPTask.h
rename to FreeRTOS/Demo/WizNET_DEMO_TERN_186/HTTPTask.h
diff --git a/Demo/WizNET_DEMO_TERN_186/RTOSDemo.DSW b/FreeRTOS/Demo/WizNET_DEMO_TERN_186/RTOSDemo.DSW
similarity index 100%
rename from Demo/WizNET_DEMO_TERN_186/RTOSDemo.DSW
rename to FreeRTOS/Demo/WizNET_DEMO_TERN_186/RTOSDemo.DSW
diff --git a/Demo/WizNET_DEMO_TERN_186/RTOSDemo.ide b/FreeRTOS/Demo/WizNET_DEMO_TERN_186/RTOSDemo.ide
similarity index 100%
rename from Demo/WizNET_DEMO_TERN_186/RTOSDemo.ide
rename to FreeRTOS/Demo/WizNET_DEMO_TERN_186/RTOSDemo.ide
diff --git a/Demo/WizNET_DEMO_TERN_186/RTOSDemo.mbt b/FreeRTOS/Demo/WizNET_DEMO_TERN_186/RTOSDemo.mbt
similarity index 100%
rename from Demo/WizNET_DEMO_TERN_186/RTOSDemo.mbt
rename to FreeRTOS/Demo/WizNET_DEMO_TERN_186/RTOSDemo.mbt
diff --git a/Demo/WizNET_DEMO_TERN_186/RTOSDemo.mrt b/FreeRTOS/Demo/WizNET_DEMO_TERN_186/RTOSDemo.mrt
similarity index 100%
rename from Demo/WizNET_DEMO_TERN_186/RTOSDemo.mrt
rename to FreeRTOS/Demo/WizNET_DEMO_TERN_186/RTOSDemo.mrt
diff --git a/Demo/WizNET_DEMO_TERN_186/RTOSDemo.rom b/FreeRTOS/Demo/WizNET_DEMO_TERN_186/RTOSDemo.rom
similarity index 100%
rename from Demo/WizNET_DEMO_TERN_186/RTOSDemo.rom
rename to FreeRTOS/Demo/WizNET_DEMO_TERN_186/RTOSDemo.rom
diff --git a/Demo/WizNET_DEMO_TERN_186/include/SOCKET.H b/FreeRTOS/Demo/WizNET_DEMO_TERN_186/include/SOCKET.H
similarity index 100%
rename from Demo/WizNET_DEMO_TERN_186/include/SOCKET.H
rename to FreeRTOS/Demo/WizNET_DEMO_TERN_186/include/SOCKET.H
diff --git a/Demo/WizNET_DEMO_TERN_186/include/TYPES.H b/FreeRTOS/Demo/WizNET_DEMO_TERN_186/include/TYPES.H
similarity index 100%
rename from Demo/WizNET_DEMO_TERN_186/include/TYPES.H
rename to FreeRTOS/Demo/WizNET_DEMO_TERN_186/include/TYPES.H
diff --git a/Demo/WizNET_DEMO_TERN_186/include/ae.H b/FreeRTOS/Demo/WizNET_DEMO_TERN_186/include/ae.H
similarity index 100%
rename from Demo/WizNET_DEMO_TERN_186/include/ae.H
rename to FreeRTOS/Demo/WizNET_DEMO_TERN_186/include/ae.H
diff --git a/Demo/WizNET_DEMO_TERN_186/include/i2chip_hw.h b/FreeRTOS/Demo/WizNET_DEMO_TERN_186/include/i2chip_hw.h
similarity index 100%
rename from Demo/WizNET_DEMO_TERN_186/include/i2chip_hw.h
rename to FreeRTOS/Demo/WizNET_DEMO_TERN_186/include/i2chip_hw.h
diff --git a/Demo/WizNET_DEMO_TERN_186/include/utils/system_common.h b/FreeRTOS/Demo/WizNET_DEMO_TERN_186/include/utils/system_common.h
similarity index 100%
rename from Demo/WizNET_DEMO_TERN_186/include/utils/system_common.h
rename to FreeRTOS/Demo/WizNET_DEMO_TERN_186/include/utils/system_common.h
diff --git a/Demo/WizNET_DEMO_TERN_186/main.c b/FreeRTOS/Demo/WizNET_DEMO_TERN_186/main.c
similarity index 100%
rename from Demo/WizNET_DEMO_TERN_186/main.c
rename to FreeRTOS/Demo/WizNET_DEMO_TERN_186/main.c
diff --git a/Demo/WizNET_DEMO_TERN_186/serial/serial.c b/FreeRTOS/Demo/WizNET_DEMO_TERN_186/serial/serial.c
similarity index 100%
rename from Demo/WizNET_DEMO_TERN_186/serial/serial.c
rename to FreeRTOS/Demo/WizNET_DEMO_TERN_186/serial/serial.c
diff --git a/Demo/WizNET_DEMO_TERN_186/tern_code/i2chip_hw.c b/FreeRTOS/Demo/WizNET_DEMO_TERN_186/tern_code/i2chip_hw.c
similarity index 100%
rename from Demo/WizNET_DEMO_TERN_186/tern_code/i2chip_hw.c
rename to FreeRTOS/Demo/WizNET_DEMO_TERN_186/tern_code/i2chip_hw.c
diff --git a/Demo/WizNET_DEMO_TERN_186/tern_code/socket.c b/FreeRTOS/Demo/WizNET_DEMO_TERN_186/tern_code/socket.c
similarity index 100%
rename from Demo/WizNET_DEMO_TERN_186/tern_code/socket.c
rename to FreeRTOS/Demo/WizNET_DEMO_TERN_186/tern_code/socket.c
diff --git a/Demo/dsPIC_MPLAB/FreeRTOSConfig.h b/FreeRTOS/Demo/dsPIC_MPLAB/FreeRTOSConfig.h
similarity index 100%
rename from Demo/dsPIC_MPLAB/FreeRTOSConfig.h
rename to FreeRTOS/Demo/dsPIC_MPLAB/FreeRTOSConfig.h
diff --git a/Demo/dsPIC_MPLAB/ParTest/ParTest.c b/FreeRTOS/Demo/dsPIC_MPLAB/ParTest/ParTest.c
similarity index 100%
rename from Demo/dsPIC_MPLAB/ParTest/ParTest.c
rename to FreeRTOS/Demo/dsPIC_MPLAB/ParTest/ParTest.c
diff --git a/Demo/dsPIC_MPLAB/RTOSDemo.mcs b/FreeRTOS/Demo/dsPIC_MPLAB/RTOSDemo.mcs
similarity index 100%
rename from Demo/dsPIC_MPLAB/RTOSDemo.mcs
rename to FreeRTOS/Demo/dsPIC_MPLAB/RTOSDemo.mcs
diff --git a/Demo/dsPIC_MPLAB/RTOSDemo.mcw b/FreeRTOS/Demo/dsPIC_MPLAB/RTOSDemo.mcw
similarity index 100%
rename from Demo/dsPIC_MPLAB/RTOSDemo.mcw
rename to FreeRTOS/Demo/dsPIC_MPLAB/RTOSDemo.mcw
diff --git a/Demo/dsPIC_MPLAB/RTOSDemo_dsPIC.mcp b/FreeRTOS/Demo/dsPIC_MPLAB/RTOSDemo_dsPIC.mcp
similarity index 100%
rename from Demo/dsPIC_MPLAB/RTOSDemo_dsPIC.mcp
rename to FreeRTOS/Demo/dsPIC_MPLAB/RTOSDemo_dsPIC.mcp
diff --git a/Demo/dsPIC_MPLAB/RTOSDemo_dsPIC.mcs b/FreeRTOS/Demo/dsPIC_MPLAB/RTOSDemo_dsPIC.mcs
similarity index 100%
rename from Demo/dsPIC_MPLAB/RTOSDemo_dsPIC.mcs
rename to FreeRTOS/Demo/dsPIC_MPLAB/RTOSDemo_dsPIC.mcs
diff --git a/Demo/dsPIC_MPLAB/lcd.c b/FreeRTOS/Demo/dsPIC_MPLAB/lcd.c
similarity index 100%
rename from Demo/dsPIC_MPLAB/lcd.c
rename to FreeRTOS/Demo/dsPIC_MPLAB/lcd.c
diff --git a/Demo/dsPIC_MPLAB/lcd.h b/FreeRTOS/Demo/dsPIC_MPLAB/lcd.h
similarity index 100%
rename from Demo/dsPIC_MPLAB/lcd.h
rename to FreeRTOS/Demo/dsPIC_MPLAB/lcd.h
diff --git a/Demo/dsPIC_MPLAB/main.c b/FreeRTOS/Demo/dsPIC_MPLAB/main.c
similarity index 100%
rename from Demo/dsPIC_MPLAB/main.c
rename to FreeRTOS/Demo/dsPIC_MPLAB/main.c
diff --git a/Demo/dsPIC_MPLAB/p33FJ256GP710.gld b/FreeRTOS/Demo/dsPIC_MPLAB/p33FJ256GP710.gld
similarity index 100%
rename from Demo/dsPIC_MPLAB/p33FJ256GP710.gld
rename to FreeRTOS/Demo/dsPIC_MPLAB/p33FJ256GP710.gld
diff --git a/Demo/dsPIC_MPLAB/serial/serial.c b/FreeRTOS/Demo/dsPIC_MPLAB/serial/serial.c
similarity index 100%
rename from Demo/dsPIC_MPLAB/serial/serial.c
rename to FreeRTOS/Demo/dsPIC_MPLAB/serial/serial.c
diff --git a/Demo/dsPIC_MPLAB/timertest.c b/FreeRTOS/Demo/dsPIC_MPLAB/timertest.c
similarity index 100%
rename from Demo/dsPIC_MPLAB/timertest.c
rename to FreeRTOS/Demo/dsPIC_MPLAB/timertest.c
diff --git a/Demo/dsPIC_MPLAB/timertest.h b/FreeRTOS/Demo/dsPIC_MPLAB/timertest.h
similarity index 100%
rename from Demo/dsPIC_MPLAB/timertest.h
rename to FreeRTOS/Demo/dsPIC_MPLAB/timertest.h
diff --git a/Demo/lwIP_AVR32_UC3/AT32UC3A/GCC/Makefile b/FreeRTOS/Demo/lwIP_AVR32_UC3/AT32UC3A/GCC/Makefile
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/AT32UC3A/GCC/Makefile
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/AT32UC3A/GCC/Makefile
diff --git a/Demo/lwIP_AVR32_UC3/AT32UC3A/GCC/config.mk b/FreeRTOS/Demo/lwIP_AVR32_UC3/AT32UC3A/GCC/config.mk
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/AT32UC3A/GCC/config.mk
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/AT32UC3A/GCC/config.mk
diff --git a/Demo/lwIP_AVR32_UC3/AT32UC3A/GCC/gdb.ini b/FreeRTOS/Demo/lwIP_AVR32_UC3/AT32UC3A/GCC/gdb.ini
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/AT32UC3A/GCC/gdb.ini
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/AT32UC3A/GCC/gdb.ini
diff --git a/Demo/lwIP_AVR32_UC3/AT32UC3A/GCC/gdb_cmdfile.txt b/FreeRTOS/Demo/lwIP_AVR32_UC3/AT32UC3A/GCC/gdb_cmdfile.txt
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/AT32UC3A/GCC/gdb_cmdfile.txt
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/AT32UC3A/GCC/gdb_cmdfile.txt
diff --git a/Demo/lwIP_AVR32_UC3/AT32UC3A/IAR/Debug/Obj/lwipdemo.pbd b/FreeRTOS/Demo/lwIP_AVR32_UC3/AT32UC3A/IAR/Debug/Obj/lwipdemo.pbd
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/AT32UC3A/IAR/Debug/Obj/lwipdemo.pbd
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/AT32UC3A/IAR/Debug/Obj/lwipdemo.pbd
diff --git a/Demo/lwIP_AVR32_UC3/AT32UC3A/IAR/lwipdemo.ewd b/FreeRTOS/Demo/lwIP_AVR32_UC3/AT32UC3A/IAR/lwipdemo.ewd
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/AT32UC3A/IAR/lwipdemo.ewd
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/AT32UC3A/IAR/lwipdemo.ewd
diff --git a/Demo/lwIP_AVR32_UC3/AT32UC3A/IAR/lwipdemo.ewp b/FreeRTOS/Demo/lwIP_AVR32_UC3/AT32UC3A/IAR/lwipdemo.ewp
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/AT32UC3A/IAR/lwipdemo.ewp
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/AT32UC3A/IAR/lwipdemo.ewp
diff --git a/Demo/lwIP_AVR32_UC3/AT32UC3A/IAR/lwipdemo.eww b/FreeRTOS/Demo/lwIP_AVR32_UC3/AT32UC3A/IAR/lwipdemo.eww
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/AT32UC3A/IAR/lwipdemo.eww
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/AT32UC3A/IAR/lwipdemo.eww
diff --git a/Demo/lwIP_AVR32_UC3/AT32UC3A/IAR/settings/lwipdemo.cspy.bat b/FreeRTOS/Demo/lwIP_AVR32_UC3/AT32UC3A/IAR/settings/lwipdemo.cspy.bat
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/AT32UC3A/IAR/settings/lwipdemo.cspy.bat
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/AT32UC3A/IAR/settings/lwipdemo.cspy.bat
diff --git a/Demo/lwIP_AVR32_UC3/AT32UC3A/IAR/settings/lwipdemo.dbgdt b/FreeRTOS/Demo/lwIP_AVR32_UC3/AT32UC3A/IAR/settings/lwipdemo.dbgdt
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/AT32UC3A/IAR/settings/lwipdemo.dbgdt
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/AT32UC3A/IAR/settings/lwipdemo.dbgdt
diff --git a/Demo/lwIP_AVR32_UC3/AT32UC3A/IAR/settings/lwipdemo.dni b/FreeRTOS/Demo/lwIP_AVR32_UC3/AT32UC3A/IAR/settings/lwipdemo.dni
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/AT32UC3A/IAR/settings/lwipdemo.dni
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/AT32UC3A/IAR/settings/lwipdemo.dni
diff --git a/Demo/lwIP_AVR32_UC3/AT32UC3A/IAR/settings/lwipdemo.wsdt b/FreeRTOS/Demo/lwIP_AVR32_UC3/AT32UC3A/IAR/settings/lwipdemo.wsdt
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/AT32UC3A/IAR/settings/lwipdemo.wsdt
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/AT32UC3A/IAR/settings/lwipdemo.wsdt
diff --git a/Demo/lwIP_AVR32_UC3/BOARDS/EVK1100/evk1100.h b/FreeRTOS/Demo/lwIP_AVR32_UC3/BOARDS/EVK1100/evk1100.h
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/BOARDS/EVK1100/evk1100.h
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/BOARDS/EVK1100/evk1100.h
diff --git a/Demo/lwIP_AVR32_UC3/BOARDS/EVK1100/led.c b/FreeRTOS/Demo/lwIP_AVR32_UC3/BOARDS/EVK1100/led.c
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/BOARDS/EVK1100/led.c
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/BOARDS/EVK1100/led.c
diff --git a/Demo/lwIP_AVR32_UC3/BOARDS/EVK1100/led.h b/FreeRTOS/Demo/lwIP_AVR32_UC3/BOARDS/EVK1100/led.h
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/BOARDS/EVK1100/led.h
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/BOARDS/EVK1100/led.h
diff --git a/Demo/lwIP_AVR32_UC3/BOARDS/EVK1101/evk1101.h b/FreeRTOS/Demo/lwIP_AVR32_UC3/BOARDS/EVK1101/evk1101.h
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/BOARDS/EVK1101/evk1101.h
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/BOARDS/EVK1101/evk1101.h
diff --git a/Demo/lwIP_AVR32_UC3/BOARDS/EVK1101/led.c b/FreeRTOS/Demo/lwIP_AVR32_UC3/BOARDS/EVK1101/led.c
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/BOARDS/EVK1101/led.c
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/BOARDS/EVK1101/led.c
diff --git a/Demo/lwIP_AVR32_UC3/BOARDS/EVK1101/led.h b/FreeRTOS/Demo/lwIP_AVR32_UC3/BOARDS/EVK1101/led.h
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/BOARDS/EVK1101/led.h
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/BOARDS/EVK1101/led.h
diff --git a/Demo/lwIP_AVR32_UC3/BOARDS/board.h b/FreeRTOS/Demo/lwIP_AVR32_UC3/BOARDS/board.h
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/BOARDS/board.h
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/BOARDS/board.h
diff --git a/Demo/lwIP_AVR32_UC3/DRIVERS/FLASHC/flashc.c b/FreeRTOS/Demo/lwIP_AVR32_UC3/DRIVERS/FLASHC/flashc.c
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/DRIVERS/FLASHC/flashc.c
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/DRIVERS/FLASHC/flashc.c
diff --git a/Demo/lwIP_AVR32_UC3/DRIVERS/FLASHC/flashc.h b/FreeRTOS/Demo/lwIP_AVR32_UC3/DRIVERS/FLASHC/flashc.h
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/DRIVERS/FLASHC/flashc.h
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/DRIVERS/FLASHC/flashc.h
diff --git a/Demo/lwIP_AVR32_UC3/DRIVERS/GPIO/gpio.c b/FreeRTOS/Demo/lwIP_AVR32_UC3/DRIVERS/GPIO/gpio.c
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/DRIVERS/GPIO/gpio.c
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/DRIVERS/GPIO/gpio.c
diff --git a/Demo/lwIP_AVR32_UC3/DRIVERS/GPIO/gpio.h b/FreeRTOS/Demo/lwIP_AVR32_UC3/DRIVERS/GPIO/gpio.h
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/DRIVERS/GPIO/gpio.h
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/DRIVERS/GPIO/gpio.h
diff --git a/Demo/lwIP_AVR32_UC3/DRIVERS/INTC/intc.c b/FreeRTOS/Demo/lwIP_AVR32_UC3/DRIVERS/INTC/intc.c
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/DRIVERS/INTC/intc.c
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/DRIVERS/INTC/intc.c
diff --git a/Demo/lwIP_AVR32_UC3/DRIVERS/INTC/intc.h b/FreeRTOS/Demo/lwIP_AVR32_UC3/DRIVERS/INTC/intc.h
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/DRIVERS/INTC/intc.h
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/DRIVERS/INTC/intc.h
diff --git a/Demo/lwIP_AVR32_UC3/DRIVERS/MACB/macb.c b/FreeRTOS/Demo/lwIP_AVR32_UC3/DRIVERS/MACB/macb.c
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/DRIVERS/MACB/macb.c
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/DRIVERS/MACB/macb.c
diff --git a/Demo/lwIP_AVR32_UC3/DRIVERS/MACB/macb.h b/FreeRTOS/Demo/lwIP_AVR32_UC3/DRIVERS/MACB/macb.h
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/DRIVERS/MACB/macb.h
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/DRIVERS/MACB/macb.h
diff --git a/Demo/lwIP_AVR32_UC3/DRIVERS/PM/pm.c b/FreeRTOS/Demo/lwIP_AVR32_UC3/DRIVERS/PM/pm.c
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/DRIVERS/PM/pm.c
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/DRIVERS/PM/pm.c
diff --git a/Demo/lwIP_AVR32_UC3/DRIVERS/PM/pm.h b/FreeRTOS/Demo/lwIP_AVR32_UC3/DRIVERS/PM/pm.h
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/DRIVERS/PM/pm.h
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/DRIVERS/PM/pm.h
diff --git a/Demo/lwIP_AVR32_UC3/DRIVERS/TC/tc.c b/FreeRTOS/Demo/lwIP_AVR32_UC3/DRIVERS/TC/tc.c
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/DRIVERS/TC/tc.c
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/DRIVERS/TC/tc.c
diff --git a/Demo/lwIP_AVR32_UC3/DRIVERS/TC/tc.h b/FreeRTOS/Demo/lwIP_AVR32_UC3/DRIVERS/TC/tc.h
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/DRIVERS/TC/tc.h
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/DRIVERS/TC/tc.h
diff --git a/Demo/lwIP_AVR32_UC3/DRIVERS/USART/usart.c b/FreeRTOS/Demo/lwIP_AVR32_UC3/DRIVERS/USART/usart.c
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/DRIVERS/USART/usart.c
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/DRIVERS/USART/usart.c
diff --git a/Demo/lwIP_AVR32_UC3/DRIVERS/USART/usart.h b/FreeRTOS/Demo/lwIP_AVR32_UC3/DRIVERS/USART/usart.h
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/DRIVERS/USART/usart.h
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/DRIVERS/USART/usart.h
diff --git a/Demo/lwIP_AVR32_UC3/FreeRTOSConfig.h b/FreeRTOS/Demo/lwIP_AVR32_UC3/FreeRTOSConfig.h
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/FreeRTOSConfig.h
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/FreeRTOSConfig.h
diff --git a/Demo/lwIP_AVR32_UC3/NETWORK/BasicSMTP/BasicSMTP.c b/FreeRTOS/Demo/lwIP_AVR32_UC3/NETWORK/BasicSMTP/BasicSMTP.c
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/NETWORK/BasicSMTP/BasicSMTP.c
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/NETWORK/BasicSMTP/BasicSMTP.c
diff --git a/Demo/lwIP_AVR32_UC3/NETWORK/BasicSMTP/BasicSMTP.h b/FreeRTOS/Demo/lwIP_AVR32_UC3/NETWORK/BasicSMTP/BasicSMTP.h
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/NETWORK/BasicSMTP/BasicSMTP.h
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/NETWORK/BasicSMTP/BasicSMTP.h
diff --git a/Demo/lwIP_AVR32_UC3/NETWORK/BasicTFTP/BasicTFTP.c b/FreeRTOS/Demo/lwIP_AVR32_UC3/NETWORK/BasicTFTP/BasicTFTP.c
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/NETWORK/BasicTFTP/BasicTFTP.c
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/NETWORK/BasicTFTP/BasicTFTP.c
diff --git a/Demo/lwIP_AVR32_UC3/NETWORK/BasicTFTP/BasicTFTP.h b/FreeRTOS/Demo/lwIP_AVR32_UC3/NETWORK/BasicTFTP/BasicTFTP.h
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/NETWORK/BasicTFTP/BasicTFTP.h
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/NETWORK/BasicTFTP/BasicTFTP.h
diff --git a/Demo/lwIP_AVR32_UC3/NETWORK/BasicWEB/BasicWEB.c b/FreeRTOS/Demo/lwIP_AVR32_UC3/NETWORK/BasicWEB/BasicWEB.c
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/NETWORK/BasicWEB/BasicWEB.c
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/NETWORK/BasicWEB/BasicWEB.c
diff --git a/Demo/lwIP_AVR32_UC3/NETWORK/BasicWEB/BasicWEB.h b/FreeRTOS/Demo/lwIP_AVR32_UC3/NETWORK/BasicWEB/BasicWEB.h
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/NETWORK/BasicWEB/BasicWEB.h
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/NETWORK/BasicWEB/BasicWEB.h
diff --git a/Demo/lwIP_AVR32_UC3/NETWORK/ethernet.c b/FreeRTOS/Demo/lwIP_AVR32_UC3/NETWORK/ethernet.c
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/NETWORK/ethernet.c
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/NETWORK/ethernet.c
diff --git a/Demo/lwIP_AVR32_UC3/NETWORK/ethernet.h b/FreeRTOS/Demo/lwIP_AVR32_UC3/NETWORK/ethernet.h
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/NETWORK/ethernet.h
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/NETWORK/ethernet.h
diff --git a/Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/IAR/errno.h b/FreeRTOS/Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/IAR/errno.h
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/IAR/errno.h
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/IAR/errno.h
diff --git a/Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/arch/cc.h b/FreeRTOS/Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/arch/cc.h
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/arch/cc.h
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/arch/cc.h
diff --git a/Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/arch/cpu.h b/FreeRTOS/Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/arch/cpu.h
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/arch/cpu.h
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/arch/cpu.h
diff --git a/Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/arch/init.h b/FreeRTOS/Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/arch/init.h
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/arch/init.h
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/arch/init.h
diff --git a/Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/arch/lib.h b/FreeRTOS/Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/arch/lib.h
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/arch/lib.h
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/arch/lib.h
diff --git a/Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/arch/perf.h b/FreeRTOS/Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/arch/perf.h
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/arch/perf.h
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/arch/perf.h
diff --git a/Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/arch/sys_arch.h b/FreeRTOS/Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/arch/sys_arch.h
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/arch/sys_arch.h
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/arch/sys_arch.h
diff --git a/Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/ethernetif.c b/FreeRTOS/Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/ethernetif.c
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/ethernetif.c
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/ethernetif.c
diff --git a/Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/lwip/opt.h b/FreeRTOS/Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/lwip/opt.h
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/lwip/opt.h
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/lwip/opt.h
diff --git a/Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/lwipopts.h b/FreeRTOS/Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/lwipopts.h
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/lwipopts.h
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/lwipopts.h
diff --git a/Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/sys_arch.c b/FreeRTOS/Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/sys_arch.c
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/sys_arch.c
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/NETWORK/lwip-port/AT32UC3A/sys_arch.c
diff --git a/Demo/lwIP_AVR32_UC3/PARTEST/ParTest.c b/FreeRTOS/Demo/lwIP_AVR32_UC3/PARTEST/ParTest.c
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/PARTEST/ParTest.c
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/PARTEST/ParTest.c
diff --git a/Demo/lwIP_AVR32_UC3/SERIAL/serial.c b/FreeRTOS/Demo/lwIP_AVR32_UC3/SERIAL/serial.c
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/SERIAL/serial.c
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/SERIAL/serial.c
diff --git a/Demo/lwIP_AVR32_UC3/SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/BOOT/trampoline.S b/FreeRTOS/Demo/lwIP_AVR32_UC3/SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/BOOT/trampoline.S
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/BOOT/trampoline.S
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/BOOT/trampoline.S
diff --git a/Demo/lwIP_AVR32_UC3/SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/BOOT/trampoline.s82 b/FreeRTOS/Demo/lwIP_AVR32_UC3/SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/BOOT/trampoline.s82
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/BOOT/trampoline.s82
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/BOOT/trampoline.s82
diff --git a/Demo/lwIP_AVR32_UC3/SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/conf_isp.h b/FreeRTOS/Demo/lwIP_AVR32_UC3/SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/conf_isp.h
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/conf_isp.h
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/conf_isp.h
diff --git a/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0128/GCC/link_uc3a0128.lds b/FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0128/GCC/link_uc3a0128.lds
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0128/GCC/link_uc3a0128.lds
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0128/GCC/link_uc3a0128.lds
diff --git a/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0128/IAR/lnkuc3a0128.xcl b/FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0128/IAR/lnkuc3a0128.xcl
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0128/IAR/lnkuc3a0128.xcl
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0128/IAR/lnkuc3a0128.xcl
diff --git a/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0256/GCC/link_uc3a0256.lds b/FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0256/GCC/link_uc3a0256.lds
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0256/GCC/link_uc3a0256.lds
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0256/GCC/link_uc3a0256.lds
diff --git a/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0256/IAR/lnkuc3a0256.xcl b/FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0256/IAR/lnkuc3a0256.xcl
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0256/IAR/lnkuc3a0256.xcl
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0256/IAR/lnkuc3a0256.xcl
diff --git a/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0512/GCC/link_uc3a0512.lds b/FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0512/GCC/link_uc3a0512.lds
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0512/GCC/link_uc3a0512.lds
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0512/GCC/link_uc3a0512.lds
diff --git a/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0512/IAR/lnkuc3a0512.xcl b/FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0512/IAR/lnkuc3a0512.xcl
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0512/IAR/lnkuc3a0512.xcl
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/0512/IAR/lnkuc3a0512.xcl
diff --git a/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1128/GCC/link_uc3a1128.lds b/FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1128/GCC/link_uc3a1128.lds
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1128/GCC/link_uc3a1128.lds
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1128/GCC/link_uc3a1128.lds
diff --git a/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1128/IAR/lnkuc3a1128.xcl b/FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1128/IAR/lnkuc3a1128.xcl
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1128/IAR/lnkuc3a1128.xcl
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1128/IAR/lnkuc3a1128.xcl
diff --git a/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1256/GCC/link_uc3a1256.lds b/FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1256/GCC/link_uc3a1256.lds
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1256/GCC/link_uc3a1256.lds
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1256/GCC/link_uc3a1256.lds
diff --git a/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1256/IAR/lnkuc3a1256.xcl b/FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1256/IAR/lnkuc3a1256.xcl
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1256/IAR/lnkuc3a1256.xcl
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1256/IAR/lnkuc3a1256.xcl
diff --git a/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1512/GCC/link_uc3a1512.lds b/FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1512/GCC/link_uc3a1512.lds
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1512/GCC/link_uc3a1512.lds
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1512/GCC/link_uc3a1512.lds
diff --git a/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1512/IAR/lnkuc3a1512.xcl b/FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1512/IAR/lnkuc3a1512.xcl
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1512/IAR/lnkuc3a1512.xcl
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3A/1512/IAR/lnkuc3a1512.xcl
diff --git a/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0128/GCC/link_uc3b0128.lds b/FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0128/GCC/link_uc3b0128.lds
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0128/GCC/link_uc3b0128.lds
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0128/GCC/link_uc3b0128.lds
diff --git a/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0128/IAR/lnkuc3b0128.xcl b/FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0128/IAR/lnkuc3b0128.xcl
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0128/IAR/lnkuc3b0128.xcl
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0128/IAR/lnkuc3b0128.xcl
diff --git a/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0256/GCC/link_uc3b0256.lds b/FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0256/GCC/link_uc3b0256.lds
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0256/GCC/link_uc3b0256.lds
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0256/GCC/link_uc3b0256.lds
diff --git a/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0256/IAR/lnkuc3b0256.xcl b/FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0256/IAR/lnkuc3b0256.xcl
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0256/IAR/lnkuc3b0256.xcl
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/0256/IAR/lnkuc3b0256.xcl
diff --git a/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/064/GCC/link_uc3b064.lds b/FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/064/GCC/link_uc3b064.lds
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/064/GCC/link_uc3b064.lds
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/064/GCC/link_uc3b064.lds
diff --git a/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/064/IAR/lnkuc3b064.xcl b/FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/064/IAR/lnkuc3b064.xcl
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/064/IAR/lnkuc3b064.xcl
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/064/IAR/lnkuc3b064.xcl
diff --git a/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1128/GCC/link_uc3b1128.lds b/FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1128/GCC/link_uc3b1128.lds
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1128/GCC/link_uc3b1128.lds
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1128/GCC/link_uc3b1128.lds
diff --git a/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1128/IAR/lnkuc3b1128.xcl b/FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1128/IAR/lnkuc3b1128.xcl
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1128/IAR/lnkuc3b1128.xcl
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1128/IAR/lnkuc3b1128.xcl
diff --git a/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1256/GCC/link_uc3b1256.lds b/FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1256/GCC/link_uc3b1256.lds
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1256/GCC/link_uc3b1256.lds
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1256/GCC/link_uc3b1256.lds
diff --git a/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1256/IAR/lnkuc3b1256.xcl b/FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1256/IAR/lnkuc3b1256.xcl
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1256/IAR/lnkuc3b1256.xcl
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/1256/IAR/lnkuc3b1256.xcl
diff --git a/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/164/GCC/link_uc3b164.lds b/FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/164/GCC/link_uc3b164.lds
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/164/GCC/link_uc3b164.lds
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/164/GCC/link_uc3b164.lds
diff --git a/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/164/IAR/lnkuc3b164.xcl b/FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/164/IAR/lnkuc3b164.xcl
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/164/IAR/lnkuc3b164.xcl
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/LINKER_SCRIPTS/AT32UC3B/164/IAR/lnkuc3b164.xcl
diff --git a/Demo/lwIP_AVR32_UC3/UTILS/PREPROCESSOR/mrepeat.h b/FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/PREPROCESSOR/mrepeat.h
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/UTILS/PREPROCESSOR/mrepeat.h
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/PREPROCESSOR/mrepeat.h
diff --git a/Demo/lwIP_AVR32_UC3/UTILS/PREPROCESSOR/preprocessor.h b/FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/PREPROCESSOR/preprocessor.h
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/UTILS/PREPROCESSOR/preprocessor.h
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/PREPROCESSOR/preprocessor.h
diff --git a/Demo/lwIP_AVR32_UC3/UTILS/PREPROCESSOR/stringz.h b/FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/PREPROCESSOR/stringz.h
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/UTILS/PREPROCESSOR/stringz.h
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/PREPROCESSOR/stringz.h
diff --git a/Demo/lwIP_AVR32_UC3/UTILS/PREPROCESSOR/tpaste.h b/FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/PREPROCESSOR/tpaste.h
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/UTILS/PREPROCESSOR/tpaste.h
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/PREPROCESSOR/tpaste.h
diff --git a/Demo/lwIP_AVR32_UC3/UTILS/compiler.h b/FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/compiler.h
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/UTILS/compiler.h
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/UTILS/compiler.h
diff --git a/Demo/lwIP_AVR32_UC3/conf_eth.h b/FreeRTOS/Demo/lwIP_AVR32_UC3/conf_eth.h
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/conf_eth.h
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/conf_eth.h
diff --git a/Demo/lwIP_AVR32_UC3/lwipopts.h b/FreeRTOS/Demo/lwIP_AVR32_UC3/lwipopts.h
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/lwipopts.h
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/lwipopts.h
diff --git a/Demo/lwIP_AVR32_UC3/main.c b/FreeRTOS/Demo/lwIP_AVR32_UC3/main.c
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/main.c
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/main.c
diff --git a/Demo/lwIP_AVR32_UC3/printf-stdarg.c b/FreeRTOS/Demo/lwIP_AVR32_UC3/printf-stdarg.c
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/printf-stdarg.c
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/printf-stdarg.c
diff --git a/Demo/lwIP_AVR32_UC3/readme.html b/FreeRTOS/Demo/lwIP_AVR32_UC3/readme.html
similarity index 100%
rename from Demo/lwIP_AVR32_UC3/readme.html
rename to FreeRTOS/Demo/lwIP_AVR32_UC3/readme.html
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/AT91SAM7S256_MemoryMap.xml b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/AT91SAM7S256_MemoryMap.xml
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/AT91SAM7S256_MemoryMap.xml
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/AT91SAM7S256_MemoryMap.xml
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/AT91SAM7_Startup.s b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/AT91SAM7_Startup.s
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/AT91SAM7_Startup.s
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/AT91SAM7_Startup.s
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/AT91SAM7_Target.js b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/AT91SAM7_Target.js
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/AT91SAM7_Target.js
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/AT91SAM7_Target.js
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/BasicWEB.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/BasicWEB.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/BasicWEB.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/BasicWEB.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/BasicWEB.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/BasicWEB.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/BasicWEB.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/BasicWEB.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/Board.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/Board.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/Board.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/Board.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/Cstartup_SAM7.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/Cstartup_SAM7.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/Cstartup_SAM7.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/Cstartup_SAM7.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/EMAC/Emac.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/EMAC/Emac.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/EMAC/Emac.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/EMAC/Emac.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/EMAC/SAM7_EMAC.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/EMAC/SAM7_EMAC.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/EMAC/SAM7_EMAC.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/EMAC/SAM7_EMAC.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/EMAC/SAM7_EMAC.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/EMAC/SAM7_EMAC.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/EMAC/SAM7_EMAC.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/EMAC/SAM7_EMAC.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/EMAC/SAM7_EMAC_ISR.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/EMAC/SAM7_EMAC_ISR.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/EMAC/SAM7_EMAC_ISR.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/EMAC/SAM7_EMAC_ISR.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/EMAC/mii.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/EMAC/mii.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/EMAC/mii.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/EMAC/mii.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/FreeRTOSConfig.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/FreeRTOSConfig.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/FreeRTOSConfig.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/FreeRTOSConfig.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/ParTest/ParTest.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/ParTest/ParTest.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/ParTest/ParTest.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/ParTest/ParTest.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/USB/FreeRTOSCDC.inf b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/USB/FreeRTOSCDC.inf
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/USB/FreeRTOSCDC.inf
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/USB/FreeRTOSCDC.inf
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/USB/USB-CDC.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/USB/USB-CDC.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/USB/USB-CDC.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/USB/USB-CDC.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/USB/USB-CDC.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/USB/USB-CDC.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/USB/USB-CDC.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/USB/USB-CDC.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/USB/USBIsr.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/USB/USBIsr.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/USB/USBIsr.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/USB/USBIsr.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/USB/descriptors.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/USB/descriptors.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/USB/descriptors.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/USB/descriptors.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/USB/usb.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/USB/usb.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/USB/usb.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/USB/usb.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/atmel-rom.ld b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/atmel-rom.ld
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/atmel-rom.ld
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/atmel-rom.ld
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/boot.s b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/boot.s
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/boot.s
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/boot.s
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/crt0.s b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/crt0.s
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/crt0.s
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/crt0.s
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/flash_placement.xml b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/flash_placement.xml
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/flash_placement.xml
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/flash_placement.xml
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/CHANGELOG b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/CHANGELOG
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/CHANGELOG
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/CHANGELOG
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/COPYING b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/COPYING
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/COPYING
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/COPYING
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/FILES b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/FILES
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/FILES
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/FILES
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/README b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/README
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/README
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/README
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/contrib/port/FreeRTOS/AT91SAM7X/arch/cc.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/contrib/port/FreeRTOS/AT91SAM7X/arch/cc.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/contrib/port/FreeRTOS/AT91SAM7X/arch/cc.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/contrib/port/FreeRTOS/AT91SAM7X/arch/cc.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/contrib/port/FreeRTOS/AT91SAM7X/arch/cpu.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/contrib/port/FreeRTOS/AT91SAM7X/arch/cpu.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/contrib/port/FreeRTOS/AT91SAM7X/arch/cpu.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/contrib/port/FreeRTOS/AT91SAM7X/arch/cpu.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/contrib/port/FreeRTOS/AT91SAM7X/arch/init.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/contrib/port/FreeRTOS/AT91SAM7X/arch/init.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/contrib/port/FreeRTOS/AT91SAM7X/arch/init.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/contrib/port/FreeRTOS/AT91SAM7X/arch/init.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/contrib/port/FreeRTOS/AT91SAM7X/arch/lib.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/contrib/port/FreeRTOS/AT91SAM7X/arch/lib.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/contrib/port/FreeRTOS/AT91SAM7X/arch/lib.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/contrib/port/FreeRTOS/AT91SAM7X/arch/lib.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/contrib/port/FreeRTOS/AT91SAM7X/arch/perf.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/contrib/port/FreeRTOS/AT91SAM7X/arch/perf.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/contrib/port/FreeRTOS/AT91SAM7X/arch/perf.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/contrib/port/FreeRTOS/AT91SAM7X/arch/perf.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/contrib/port/FreeRTOS/AT91SAM7X/arch/sys_arch.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/contrib/port/FreeRTOS/AT91SAM7X/arch/sys_arch.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/contrib/port/FreeRTOS/AT91SAM7X/arch/sys_arch.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/contrib/port/FreeRTOS/AT91SAM7X/arch/sys_arch.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/contrib/port/FreeRTOS/AT91SAM7X/sys_arch.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/contrib/port/FreeRTOS/AT91SAM7X/sys_arch.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/contrib/port/FreeRTOS/AT91SAM7X/sys_arch.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/contrib/port/FreeRTOS/AT91SAM7X/sys_arch.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/doc/contrib.txt b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/doc/contrib.txt
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/doc/contrib.txt
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/doc/contrib.txt
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/doc/rawapi.txt b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/doc/rawapi.txt
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/doc/rawapi.txt
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/doc/rawapi.txt
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/doc/savannah.txt b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/doc/savannah.txt
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/doc/savannah.txt
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/doc/savannah.txt
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/doc/sys_arch.txt b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/doc/sys_arch.txt
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/doc/sys_arch.txt
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/doc/sys_arch.txt
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/FILES b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/FILES
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/FILES
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/FILES
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/api/api_lib.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/api/api_lib.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/api/api_lib.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/api/api_lib.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/api/api_msg.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/api/api_msg.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/api/api_msg.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/api/api_msg.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/api/err.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/api/err.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/api/err.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/api/err.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/api/sockets.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/api/sockets.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/api/sockets.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/api/sockets.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/api/tcpip.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/api/tcpip.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/api/tcpip.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/api/tcpip.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/dhcp.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/dhcp.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/dhcp.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/dhcp.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/inet.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/inet.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/inet.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/inet.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/inet6.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/inet6.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/inet6.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/inet6.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv4/icmp.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv4/icmp.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv4/icmp.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv4/icmp.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv4/ip.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv4/ip.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv4/ip.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv4/ip.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv4/ip_addr.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv4/ip_addr.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv4/ip_addr.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv4/ip_addr.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv4/ip_frag.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv4/ip_frag.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv4/ip_frag.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv4/ip_frag.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv6/README b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv6/README
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv6/README
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv6/README
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv6/icmp6.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv6/icmp6.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv6/icmp6.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv6/icmp6.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv6/ip6.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv6/ip6.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv6/ip6.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv6/ip6.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv6/ip6_addr.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv6/ip6_addr.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv6/ip6_addr.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/ipv6/ip6_addr.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/mem.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/mem.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/mem.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/mem.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/memp.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/memp.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/memp.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/memp.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/netif.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/netif.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/netif.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/netif.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/pbuf.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/pbuf.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/pbuf.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/pbuf.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/raw.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/raw.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/raw.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/raw.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/stats.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/stats.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/stats.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/stats.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/sys.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/sys.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/sys.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/sys.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/tcp.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/tcp.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/tcp.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/tcp.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/tcp_in.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/tcp_in.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/tcp_in.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/tcp_in.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/tcp_out.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/tcp_out.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/tcp_out.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/tcp_out.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/udp.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/udp.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/udp.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/core/udp.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv4/lwip/icmp.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv4/lwip/icmp.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv4/lwip/icmp.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv4/lwip/icmp.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv4/lwip/inet.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv4/lwip/inet.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv4/lwip/inet.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv4/lwip/inet.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv4/lwip/ip.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv4/lwip/ip.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv4/lwip/ip.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv4/lwip/ip.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv4/lwip/ip_addr.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv4/lwip/ip_addr.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv4/lwip/ip_addr.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv4/lwip/ip_addr.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv4/lwip/ip_frag.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv4/lwip/ip_frag.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv4/lwip/ip_frag.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv4/lwip/ip_frag.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv6/lwip/icmp.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv6/lwip/icmp.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv6/lwip/icmp.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv6/lwip/icmp.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv6/lwip/inet.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv6/lwip/inet.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv6/lwip/inet.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv6/lwip/inet.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv6/lwip/ip.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv6/lwip/ip.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv6/lwip/ip.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv6/lwip/ip.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv6/lwip/ip_addr.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv6/lwip/ip_addr.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv6/lwip/ip_addr.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/ipv6/lwip/ip_addr.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/api.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/api.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/api.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/api.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/api_msg.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/api_msg.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/api_msg.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/api_msg.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/arch.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/arch.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/arch.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/arch.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/debug.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/debug.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/debug.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/debug.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/def.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/def.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/def.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/def.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/dhcp.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/dhcp.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/dhcp.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/dhcp.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/err.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/err.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/err.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/err.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/mem.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/mem.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/mem.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/mem.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/memp.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/memp.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/memp.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/memp.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/netif.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/netif.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/netif.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/netif.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/opt.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/opt.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/opt.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/opt.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/pbuf.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/pbuf.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/pbuf.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/pbuf.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/raw.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/raw.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/raw.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/raw.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/sio.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/sio.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/sio.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/sio.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/snmp.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/snmp.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/snmp.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/snmp.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/sockets.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/sockets.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/sockets.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/sockets.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/stats.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/stats.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/stats.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/stats.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/sys.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/sys.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/sys.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/sys.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/tcp.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/tcp.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/tcp.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/tcp.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/tcpip.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/tcpip.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/tcpip.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/tcpip.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/udp.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/udp.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/udp.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/lwip/udp.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/netif/etharp.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/netif/etharp.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/netif/etharp.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/netif/etharp.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/netif/loopif.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/netif/loopif.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/netif/loopif.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/netif/loopif.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/netif/slipif.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/netif/slipif.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/netif/slipif.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/include/netif/slipif.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/FILES b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/FILES
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/FILES
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/FILES
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/etharp.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/etharp.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/etharp.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/etharp.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ethernetif.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ethernetif.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ethernetif.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ethernetif.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/loopif.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/loopif.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/loopif.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/loopif.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/auth.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/auth.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/auth.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/auth.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/auth.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/auth.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/auth.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/auth.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/chap.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/chap.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/chap.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/chap.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/chap.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/chap.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/chap.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/chap.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/chpms.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/chpms.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/chpms.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/chpms.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/chpms.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/chpms.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/chpms.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/chpms.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/fsm.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/fsm.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/fsm.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/fsm.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/fsm.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/fsm.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/fsm.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/fsm.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/ipcp.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/ipcp.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/ipcp.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/ipcp.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/ipcp.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/ipcp.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/ipcp.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/ipcp.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/lcp.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/lcp.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/lcp.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/lcp.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/lcp.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/lcp.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/lcp.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/lcp.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/magic.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/magic.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/magic.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/magic.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/magic.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/magic.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/magic.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/magic.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/md5.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/md5.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/md5.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/md5.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/md5.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/md5.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/md5.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/md5.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/pap.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/pap.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/pap.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/pap.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/pap.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/pap.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/pap.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/pap.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/ppp.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/ppp.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/ppp.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/ppp.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/ppp.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/ppp.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/ppp.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/ppp.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/pppdebug.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/pppdebug.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/pppdebug.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/pppdebug.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/randm.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/randm.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/randm.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/randm.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/randm.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/randm.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/randm.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/randm.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/vj.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/vj.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/vj.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/vj.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/vj.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/vj.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/vj.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/vj.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/vjbsdhdr.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/vjbsdhdr.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/vjbsdhdr.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/ppp/vjbsdhdr.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/slipif.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/slipif.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/slipif.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwip-1.1.0/src/netif/slipif.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/lwipopts.h b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwipopts.h
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/lwipopts.h
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/lwipopts.h
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/main.c b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/main.c
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/main.c
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/main.c
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/makefile b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/makefile
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/makefile
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/makefile
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/rtosdemo.hzp b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/rtosdemo.hzp
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/rtosdemo.hzp
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/rtosdemo.hzp
diff --git a/Demo/lwIP_Demo_Rowley_ARM7/rtosdemo.hzs b/FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/rtosdemo.hzs
similarity index 100%
rename from Demo/lwIP_Demo_Rowley_ARM7/rtosdemo.hzs
rename to FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/rtosdemo.hzs
diff --git a/Demo/lwIP_MCF5235_GCC/Changelog.txt b/FreeRTOS/Demo/lwIP_MCF5235_GCC/Changelog.txt
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/Changelog.txt
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/Changelog.txt
diff --git a/Demo/lwIP_MCF5235_GCC/FreeRTOSConfig.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/FreeRTOSConfig.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/FreeRTOSConfig.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/FreeRTOSConfig.h
diff --git a/Demo/lwIP_MCF5235_GCC/LICENSE_FREESCALE.TXT b/FreeRTOS/Demo/lwIP_MCF5235_GCC/LICENSE_FREESCALE.TXT
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/LICENSE_FREESCALE.TXT
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/LICENSE_FREESCALE.TXT
diff --git a/Demo/lwIP_MCF5235_GCC/Makefile b/FreeRTOS/Demo/lwIP_MCF5235_GCC/Makefile
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/Makefile
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/Makefile
diff --git a/Demo/lwIP_MCF5235_GCC/README.txt b/FreeRTOS/Demo/lwIP_MCF5235_GCC/README.txt
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/README.txt
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/README.txt
diff --git a/Demo/lwIP_MCF5235_GCC/demo.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/demo.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/demo.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/demo.c
diff --git a/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/include/arch/mcf523x.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x.h
diff --git a/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_can.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_can.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_can.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_can.h
diff --git a/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_ccm.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_ccm.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_ccm.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_ccm.h
diff --git a/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_cs.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_cs.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_cs.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_cs.h
diff --git a/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_eport.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_eport.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_eport.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_eport.h
diff --git a/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_etpu.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_etpu.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_etpu.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_etpu.h
diff --git a/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_fec.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_fec.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_fec.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_fec.h
diff --git a/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_fmpll.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_fmpll.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_fmpll.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_fmpll.h
diff --git a/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_gpio.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_gpio.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_gpio.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_gpio.h
diff --git a/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_i2c.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_i2c.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_i2c.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_i2c.h
diff --git a/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_intc0.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_intc0.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_intc0.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_intc0.h
diff --git a/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_intc1.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_intc1.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_intc1.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_intc1.h
diff --git a/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_mdha.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_mdha.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_mdha.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_mdha.h
diff --git a/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_pit.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_pit.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_pit.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_pit.h
diff --git a/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_qspi.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_qspi.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_qspi.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_qspi.h
diff --git a/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_rcm.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_rcm.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_rcm.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_rcm.h
diff --git a/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_rng.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_rng.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_rng.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_rng.h
diff --git a/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_scm.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_scm.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_scm.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_scm.h
diff --git a/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_sdramc.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_sdramc.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_sdramc.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_sdramc.h
diff --git a/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_skha.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_skha.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_skha.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_skha.h
diff --git a/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_sram.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_sram.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_sram.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_sram.h
diff --git a/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_timer.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_timer.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_timer.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_timer.h
diff --git a/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_uart.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_uart.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_uart.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_uart.h
diff --git a/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_wtm.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_wtm.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_wtm.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf523x/mcf523x_wtm.h
diff --git a/Demo/lwIP_MCF5235_GCC/include/arch/mcf5xxx.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf5xxx.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/include/arch/mcf5xxx.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/include/arch/mcf5xxx.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/CHANGELOG b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/CHANGELOG
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/CHANGELOG
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/CHANGELOG
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/COPYING b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/COPYING
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/COPYING
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/COPYING
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/FILES b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/FILES
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/FILES
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/FILES
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/README b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/README
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/README
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/README
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/arch/cc.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/arch/cc.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/arch/cc.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/arch/cc.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/arch/cpu.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/arch/cpu.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/arch/cpu.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/arch/cpu.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/arch/perf.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/arch/perf.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/arch/perf.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/arch/perf.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/arch/sys_arch.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/arch/sys_arch.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/arch/sys_arch.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/arch/sys_arch.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/netif/fec.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/netif/fec.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/netif/fec.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/netif/fec.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/netif/fec.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/netif/fec.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/netif/fec.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/netif/fec.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/netif/nbuf.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/netif/nbuf.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/netif/nbuf.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/netif/nbuf.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/netif/nbuf.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/netif/nbuf.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/netif/nbuf.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/netif/nbuf.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/sys_arch.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/sys_arch.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/sys_arch.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/contrib/port/FreeRTOS/MCF5235/sys_arch.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/doc/contrib.txt b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/doc/contrib.txt
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/doc/contrib.txt
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/doc/contrib.txt
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/doc/rawapi.txt b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/doc/rawapi.txt
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/doc/rawapi.txt
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/doc/rawapi.txt
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/doc/savannah.txt b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/doc/savannah.txt
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/doc/savannah.txt
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/doc/savannah.txt
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/doc/sys_arch.txt b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/doc/sys_arch.txt
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/doc/sys_arch.txt
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/doc/sys_arch.txt
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/FILES b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/FILES
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/FILES
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/FILES
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/api/api_lib.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/api/api_lib.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/api/api_lib.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/api/api_lib.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/api/api_msg.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/api/api_msg.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/api/api_msg.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/api/api_msg.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/api/err.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/api/err.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/api/err.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/api/err.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/api/sockets.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/api/sockets.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/api/sockets.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/api/sockets.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/api/tcpip.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/api/tcpip.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/api/tcpip.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/api/tcpip.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/core/dhcp.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/dhcp.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/core/dhcp.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/dhcp.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/core/inet.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/inet.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/core/inet.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/inet.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/core/inet6.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/inet6.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/core/inet6.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/inet6.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/core/ipv4/icmp.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/ipv4/icmp.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/core/ipv4/icmp.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/ipv4/icmp.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/core/ipv4/ip.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/ipv4/ip.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/core/ipv4/ip.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/ipv4/ip.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/core/ipv4/ip_addr.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/ipv4/ip_addr.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/core/ipv4/ip_addr.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/ipv4/ip_addr.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/core/ipv4/ip_frag.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/ipv4/ip_frag.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/core/ipv4/ip_frag.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/ipv4/ip_frag.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/core/ipv6/README b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/ipv6/README
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/core/ipv6/README
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/ipv6/README
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/core/ipv6/icmp6.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/ipv6/icmp6.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/core/ipv6/icmp6.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/ipv6/icmp6.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/core/ipv6/ip6.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/ipv6/ip6.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/core/ipv6/ip6.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/ipv6/ip6.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/core/ipv6/ip6_addr.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/ipv6/ip6_addr.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/core/ipv6/ip6_addr.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/ipv6/ip6_addr.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/core/mem.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/mem.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/core/mem.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/mem.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/core/memp.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/memp.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/core/memp.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/memp.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/core/netif.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/netif.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/core/netif.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/netif.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/core/pbuf.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/pbuf.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/core/pbuf.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/pbuf.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/core/raw.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/raw.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/core/raw.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/raw.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/core/stats.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/stats.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/core/stats.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/stats.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/core/sys.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/sys.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/core/sys.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/sys.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/core/tcp.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/tcp.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/core/tcp.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/tcp.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/core/tcp_in.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/tcp_in.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/core/tcp_in.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/tcp_in.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/core/tcp_out.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/tcp_out.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/core/tcp_out.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/tcp_out.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/core/udp.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/udp.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/core/udp.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/core/udp.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/include/ipv4/lwip/icmp.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/ipv4/lwip/icmp.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/include/ipv4/lwip/icmp.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/ipv4/lwip/icmp.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/include/ipv4/lwip/inet.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/ipv4/lwip/inet.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/include/ipv4/lwip/inet.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/ipv4/lwip/inet.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/include/ipv4/lwip/ip.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/ipv4/lwip/ip.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/include/ipv4/lwip/ip.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/ipv4/lwip/ip.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/include/ipv4/lwip/ip_addr.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/ipv4/lwip/ip_addr.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/include/ipv4/lwip/ip_addr.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/ipv4/lwip/ip_addr.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/include/ipv4/lwip/ip_frag.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/ipv4/lwip/ip_frag.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/include/ipv4/lwip/ip_frag.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/ipv4/lwip/ip_frag.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/include/ipv6/lwip/icmp.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/ipv6/lwip/icmp.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/include/ipv6/lwip/icmp.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/ipv6/lwip/icmp.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/include/ipv6/lwip/inet.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/ipv6/lwip/inet.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/include/ipv6/lwip/inet.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/ipv6/lwip/inet.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/include/ipv6/lwip/ip.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/ipv6/lwip/ip.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/include/ipv6/lwip/ip.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/ipv6/lwip/ip.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/include/ipv6/lwip/ip_addr.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/ipv6/lwip/ip_addr.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/include/ipv6/lwip/ip_addr.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/ipv6/lwip/ip_addr.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/api.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/api.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/api.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/api.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/api_msg.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/api_msg.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/api_msg.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/api_msg.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/arch.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/arch.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/arch.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/arch.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/debug.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/debug.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/debug.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/debug.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/def.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/def.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/def.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/def.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/dhcp.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/dhcp.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/dhcp.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/dhcp.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/err.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/err.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/err.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/err.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/mem.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/mem.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/mem.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/mem.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/memp.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/memp.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/memp.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/memp.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/netif.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/netif.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/netif.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/netif.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/opt.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/opt.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/opt.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/opt.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/pbuf.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/pbuf.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/pbuf.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/pbuf.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/raw.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/raw.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/raw.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/raw.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/sio.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/sio.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/sio.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/sio.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/snmp.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/snmp.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/snmp.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/snmp.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/sockets.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/sockets.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/sockets.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/sockets.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/stats.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/stats.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/stats.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/stats.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/sys.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/sys.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/sys.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/sys.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/tcp.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/tcp.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/tcp.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/tcp.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/tcpip.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/tcpip.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/tcpip.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/tcpip.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/udp.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/udp.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/udp.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/lwip/udp.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/include/netif/etharp.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/netif/etharp.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/include/netif/etharp.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/netif/etharp.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/include/netif/loopif.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/netif/loopif.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/include/netif/loopif.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/netif/loopif.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/include/netif/slipif.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/netif/slipif.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/include/netif/slipif.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/include/netif/slipif.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/netif/FILES b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/FILES
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/netif/FILES
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/FILES
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/netif/etharp.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/etharp.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/netif/etharp.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/etharp.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ethernetif.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ethernetif.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/netif/ethernetif.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ethernetif.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/netif/loopif.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/loopif.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/netif/loopif.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/loopif.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/auth.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/auth.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/auth.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/auth.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/auth.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/auth.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/auth.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/auth.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/chap.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/chap.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/chap.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/chap.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/chap.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/chap.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/chap.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/chap.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/chpms.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/chpms.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/chpms.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/chpms.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/chpms.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/chpms.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/chpms.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/chpms.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/fsm.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/fsm.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/fsm.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/fsm.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/fsm.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/fsm.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/fsm.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/fsm.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/ipcp.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/ipcp.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/ipcp.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/ipcp.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/ipcp.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/ipcp.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/ipcp.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/ipcp.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/lcp.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/lcp.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/lcp.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/lcp.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/lcp.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/lcp.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/lcp.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/lcp.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/magic.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/magic.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/magic.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/magic.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/magic.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/magic.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/magic.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/magic.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/md5.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/md5.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/md5.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/md5.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/md5.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/md5.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/md5.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/md5.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/pap.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/pap.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/pap.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/pap.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/pap.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/pap.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/pap.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/pap.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/ppp.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/ppp.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/ppp.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/ppp.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/ppp.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/ppp.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/ppp.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/ppp.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/pppdebug.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/pppdebug.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/pppdebug.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/pppdebug.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/randm.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/randm.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/randm.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/randm.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/randm.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/randm.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/randm.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/randm.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/vj.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/vj.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/vj.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/vj.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/vj.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/vj.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/vj.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/vj.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/vjbsdhdr.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/vjbsdhdr.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/vjbsdhdr.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/vjbsdhdr.h
diff --git a/Demo/lwIP_MCF5235_GCC/lwip/src/netif/slipif.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/slipif.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwip/src/netif/slipif.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwip/src/netif/slipif.c
diff --git a/Demo/lwIP_MCF5235_GCC/lwipopts.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/lwipopts.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/lwipopts.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/lwipopts.h
diff --git a/Demo/lwIP_MCF5235_GCC/m5235-ram.ld b/FreeRTOS/Demo/lwIP_MCF5235_GCC/m5235-ram.ld
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/m5235-ram.ld
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/m5235-ram.ld
diff --git a/Demo/lwIP_MCF5235_GCC/m5235-rom.ld b/FreeRTOS/Demo/lwIP_MCF5235_GCC/m5235-rom.ld
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/m5235-rom.ld
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/m5235-rom.ld
diff --git a/Demo/lwIP_MCF5235_GCC/m5235.gdb b/FreeRTOS/Demo/lwIP_MCF5235_GCC/m5235.gdb
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/m5235.gdb
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/m5235.gdb
diff --git a/Demo/lwIP_MCF5235_GCC/system/crt0.S b/FreeRTOS/Demo/lwIP_MCF5235_GCC/system/crt0.S
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/system/crt0.S
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/system/crt0.S
diff --git a/Demo/lwIP_MCF5235_GCC/system/init.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/system/init.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/system/init.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/system/init.c
diff --git a/Demo/lwIP_MCF5235_GCC/system/mcf5xxx.S b/FreeRTOS/Demo/lwIP_MCF5235_GCC/system/mcf5xxx.S
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/system/mcf5xxx.S
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/system/mcf5xxx.S
diff --git a/Demo/lwIP_MCF5235_GCC/system/newlib.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/system/newlib.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/system/newlib.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/system/newlib.c
diff --git a/Demo/lwIP_MCF5235_GCC/system/serial.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/system/serial.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/system/serial.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/system/serial.c
diff --git a/Demo/lwIP_MCF5235_GCC/system/vector.S b/FreeRTOS/Demo/lwIP_MCF5235_GCC/system/vector.S
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/system/vector.S
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/system/vector.S
diff --git a/Demo/lwIP_MCF5235_GCC/tools/indent.sh b/FreeRTOS/Demo/lwIP_MCF5235_GCC/tools/indent.sh
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/tools/indent.sh
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/tools/indent.sh
diff --git a/Demo/lwIP_MCF5235_GCC/tools/mcf5235-http.png b/FreeRTOS/Demo/lwIP_MCF5235_GCC/tools/mcf5235-http.png
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/tools/mcf5235-http.png
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/tools/mcf5235-http.png
diff --git a/Demo/lwIP_MCF5235_GCC/tools/mcf5235-icmp-frame-len1024.png b/FreeRTOS/Demo/lwIP_MCF5235_GCC/tools/mcf5235-icmp-frame-len1024.png
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/tools/mcf5235-icmp-frame-len1024.png
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/tools/mcf5235-icmp-frame-len1024.png
diff --git a/Demo/lwIP_MCF5235_GCC/tools/mcf5235-icmp-frame-len64.png b/FreeRTOS/Demo/lwIP_MCF5235_GCC/tools/mcf5235-icmp-frame-len64.png
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/tools/mcf5235-icmp-frame-len64.png
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/tools/mcf5235-icmp-frame-len64.png
diff --git a/Demo/lwIP_MCF5235_GCC/web.c b/FreeRTOS/Demo/lwIP_MCF5235_GCC/web.c
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/web.c
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/web.c
diff --git a/Demo/lwIP_MCF5235_GCC/web.h b/FreeRTOS/Demo/lwIP_MCF5235_GCC/web.h
similarity index 100%
rename from Demo/lwIP_MCF5235_GCC/web.h
rename to FreeRTOS/Demo/lwIP_MCF5235_GCC/web.h
diff --git a/Demo/msp430_CrossWorks/FreeRTOSConfig.h b/FreeRTOS/Demo/msp430_CrossWorks/FreeRTOSConfig.h
similarity index 100%
rename from Demo/msp430_CrossWorks/FreeRTOSConfig.h
rename to FreeRTOS/Demo/msp430_CrossWorks/FreeRTOSConfig.h
diff --git a/Demo/msp430_CrossWorks/ParTest/ParTest.c b/FreeRTOS/Demo/msp430_CrossWorks/ParTest/ParTest.c
similarity index 100%
rename from Demo/msp430_CrossWorks/ParTest/ParTest.c
rename to FreeRTOS/Demo/msp430_CrossWorks/ParTest/ParTest.c
diff --git a/Demo/msp430_CrossWorks/RTOSDemo.hzp b/FreeRTOS/Demo/msp430_CrossWorks/RTOSDemo.hzp
similarity index 100%
rename from Demo/msp430_CrossWorks/RTOSDemo.hzp
rename to FreeRTOS/Demo/msp430_CrossWorks/RTOSDemo.hzp
diff --git a/Demo/msp430_CrossWorks/RTOSDemo.hzs b/FreeRTOS/Demo/msp430_CrossWorks/RTOSDemo.hzs
similarity index 100%
rename from Demo/msp430_CrossWorks/RTOSDemo.hzs
rename to FreeRTOS/Demo/msp430_CrossWorks/RTOSDemo.hzs
diff --git a/Demo/msp430_CrossWorks/main.c b/FreeRTOS/Demo/msp430_CrossWorks/main.c
similarity index 100%
rename from Demo/msp430_CrossWorks/main.c
rename to FreeRTOS/Demo/msp430_CrossWorks/main.c
diff --git a/Demo/msp430_CrossWorks/serial/serial.c b/FreeRTOS/Demo/msp430_CrossWorks/serial/serial.c
similarity index 100%
rename from Demo/msp430_CrossWorks/serial/serial.c
rename to FreeRTOS/Demo/msp430_CrossWorks/serial/serial.c
diff --git a/Demo/msp430_CrossWorks/serial/serialASM.asm b/FreeRTOS/Demo/msp430_CrossWorks/serial/serialASM.asm
similarity index 100%
rename from Demo/msp430_CrossWorks/serial/serialASM.asm
rename to FreeRTOS/Demo/msp430_CrossWorks/serial/serialASM.asm
diff --git a/Demo/msp430_GCC/FreeRTOSConfig.h b/FreeRTOS/Demo/msp430_GCC/FreeRTOSConfig.h
similarity index 100%
rename from Demo/msp430_GCC/FreeRTOSConfig.h
rename to FreeRTOS/Demo/msp430_GCC/FreeRTOSConfig.h
diff --git a/Demo/msp430_GCC/ParTest/ParTest.c b/FreeRTOS/Demo/msp430_GCC/ParTest/ParTest.c
similarity index 100%
rename from Demo/msp430_GCC/ParTest/ParTest.c
rename to FreeRTOS/Demo/msp430_GCC/ParTest/ParTest.c
diff --git a/Demo/msp430_GCC/gdb.ini b/FreeRTOS/Demo/msp430_GCC/gdb.ini
similarity index 100%
rename from Demo/msp430_GCC/gdb.ini
rename to FreeRTOS/Demo/msp430_GCC/gdb.ini
diff --git a/Demo/msp430_GCC/main.c b/FreeRTOS/Demo/msp430_GCC/main.c
similarity index 100%
rename from Demo/msp430_GCC/main.c
rename to FreeRTOS/Demo/msp430_GCC/main.c
diff --git a/Demo/msp430_GCC/makefile b/FreeRTOS/Demo/msp430_GCC/makefile
similarity index 100%
rename from Demo/msp430_GCC/makefile
rename to FreeRTOS/Demo/msp430_GCC/makefile
diff --git a/Demo/msp430_GCC/serial/serial.c b/FreeRTOS/Demo/msp430_GCC/serial/serial.c
similarity index 100%
rename from Demo/msp430_GCC/serial/serial.c
rename to FreeRTOS/Demo/msp430_GCC/serial/serial.c
diff --git a/Demo/msp430_IAR/FreeRTOSConfig.h b/FreeRTOS/Demo/msp430_IAR/FreeRTOSConfig.h
similarity index 100%
rename from Demo/msp430_IAR/FreeRTOSConfig.h
rename to FreeRTOS/Demo/msp430_IAR/FreeRTOSConfig.h
diff --git a/Demo/msp430_IAR/ParTest/ParTest.c b/FreeRTOS/Demo/msp430_IAR/ParTest/ParTest.c
similarity index 100%
rename from Demo/msp430_IAR/ParTest/ParTest.c
rename to FreeRTOS/Demo/msp430_IAR/ParTest/ParTest.c
diff --git a/Demo/msp430_IAR/RTOSDemo.ewd b/FreeRTOS/Demo/msp430_IAR/RTOSDemo.ewd
similarity index 100%
rename from Demo/msp430_IAR/RTOSDemo.ewd
rename to FreeRTOS/Demo/msp430_IAR/RTOSDemo.ewd
diff --git a/Demo/msp430_IAR/RTOSDemo.ewp b/FreeRTOS/Demo/msp430_IAR/RTOSDemo.ewp
similarity index 100%
rename from Demo/msp430_IAR/RTOSDemo.ewp
rename to FreeRTOS/Demo/msp430_IAR/RTOSDemo.ewp
diff --git a/Demo/msp430_IAR/RTOSDemo.eww b/FreeRTOS/Demo/msp430_IAR/RTOSDemo.eww
similarity index 100%
rename from Demo/msp430_IAR/RTOSDemo.eww
rename to FreeRTOS/Demo/msp430_IAR/RTOSDemo.eww
diff --git a/Demo/msp430_IAR/main.c b/FreeRTOS/Demo/msp430_IAR/main.c
similarity index 100%
rename from Demo/msp430_IAR/main.c
rename to FreeRTOS/Demo/msp430_IAR/main.c
diff --git a/Demo/msp430_IAR/serial/serial.c b/FreeRTOS/Demo/msp430_IAR/serial/serial.c
similarity index 100%
rename from Demo/msp430_IAR/serial/serial.c
rename to FreeRTOS/Demo/msp430_IAR/serial/serial.c
diff --git a/Demo/msp430_IAR/serial/serialASM.s43 b/FreeRTOS/Demo/msp430_IAR/serial/serialASM.s43
similarity index 100%
rename from Demo/msp430_IAR/serial/serialASM.s43
rename to FreeRTOS/Demo/msp430_IAR/serial/serialASM.s43
diff --git a/Demo/msp430_IAR/settings/RTOSDemo.cspy.bat b/FreeRTOS/Demo/msp430_IAR/settings/RTOSDemo.cspy.bat
similarity index 100%
rename from Demo/msp430_IAR/settings/RTOSDemo.cspy.bat
rename to FreeRTOS/Demo/msp430_IAR/settings/RTOSDemo.cspy.bat
diff --git a/Demo/msp430_IAR/settings/RTOSDemo.dbgdt b/FreeRTOS/Demo/msp430_IAR/settings/RTOSDemo.dbgdt
similarity index 100%
rename from Demo/msp430_IAR/settings/RTOSDemo.dbgdt
rename to FreeRTOS/Demo/msp430_IAR/settings/RTOSDemo.dbgdt
diff --git a/Demo/msp430_IAR/settings/RTOSDemo.dni b/FreeRTOS/Demo/msp430_IAR/settings/RTOSDemo.dni
similarity index 100%
rename from Demo/msp430_IAR/settings/RTOSDemo.dni
rename to FreeRTOS/Demo/msp430_IAR/settings/RTOSDemo.dni
diff --git a/Demo/msp430_IAR/settings/RTOSDemo.wsdt b/FreeRTOS/Demo/msp430_IAR/settings/RTOSDemo.wsdt
similarity index 100%
rename from Demo/msp430_IAR/settings/RTOSDemo.wsdt
rename to FreeRTOS/Demo/msp430_IAR/settings/RTOSDemo.wsdt
diff --git a/Demo/readme.txt b/FreeRTOS/Demo/readme.txt
similarity index 100%
rename from Demo/readme.txt
rename to FreeRTOS/Demo/readme.txt
diff --git a/Demo/uIP_Demo_IAR_ARM7/EMAC/EMAClISR.s79 b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/EMAC/EMAClISR.s79
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/EMAC/EMAClISR.s79
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/EMAC/EMAClISR.s79
diff --git a/Demo/uIP_Demo_IAR_ARM7/EMAC/SAM7_EMAC.c b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/EMAC/SAM7_EMAC.c
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/EMAC/SAM7_EMAC.c
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/EMAC/SAM7_EMAC.c
diff --git a/Demo/uIP_Demo_IAR_ARM7/EMAC/SAM7_EMAC.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/EMAC/SAM7_EMAC.h
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/EMAC/SAM7_EMAC.h
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/EMAC/SAM7_EMAC.h
diff --git a/Demo/uIP_Demo_IAR_ARM7/FreeRTOSConfig.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/FreeRTOSConfig.h
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/FreeRTOSConfig.h
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/FreeRTOSConfig.h
diff --git a/Demo/uIP_Demo_IAR_ARM7/ParTest/ParTest.c b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/ParTest/ParTest.c
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/ParTest/ParTest.c
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/ParTest/ParTest.c
diff --git a/Demo/uIP_Demo_IAR_ARM7/SrcIAR/Board.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/Board.h
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/SrcIAR/Board.h
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/Board.h
diff --git a/Demo/uIP_Demo_IAR_ARM7/SrcIAR/Cstartup.s b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/Cstartup.s
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/SrcIAR/Cstartup.s
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/Cstartup.s
diff --git a/Demo/uIP_Demo_IAR_ARM7/SrcIAR/Cstartup_SAM7.c b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/Cstartup_SAM7.c
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/SrcIAR/Cstartup_SAM7.c
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/Cstartup_SAM7.c
diff --git a/Demo/uIP_Demo_IAR_ARM7/SrcIAR/Emac.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/Emac.h
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/SrcIAR/Emac.h
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/Emac.h
diff --git a/Demo/uIP_Demo_IAR_ARM7/SrcIAR/dbgu.c b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/dbgu.c
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/SrcIAR/dbgu.c
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/dbgu.c
diff --git a/Demo/uIP_Demo_IAR_ARM7/SrcIAR/dbgu.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/dbgu.h
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/SrcIAR/dbgu.h
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/dbgu.h
diff --git a/Demo/uIP_Demo_IAR_ARM7/SrcIAR/init.c b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/init.c
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/SrcIAR/init.c
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/init.c
diff --git a/Demo/uIP_Demo_IAR_ARM7/SrcIAR/ioat91sam7x128.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/ioat91sam7x128.h
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/SrcIAR/ioat91sam7x128.h
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/ioat91sam7x128.h
diff --git a/Demo/uIP_Demo_IAR_ARM7/SrcIAR/ioat91sam7x256.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/ioat91sam7x256.h
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/SrcIAR/ioat91sam7x256.h
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/ioat91sam7x256.h
diff --git a/Demo/uIP_Demo_IAR_ARM7/SrcIAR/mii.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/mii.h
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/SrcIAR/mii.h
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/mii.h
diff --git a/Demo/uIP_Demo_IAR_ARM7/main.c b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/main.c
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/main.c
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/main.c
diff --git a/Demo/uIP_Demo_IAR_ARM7/resource/SAM7.mac b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/resource/SAM7.mac
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/resource/SAM7.mac
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/resource/SAM7.mac
diff --git a/Demo/uIP_Demo_IAR_ARM7/resource/SAM7_RAM.mac b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/resource/SAM7_RAM.mac
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/resource/SAM7_RAM.mac
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/resource/SAM7_RAM.mac
diff --git a/Demo/uIP_Demo_IAR_ARM7/resource/at91SAM7X256_FLASH.icf b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/resource/at91SAM7X256_FLASH.icf
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/resource/at91SAM7X256_FLASH.icf
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/resource/at91SAM7X256_FLASH.icf
diff --git a/Demo/uIP_Demo_IAR_ARM7/resource/at91sam7x-ek-flash.mac b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/resource/at91sam7x-ek-flash.mac
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/resource/at91sam7x-ek-flash.mac
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/resource/at91sam7x-ek-flash.mac
diff --git a/Demo/uIP_Demo_IAR_ARM7/rtosdemo.ewd b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/rtosdemo.ewd
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/rtosdemo.ewd
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/rtosdemo.ewd
diff --git a/Demo/uIP_Demo_IAR_ARM7/rtosdemo.ewp b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/rtosdemo.ewp
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/rtosdemo.ewp
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/rtosdemo.ewp
diff --git a/Demo/uIP_Demo_IAR_ARM7/rtosdemo.eww b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/rtosdemo.eww
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/rtosdemo.eww
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/rtosdemo.eww
diff --git a/Demo/uIP_Demo_IAR_ARM7/settings/Basic.dbgdt b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/settings/Basic.dbgdt
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/settings/Basic.dbgdt
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/settings/Basic.dbgdt
diff --git a/Demo/uIP_Demo_IAR_ARM7/settings/Basic.dni b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/settings/Basic.dni
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/settings/Basic.dni
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/settings/Basic.dni
diff --git a/Demo/uIP_Demo_IAR_ARM7/settings/BasicSAM7.wsdt b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/settings/BasicSAM7.wsdt
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/settings/BasicSAM7.wsdt
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/settings/BasicSAM7.wsdt
diff --git a/Demo/uIP_Demo_IAR_ARM7/settings/rtosdemo.dbgdt b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/settings/rtosdemo.dbgdt
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/settings/rtosdemo.dbgdt
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/settings/rtosdemo.dbgdt
diff --git a/Demo/uIP_Demo_IAR_ARM7/settings/rtosdemo.dni b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/settings/rtosdemo.dni
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/settings/rtosdemo.dni
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/settings/rtosdemo.dni
diff --git a/Demo/uIP_Demo_IAR_ARM7/settings/rtosdemo.wsdt b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/settings/rtosdemo.wsdt
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/settings/rtosdemo.wsdt
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/settings/rtosdemo.wsdt
diff --git a/Demo/uIP_Demo_IAR_ARM7/uIP_Task.c b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uIP_Task.c
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uIP_Task.c
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uIP_Task.c
diff --git a/Demo/uIP_Demo_IAR_ARM7/uIP_Task.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uIP_Task.h
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uIP_Task.h
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uIP_Task.h
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/Makefile b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/Makefile
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/Makefile
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/Makefile
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/cgi.c b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/cgi.c
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/cgi.c
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/cgi.c
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/cgi.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/cgi.h
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/cgi.h
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/cgi.h
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/crt0.asm b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/crt0.asm
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/crt0.asm
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/crt0.asm
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/fs.c b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs.c
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/fs.c
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs.c
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/fs.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs.h
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/fs.h
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs.h
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/fs/404.html b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/404.html
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/fs/404.html
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/404.html
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/fs/cgi/files b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/cgi/files
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/fs/cgi/files
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/cgi/files
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/fs/cgi/rtos b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/cgi/rtos
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/fs/cgi/rtos
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/cgi/rtos
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/fs/cgi/stats b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/cgi/stats
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/fs/cgi/stats
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/cgi/stats
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/fs/cgi/tcp b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/cgi/tcp
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/fs/cgi/tcp
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/cgi/tcp
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/fs/control.html b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/control.html
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/fs/control.html
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/control.html
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/fs/files_footer.plain b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/files_footer.plain
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/fs/files_footer.plain
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/files_footer.plain
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/fs/files_header.html b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/files_header.html
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/fs/files_header.html
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/files_header.html
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/fs/img/logo.png b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/img/logo.png
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/fs/img/logo.png
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/img/logo.png
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/fs/index.html b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/index.html
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/fs/index.html
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/index.html
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/fs/stats_footer.plain b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/stats_footer.plain
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/fs/stats_footer.plain
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/stats_footer.plain
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/fs/stats_header.html b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/stats_header.html
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/fs/stats_header.html
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/stats_header.html
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/fs/tcp_footer.plain b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/tcp_footer.plain
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/fs/tcp_footer.plain
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/tcp_footer.plain
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/fs/tcp_header.html b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/tcp_header.html
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/fs/tcp_header.html
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/tcp_header.html
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/fsdata.c b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fsdata.c
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/fsdata.c
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fsdata.c
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/fsdata.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fsdata.h
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/fsdata.h
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fsdata.h
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/httpd.c b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/httpd.c
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/httpd.c
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/httpd.c
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/httpd.c_ b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/httpd.c_
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/httpd.c_
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/httpd.c_
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/httpd.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/httpd.h
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/httpd.h
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/httpd.h
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/main_led b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/main_led
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/main_led
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/main_led
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/makefsdata b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/makefsdata
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/makefsdata
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/makefsdata
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/memb.c b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/memb.c
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/memb.c
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/memb.c
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/memb.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/memb.h
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/memb.h
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/memb.h
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/setarp.bat b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/setarp.bat
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/setarp.bat
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/setarp.bat
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/slipdev.c b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/slipdev.c
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/slipdev.c
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/slipdev.c
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/slipdev.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/slipdev.h
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/slipdev.h
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/slipdev.h
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/tapdev.c b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/tapdev.c
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/tapdev.c
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/tapdev.c
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/tapdev.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/tapdev.h
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/tapdev.h
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/tapdev.h
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/telnetd-shell.c b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/telnetd-shell.c
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/telnetd-shell.c
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/telnetd-shell.c
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/telnetd.c b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/telnetd.c
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/telnetd.c
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/telnetd.c
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/telnetd.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/telnetd.h
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/telnetd.h
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/telnetd.h
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/uip.c b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/uip.c
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/uip.c
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/uip.c
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/uip.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/uip.h
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/uip.h
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/uip.h
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/uip_arch.c b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/uip_arch.c
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/uip_arch.c
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/uip_arch.c
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/uip_arch.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/uip_arch.h
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/uip_arch.h
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/uip_arch.h
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/uip_arp.c b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/uip_arp.c
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/uip_arp.c
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/uip_arp.c
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/uip_arp.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/uip_arp.h
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/uip_arp.h
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/uip_arp.h
diff --git a/Demo/uIP_Demo_IAR_ARM7/uip/uipopt.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/uipopt.h
similarity index 100%
rename from Demo/uIP_Demo_IAR_ARM7/uip/uipopt.h
rename to FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/uipopt.h
diff --git a/Demo/uIP_Demo_Rowley_ARM7/FreeRTOSConfig.h b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/FreeRTOSConfig.h
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/FreeRTOSConfig.h
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/FreeRTOSConfig.h
diff --git a/Demo/uIP_Demo_Rowley_ARM7/Philips_LPC210X_Startup.s b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/Philips_LPC210X_Startup.s
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/Philips_LPC210X_Startup.s
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/Philips_LPC210X_Startup.s
diff --git a/Demo/uIP_Demo_Rowley_ARM7/flash_placement.xml b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/flash_placement.xml
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/flash_placement.xml
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/flash_placement.xml
diff --git a/Demo/uIP_Demo_Rowley_ARM7/lpc210x.h b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/lpc210x.h
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/lpc210x.h
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/lpc210x.h
diff --git a/Demo/uIP_Demo_Rowley_ARM7/main.c b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/main.c
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/main.c
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/main.c
diff --git a/Demo/uIP_Demo_Rowley_ARM7/rtosdemo.hzp b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/rtosdemo.hzp
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/rtosdemo.hzp
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/rtosdemo.hzp
diff --git a/Demo/uIP_Demo_Rowley_ARM7/rtosdemo.hzs b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/rtosdemo.hzs
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/rtosdemo.hzs
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/rtosdemo.hzs
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/Makefile b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/Makefile
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/Makefile
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/Makefile
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/cgi.c b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/cgi.c
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/cgi.c
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/cgi.c
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/cgi.h b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/cgi.h
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/cgi.h
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/cgi.h
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/crt0.asm b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/crt0.asm
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/crt0.asm
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/crt0.asm
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/cs8900a.c b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/cs8900a.c
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/cs8900a.c
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/cs8900a.c
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/cs8900a.h b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/cs8900a.h
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/cs8900a.h
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/cs8900a.h
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/fs.c b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs.c
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/fs.c
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs.c
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/fs.h b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs.h
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/fs.h
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs.h
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/fs/404.html b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/404.html
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/fs/404.html
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/404.html
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/fs/about.html b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/about.html
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/fs/about.html
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/about.html
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/fs/cgi/files b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/cgi/files
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/fs/cgi/files
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/cgi/files
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/fs/cgi/stats b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/cgi/stats
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/fs/cgi/stats
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/cgi/stats
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/fs/cgi/tcp b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/cgi/tcp
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/fs/cgi/tcp
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/cgi/tcp
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/fs/control.html b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/control.html
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/fs/control.html
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/control.html
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/fs/files_footer.plain b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/files_footer.plain
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/fs/files_footer.plain
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/files_footer.plain
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/fs/files_header.html b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/files_header.html
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/fs/files_header.html
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/files_header.html
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/fs/img/bg.png b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/img/bg.png
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/fs/img/bg.png
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/img/bg.png
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/fs/index.html b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/index.html
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/fs/index.html
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/index.html
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/fs/stats_footer.plain b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/stats_footer.plain
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/fs/stats_footer.plain
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/stats_footer.plain
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/fs/stats_header.html b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/stats_header.html
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/fs/stats_header.html
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/stats_header.html
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/fs/tcp_footer.plain b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/tcp_footer.plain
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/fs/tcp_footer.plain
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/tcp_footer.plain
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/fs/tcp_header.html b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/tcp_header.html
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/fs/tcp_header.html
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/tcp_header.html
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/fsdata.c b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fsdata.c
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/fsdata.c
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fsdata.c
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/fsdata.h b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fsdata.h
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/fsdata.h
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fsdata.h
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/httpd.c b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/httpd.c
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/httpd.c
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/httpd.c
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/httpd.h b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/httpd.h
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/httpd.h
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/httpd.h
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/main_led b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/main_led
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/main_led
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/main_led
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/makefsdata b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/makefsdata
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/makefsdata
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/makefsdata
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/memb.c b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/memb.c
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/memb.c
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/memb.c
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/memb.h b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/memb.h
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/memb.h
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/memb.h
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/slipdev.c b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/slipdev.c
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/slipdev.c
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/slipdev.c
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/slipdev.h b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/slipdev.h
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/slipdev.h
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/slipdev.h
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/tapdev.c b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/tapdev.c
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/tapdev.c
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/tapdev.c
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/tapdev.h b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/tapdev.h
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/tapdev.h
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/tapdev.h
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/telnetd-shell.c b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/telnetd-shell.c
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/telnetd-shell.c
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/telnetd-shell.c
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/telnetd.c b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/telnetd.c
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/telnetd.c
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/telnetd.c
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/telnetd.h b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/telnetd.h
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/telnetd.h
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/telnetd.h
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/uIP_Task.c b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uIP_Task.c
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/uIP_Task.c
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uIP_Task.c
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/uip.c b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uip.c
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/uip.c
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uip.c
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/uip.h b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uip.h
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/uip.h
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uip.h
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/uip_arch.c b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uip_arch.c
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/uip_arch.c
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uip_arch.c
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/uip_arch.h b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uip_arch.h
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/uip_arch.h
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uip_arch.h
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/uip_arp.c b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uip_arp.c
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/uip_arp.c
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uip_arp.c
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/uip_arp.h b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uip_arp.h
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/uip_arp.h
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uip_arp.h
diff --git a/Demo/uIP_Demo_Rowley_ARM7/uip/uipopt.h b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uipopt.h
similarity index 100%
rename from Demo/uIP_Demo_Rowley_ARM7/uip/uipopt.h
rename to FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uipopt.h
diff --git a/License/license.txt b/FreeRTOS/License/license.txt
similarity index 100%
rename from License/license.txt
rename to FreeRTOS/License/license.txt
diff --git a/Source/croutine.c b/FreeRTOS/Source/croutine.c
similarity index 100%
rename from Source/croutine.c
rename to FreeRTOS/Source/croutine.c
diff --git a/Source/include/FreeRTOS.h b/FreeRTOS/Source/include/FreeRTOS.h
similarity index 100%
rename from Source/include/FreeRTOS.h
rename to FreeRTOS/Source/include/FreeRTOS.h
diff --git a/Source/include/StackMacros.h b/FreeRTOS/Source/include/StackMacros.h
similarity index 100%
rename from Source/include/StackMacros.h
rename to FreeRTOS/Source/include/StackMacros.h
diff --git a/Source/include/croutine.h b/FreeRTOS/Source/include/croutine.h
similarity index 100%
rename from Source/include/croutine.h
rename to FreeRTOS/Source/include/croutine.h
diff --git a/Source/include/list.h b/FreeRTOS/Source/include/list.h
similarity index 100%
rename from Source/include/list.h
rename to FreeRTOS/Source/include/list.h
diff --git a/Source/include/mpu_wrappers.h b/FreeRTOS/Source/include/mpu_wrappers.h
similarity index 100%
rename from Source/include/mpu_wrappers.h
rename to FreeRTOS/Source/include/mpu_wrappers.h
diff --git a/Source/include/portable.h b/FreeRTOS/Source/include/portable.h
similarity index 100%
rename from Source/include/portable.h
rename to FreeRTOS/Source/include/portable.h
diff --git a/Source/include/projdefs.h b/FreeRTOS/Source/include/projdefs.h
similarity index 100%
rename from Source/include/projdefs.h
rename to FreeRTOS/Source/include/projdefs.h
diff --git a/Source/include/queue.h b/FreeRTOS/Source/include/queue.h
similarity index 100%
rename from Source/include/queue.h
rename to FreeRTOS/Source/include/queue.h
diff --git a/Source/include/semphr.h b/FreeRTOS/Source/include/semphr.h
similarity index 100%
rename from Source/include/semphr.h
rename to FreeRTOS/Source/include/semphr.h
diff --git a/Source/include/task.h b/FreeRTOS/Source/include/task.h
similarity index 100%
rename from Source/include/task.h
rename to FreeRTOS/Source/include/task.h
diff --git a/Source/include/timers.h b/FreeRTOS/Source/include/timers.h
similarity index 100%
rename from Source/include/timers.h
rename to FreeRTOS/Source/include/timers.h
diff --git a/Source/list.c b/FreeRTOS/Source/list.c
similarity index 100%
rename from Source/list.c
rename to FreeRTOS/Source/list.c
diff --git a/Source/portable/BCC/16BitDOS/Flsh186/port.c b/FreeRTOS/Source/portable/BCC/16BitDOS/Flsh186/port.c
similarity index 100%
rename from Source/portable/BCC/16BitDOS/Flsh186/port.c
rename to FreeRTOS/Source/portable/BCC/16BitDOS/Flsh186/port.c
diff --git a/Source/portable/BCC/16BitDOS/Flsh186/prtmacro.h b/FreeRTOS/Source/portable/BCC/16BitDOS/Flsh186/prtmacro.h
similarity index 100%
rename from Source/portable/BCC/16BitDOS/Flsh186/prtmacro.h
rename to FreeRTOS/Source/portable/BCC/16BitDOS/Flsh186/prtmacro.h
diff --git a/Source/portable/BCC/16BitDOS/PC/port.c b/FreeRTOS/Source/portable/BCC/16BitDOS/PC/port.c
similarity index 100%
rename from Source/portable/BCC/16BitDOS/PC/port.c
rename to FreeRTOS/Source/portable/BCC/16BitDOS/PC/port.c
diff --git a/Source/portable/BCC/16BitDOS/PC/prtmacro.h b/FreeRTOS/Source/portable/BCC/16BitDOS/PC/prtmacro.h
similarity index 100%
rename from Source/portable/BCC/16BitDOS/PC/prtmacro.h
rename to FreeRTOS/Source/portable/BCC/16BitDOS/PC/prtmacro.h
diff --git a/Source/portable/BCC/16BitDOS/common/portasm.h b/FreeRTOS/Source/portable/BCC/16BitDOS/common/portasm.h
similarity index 100%
rename from Source/portable/BCC/16BitDOS/common/portasm.h
rename to FreeRTOS/Source/portable/BCC/16BitDOS/common/portasm.h
diff --git a/Source/portable/BCC/16BitDOS/common/portcomn.c b/FreeRTOS/Source/portable/BCC/16BitDOS/common/portcomn.c
similarity index 100%
rename from Source/portable/BCC/16BitDOS/common/portcomn.c
rename to FreeRTOS/Source/portable/BCC/16BitDOS/common/portcomn.c
diff --git a/Source/portable/CCS/MSP430X/data_model.h b/FreeRTOS/Source/portable/CCS/MSP430X/data_model.h
similarity index 100%
rename from Source/portable/CCS/MSP430X/data_model.h
rename to FreeRTOS/Source/portable/CCS/MSP430X/data_model.h
diff --git a/Source/portable/CCS/MSP430X/port.c b/FreeRTOS/Source/portable/CCS/MSP430X/port.c
similarity index 100%
rename from Source/portable/CCS/MSP430X/port.c
rename to FreeRTOS/Source/portable/CCS/MSP430X/port.c
diff --git a/Source/portable/CCS/MSP430X/portext.asm b/FreeRTOS/Source/portable/CCS/MSP430X/portext.asm
similarity index 100%
rename from Source/portable/CCS/MSP430X/portext.asm
rename to FreeRTOS/Source/portable/CCS/MSP430X/portext.asm
diff --git a/Source/portable/CCS/MSP430X/portmacro.h b/FreeRTOS/Source/portable/CCS/MSP430X/portmacro.h
similarity index 100%
rename from Source/portable/CCS/MSP430X/portmacro.h
rename to FreeRTOS/Source/portable/CCS/MSP430X/portmacro.h
diff --git a/Source/portable/CodeWarrior/ColdFire_V1/port.c b/FreeRTOS/Source/portable/CodeWarrior/ColdFire_V1/port.c
similarity index 100%
rename from Source/portable/CodeWarrior/ColdFire_V1/port.c
rename to FreeRTOS/Source/portable/CodeWarrior/ColdFire_V1/port.c
diff --git a/Source/portable/CodeWarrior/ColdFire_V1/portasm.S b/FreeRTOS/Source/portable/CodeWarrior/ColdFire_V1/portasm.S
similarity index 100%
rename from Source/portable/CodeWarrior/ColdFire_V1/portasm.S
rename to FreeRTOS/Source/portable/CodeWarrior/ColdFire_V1/portasm.S
diff --git a/Source/portable/CodeWarrior/ColdFire_V1/portmacro.h b/FreeRTOS/Source/portable/CodeWarrior/ColdFire_V1/portmacro.h
similarity index 100%
rename from Source/portable/CodeWarrior/ColdFire_V1/portmacro.h
rename to FreeRTOS/Source/portable/CodeWarrior/ColdFire_V1/portmacro.h
diff --git a/Source/portable/CodeWarrior/ColdFire_V2/port.c b/FreeRTOS/Source/portable/CodeWarrior/ColdFire_V2/port.c
similarity index 100%
rename from Source/portable/CodeWarrior/ColdFire_V2/port.c
rename to FreeRTOS/Source/portable/CodeWarrior/ColdFire_V2/port.c
diff --git a/Source/portable/CodeWarrior/ColdFire_V2/portasm.S b/FreeRTOS/Source/portable/CodeWarrior/ColdFire_V2/portasm.S
similarity index 100%
rename from Source/portable/CodeWarrior/ColdFire_V2/portasm.S
rename to FreeRTOS/Source/portable/CodeWarrior/ColdFire_V2/portasm.S
diff --git a/Source/portable/CodeWarrior/ColdFire_V2/portmacro.h b/FreeRTOS/Source/portable/CodeWarrior/ColdFire_V2/portmacro.h
similarity index 100%
rename from Source/portable/CodeWarrior/ColdFire_V2/portmacro.h
rename to FreeRTOS/Source/portable/CodeWarrior/ColdFire_V2/portmacro.h
diff --git a/Source/portable/CodeWarrior/HCS12/port.c b/FreeRTOS/Source/portable/CodeWarrior/HCS12/port.c
similarity index 100%
rename from Source/portable/CodeWarrior/HCS12/port.c
rename to FreeRTOS/Source/portable/CodeWarrior/HCS12/port.c
diff --git a/Source/portable/CodeWarrior/HCS12/portmacro.h b/FreeRTOS/Source/portable/CodeWarrior/HCS12/portmacro.h
similarity index 100%
rename from Source/portable/CodeWarrior/HCS12/portmacro.h
rename to FreeRTOS/Source/portable/CodeWarrior/HCS12/portmacro.h
diff --git a/Source/portable/GCC/ARM7_AT91FR40008/port.c b/FreeRTOS/Source/portable/GCC/ARM7_AT91FR40008/port.c
similarity index 100%
rename from Source/portable/GCC/ARM7_AT91FR40008/port.c
rename to FreeRTOS/Source/portable/GCC/ARM7_AT91FR40008/port.c
diff --git a/Source/portable/GCC/ARM7_AT91FR40008/portISR.c b/FreeRTOS/Source/portable/GCC/ARM7_AT91FR40008/portISR.c
similarity index 100%
rename from Source/portable/GCC/ARM7_AT91FR40008/portISR.c
rename to FreeRTOS/Source/portable/GCC/ARM7_AT91FR40008/portISR.c
diff --git a/Source/portable/GCC/ARM7_AT91FR40008/portmacro.h b/FreeRTOS/Source/portable/GCC/ARM7_AT91FR40008/portmacro.h
similarity index 100%
rename from Source/portable/GCC/ARM7_AT91FR40008/portmacro.h
rename to FreeRTOS/Source/portable/GCC/ARM7_AT91FR40008/portmacro.h
diff --git a/Source/portable/GCC/ARM7_AT91SAM7S/AT91SAM7X256.h b/FreeRTOS/Source/portable/GCC/ARM7_AT91SAM7S/AT91SAM7X256.h
similarity index 100%
rename from Source/portable/GCC/ARM7_AT91SAM7S/AT91SAM7X256.h
rename to FreeRTOS/Source/portable/GCC/ARM7_AT91SAM7S/AT91SAM7X256.h
diff --git a/Source/portable/GCC/ARM7_AT91SAM7S/ioat91sam7x256.h b/FreeRTOS/Source/portable/GCC/ARM7_AT91SAM7S/ioat91sam7x256.h
similarity index 100%
rename from Source/portable/GCC/ARM7_AT91SAM7S/ioat91sam7x256.h
rename to FreeRTOS/Source/portable/GCC/ARM7_AT91SAM7S/ioat91sam7x256.h
diff --git a/Source/portable/GCC/ARM7_AT91SAM7S/lib_AT91SAM7X256.c b/FreeRTOS/Source/portable/GCC/ARM7_AT91SAM7S/lib_AT91SAM7X256.c
similarity index 100%
rename from Source/portable/GCC/ARM7_AT91SAM7S/lib_AT91SAM7X256.c
rename to FreeRTOS/Source/portable/GCC/ARM7_AT91SAM7S/lib_AT91SAM7X256.c
diff --git a/Source/portable/GCC/ARM7_AT91SAM7S/lib_AT91SAM7X256.h b/FreeRTOS/Source/portable/GCC/ARM7_AT91SAM7S/lib_AT91SAM7X256.h
similarity index 100%
rename from Source/portable/GCC/ARM7_AT91SAM7S/lib_AT91SAM7X256.h
rename to FreeRTOS/Source/portable/GCC/ARM7_AT91SAM7S/lib_AT91SAM7X256.h
diff --git a/Source/portable/GCC/ARM7_AT91SAM7S/port.c b/FreeRTOS/Source/portable/GCC/ARM7_AT91SAM7S/port.c
similarity index 100%
rename from Source/portable/GCC/ARM7_AT91SAM7S/port.c
rename to FreeRTOS/Source/portable/GCC/ARM7_AT91SAM7S/port.c
diff --git a/Source/portable/GCC/ARM7_AT91SAM7S/portISR.c b/FreeRTOS/Source/portable/GCC/ARM7_AT91SAM7S/portISR.c
similarity index 100%
rename from Source/portable/GCC/ARM7_AT91SAM7S/portISR.c
rename to FreeRTOS/Source/portable/GCC/ARM7_AT91SAM7S/portISR.c
diff --git a/Source/portable/GCC/ARM7_AT91SAM7S/portmacro.h b/FreeRTOS/Source/portable/GCC/ARM7_AT91SAM7S/portmacro.h
similarity index 100%
rename from Source/portable/GCC/ARM7_AT91SAM7S/portmacro.h
rename to FreeRTOS/Source/portable/GCC/ARM7_AT91SAM7S/portmacro.h
diff --git a/Source/portable/GCC/ARM7_LPC2000/port.c b/FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c
similarity index 100%
rename from Source/portable/GCC/ARM7_LPC2000/port.c
rename to FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c
diff --git a/Source/portable/GCC/ARM7_LPC2000/portISR.c b/FreeRTOS/Source/portable/GCC/ARM7_LPC2000/portISR.c
similarity index 100%
rename from Source/portable/GCC/ARM7_LPC2000/portISR.c
rename to FreeRTOS/Source/portable/GCC/ARM7_LPC2000/portISR.c
diff --git a/Source/portable/GCC/ARM7_LPC2000/portmacro.h b/FreeRTOS/Source/portable/GCC/ARM7_LPC2000/portmacro.h
similarity index 100%
rename from Source/portable/GCC/ARM7_LPC2000/portmacro.h
rename to FreeRTOS/Source/portable/GCC/ARM7_LPC2000/portmacro.h
diff --git a/Source/portable/GCC/ARM7_LPC23xx/port.c b/FreeRTOS/Source/portable/GCC/ARM7_LPC23xx/port.c
similarity index 100%
rename from Source/portable/GCC/ARM7_LPC23xx/port.c
rename to FreeRTOS/Source/portable/GCC/ARM7_LPC23xx/port.c
diff --git a/Source/portable/GCC/ARM7_LPC23xx/portISR.c b/FreeRTOS/Source/portable/GCC/ARM7_LPC23xx/portISR.c
similarity index 100%
rename from Source/portable/GCC/ARM7_LPC23xx/portISR.c
rename to FreeRTOS/Source/portable/GCC/ARM7_LPC23xx/portISR.c
diff --git a/Source/portable/GCC/ARM7_LPC23xx/portmacro.h b/FreeRTOS/Source/portable/GCC/ARM7_LPC23xx/portmacro.h
similarity index 100%
rename from Source/portable/GCC/ARM7_LPC23xx/portmacro.h
rename to FreeRTOS/Source/portable/GCC/ARM7_LPC23xx/portmacro.h
diff --git a/Source/portable/GCC/ARM_CM0/port.c b/FreeRTOS/Source/portable/GCC/ARM_CM0/port.c
similarity index 100%
rename from Source/portable/GCC/ARM_CM0/port.c
rename to FreeRTOS/Source/portable/GCC/ARM_CM0/port.c
diff --git a/Source/portable/GCC/ARM_CM0/portmacro.h b/FreeRTOS/Source/portable/GCC/ARM_CM0/portmacro.h
similarity index 100%
rename from Source/portable/GCC/ARM_CM0/portmacro.h
rename to FreeRTOS/Source/portable/GCC/ARM_CM0/portmacro.h
diff --git a/Source/portable/GCC/ARM_CM3/port.c b/FreeRTOS/Source/portable/GCC/ARM_CM3/port.c
similarity index 100%
rename from Source/portable/GCC/ARM_CM3/port.c
rename to FreeRTOS/Source/portable/GCC/ARM_CM3/port.c
diff --git a/Source/portable/GCC/ARM_CM3/portmacro.h b/FreeRTOS/Source/portable/GCC/ARM_CM3/portmacro.h
similarity index 100%
rename from Source/portable/GCC/ARM_CM3/portmacro.h
rename to FreeRTOS/Source/portable/GCC/ARM_CM3/portmacro.h
diff --git a/Source/portable/GCC/ARM_CM3_MPU/port.c b/FreeRTOS/Source/portable/GCC/ARM_CM3_MPU/port.c
similarity index 100%
rename from Source/portable/GCC/ARM_CM3_MPU/port.c
rename to FreeRTOS/Source/portable/GCC/ARM_CM3_MPU/port.c
diff --git a/Source/portable/GCC/ARM_CM3_MPU/portmacro.h b/FreeRTOS/Source/portable/GCC/ARM_CM3_MPU/portmacro.h
similarity index 100%
rename from Source/portable/GCC/ARM_CM3_MPU/portmacro.h
rename to FreeRTOS/Source/portable/GCC/ARM_CM3_MPU/portmacro.h
diff --git a/Source/portable/GCC/ARM_CM4F/port.c b/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c
similarity index 100%
rename from Source/portable/GCC/ARM_CM4F/port.c
rename to FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c
diff --git a/Source/portable/GCC/ARM_CM4F/portmacro.h b/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h
similarity index 100%
rename from Source/portable/GCC/ARM_CM4F/portmacro.h
rename to FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h
diff --git a/Source/portable/GCC/ATMega323/port.c b/FreeRTOS/Source/portable/GCC/ATMega323/port.c
similarity index 100%
rename from Source/portable/GCC/ATMega323/port.c
rename to FreeRTOS/Source/portable/GCC/ATMega323/port.c
diff --git a/Source/portable/GCC/ATMega323/portmacro.h b/FreeRTOS/Source/portable/GCC/ATMega323/portmacro.h
similarity index 100%
rename from Source/portable/GCC/ATMega323/portmacro.h
rename to FreeRTOS/Source/portable/GCC/ATMega323/portmacro.h
diff --git a/Source/portable/GCC/AVR32_UC3/exception.S b/FreeRTOS/Source/portable/GCC/AVR32_UC3/exception.S
similarity index 100%
rename from Source/portable/GCC/AVR32_UC3/exception.S
rename to FreeRTOS/Source/portable/GCC/AVR32_UC3/exception.S
diff --git a/Source/portable/GCC/AVR32_UC3/port.c b/FreeRTOS/Source/portable/GCC/AVR32_UC3/port.c
similarity index 100%
rename from Source/portable/GCC/AVR32_UC3/port.c
rename to FreeRTOS/Source/portable/GCC/AVR32_UC3/port.c
diff --git a/Source/portable/GCC/AVR32_UC3/portmacro.h b/FreeRTOS/Source/portable/GCC/AVR32_UC3/portmacro.h
similarity index 100%
rename from Source/portable/GCC/AVR32_UC3/portmacro.h
rename to FreeRTOS/Source/portable/GCC/AVR32_UC3/portmacro.h
diff --git a/Source/portable/GCC/CORTUS_APS3/port.c b/FreeRTOS/Source/portable/GCC/CORTUS_APS3/port.c
similarity index 100%
rename from Source/portable/GCC/CORTUS_APS3/port.c
rename to FreeRTOS/Source/portable/GCC/CORTUS_APS3/port.c
diff --git a/Source/portable/GCC/CORTUS_APS3/portmacro.h b/FreeRTOS/Source/portable/GCC/CORTUS_APS3/portmacro.h
similarity index 100%
rename from Source/portable/GCC/CORTUS_APS3/portmacro.h
rename to FreeRTOS/Source/portable/GCC/CORTUS_APS3/portmacro.h
diff --git a/Source/portable/GCC/ColdFire_V2/port.c b/FreeRTOS/Source/portable/GCC/ColdFire_V2/port.c
similarity index 100%
rename from Source/portable/GCC/ColdFire_V2/port.c
rename to FreeRTOS/Source/portable/GCC/ColdFire_V2/port.c
diff --git a/Source/portable/GCC/ColdFire_V2/portasm.S b/FreeRTOS/Source/portable/GCC/ColdFire_V2/portasm.S
similarity index 100%
rename from Source/portable/GCC/ColdFire_V2/portasm.S
rename to FreeRTOS/Source/portable/GCC/ColdFire_V2/portasm.S
diff --git a/Source/portable/GCC/ColdFire_V2/portmacro.h b/FreeRTOS/Source/portable/GCC/ColdFire_V2/portmacro.h
similarity index 100%
rename from Source/portable/GCC/ColdFire_V2/portmacro.h
rename to FreeRTOS/Source/portable/GCC/ColdFire_V2/portmacro.h
diff --git a/Source/portable/GCC/H8S2329/port.c b/FreeRTOS/Source/portable/GCC/H8S2329/port.c
similarity index 100%
rename from Source/portable/GCC/H8S2329/port.c
rename to FreeRTOS/Source/portable/GCC/H8S2329/port.c
diff --git a/Source/portable/GCC/H8S2329/portmacro.h b/FreeRTOS/Source/portable/GCC/H8S2329/portmacro.h
similarity index 100%
rename from Source/portable/GCC/H8S2329/portmacro.h
rename to FreeRTOS/Source/portable/GCC/H8S2329/portmacro.h
diff --git a/Source/portable/GCC/HCS12/port.c b/FreeRTOS/Source/portable/GCC/HCS12/port.c
similarity index 100%
rename from Source/portable/GCC/HCS12/port.c
rename to FreeRTOS/Source/portable/GCC/HCS12/port.c
diff --git a/Source/portable/GCC/HCS12/portmacro.h b/FreeRTOS/Source/portable/GCC/HCS12/portmacro.h
similarity index 100%
rename from Source/portable/GCC/HCS12/portmacro.h
rename to FreeRTOS/Source/portable/GCC/HCS12/portmacro.h
diff --git a/Source/portable/GCC/MCF5235/port.c b/FreeRTOS/Source/portable/GCC/MCF5235/port.c
similarity index 100%
rename from Source/portable/GCC/MCF5235/port.c
rename to FreeRTOS/Source/portable/GCC/MCF5235/port.c
diff --git a/Source/portable/GCC/MCF5235/portmacro.h b/FreeRTOS/Source/portable/GCC/MCF5235/portmacro.h
similarity index 100%
rename from Source/portable/GCC/MCF5235/portmacro.h
rename to FreeRTOS/Source/portable/GCC/MCF5235/portmacro.h
diff --git a/Source/portable/GCC/MSP430F449/port.c b/FreeRTOS/Source/portable/GCC/MSP430F449/port.c
similarity index 100%
rename from Source/portable/GCC/MSP430F449/port.c
rename to FreeRTOS/Source/portable/GCC/MSP430F449/port.c
diff --git a/Source/portable/GCC/MSP430F449/portmacro.h b/FreeRTOS/Source/portable/GCC/MSP430F449/portmacro.h
similarity index 100%
rename from Source/portable/GCC/MSP430F449/portmacro.h
rename to FreeRTOS/Source/portable/GCC/MSP430F449/portmacro.h
diff --git a/Source/portable/GCC/MicroBlaze/port.c b/FreeRTOS/Source/portable/GCC/MicroBlaze/port.c
similarity index 100%
rename from Source/portable/GCC/MicroBlaze/port.c
rename to FreeRTOS/Source/portable/GCC/MicroBlaze/port.c
diff --git a/Source/portable/GCC/MicroBlaze/portasm.s b/FreeRTOS/Source/portable/GCC/MicroBlaze/portasm.s
similarity index 100%
rename from Source/portable/GCC/MicroBlaze/portasm.s
rename to FreeRTOS/Source/portable/GCC/MicroBlaze/portasm.s
diff --git a/Source/portable/GCC/MicroBlaze/portmacro.h b/FreeRTOS/Source/portable/GCC/MicroBlaze/portmacro.h
similarity index 100%
rename from Source/portable/GCC/MicroBlaze/portmacro.h
rename to FreeRTOS/Source/portable/GCC/MicroBlaze/portmacro.h
diff --git a/Source/portable/GCC/MicroBlazeV8/port.c b/FreeRTOS/Source/portable/GCC/MicroBlazeV8/port.c
similarity index 100%
rename from Source/portable/GCC/MicroBlazeV8/port.c
rename to FreeRTOS/Source/portable/GCC/MicroBlazeV8/port.c
diff --git a/Source/portable/GCC/MicroBlazeV8/port_exceptions.c b/FreeRTOS/Source/portable/GCC/MicroBlazeV8/port_exceptions.c
similarity index 100%
rename from Source/portable/GCC/MicroBlazeV8/port_exceptions.c
rename to FreeRTOS/Source/portable/GCC/MicroBlazeV8/port_exceptions.c
diff --git a/Source/portable/GCC/MicroBlazeV8/portasm.S b/FreeRTOS/Source/portable/GCC/MicroBlazeV8/portasm.S
similarity index 100%
rename from Source/portable/GCC/MicroBlazeV8/portasm.S
rename to FreeRTOS/Source/portable/GCC/MicroBlazeV8/portasm.S
diff --git a/Source/portable/GCC/MicroBlazeV8/portmacro.h b/FreeRTOS/Source/portable/GCC/MicroBlazeV8/portmacro.h
similarity index 100%
rename from Source/portable/GCC/MicroBlazeV8/portmacro.h
rename to FreeRTOS/Source/portable/GCC/MicroBlazeV8/portmacro.h
diff --git a/Source/portable/GCC/NiosII/port.c b/FreeRTOS/Source/portable/GCC/NiosII/port.c
similarity index 100%
rename from Source/portable/GCC/NiosII/port.c
rename to FreeRTOS/Source/portable/GCC/NiosII/port.c
diff --git a/Source/portable/GCC/NiosII/port_asm.S b/FreeRTOS/Source/portable/GCC/NiosII/port_asm.S
similarity index 100%
rename from Source/portable/GCC/NiosII/port_asm.S
rename to FreeRTOS/Source/portable/GCC/NiosII/port_asm.S
diff --git a/Source/portable/GCC/NiosII/portmacro.h b/FreeRTOS/Source/portable/GCC/NiosII/portmacro.h
similarity index 100%
rename from Source/portable/GCC/NiosII/portmacro.h
rename to FreeRTOS/Source/portable/GCC/NiosII/portmacro.h
diff --git a/Source/portable/GCC/PPC405_Xilinx/FPU_Macros.h b/FreeRTOS/Source/portable/GCC/PPC405_Xilinx/FPU_Macros.h
similarity index 100%
rename from Source/portable/GCC/PPC405_Xilinx/FPU_Macros.h
rename to FreeRTOS/Source/portable/GCC/PPC405_Xilinx/FPU_Macros.h
diff --git a/Source/portable/GCC/PPC405_Xilinx/port.c b/FreeRTOS/Source/portable/GCC/PPC405_Xilinx/port.c
similarity index 100%
rename from Source/portable/GCC/PPC405_Xilinx/port.c
rename to FreeRTOS/Source/portable/GCC/PPC405_Xilinx/port.c
diff --git a/Source/portable/GCC/PPC405_Xilinx/portasm.S b/FreeRTOS/Source/portable/GCC/PPC405_Xilinx/portasm.S
similarity index 100%
rename from Source/portable/GCC/PPC405_Xilinx/portasm.S
rename to FreeRTOS/Source/portable/GCC/PPC405_Xilinx/portasm.S
diff --git a/Source/portable/GCC/PPC405_Xilinx/portmacro.h b/FreeRTOS/Source/portable/GCC/PPC405_Xilinx/portmacro.h
similarity index 100%
rename from Source/portable/GCC/PPC405_Xilinx/portmacro.h
rename to FreeRTOS/Source/portable/GCC/PPC405_Xilinx/portmacro.h
diff --git a/Source/portable/GCC/PPC440_Xilinx/FPU_Macros.h b/FreeRTOS/Source/portable/GCC/PPC440_Xilinx/FPU_Macros.h
similarity index 100%
rename from Source/portable/GCC/PPC440_Xilinx/FPU_Macros.h
rename to FreeRTOS/Source/portable/GCC/PPC440_Xilinx/FPU_Macros.h
diff --git a/Source/portable/GCC/PPC440_Xilinx/port.c b/FreeRTOS/Source/portable/GCC/PPC440_Xilinx/port.c
similarity index 100%
rename from Source/portable/GCC/PPC440_Xilinx/port.c
rename to FreeRTOS/Source/portable/GCC/PPC440_Xilinx/port.c
diff --git a/Source/portable/GCC/PPC440_Xilinx/portasm.S b/FreeRTOS/Source/portable/GCC/PPC440_Xilinx/portasm.S
similarity index 100%
rename from Source/portable/GCC/PPC440_Xilinx/portasm.S
rename to FreeRTOS/Source/portable/GCC/PPC440_Xilinx/portasm.S
diff --git a/Source/portable/GCC/PPC440_Xilinx/portmacro.h b/FreeRTOS/Source/portable/GCC/PPC440_Xilinx/portmacro.h
similarity index 100%
rename from Source/portable/GCC/PPC440_Xilinx/portmacro.h
rename to FreeRTOS/Source/portable/GCC/PPC440_Xilinx/portmacro.h
diff --git a/Source/portable/GCC/RX600/port.c b/FreeRTOS/Source/portable/GCC/RX600/port.c
similarity index 100%
rename from Source/portable/GCC/RX600/port.c
rename to FreeRTOS/Source/portable/GCC/RX600/port.c
diff --git a/Source/portable/GCC/RX600/portmacro.h b/FreeRTOS/Source/portable/GCC/RX600/portmacro.h
similarity index 100%
rename from Source/portable/GCC/RX600/portmacro.h
rename to FreeRTOS/Source/portable/GCC/RX600/portmacro.h
diff --git a/Source/portable/GCC/STR75x/port.c b/FreeRTOS/Source/portable/GCC/STR75x/port.c
similarity index 100%
rename from Source/portable/GCC/STR75x/port.c
rename to FreeRTOS/Source/portable/GCC/STR75x/port.c
diff --git a/Source/portable/GCC/STR75x/portISR.c b/FreeRTOS/Source/portable/GCC/STR75x/portISR.c
similarity index 100%
rename from Source/portable/GCC/STR75x/portISR.c
rename to FreeRTOS/Source/portable/GCC/STR75x/portISR.c
diff --git a/Source/portable/GCC/STR75x/portmacro.h b/FreeRTOS/Source/portable/GCC/STR75x/portmacro.h
similarity index 100%
rename from Source/portable/GCC/STR75x/portmacro.h
rename to FreeRTOS/Source/portable/GCC/STR75x/portmacro.h
diff --git a/Source/portable/GCC/TriCore_1782/port.c b/FreeRTOS/Source/portable/GCC/TriCore_1782/port.c
similarity index 100%
rename from Source/portable/GCC/TriCore_1782/port.c
rename to FreeRTOS/Source/portable/GCC/TriCore_1782/port.c
diff --git a/Source/portable/GCC/TriCore_1782/portmacro.h b/FreeRTOS/Source/portable/GCC/TriCore_1782/portmacro.h
similarity index 100%
rename from Source/portable/GCC/TriCore_1782/portmacro.h
rename to FreeRTOS/Source/portable/GCC/TriCore_1782/portmacro.h
diff --git a/Source/portable/GCC/TriCore_1782/porttrap.c b/FreeRTOS/Source/portable/GCC/TriCore_1782/porttrap.c
similarity index 100%
rename from Source/portable/GCC/TriCore_1782/porttrap.c
rename to FreeRTOS/Source/portable/GCC/TriCore_1782/porttrap.c
diff --git a/Source/portable/IAR/78K0R/ISR_Support.h b/FreeRTOS/Source/portable/IAR/78K0R/ISR_Support.h
similarity index 100%
rename from Source/portable/IAR/78K0R/ISR_Support.h
rename to FreeRTOS/Source/portable/IAR/78K0R/ISR_Support.h
diff --git a/Source/portable/IAR/78K0R/port.c b/FreeRTOS/Source/portable/IAR/78K0R/port.c
similarity index 100%
rename from Source/portable/IAR/78K0R/port.c
rename to FreeRTOS/Source/portable/IAR/78K0R/port.c
diff --git a/Source/portable/IAR/78K0R/portasm.s26 b/FreeRTOS/Source/portable/IAR/78K0R/portasm.s26
similarity index 100%
rename from Source/portable/IAR/78K0R/portasm.s26
rename to FreeRTOS/Source/portable/IAR/78K0R/portasm.s26
diff --git a/Source/portable/IAR/78K0R/portmacro.h b/FreeRTOS/Source/portable/IAR/78K0R/portmacro.h
similarity index 100%
rename from Source/portable/IAR/78K0R/portmacro.h
rename to FreeRTOS/Source/portable/IAR/78K0R/portmacro.h
diff --git a/Source/portable/IAR/ARM_CM0/port.c b/FreeRTOS/Source/portable/IAR/ARM_CM0/port.c
similarity index 100%
rename from Source/portable/IAR/ARM_CM0/port.c
rename to FreeRTOS/Source/portable/IAR/ARM_CM0/port.c
diff --git a/Source/portable/IAR/ARM_CM0/portasm.s b/FreeRTOS/Source/portable/IAR/ARM_CM0/portasm.s
similarity index 100%
rename from Source/portable/IAR/ARM_CM0/portasm.s
rename to FreeRTOS/Source/portable/IAR/ARM_CM0/portasm.s
diff --git a/Source/portable/IAR/ARM_CM0/portmacro.h b/FreeRTOS/Source/portable/IAR/ARM_CM0/portmacro.h
similarity index 100%
rename from Source/portable/IAR/ARM_CM0/portmacro.h
rename to FreeRTOS/Source/portable/IAR/ARM_CM0/portmacro.h
diff --git a/Source/portable/IAR/ARM_CM3/port.c b/FreeRTOS/Source/portable/IAR/ARM_CM3/port.c
similarity index 100%
rename from Source/portable/IAR/ARM_CM3/port.c
rename to FreeRTOS/Source/portable/IAR/ARM_CM3/port.c
diff --git a/Source/portable/IAR/ARM_CM3/portasm.s b/FreeRTOS/Source/portable/IAR/ARM_CM3/portasm.s
similarity index 100%
rename from Source/portable/IAR/ARM_CM3/portasm.s
rename to FreeRTOS/Source/portable/IAR/ARM_CM3/portasm.s
diff --git a/Source/portable/IAR/ARM_CM3/portmacro.h b/FreeRTOS/Source/portable/IAR/ARM_CM3/portmacro.h
similarity index 100%
rename from Source/portable/IAR/ARM_CM3/portmacro.h
rename to FreeRTOS/Source/portable/IAR/ARM_CM3/portmacro.h
diff --git a/Source/portable/IAR/ARM_CM4F/port.c b/FreeRTOS/Source/portable/IAR/ARM_CM4F/port.c
similarity index 100%
rename from Source/portable/IAR/ARM_CM4F/port.c
rename to FreeRTOS/Source/portable/IAR/ARM_CM4F/port.c
diff --git a/Source/portable/IAR/ARM_CM4F/portasm.s b/FreeRTOS/Source/portable/IAR/ARM_CM4F/portasm.s
similarity index 100%
rename from Source/portable/IAR/ARM_CM4F/portasm.s
rename to FreeRTOS/Source/portable/IAR/ARM_CM4F/portasm.s
diff --git a/Source/portable/IAR/ARM_CM4F/portmacro.h b/FreeRTOS/Source/portable/IAR/ARM_CM4F/portmacro.h
similarity index 100%
rename from Source/portable/IAR/ARM_CM4F/portmacro.h
rename to FreeRTOS/Source/portable/IAR/ARM_CM4F/portmacro.h
diff --git a/Source/portable/IAR/ATMega323/port.c b/FreeRTOS/Source/portable/IAR/ATMega323/port.c
similarity index 100%
rename from Source/portable/IAR/ATMega323/port.c
rename to FreeRTOS/Source/portable/IAR/ATMega323/port.c
diff --git a/Source/portable/IAR/ATMega323/portmacro.h b/FreeRTOS/Source/portable/IAR/ATMega323/portmacro.h
similarity index 100%
rename from Source/portable/IAR/ATMega323/portmacro.h
rename to FreeRTOS/Source/portable/IAR/ATMega323/portmacro.h
diff --git a/Source/portable/IAR/ATMega323/portmacro.s90 b/FreeRTOS/Source/portable/IAR/ATMega323/portmacro.s90
similarity index 100%
rename from Source/portable/IAR/ATMega323/portmacro.s90
rename to FreeRTOS/Source/portable/IAR/ATMega323/portmacro.s90
diff --git a/Source/portable/IAR/AVR32_UC3/exception.s82 b/FreeRTOS/Source/portable/IAR/AVR32_UC3/exception.s82
similarity index 100%
rename from Source/portable/IAR/AVR32_UC3/exception.s82
rename to FreeRTOS/Source/portable/IAR/AVR32_UC3/exception.s82
diff --git a/Source/portable/IAR/AVR32_UC3/port.c b/FreeRTOS/Source/portable/IAR/AVR32_UC3/port.c
similarity index 100%
rename from Source/portable/IAR/AVR32_UC3/port.c
rename to FreeRTOS/Source/portable/IAR/AVR32_UC3/port.c
diff --git a/Source/portable/IAR/AVR32_UC3/portmacro.h b/FreeRTOS/Source/portable/IAR/AVR32_UC3/portmacro.h
similarity index 100%
rename from Source/portable/IAR/AVR32_UC3/portmacro.h
rename to FreeRTOS/Source/portable/IAR/AVR32_UC3/portmacro.h
diff --git a/Source/portable/IAR/AVR32_UC3/read.c b/FreeRTOS/Source/portable/IAR/AVR32_UC3/read.c
similarity index 100%
rename from Source/portable/IAR/AVR32_UC3/read.c
rename to FreeRTOS/Source/portable/IAR/AVR32_UC3/read.c
diff --git a/Source/portable/IAR/AVR32_UC3/write.c b/FreeRTOS/Source/portable/IAR/AVR32_UC3/write.c
similarity index 100%
rename from Source/portable/IAR/AVR32_UC3/write.c
rename to FreeRTOS/Source/portable/IAR/AVR32_UC3/write.c
diff --git a/Source/portable/IAR/AtmelSAM7S64/AT91SAM7S64.h b/FreeRTOS/Source/portable/IAR/AtmelSAM7S64/AT91SAM7S64.h
similarity index 100%
rename from Source/portable/IAR/AtmelSAM7S64/AT91SAM7S64.h
rename to FreeRTOS/Source/portable/IAR/AtmelSAM7S64/AT91SAM7S64.h
diff --git a/Source/portable/IAR/AtmelSAM7S64/AT91SAM7S64_inc.h b/FreeRTOS/Source/portable/IAR/AtmelSAM7S64/AT91SAM7S64_inc.h
similarity index 100%
rename from Source/portable/IAR/AtmelSAM7S64/AT91SAM7S64_inc.h
rename to FreeRTOS/Source/portable/IAR/AtmelSAM7S64/AT91SAM7S64_inc.h
diff --git a/Source/portable/IAR/AtmelSAM7S64/AT91SAM7X128.h b/FreeRTOS/Source/portable/IAR/AtmelSAM7S64/AT91SAM7X128.h
similarity index 100%
rename from Source/portable/IAR/AtmelSAM7S64/AT91SAM7X128.h
rename to FreeRTOS/Source/portable/IAR/AtmelSAM7S64/AT91SAM7X128.h
diff --git a/Source/portable/IAR/AtmelSAM7S64/AT91SAM7X128_inc.h b/FreeRTOS/Source/portable/IAR/AtmelSAM7S64/AT91SAM7X128_inc.h
similarity index 100%
rename from Source/portable/IAR/AtmelSAM7S64/AT91SAM7X128_inc.h
rename to FreeRTOS/Source/portable/IAR/AtmelSAM7S64/AT91SAM7X128_inc.h
diff --git a/Source/portable/IAR/AtmelSAM7S64/AT91SAM7X256.h b/FreeRTOS/Source/portable/IAR/AtmelSAM7S64/AT91SAM7X256.h
similarity index 100%
rename from Source/portable/IAR/AtmelSAM7S64/AT91SAM7X256.h
rename to FreeRTOS/Source/portable/IAR/AtmelSAM7S64/AT91SAM7X256.h
diff --git a/Source/portable/IAR/AtmelSAM7S64/AT91SAM7X256_inc.h b/FreeRTOS/Source/portable/IAR/AtmelSAM7S64/AT91SAM7X256_inc.h
similarity index 100%
rename from Source/portable/IAR/AtmelSAM7S64/AT91SAM7X256_inc.h
rename to FreeRTOS/Source/portable/IAR/AtmelSAM7S64/AT91SAM7X256_inc.h
diff --git a/Source/portable/IAR/AtmelSAM7S64/ISR_Support.h b/FreeRTOS/Source/portable/IAR/AtmelSAM7S64/ISR_Support.h
similarity index 100%
rename from Source/portable/IAR/AtmelSAM7S64/ISR_Support.h
rename to FreeRTOS/Source/portable/IAR/AtmelSAM7S64/ISR_Support.h
diff --git a/Source/portable/IAR/AtmelSAM7S64/lib_AT91SAM7S64.h b/FreeRTOS/Source/portable/IAR/AtmelSAM7S64/lib_AT91SAM7S64.h
similarity index 100%
rename from Source/portable/IAR/AtmelSAM7S64/lib_AT91SAM7S64.h
rename to FreeRTOS/Source/portable/IAR/AtmelSAM7S64/lib_AT91SAM7S64.h
diff --git a/Source/portable/IAR/AtmelSAM7S64/lib_AT91SAM7X128.h b/FreeRTOS/Source/portable/IAR/AtmelSAM7S64/lib_AT91SAM7X128.h
similarity index 100%
rename from Source/portable/IAR/AtmelSAM7S64/lib_AT91SAM7X128.h
rename to FreeRTOS/Source/portable/IAR/AtmelSAM7S64/lib_AT91SAM7X128.h
diff --git a/Source/portable/IAR/AtmelSAM7S64/lib_AT91SAM7X256.h b/FreeRTOS/Source/portable/IAR/AtmelSAM7S64/lib_AT91SAM7X256.h
similarity index 100%
rename from Source/portable/IAR/AtmelSAM7S64/lib_AT91SAM7X256.h
rename to FreeRTOS/Source/portable/IAR/AtmelSAM7S64/lib_AT91SAM7X256.h
diff --git a/Source/portable/IAR/AtmelSAM7S64/port.c b/FreeRTOS/Source/portable/IAR/AtmelSAM7S64/port.c
similarity index 100%
rename from Source/portable/IAR/AtmelSAM7S64/port.c
rename to FreeRTOS/Source/portable/IAR/AtmelSAM7S64/port.c
diff --git a/Source/portable/IAR/AtmelSAM7S64/portasm.s79 b/FreeRTOS/Source/portable/IAR/AtmelSAM7S64/portasm.s79
similarity index 100%
rename from Source/portable/IAR/AtmelSAM7S64/portasm.s79
rename to FreeRTOS/Source/portable/IAR/AtmelSAM7S64/portasm.s79
diff --git a/Source/portable/IAR/AtmelSAM7S64/portmacro.h b/FreeRTOS/Source/portable/IAR/AtmelSAM7S64/portmacro.h
similarity index 100%
rename from Source/portable/IAR/AtmelSAM7S64/portmacro.h
rename to FreeRTOS/Source/portable/IAR/AtmelSAM7S64/portmacro.h
diff --git a/Source/portable/IAR/AtmelSAM9XE/ISR_Support.h b/FreeRTOS/Source/portable/IAR/AtmelSAM9XE/ISR_Support.h
similarity index 100%
rename from Source/portable/IAR/AtmelSAM9XE/ISR_Support.h
rename to FreeRTOS/Source/portable/IAR/AtmelSAM9XE/ISR_Support.h
diff --git a/Source/portable/IAR/AtmelSAM9XE/port.c b/FreeRTOS/Source/portable/IAR/AtmelSAM9XE/port.c
similarity index 100%
rename from Source/portable/IAR/AtmelSAM9XE/port.c
rename to FreeRTOS/Source/portable/IAR/AtmelSAM9XE/port.c
diff --git a/Source/portable/IAR/AtmelSAM9XE/portasm.s79 b/FreeRTOS/Source/portable/IAR/AtmelSAM9XE/portasm.s79
similarity index 100%
rename from Source/portable/IAR/AtmelSAM9XE/portasm.s79
rename to FreeRTOS/Source/portable/IAR/AtmelSAM9XE/portasm.s79
diff --git a/Source/portable/IAR/AtmelSAM9XE/portmacro.h b/FreeRTOS/Source/portable/IAR/AtmelSAM9XE/portmacro.h
similarity index 100%
rename from Source/portable/IAR/AtmelSAM9XE/portmacro.h
rename to FreeRTOS/Source/portable/IAR/AtmelSAM9XE/portmacro.h
diff --git a/Source/portable/IAR/LPC2000/ISR_Support.h b/FreeRTOS/Source/portable/IAR/LPC2000/ISR_Support.h
similarity index 100%
rename from Source/portable/IAR/LPC2000/ISR_Support.h
rename to FreeRTOS/Source/portable/IAR/LPC2000/ISR_Support.h
diff --git a/Source/portable/IAR/LPC2000/port.c b/FreeRTOS/Source/portable/IAR/LPC2000/port.c
similarity index 100%
rename from Source/portable/IAR/LPC2000/port.c
rename to FreeRTOS/Source/portable/IAR/LPC2000/port.c
diff --git a/Source/portable/IAR/LPC2000/portasm.s79 b/FreeRTOS/Source/portable/IAR/LPC2000/portasm.s79
similarity index 100%
rename from Source/portable/IAR/LPC2000/portasm.s79
rename to FreeRTOS/Source/portable/IAR/LPC2000/portasm.s79
diff --git a/Source/portable/IAR/LPC2000/portmacro.h b/FreeRTOS/Source/portable/IAR/LPC2000/portmacro.h
similarity index 100%
rename from Source/portable/IAR/LPC2000/portmacro.h
rename to FreeRTOS/Source/portable/IAR/LPC2000/portmacro.h
diff --git a/Source/portable/IAR/MSP430/port.c b/FreeRTOS/Source/portable/IAR/MSP430/port.c
similarity index 100%
rename from Source/portable/IAR/MSP430/port.c
rename to FreeRTOS/Source/portable/IAR/MSP430/port.c
diff --git a/Source/portable/IAR/MSP430/portasm.h b/FreeRTOS/Source/portable/IAR/MSP430/portasm.h
similarity index 100%
rename from Source/portable/IAR/MSP430/portasm.h
rename to FreeRTOS/Source/portable/IAR/MSP430/portasm.h
diff --git a/Source/portable/IAR/MSP430/portext.s43 b/FreeRTOS/Source/portable/IAR/MSP430/portext.s43
similarity index 100%
rename from Source/portable/IAR/MSP430/portext.s43
rename to FreeRTOS/Source/portable/IAR/MSP430/portext.s43
diff --git a/Source/portable/IAR/MSP430/portmacro.h b/FreeRTOS/Source/portable/IAR/MSP430/portmacro.h
similarity index 100%
rename from Source/portable/IAR/MSP430/portmacro.h
rename to FreeRTOS/Source/portable/IAR/MSP430/portmacro.h
diff --git a/Source/portable/IAR/MSP430X/data_model.h b/FreeRTOS/Source/portable/IAR/MSP430X/data_model.h
similarity index 100%
rename from Source/portable/IAR/MSP430X/data_model.h
rename to FreeRTOS/Source/portable/IAR/MSP430X/data_model.h
diff --git a/Source/portable/IAR/MSP430X/port.c b/FreeRTOS/Source/portable/IAR/MSP430X/port.c
similarity index 100%
rename from Source/portable/IAR/MSP430X/port.c
rename to FreeRTOS/Source/portable/IAR/MSP430X/port.c
diff --git a/Source/portable/IAR/MSP430X/portext.s43 b/FreeRTOS/Source/portable/IAR/MSP430X/portext.s43
similarity index 100%
rename from Source/portable/IAR/MSP430X/portext.s43
rename to FreeRTOS/Source/portable/IAR/MSP430X/portext.s43
diff --git a/Source/portable/IAR/MSP430X/portmacro.h b/FreeRTOS/Source/portable/IAR/MSP430X/portmacro.h
similarity index 100%
rename from Source/portable/IAR/MSP430X/portmacro.h
rename to FreeRTOS/Source/portable/IAR/MSP430X/portmacro.h
diff --git a/Source/portable/IAR/RL78/ISR_Support.h b/FreeRTOS/Source/portable/IAR/RL78/ISR_Support.h
similarity index 100%
rename from Source/portable/IAR/RL78/ISR_Support.h
rename to FreeRTOS/Source/portable/IAR/RL78/ISR_Support.h
diff --git a/Source/portable/IAR/RL78/port.c b/FreeRTOS/Source/portable/IAR/RL78/port.c
similarity index 100%
rename from Source/portable/IAR/RL78/port.c
rename to FreeRTOS/Source/portable/IAR/RL78/port.c
diff --git a/Source/portable/IAR/RL78/portasm.s87 b/FreeRTOS/Source/portable/IAR/RL78/portasm.s87
similarity index 100%
rename from Source/portable/IAR/RL78/portasm.s87
rename to FreeRTOS/Source/portable/IAR/RL78/portasm.s87
diff --git a/Source/portable/IAR/RL78/portmacro.h b/FreeRTOS/Source/portable/IAR/RL78/portmacro.h
similarity index 100%
rename from Source/portable/IAR/RL78/portmacro.h
rename to FreeRTOS/Source/portable/IAR/RL78/portmacro.h
diff --git a/Source/portable/IAR/RX600/port.c b/FreeRTOS/Source/portable/IAR/RX600/port.c
similarity index 100%
rename from Source/portable/IAR/RX600/port.c
rename to FreeRTOS/Source/portable/IAR/RX600/port.c
diff --git a/Source/portable/IAR/RX600/port_asm.s b/FreeRTOS/Source/portable/IAR/RX600/port_asm.s
similarity index 100%
rename from Source/portable/IAR/RX600/port_asm.s
rename to FreeRTOS/Source/portable/IAR/RX600/port_asm.s
diff --git a/Source/portable/IAR/RX600/portmacro.h b/FreeRTOS/Source/portable/IAR/RX600/portmacro.h
similarity index 100%
rename from Source/portable/IAR/RX600/portmacro.h
rename to FreeRTOS/Source/portable/IAR/RX600/portmacro.h
diff --git a/Source/portable/IAR/STR71x/ISR_Support.h b/FreeRTOS/Source/portable/IAR/STR71x/ISR_Support.h
similarity index 100%
rename from Source/portable/IAR/STR71x/ISR_Support.h
rename to FreeRTOS/Source/portable/IAR/STR71x/ISR_Support.h
diff --git a/Source/portable/IAR/STR71x/port.c b/FreeRTOS/Source/portable/IAR/STR71x/port.c
similarity index 100%
rename from Source/portable/IAR/STR71x/port.c
rename to FreeRTOS/Source/portable/IAR/STR71x/port.c
diff --git a/Source/portable/IAR/STR71x/portasm.s79 b/FreeRTOS/Source/portable/IAR/STR71x/portasm.s79
similarity index 100%
rename from Source/portable/IAR/STR71x/portasm.s79
rename to FreeRTOS/Source/portable/IAR/STR71x/portasm.s79
diff --git a/Source/portable/IAR/STR71x/portmacro.h b/FreeRTOS/Source/portable/IAR/STR71x/portmacro.h
similarity index 100%
rename from Source/portable/IAR/STR71x/portmacro.h
rename to FreeRTOS/Source/portable/IAR/STR71x/portmacro.h
diff --git a/Source/portable/IAR/STR75x/ISR_Support.h b/FreeRTOS/Source/portable/IAR/STR75x/ISR_Support.h
similarity index 100%
rename from Source/portable/IAR/STR75x/ISR_Support.h
rename to FreeRTOS/Source/portable/IAR/STR75x/ISR_Support.h
diff --git a/Source/portable/IAR/STR75x/port.c b/FreeRTOS/Source/portable/IAR/STR75x/port.c
similarity index 100%
rename from Source/portable/IAR/STR75x/port.c
rename to FreeRTOS/Source/portable/IAR/STR75x/port.c
diff --git a/Source/portable/IAR/STR75x/portasm.s79 b/FreeRTOS/Source/portable/IAR/STR75x/portasm.s79
similarity index 100%
rename from Source/portable/IAR/STR75x/portasm.s79
rename to FreeRTOS/Source/portable/IAR/STR75x/portasm.s79
diff --git a/Source/portable/IAR/STR75x/portmacro.h b/FreeRTOS/Source/portable/IAR/STR75x/portmacro.h
similarity index 100%
rename from Source/portable/IAR/STR75x/portmacro.h
rename to FreeRTOS/Source/portable/IAR/STR75x/portmacro.h
diff --git a/Source/portable/IAR/STR91x/ISR_Support.h b/FreeRTOS/Source/portable/IAR/STR91x/ISR_Support.h
similarity index 100%
rename from Source/portable/IAR/STR91x/ISR_Support.h
rename to FreeRTOS/Source/portable/IAR/STR91x/ISR_Support.h
diff --git a/Source/portable/IAR/STR91x/port.c b/FreeRTOS/Source/portable/IAR/STR91x/port.c
similarity index 100%
rename from Source/portable/IAR/STR91x/port.c
rename to FreeRTOS/Source/portable/IAR/STR91x/port.c
diff --git a/Source/portable/IAR/STR91x/portasm.s79 b/FreeRTOS/Source/portable/IAR/STR91x/portasm.s79
similarity index 100%
rename from Source/portable/IAR/STR91x/portasm.s79
rename to FreeRTOS/Source/portable/IAR/STR91x/portasm.s79
diff --git a/Source/portable/IAR/STR91x/portmacro.h b/FreeRTOS/Source/portable/IAR/STR91x/portmacro.h
similarity index 100%
rename from Source/portable/IAR/STR91x/portmacro.h
rename to FreeRTOS/Source/portable/IAR/STR91x/portmacro.h
diff --git a/Source/portable/IAR/V850ES/ISR_Support.h b/FreeRTOS/Source/portable/IAR/V850ES/ISR_Support.h
similarity index 100%
rename from Source/portable/IAR/V850ES/ISR_Support.h
rename to FreeRTOS/Source/portable/IAR/V850ES/ISR_Support.h
diff --git a/Source/portable/IAR/V850ES/port.c b/FreeRTOS/Source/portable/IAR/V850ES/port.c
similarity index 100%
rename from Source/portable/IAR/V850ES/port.c
rename to FreeRTOS/Source/portable/IAR/V850ES/port.c
diff --git a/Source/portable/IAR/V850ES/portasm.s85 b/FreeRTOS/Source/portable/IAR/V850ES/portasm.s85
similarity index 100%
rename from Source/portable/IAR/V850ES/portasm.s85
rename to FreeRTOS/Source/portable/IAR/V850ES/portasm.s85
diff --git a/Source/portable/IAR/V850ES/portasm_Fx3.s85 b/FreeRTOS/Source/portable/IAR/V850ES/portasm_Fx3.s85
similarity index 100%
rename from Source/portable/IAR/V850ES/portasm_Fx3.s85
rename to FreeRTOS/Source/portable/IAR/V850ES/portasm_Fx3.s85
diff --git a/Source/portable/IAR/V850ES/portasm_Hx2.s85 b/FreeRTOS/Source/portable/IAR/V850ES/portasm_Hx2.s85
similarity index 100%
rename from Source/portable/IAR/V850ES/portasm_Hx2.s85
rename to FreeRTOS/Source/portable/IAR/V850ES/portasm_Hx2.s85
diff --git a/Source/portable/IAR/V850ES/portmacro.h b/FreeRTOS/Source/portable/IAR/V850ES/portmacro.h
similarity index 100%
rename from Source/portable/IAR/V850ES/portmacro.h
rename to FreeRTOS/Source/portable/IAR/V850ES/portmacro.h
diff --git a/Source/portable/Keil/See-also-the-RVDS-directory.txt b/FreeRTOS/Source/portable/Keil/See-also-the-RVDS-directory.txt
similarity index 100%
rename from Source/portable/Keil/See-also-the-RVDS-directory.txt
rename to FreeRTOS/Source/portable/Keil/See-also-the-RVDS-directory.txt
diff --git a/Source/portable/MPLAB/PIC18F/port.c b/FreeRTOS/Source/portable/MPLAB/PIC18F/port.c
similarity index 100%
rename from Source/portable/MPLAB/PIC18F/port.c
rename to FreeRTOS/Source/portable/MPLAB/PIC18F/port.c
diff --git a/Source/portable/MPLAB/PIC18F/portmacro.h b/FreeRTOS/Source/portable/MPLAB/PIC18F/portmacro.h
similarity index 100%
rename from Source/portable/MPLAB/PIC18F/portmacro.h
rename to FreeRTOS/Source/portable/MPLAB/PIC18F/portmacro.h
diff --git a/FreeRTOS/Source/portable/MPLAB/PIC18F/stdio.h b/FreeRTOS/Source/portable/MPLAB/PIC18F/stdio.h
new file mode 100644
index 000000000..e69de29bb
diff --git a/Source/portable/MPLAB/PIC24_dsPIC/port.c b/FreeRTOS/Source/portable/MPLAB/PIC24_dsPIC/port.c
similarity index 100%
rename from Source/portable/MPLAB/PIC24_dsPIC/port.c
rename to FreeRTOS/Source/portable/MPLAB/PIC24_dsPIC/port.c
diff --git a/Source/portable/MPLAB/PIC24_dsPIC/portasm_PIC24.S b/FreeRTOS/Source/portable/MPLAB/PIC24_dsPIC/portasm_PIC24.S
similarity index 100%
rename from Source/portable/MPLAB/PIC24_dsPIC/portasm_PIC24.S
rename to FreeRTOS/Source/portable/MPLAB/PIC24_dsPIC/portasm_PIC24.S
diff --git a/Source/portable/MPLAB/PIC24_dsPIC/portasm_dsPIC.S b/FreeRTOS/Source/portable/MPLAB/PIC24_dsPIC/portasm_dsPIC.S
similarity index 100%
rename from Source/portable/MPLAB/PIC24_dsPIC/portasm_dsPIC.S
rename to FreeRTOS/Source/portable/MPLAB/PIC24_dsPIC/portasm_dsPIC.S
diff --git a/Source/portable/MPLAB/PIC24_dsPIC/portmacro.h b/FreeRTOS/Source/portable/MPLAB/PIC24_dsPIC/portmacro.h
similarity index 100%
rename from Source/portable/MPLAB/PIC24_dsPIC/portmacro.h
rename to FreeRTOS/Source/portable/MPLAB/PIC24_dsPIC/portmacro.h
diff --git a/Source/portable/MPLAB/PIC32MX/ISR_Support.h b/FreeRTOS/Source/portable/MPLAB/PIC32MX/ISR_Support.h
similarity index 100%
rename from Source/portable/MPLAB/PIC32MX/ISR_Support.h
rename to FreeRTOS/Source/portable/MPLAB/PIC32MX/ISR_Support.h
diff --git a/Source/portable/MPLAB/PIC32MX/port.c b/FreeRTOS/Source/portable/MPLAB/PIC32MX/port.c
similarity index 100%
rename from Source/portable/MPLAB/PIC32MX/port.c
rename to FreeRTOS/Source/portable/MPLAB/PIC32MX/port.c
diff --git a/Source/portable/MPLAB/PIC32MX/port_asm.S b/FreeRTOS/Source/portable/MPLAB/PIC32MX/port_asm.S
similarity index 100%
rename from Source/portable/MPLAB/PIC32MX/port_asm.S
rename to FreeRTOS/Source/portable/MPLAB/PIC32MX/port_asm.S
diff --git a/Source/portable/MPLAB/PIC32MX/portmacro.h b/FreeRTOS/Source/portable/MPLAB/PIC32MX/portmacro.h
similarity index 100%
rename from Source/portable/MPLAB/PIC32MX/portmacro.h
rename to FreeRTOS/Source/portable/MPLAB/PIC32MX/portmacro.h
diff --git a/Source/portable/MSVC-MingW/port.c b/FreeRTOS/Source/portable/MSVC-MingW/port.c
similarity index 100%
rename from Source/portable/MSVC-MingW/port.c
rename to FreeRTOS/Source/portable/MSVC-MingW/port.c
diff --git a/Source/portable/MSVC-MingW/portmacro.h b/FreeRTOS/Source/portable/MSVC-MingW/portmacro.h
similarity index 100%
rename from Source/portable/MSVC-MingW/portmacro.h
rename to FreeRTOS/Source/portable/MSVC-MingW/portmacro.h
diff --git a/Source/portable/MemMang/heap_1.c b/FreeRTOS/Source/portable/MemMang/heap_1.c
similarity index 100%
rename from Source/portable/MemMang/heap_1.c
rename to FreeRTOS/Source/portable/MemMang/heap_1.c
diff --git a/Source/portable/MemMang/heap_2.c b/FreeRTOS/Source/portable/MemMang/heap_2.c
similarity index 100%
rename from Source/portable/MemMang/heap_2.c
rename to FreeRTOS/Source/portable/MemMang/heap_2.c
diff --git a/Source/portable/MemMang/heap_3.c b/FreeRTOS/Source/portable/MemMang/heap_3.c
similarity index 100%
rename from Source/portable/MemMang/heap_3.c
rename to FreeRTOS/Source/portable/MemMang/heap_3.c
diff --git a/Source/portable/MemMang/heap_4.c b/FreeRTOS/Source/portable/MemMang/heap_4.c
similarity index 100%
rename from Source/portable/MemMang/heap_4.c
rename to FreeRTOS/Source/portable/MemMang/heap_4.c
diff --git a/Source/portable/Paradigm/Tern_EE/large_untested/port.c b/FreeRTOS/Source/portable/Paradigm/Tern_EE/large_untested/port.c
similarity index 100%
rename from Source/portable/Paradigm/Tern_EE/large_untested/port.c
rename to FreeRTOS/Source/portable/Paradigm/Tern_EE/large_untested/port.c
diff --git a/Source/portable/Paradigm/Tern_EE/large_untested/portasm.h b/FreeRTOS/Source/portable/Paradigm/Tern_EE/large_untested/portasm.h
similarity index 100%
rename from Source/portable/Paradigm/Tern_EE/large_untested/portasm.h
rename to FreeRTOS/Source/portable/Paradigm/Tern_EE/large_untested/portasm.h
diff --git a/Source/portable/Paradigm/Tern_EE/large_untested/portmacro.h b/FreeRTOS/Source/portable/Paradigm/Tern_EE/large_untested/portmacro.h
similarity index 100%
rename from Source/portable/Paradigm/Tern_EE/large_untested/portmacro.h
rename to FreeRTOS/Source/portable/Paradigm/Tern_EE/large_untested/portmacro.h
diff --git a/Source/portable/Paradigm/Tern_EE/small/port.c b/FreeRTOS/Source/portable/Paradigm/Tern_EE/small/port.c
similarity index 100%
rename from Source/portable/Paradigm/Tern_EE/small/port.c
rename to FreeRTOS/Source/portable/Paradigm/Tern_EE/small/port.c
diff --git a/Source/portable/Paradigm/Tern_EE/small/portasm.h b/FreeRTOS/Source/portable/Paradigm/Tern_EE/small/portasm.h
similarity index 100%
rename from Source/portable/Paradigm/Tern_EE/small/portasm.h
rename to FreeRTOS/Source/portable/Paradigm/Tern_EE/small/portasm.h
diff --git a/Source/portable/Paradigm/Tern_EE/small/portmacro.h b/FreeRTOS/Source/portable/Paradigm/Tern_EE/small/portmacro.h
similarity index 100%
rename from Source/portable/Paradigm/Tern_EE/small/portmacro.h
rename to FreeRTOS/Source/portable/Paradigm/Tern_EE/small/portmacro.h
diff --git a/Source/portable/RVDS/ARM7_LPC21xx/port.c b/FreeRTOS/Source/portable/RVDS/ARM7_LPC21xx/port.c
similarity index 100%
rename from Source/portable/RVDS/ARM7_LPC21xx/port.c
rename to FreeRTOS/Source/portable/RVDS/ARM7_LPC21xx/port.c
diff --git a/Source/portable/RVDS/ARM7_LPC21xx/portASM.s b/FreeRTOS/Source/portable/RVDS/ARM7_LPC21xx/portASM.s
similarity index 100%
rename from Source/portable/RVDS/ARM7_LPC21xx/portASM.s
rename to FreeRTOS/Source/portable/RVDS/ARM7_LPC21xx/portASM.s
diff --git a/Source/portable/RVDS/ARM7_LPC21xx/portmacro.h b/FreeRTOS/Source/portable/RVDS/ARM7_LPC21xx/portmacro.h
similarity index 100%
rename from Source/portable/RVDS/ARM7_LPC21xx/portmacro.h
rename to FreeRTOS/Source/portable/RVDS/ARM7_LPC21xx/portmacro.h
diff --git a/Source/portable/RVDS/ARM7_LPC21xx/portmacro.inc b/FreeRTOS/Source/portable/RVDS/ARM7_LPC21xx/portmacro.inc
similarity index 100%
rename from Source/portable/RVDS/ARM7_LPC21xx/portmacro.inc
rename to FreeRTOS/Source/portable/RVDS/ARM7_LPC21xx/portmacro.inc
diff --git a/Source/portable/RVDS/ARM_CM3/port.c b/FreeRTOS/Source/portable/RVDS/ARM_CM3/port.c
similarity index 100%
rename from Source/portable/RVDS/ARM_CM3/port.c
rename to FreeRTOS/Source/portable/RVDS/ARM_CM3/port.c
diff --git a/Source/portable/RVDS/ARM_CM3/portmacro.h b/FreeRTOS/Source/portable/RVDS/ARM_CM3/portmacro.h
similarity index 100%
rename from Source/portable/RVDS/ARM_CM3/portmacro.h
rename to FreeRTOS/Source/portable/RVDS/ARM_CM3/portmacro.h
diff --git a/Source/portable/RVDS/ARM_CM4F/port.c b/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.c
similarity index 100%
rename from Source/portable/RVDS/ARM_CM4F/port.c
rename to FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.c
diff --git a/Source/portable/RVDS/ARM_CM4F/portmacro.h b/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.h
similarity index 100%
rename from Source/portable/RVDS/ARM_CM4F/portmacro.h
rename to FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.h
diff --git a/Source/portable/Renesas/RX200/port.c b/FreeRTOS/Source/portable/Renesas/RX200/port.c
similarity index 100%
rename from Source/portable/Renesas/RX200/port.c
rename to FreeRTOS/Source/portable/Renesas/RX200/port.c
diff --git a/Source/portable/Renesas/RX200/port_asm.src b/FreeRTOS/Source/portable/Renesas/RX200/port_asm.src
similarity index 100%
rename from Source/portable/Renesas/RX200/port_asm.src
rename to FreeRTOS/Source/portable/Renesas/RX200/port_asm.src
diff --git a/Source/portable/Renesas/RX200/portmacro.h b/FreeRTOS/Source/portable/Renesas/RX200/portmacro.h
similarity index 100%
rename from Source/portable/Renesas/RX200/portmacro.h
rename to FreeRTOS/Source/portable/Renesas/RX200/portmacro.h
diff --git a/Source/portable/Renesas/RX600/port.c b/FreeRTOS/Source/portable/Renesas/RX600/port.c
similarity index 100%
rename from Source/portable/Renesas/RX600/port.c
rename to FreeRTOS/Source/portable/Renesas/RX600/port.c
diff --git a/Source/portable/Renesas/RX600/port_asm.src b/FreeRTOS/Source/portable/Renesas/RX600/port_asm.src
similarity index 100%
rename from Source/portable/Renesas/RX600/port_asm.src
rename to FreeRTOS/Source/portable/Renesas/RX600/port_asm.src
diff --git a/Source/portable/Renesas/RX600/portmacro.h b/FreeRTOS/Source/portable/Renesas/RX600/portmacro.h
similarity index 100%
rename from Source/portable/Renesas/RX600/portmacro.h
rename to FreeRTOS/Source/portable/Renesas/RX600/portmacro.h
diff --git a/Source/portable/Renesas/SH2A_FPU/ISR_Support.inc b/FreeRTOS/Source/portable/Renesas/SH2A_FPU/ISR_Support.inc
similarity index 100%
rename from Source/portable/Renesas/SH2A_FPU/ISR_Support.inc
rename to FreeRTOS/Source/portable/Renesas/SH2A_FPU/ISR_Support.inc
diff --git a/Source/portable/Renesas/SH2A_FPU/port.c b/FreeRTOS/Source/portable/Renesas/SH2A_FPU/port.c
similarity index 100%
rename from Source/portable/Renesas/SH2A_FPU/port.c
rename to FreeRTOS/Source/portable/Renesas/SH2A_FPU/port.c
diff --git a/Source/portable/Renesas/SH2A_FPU/portasm.src b/FreeRTOS/Source/portable/Renesas/SH2A_FPU/portasm.src
similarity index 100%
rename from Source/portable/Renesas/SH2A_FPU/portasm.src
rename to FreeRTOS/Source/portable/Renesas/SH2A_FPU/portasm.src
diff --git a/Source/portable/Renesas/SH2A_FPU/portmacro.h b/FreeRTOS/Source/portable/Renesas/SH2A_FPU/portmacro.h
similarity index 100%
rename from Source/portable/Renesas/SH2A_FPU/portmacro.h
rename to FreeRTOS/Source/portable/Renesas/SH2A_FPU/portmacro.h
diff --git a/Source/portable/Rowley/ARM7/readme.txt b/FreeRTOS/Source/portable/Rowley/ARM7/readme.txt
similarity index 100%
rename from Source/portable/Rowley/ARM7/readme.txt
rename to FreeRTOS/Source/portable/Rowley/ARM7/readme.txt
diff --git a/Source/portable/Rowley/MSP430F449/port.c b/FreeRTOS/Source/portable/Rowley/MSP430F449/port.c
similarity index 100%
rename from Source/portable/Rowley/MSP430F449/port.c
rename to FreeRTOS/Source/portable/Rowley/MSP430F449/port.c
diff --git a/Source/portable/Rowley/MSP430F449/portasm.h b/FreeRTOS/Source/portable/Rowley/MSP430F449/portasm.h
similarity index 100%
rename from Source/portable/Rowley/MSP430F449/portasm.h
rename to FreeRTOS/Source/portable/Rowley/MSP430F449/portasm.h
diff --git a/Source/portable/Rowley/MSP430F449/portext.asm b/FreeRTOS/Source/portable/Rowley/MSP430F449/portext.asm
similarity index 100%
rename from Source/portable/Rowley/MSP430F449/portext.asm
rename to FreeRTOS/Source/portable/Rowley/MSP430F449/portext.asm
diff --git a/Source/portable/Rowley/MSP430F449/portmacro.h b/FreeRTOS/Source/portable/Rowley/MSP430F449/portmacro.h
similarity index 100%
rename from Source/portable/Rowley/MSP430F449/portmacro.h
rename to FreeRTOS/Source/portable/Rowley/MSP430F449/portmacro.h
diff --git a/Source/portable/SDCC/Cygnal/port.c b/FreeRTOS/Source/portable/SDCC/Cygnal/port.c
similarity index 100%
rename from Source/portable/SDCC/Cygnal/port.c
rename to FreeRTOS/Source/portable/SDCC/Cygnal/port.c
diff --git a/Source/portable/SDCC/Cygnal/portmacro.h b/FreeRTOS/Source/portable/SDCC/Cygnal/portmacro.h
similarity index 100%
rename from Source/portable/SDCC/Cygnal/portmacro.h
rename to FreeRTOS/Source/portable/SDCC/Cygnal/portmacro.h
diff --git a/Source/portable/Softune/MB91460/__STD_LIB_sbrk.c b/FreeRTOS/Source/portable/Softune/MB91460/__STD_LIB_sbrk.c
similarity index 100%
rename from Source/portable/Softune/MB91460/__STD_LIB_sbrk.c
rename to FreeRTOS/Source/portable/Softune/MB91460/__STD_LIB_sbrk.c
diff --git a/Source/portable/Softune/MB91460/port.c b/FreeRTOS/Source/portable/Softune/MB91460/port.c
similarity index 100%
rename from Source/portable/Softune/MB91460/port.c
rename to FreeRTOS/Source/portable/Softune/MB91460/port.c
diff --git a/Source/portable/Softune/MB91460/portmacro.h b/FreeRTOS/Source/portable/Softune/MB91460/portmacro.h
similarity index 100%
rename from Source/portable/Softune/MB91460/portmacro.h
rename to FreeRTOS/Source/portable/Softune/MB91460/portmacro.h
diff --git a/Source/portable/Softune/MB96340/__STD_LIB_sbrk.c b/FreeRTOS/Source/portable/Softune/MB96340/__STD_LIB_sbrk.c
similarity index 100%
rename from Source/portable/Softune/MB96340/__STD_LIB_sbrk.c
rename to FreeRTOS/Source/portable/Softune/MB96340/__STD_LIB_sbrk.c
diff --git a/Source/portable/Softune/MB96340/port.c b/FreeRTOS/Source/portable/Softune/MB96340/port.c
similarity index 100%
rename from Source/portable/Softune/MB96340/port.c
rename to FreeRTOS/Source/portable/Softune/MB96340/port.c
diff --git a/Source/portable/Softune/MB96340/portmacro.h b/FreeRTOS/Source/portable/Softune/MB96340/portmacro.h
similarity index 100%
rename from Source/portable/Softune/MB96340/portmacro.h
rename to FreeRTOS/Source/portable/Softune/MB96340/portmacro.h
diff --git a/Source/portable/Tasking/ARM_CM4F/port.c b/FreeRTOS/Source/portable/Tasking/ARM_CM4F/port.c
similarity index 100%
rename from Source/portable/Tasking/ARM_CM4F/port.c
rename to FreeRTOS/Source/portable/Tasking/ARM_CM4F/port.c
diff --git a/Source/portable/Tasking/ARM_CM4F/port_asm.asm b/FreeRTOS/Source/portable/Tasking/ARM_CM4F/port_asm.asm
similarity index 100%
rename from Source/portable/Tasking/ARM_CM4F/port_asm.asm
rename to FreeRTOS/Source/portable/Tasking/ARM_CM4F/port_asm.asm
diff --git a/Source/portable/Tasking/ARM_CM4F/portmacro.h b/FreeRTOS/Source/portable/Tasking/ARM_CM4F/portmacro.h
similarity index 100%
rename from Source/portable/Tasking/ARM_CM4F/portmacro.h
rename to FreeRTOS/Source/portable/Tasking/ARM_CM4F/portmacro.h
diff --git a/Source/portable/WizC/PIC18/Drivers/Tick/Tick.c b/FreeRTOS/Source/portable/WizC/PIC18/Drivers/Tick/Tick.c
similarity index 100%
rename from Source/portable/WizC/PIC18/Drivers/Tick/Tick.c
rename to FreeRTOS/Source/portable/WizC/PIC18/Drivers/Tick/Tick.c
diff --git a/Source/portable/WizC/PIC18/Drivers/Tick/isrTick.c b/FreeRTOS/Source/portable/WizC/PIC18/Drivers/Tick/isrTick.c
similarity index 100%
rename from Source/portable/WizC/PIC18/Drivers/Tick/isrTick.c
rename to FreeRTOS/Source/portable/WizC/PIC18/Drivers/Tick/isrTick.c
diff --git a/Source/portable/WizC/PIC18/Install.bat b/FreeRTOS/Source/portable/WizC/PIC18/Install.bat
similarity index 100%
rename from Source/portable/WizC/PIC18/Install.bat
rename to FreeRTOS/Source/portable/WizC/PIC18/Install.bat
diff --git a/Source/portable/WizC/PIC18/addFreeRTOS.h b/FreeRTOS/Source/portable/WizC/PIC18/addFreeRTOS.h
similarity index 100%
rename from Source/portable/WizC/PIC18/addFreeRTOS.h
rename to FreeRTOS/Source/portable/WizC/PIC18/addFreeRTOS.h
diff --git a/Source/portable/WizC/PIC18/port.c b/FreeRTOS/Source/portable/WizC/PIC18/port.c
similarity index 100%
rename from Source/portable/WizC/PIC18/port.c
rename to FreeRTOS/Source/portable/WizC/PIC18/port.c
diff --git a/Source/portable/WizC/PIC18/portmacro.h b/FreeRTOS/Source/portable/WizC/PIC18/portmacro.h
similarity index 100%
rename from Source/portable/WizC/PIC18/portmacro.h
rename to FreeRTOS/Source/portable/WizC/PIC18/portmacro.h
diff --git a/Source/portable/oWatcom/16BitDOS/Flsh186/port.c b/FreeRTOS/Source/portable/oWatcom/16BitDOS/Flsh186/port.c
similarity index 100%
rename from Source/portable/oWatcom/16BitDOS/Flsh186/port.c
rename to FreeRTOS/Source/portable/oWatcom/16BitDOS/Flsh186/port.c
diff --git a/Source/portable/oWatcom/16BitDOS/Flsh186/portmacro.h b/FreeRTOS/Source/portable/oWatcom/16BitDOS/Flsh186/portmacro.h
similarity index 100%
rename from Source/portable/oWatcom/16BitDOS/Flsh186/portmacro.h
rename to FreeRTOS/Source/portable/oWatcom/16BitDOS/Flsh186/portmacro.h
diff --git a/Source/portable/oWatcom/16BitDOS/PC/port.c b/FreeRTOS/Source/portable/oWatcom/16BitDOS/PC/port.c
similarity index 100%
rename from Source/portable/oWatcom/16BitDOS/PC/port.c
rename to FreeRTOS/Source/portable/oWatcom/16BitDOS/PC/port.c
diff --git a/Source/portable/oWatcom/16BitDOS/PC/portmacro.h b/FreeRTOS/Source/portable/oWatcom/16BitDOS/PC/portmacro.h
similarity index 100%
rename from Source/portable/oWatcom/16BitDOS/PC/portmacro.h
rename to FreeRTOS/Source/portable/oWatcom/16BitDOS/PC/portmacro.h
diff --git a/Source/portable/oWatcom/16BitDOS/common/portasm.h b/FreeRTOS/Source/portable/oWatcom/16BitDOS/common/portasm.h
similarity index 100%
rename from Source/portable/oWatcom/16BitDOS/common/portasm.h
rename to FreeRTOS/Source/portable/oWatcom/16BitDOS/common/portasm.h
diff --git a/Source/portable/oWatcom/16BitDOS/common/portcomn.c b/FreeRTOS/Source/portable/oWatcom/16BitDOS/common/portcomn.c
similarity index 100%
rename from Source/portable/oWatcom/16BitDOS/common/portcomn.c
rename to FreeRTOS/Source/portable/oWatcom/16BitDOS/common/portcomn.c
diff --git a/Source/portable/readme.txt b/FreeRTOS/Source/portable/readme.txt
similarity index 100%
rename from Source/portable/readme.txt
rename to FreeRTOS/Source/portable/readme.txt
diff --git a/Source/queue.c b/FreeRTOS/Source/queue.c
similarity index 100%
rename from Source/queue.c
rename to FreeRTOS/Source/queue.c
diff --git a/Source/readme.txt b/FreeRTOS/Source/readme.txt
similarity index 100%
rename from Source/readme.txt
rename to FreeRTOS/Source/readme.txt
diff --git a/Source/tasks.c b/FreeRTOS/Source/tasks.c
similarity index 100%
rename from Source/tasks.c
rename to FreeRTOS/Source/tasks.c
diff --git a/Source/timers.c b/FreeRTOS/Source/timers.c
similarity index 100%
rename from Source/timers.c
rename to FreeRTOS/Source/timers.c
diff --git a/FreeRTOS/readme.txt b/FreeRTOS/readme.txt
new file mode 100644
index 000000000..a41cc4d61
--- /dev/null
+++ b/FreeRTOS/readme.txt
@@ -0,0 +1,21 @@
+Directories:
+
++ The FreeRTOS/Source directory contains the FreeRTOS source code, and contains
+  its own readme file.
+
++ The FreeRTOS/Demo directory contains a demo application for every official
+FreeRTOS port, and contains its own readme file.
+
++ See http://www.freertos.org/a00017.html for full details of the directory 
+structure and information on locating the files you require.
+
+The easiest way to use FreeRTOS is to start with one of the pre-configured demo 
+application projects (found in the FreeRTOS/Demo directory).  That way you will
+have the correct FreeRTOS source and included, and the correct include paths
+configured.  Once a demo application is building and executing you can remove
+the demo application file, and start to add in your own application source
+files.
+
+See also -
+http://www.freertos.org/FreeRTOS-quick-start-guide.html
+http://www.freertos.org/FAQHelp.html
diff --git a/readme.txt b/readme.txt
deleted file mode 100644
index 49eecd6cd..000000000
--- a/readme.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-The download includes the kernel source code, and a demo application for EVERY
-RTOS port.  See http://www.freertos.org/a00017.html for full details of the 
-directory structure and information on locating the files you require.
-
-The easiest way to use FreeRTOS is start start with one of the demo application 
-projects.  Once this is running the project can be modified to include your own
-source files.  This way the correct files and compiler options will be 
-automatically included in your application.
-
-+ The Source directory contains the real time kernel source files for every 
-port.  The kernel itself is only 3 files.
-
-+ The Demo directory contains the demo application source files for every 
-port.
-
-+ The TraceCon directory contains the trace visualisation exe file.
-
-See the readme files in the respective directories for further information.
-
-- 
2.39.5